632 lines
39 KiB
HTML
632 lines
39 KiB
HTML
<!DOCTYPE html>
|
||
<html lang="de" data-theme="dark">
|
||
<head>
|
||
<script>(function(){try{var t=localStorage.getItem('profice-theme');if(t==='light'||t==='dark'){document.documentElement.setAttribute('data-theme',t);}}catch(e){}})();</script>
|
||
<!-- Cookiebot -->
|
||
<script id="Cookiebot" src="https://consent.cookiebot.com/uc.js" data-cbid="d6499c25-b3c2-41ac-8edf-60a4209f74c9" data-blockingmode="auto" type="text/javascript"></script>
|
||
<script>
|
||
window.addEventListener('CookiebotOnDialogDisplay', function() {
|
||
var dialog = document.getElementById('CybotCookiebotDialog');
|
||
if (dialog) {
|
||
dialog.style.setProperty('position', 'fixed', 'important');
|
||
dialog.style.setProperty('bottom', '0', 'important');
|
||
dialog.style.setProperty('top', 'auto', 'important');
|
||
dialog.style.setProperty('left', '0', 'important');
|
||
dialog.style.setProperty('right', '0', 'important');
|
||
dialog.style.setProperty('width', '100%', 'important');
|
||
dialog.style.setProperty('transform', 'none', 'important');
|
||
dialog.style.setProperty('margin', '0', 'important');
|
||
}
|
||
});
|
||
</script>
|
||
<meta charset="UTF-8">
|
||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||
<meta name="description" content="Profice betreibt zwei Services für profitables Wachstum: Performance-Marketing (Feedgine POAS, Google Ads, SEO & GEO, Server-Side Tracking via Stape, Cloudflare) und KI (Voice, RAG, MCP). Sie buchen das Ergebnis als Service — nicht das Werkzeug." />
|
||
<meta name="robots" content="index, follow" />
|
||
<link rel="canonical" href="https://profice.ai/" />
|
||
<link rel="sitemap" type="application/xml" href="/sitemap.xml" />
|
||
<link rel="alternate" hreflang="de" href="https://profice.ai/" />
|
||
<link rel="alternate" hreflang="x-default" href="https://profice.ai/" />
|
||
<meta property="og:title" content="Profice GmbH – Marketing & KI als Service" />
|
||
<meta property="og:description" content="Zwei Services, ein Ziel: profitables Wachstum. Performance-Marketing mit Feedgine & VISIGINE (POAS, Google Ads, SEO & GEO, Server-Side Tracking) plus KI-Agenten (Voice, RAG, MCP). Sie buchen das Ergebnis, nicht das Werkzeug." />
|
||
<meta property="og:type" content="website" />
|
||
<meta property="og:url" content="https://profice.ai/" />
|
||
<meta property="og:locale" content="de_DE" />
|
||
<meta property="og:image" content="https://profice.ai/og-image.png" />
|
||
<meta property="og:image:width" content="1200" />
|
||
<meta property="og:image:height" content="630" />
|
||
<meta name="twitter:card" content="summary_large_image" />
|
||
<meta name="twitter:image" content="https://profice.ai/og-image.png" />
|
||
<meta name="twitter:title" content="Profice GmbH – KI-Systeme für profitables Wachstum" />
|
||
<title>Profice — AI Systems for Business Growth</title>
|
||
<link rel="icon" type="image/png" href="/Appicon 1024X1024-01.png">
|
||
<script type="application/ld+json">
|
||
{
|
||
"@context": "https://schema.org",
|
||
"@graph": [
|
||
{
|
||
"@type": ["Organization", "ProfessionalService"],
|
||
"@id": "https://profice.ai/#organization",
|
||
"name": "Profice GmbH",
|
||
"url": "https://profice.ai",
|
||
"email": "hello@profice.ai",
|
||
"description": "Profice GmbH baut KI-gestützte Profit-Systeme für E-Commerce und digitales Marketing. Hauptprodukte: Feedgine (POAS-Optimierung) und VISIGINE (GEO-Optimierung).",
|
||
"sameAs": [
|
||
"https://feedgine.de",
|
||
"https://www.visigine.de"
|
||
],
|
||
"openingHoursSpecification": [
|
||
{
|
||
"@type": "OpeningHoursSpecification",
|
||
"dayOfWeek": ["Monday","Tuesday","Wednesday","Thursday","Friday"],
|
||
"opens": "09:00",
|
||
"closes": "18:00"
|
||
}
|
||
],
|
||
"openingHours": "Mo-Fr 09:00-18:00",
|
||
"hasOfferCatalog": {
|
||
"@type": "OfferCatalog",
|
||
"name": "Profice Produkte & Systeme",
|
||
"itemListElement": [
|
||
{
|
||
"@type": "Offer",
|
||
"itemOffered": {
|
||
"@type": "Service",
|
||
"name": "Feedgine — Profit Intelligence Platform",
|
||
"url": "https://feedgine.de",
|
||
"description": "POAS-Optimierung für Google Shopping auf Basis von JTL-Wawi-Margendaten."
|
||
}
|
||
},
|
||
{
|
||
"@type": "Offer",
|
||
"itemOffered": {
|
||
"@type": "Service",
|
||
"name": "VISIGINE — GEO & SEO Automatisierung",
|
||
"url": "https://www.visigine.de",
|
||
"description": "Automatisierte GEO+SEO-Analyse für KI-Sichtbarkeit bei ChatGPT, Perplexity und Gemini."
|
||
}
|
||
}
|
||
]
|
||
}
|
||
},
|
||
{
|
||
"@type": "WebSite",
|
||
"@id": "https://profice.ai/#website",
|
||
"url": "https://profice.ai",
|
||
"name": "Profice GmbH",
|
||
"description": "KI-Systeme für profitables Wachstum.",
|
||
"inLanguage": "de-DE",
|
||
"publisher": { "@id": "https://profice.ai/#organization" }
|
||
},
|
||
{
|
||
"@type": "FAQPage",
|
||
"mainEntity": [
|
||
{
|
||
"@type": "Question",
|
||
"name": "Wie kann ich E-Commerce Werbung profitabler machen ohne eine Agentur?",
|
||
"acceptedAnswer": { "@type": "Answer", "text": "Profice baut proprietäre KI-Systeme, die Ihre Warenwirtschaftsdaten direkt mit Werbekanälen verbinden — ohne Agentur-Retainer, ohne Dashboard-Theater. Das System steuert Werbebudgets automatisch auf Basis echter Produktmargen." }
|
||
},
|
||
{
|
||
"@type": "Question",
|
||
"name": "Welches Tool verbindet JTL-Wawi automatisch mit Google Ads und Google Shopping?",
|
||
"acceptedAnswer": { "@type": "Answer", "text": "Feedgine von Profice ist die direkte Integration zwischen JTL-Wawi und Google Shopping, PMax und Microsoft Ads. Einkaufspreise und Margen steuern automatisch das Bidding — kein manuelles Eingreifen nötig. Ergebnis bei lkw-teile24.de: +31% profitabler Umsatz." }
|
||
},
|
||
{
|
||
"@type": "Question",
|
||
"name": "Wie erkenne ich ob meine Google Ads Kampagnen wirklich profitabel sind?",
|
||
"acceptedAnswer": { "@type": "Answer", "text": "ROAS allein reicht nicht — er zeigt Umsatz, nicht Gewinn. Profice integriert Ihre Margendaten aus der Warenwirtschaft direkt in die Kampagnensteuerung. So sehen Sie und optimieren auf POAS (Profit on Ad Spend) — den echten Gewinn nach Produktkosten." }
|
||
},
|
||
{
|
||
"@type": "Question",
|
||
"name": "Was ist besser als eine Performance-Marketing-Agentur für E-Commerce?",
|
||
"acceptedAnswer": { "@type": "Answer", "text": "Agenturen optimieren auf Klicks und ROAS — weil sie keinen Zugriff auf Ihre Margen haben. Profice baut ein System, das Ihre eigenen EK-Daten mit Google Ads verbindet. Das System läuft autonom, wird besser mit der Zeit und gehört Ihnen — kein Retainer, kein Reporting." }
|
||
},
|
||
{
|
||
"@type": "Question",
|
||
"name": "Wie wird meine Website bei ChatGPT und Perplexity sichtbar?",
|
||
"acceptedAnswer": { "@type": "Answer", "text": "VISIGINE von Profice analysiert Websites auf GEO-Sichtbarkeit: llms.txt, robots.txt AI-Bot-Regeln, JSON-LD-Schema, og-Tags. Es liefert einen Score 1–10 und konkrete Maßnahmen damit KI-Systeme die Website verstehen und in Antworten empfehlen." }
|
||
}
|
||
]
|
||
}
|
||
]
|
||
}
|
||
</script>
|
||
<style>
|
||
*,*::before,*::after{margin:0;padding:0;box-sizing:border-box}
|
||
:root{
|
||
--charcoal:#4F4747;--slate:#777764;--ivory:#EBEBDE;
|
||
--amber:#F57C00;--teal:#26A69A;--green:#66BB6A;
|
||
--bg:#0e0d0c;--bg2:#161514;--bg3:#1c1b19;
|
||
--text:#d4d0c8;--text-dim:#7a7668;--text-bright:#f5f2ea;
|
||
--border:rgba(235,235,222,.04);--border-strong:rgba(235,235,222,.06);
|
||
--card-bg:rgba(255,255,255,.01);
|
||
--nav-bg:rgba(14,13,12,.7);
|
||
--grain-opacity:.35;
|
||
--on-amber:#0e0d0c;
|
||
--logo-filter:none;
|
||
--watermark-num:rgba(255,140,20,.45);
|
||
--watermark-quote:rgba(255,140,20,.42);
|
||
}
|
||
[data-theme="light"]{
|
||
--bg:#EBEBDE;--bg2:#E3E3D3;--bg3:#DBDBC9;
|
||
--text:#3a3434;--text-dim:#56564a;--text-bright:#2a2222;
|
||
--border:rgba(79,71,71,.14);--border-strong:rgba(79,71,71,.22);
|
||
--card-bg:rgba(79,71,71,.03);
|
||
--nav-bg:rgba(235,235,222,.78);
|
||
--grain-opacity:.10;
|
||
--logo-filter:invert(0.78) sepia(0.12) saturate(0.6) hue-rotate(345deg) brightness(0.55);
|
||
--watermark-num:rgba(245,124,0,.65);
|
||
--watermark-quote:rgba(245,124,0,.55);
|
||
}
|
||
body,nav,.thesis,.numbers,.num-card,.stack-item,footer,.contrast-card,.cta-btn,.theme-toggle,.nav-cta{transition:background-color .35s ease,color .35s ease,border-color .35s ease}
|
||
html{scroll-behavior:smooth;font-size:16px}
|
||
body{background:var(--bg);color:var(--text);font-family:system-ui,-apple-system,'Segoe UI',sans-serif;overflow-x:hidden;-webkit-font-smoothing:antialiased}
|
||
::selection{background:var(--amber);color:var(--on-amber)}
|
||
|
||
/* ─── GRAIN OVERLAY ─── */
|
||
body::after{content:'';position:fixed;inset:0;pointer-events:none;z-index:9999;
|
||
background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.04'/%3E%3C/svg%3E");
|
||
opacity:var(--grain-opacity)}
|
||
|
||
/* ─── NAV ─── */
|
||
nav{position:fixed;top:0;left:0;right:0;z-index:100;padding:0.6rem 3rem;display:flex;justify-content:space-between;align-items:center;
|
||
backdrop-filter:blur(20px);background:var(--nav-bg);border-bottom:1px solid var(--border)}
|
||
.logo{font-family:'Segoe UI',system-ui,-apple-system,sans-serif;font-weight:800;font-size:1.1rem;letter-spacing:.15em;color:var(--ivory);text-transform:uppercase}
|
||
.logo span{color:var(--amber)}
|
||
nav ul{list-style:none;display:flex;gap:2.5rem}
|
||
nav a{color:var(--text-dim);text-decoration:none;font-size:.8rem;letter-spacing:.12em;text-transform:uppercase;transition:color .3s}
|
||
nav a:hover{color:var(--amber)}
|
||
.nav-cta{color:var(--amber)!important;border:1px solid var(--amber);padding:.45rem 1.2rem;transition:all .3s}
|
||
.nav-cta:hover{background:var(--amber);color:var(--on-amber)!important}
|
||
.nav-right{display:flex;align-items:center;gap:1.5rem}
|
||
.logo img{filter:var(--logo-filter);transition:filter .35s ease}
|
||
.theme-toggle{background:none;border:1px solid var(--border-strong);color:var(--text-dim);width:38px;height:38px;display:flex;align-items:center;justify-content:center;cursor:pointer;padding:0;transition:color .3s,border-color .3s,background-color .3s}
|
||
.theme-toggle:hover{color:var(--amber);border-color:var(--amber)}
|
||
.theme-toggle svg{width:16px;height:16px;display:block}
|
||
.theme-toggle .icon-sun,.theme-toggle .icon-moon{display:none}
|
||
[data-theme="dark"] .theme-toggle .icon-sun{display:block}
|
||
[data-theme="light"] .theme-toggle .icon-moon{display:block}
|
||
|
||
/* ─── HERO ─── */
|
||
.hero{min-height:100vh;display:flex;flex-direction:column;justify-content:center;padding:8rem 3rem 4rem;position:relative;overflow:hidden}
|
||
.hero::before{content:'';position:absolute;top:-20%;right:-10%;width:70vw;height:70vw;
|
||
background:radial-gradient(circle,rgba(245,124,0,.06) 0%,transparent 65%);pointer-events:none}
|
||
.hero-label{font-family:'Segoe UI',system-ui,-apple-system,sans-serif;font-size:1rem;letter-spacing:.3em;text-transform:uppercase;color:var(--amber);margin-bottom:2rem;
|
||
display:flex;align-items:center;gap:1rem}
|
||
.hero-label::before{content:'';width:3rem;height:1px;background:var(--amber)}
|
||
.hero h1{font-family:'Segoe UI',system-ui,-apple-system,sans-serif;font-weight:900;font-size:clamp(2.8rem,7vw,6rem);line-height:1.05;color:var(--text-bright);max-width:14ch;margin-bottom:2rem}
|
||
.hero h1 em{font-style:normal;color:var(--amber);position:relative}
|
||
.hero h1 em::after{content:'';position:absolute;bottom:.08em;left:0;right:0;height:3px;background:var(--amber);opacity:.4}
|
||
.hero-sub{font-size:1.15rem;line-height:1.8;color:var(--text-dim);max-width:42ch;margin-bottom:3rem;font-weight:300}
|
||
|
||
/* ─── THESIS STRIP ─── */
|
||
.thesis{background:var(--bg2);border-top:1px solid var(--border-strong);border-bottom:1px solid var(--border-strong);padding:4rem 3rem;overflow:hidden}
|
||
.thesis-inner{display:flex;gap:1rem;align-items:baseline;white-space:nowrap;animation:scroll-left 30s linear infinite}
|
||
@keyframes scroll-left{0%{transform:translateX(0)}100%{transform:translateX(-50%)}}
|
||
.thesis-inner span{font-family:'Segoe UI',system-ui,-apple-system,sans-serif;font-size:clamp(1.2rem,3vw,2rem);font-weight:700;color:var(--text-dim);opacity:.35;padding:0 2rem}
|
||
.thesis-inner span.highlight{color:var(--amber);opacity:1}
|
||
.thesis-inner span::after{content:'◆';margin-left:4rem;font-size:.5em;vertical-align:middle;color:var(--slate);opacity:.3}
|
||
|
||
/* ─── ANTI-SECTION ─── */
|
||
.anti{padding:8rem 3rem;display:grid;grid-template-columns:1fr 1fr;gap:6rem;max-width:1200px;margin:0 auto}
|
||
.anti-left{position:relative}
|
||
.anti-left::before{content:'"';font-family:'Segoe UI',system-ui,-apple-system,sans-serif;font-size:8rem;font-weight:900;color:var(--watermark-quote);position:absolute;top:-3.5rem;left:-0.5rem;line-height:1;pointer-events:none}
|
||
.anti h2{font-family:'Segoe UI',system-ui,-apple-system,sans-serif;font-weight:800;font-size:clamp(1.8rem,4vw,3rem);color:var(--text-bright);line-height:1.15;margin-bottom:1.5rem}
|
||
.anti h2 span{color:var(--amber)}
|
||
.anti-statement{font-size:1.05rem;line-height:1.9;color:var(--text-dim);font-weight:300}
|
||
.anti-right{display:flex;flex-direction:column;gap:2.5rem;padding-top:1rem}
|
||
.contrast-card{border-left:2px solid var(--slate);padding:1.5rem 0 1.5rem 2rem;transition:border-color .3s}
|
||
.contrast-card:hover{border-color:var(--amber)}
|
||
.contrast-card .old{font-family:'Segoe UI',system-ui,-apple-system,sans-serif;font-size:.7rem;letter-spacing:.2em;text-transform:uppercase;color:var(--text-dim);opacity:.5;margin-bottom:.5rem;text-decoration:line-through}
|
||
.contrast-card .new{font-family:'Segoe UI',system-ui,-apple-system,sans-serif;font-weight:700;font-size:1rem;color:var(--text-bright);margin-bottom:.5rem}
|
||
.contrast-card p{font-size:.85rem;color:var(--text-dim);line-height:1.7;font-weight:300}
|
||
|
||
/* ─── NUMBERS ─── */
|
||
.numbers{background:var(--bg3);padding:6rem 3rem;border-top:1px solid var(--border);border-bottom:1px solid var(--border)}
|
||
.numbers-inner{max-width:1200px;margin:0 auto}
|
||
.numbers-label{font-family:'Segoe UI',system-ui,-apple-system,sans-serif;font-size:.7rem;letter-spacing:.3em;text-transform:uppercase;color:var(--teal);margin-bottom:3rem;display:flex;align-items:center;gap:1rem}
|
||
.numbers-label::before{content:'';width:3rem;height:1px;background:var(--teal)}
|
||
.numbers-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:3rem}
|
||
.num-card{padding:2.5rem;border:1px solid var(--border-strong);background:var(--card-bg);position:relative;overflow:hidden;transition:border-color .3s}
|
||
.num-card:hover{border-color:var(--amber)}
|
||
.num-card .value{font-family:'Segoe UI',system-ui,-apple-system,sans-serif;font-weight:900;font-size:3.5rem;color:var(--amber);line-height:1;margin-bottom:.75rem}
|
||
.num-card .value.green{color:var(--green)}
|
||
.num-card .label{font-family:'Segoe UI',system-ui,-apple-system,sans-serif;font-size:.7rem;letter-spacing:.15em;text-transform:uppercase;color:var(--text-dim);margin-bottom:1rem}
|
||
.num-card .desc{font-size:.85rem;color:var(--text-dim);line-height:1.7;font-weight:300}
|
||
.num-card::after{content:'';position:absolute;top:0;right:0;width:60%;height:100%;background:linear-gradient(135deg,transparent 50%,rgba(245,124,0,.02));pointer-events:none}
|
||
|
||
/* ─── SYSTEM SECTION ─── */
|
||
.system{padding:8rem 3rem;max-width:1200px;margin:0 auto}
|
||
.system-label{font-family:'Segoe UI',system-ui,-apple-system,sans-serif;font-size:.7rem;letter-spacing:.3em;text-transform:uppercase;color:var(--amber);margin-bottom:1.5rem;display:flex;align-items:center;gap:1rem}
|
||
.system-label::before{content:'';width:3rem;height:1px;background:var(--amber)}
|
||
.system h2{font-family:'Segoe UI',system-ui,-apple-system,sans-serif;font-weight:800;font-size:clamp(1.8rem,4vw,2.8rem);color:var(--text-bright);margin-bottom:1rem;max-width:18ch}
|
||
.system-sub{font-size:1.05rem;color:var(--text-dim);line-height:1.8;max-width:50ch;margin-bottom:4rem;font-weight:300}
|
||
|
||
.stack{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--border-strong)}
|
||
.stack-item{background:var(--bg);padding:3rem 2.5rem;position:relative;transition:background .3s}
|
||
.stack-item:hover{background:var(--bg2)}
|
||
.stack-num{font-family:'Segoe UI',system-ui,-apple-system,sans-serif;font-weight:800;font-size:3rem;color:var(--watermark-num);position:absolute;top:1.5rem;right:1.5rem;line-height:1}
|
||
.stack-item h3{font-family:'Segoe UI',system-ui,-apple-system,sans-serif;font-weight:700;font-size:1rem;color:var(--text-bright);margin-bottom:.75rem;letter-spacing:.02em}
|
||
.stack-item p{font-size:.85rem;color:var(--text-dim);line-height:1.8;font-weight:300}
|
||
.stack-tag{display:inline-block;margin-top:1rem;font-family:'Segoe UI',system-ui,-apple-system,sans-serif;font-size:.6rem;letter-spacing:.15em;text-transform:uppercase;color:var(--teal);border:1px solid rgba(38,166,154,.2);padding:.3rem .7rem}
|
||
|
||
/* ─── Größere Karten (Feedgine + KI-Agenten) ─── */
|
||
#feedgine .stack-item,#visigine .stack-item,#ki-agenten .stack-item{padding:3.75rem 3rem}
|
||
#feedgine .stack-num,#visigine .stack-num,#ki-agenten .stack-num{font-size:3.75rem;top:1.8rem;right:1.8rem}
|
||
#feedgine .stack-item h3,#visigine .stack-item h3,#ki-agenten .stack-item h3{font-size:1.4rem;margin-bottom:1.1rem}
|
||
#feedgine .stack-item p,#visigine .stack-item p,#ki-agenten .stack-item p{font-size:1.05rem;line-height:1.85}
|
||
#feedgine .stack-tag,#visigine .stack-tag,#ki-agenten .stack-tag{font-size:.72rem;margin-top:1.5rem;padding:.42rem .9rem}
|
||
|
||
/* ─── UNSERE SERVICES ─── */
|
||
.services-wrap{padding:8rem 3rem;max-width:1200px;margin:0 auto}
|
||
.services-grid{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--border-strong);margin-top:3rem}
|
||
.service-card{background:var(--bg);padding:3rem 2.75rem;transition:background .3s}
|
||
.service-card:hover{background:var(--bg2)}
|
||
.svc-kicker{font-family:'Segoe UI',system-ui,-apple-system,sans-serif;font-size:.7rem;letter-spacing:.2em;text-transform:uppercase;color:var(--amber);margin-bottom:1rem}
|
||
.svc-kicker.teal{color:var(--teal)}
|
||
.service-card h3{font-family:'Segoe UI',system-ui,-apple-system,sans-serif;font-weight:800;font-size:1.6rem;color:var(--text-bright);margin-bottom:1rem;letter-spacing:.01em}
|
||
.svc-desc{font-size:.95rem;color:var(--text-dim);line-height:1.7;margin-bottom:1.5rem;font-weight:300}
|
||
.svc-list{list-style:none;display:flex;flex-direction:column;gap:.85rem;margin-bottom:1.75rem}
|
||
.svc-list li{padding-left:1.5rem;position:relative;font-size:.95rem;line-height:1.6;color:var(--text);font-weight:300}
|
||
.svc-list li::before{content:'';position:absolute;left:0;top:.55em;width:.6rem;height:1px;background:var(--amber)}
|
||
.service-card.ki .svc-list li::before{background:var(--teal)}
|
||
.svc-list a{color:var(--amber);text-decoration:none;font-weight:600}
|
||
.svc-list a:hover{text-decoration:underline}
|
||
.svc-more{display:inline-block;font-family:'Segoe UI',system-ui,-apple-system,sans-serif;font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;color:var(--text-bright);text-decoration:none;border-bottom:1px solid var(--amber);padding-bottom:.25rem;transition:color .3s}
|
||
.service-card.ki .svc-more{border-color:var(--teal)}
|
||
.svc-more:hover{color:var(--amber)}
|
||
@media(max-width:900px){.services-grid{grid-template-columns:1fr}.services-wrap{padding:5rem 1.5rem}}
|
||
|
||
/* ─── KI-AGENTEN — fertige Agenten ─── */
|
||
.ki-roles-label{font-family:'Segoe UI',system-ui,-apple-system,sans-serif;font-size:.7rem;letter-spacing:.2em;text-transform:uppercase;color:var(--teal);margin:4rem 0 1.75rem;display:flex;align-items:center;gap:1rem}
|
||
.ki-roles-label::before{content:'';width:3rem;height:1px;background:var(--teal)}
|
||
.ki-roles{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:1rem}
|
||
.ki-role{border:1px solid var(--border-strong);background:var(--card-bg);padding:1.6rem 1.5rem;transition:border-color .3s,background .3s}
|
||
.ki-role:hover{border-color:var(--teal);background:var(--bg2)}
|
||
.ki-role .r-name{font-family:'Segoe UI',system-ui,-apple-system,sans-serif;font-weight:700;font-size:1rem;color:var(--text-bright);margin-bottom:.5rem}
|
||
.ki-role .r-desc{font-size:.82rem;color:var(--text-dim);line-height:1.6;font-weight:300}
|
||
|
||
/* ─── CTA ─── */
|
||
.cta-section{padding:8rem 3rem;text-align:center;position:relative}
|
||
.cta-section::before{content:'';position:absolute;bottom:0;left:50%;transform:translateX(-50%);width:60vw;height:60vw;
|
||
background:radial-gradient(circle,rgba(245,124,0,.04) 0%,transparent 60%);pointer-events:none}
|
||
.cta-section h2{font-family:'Segoe UI',system-ui,-apple-system,sans-serif;font-weight:900;font-size:clamp(2rem,5vw,3.5rem);color:var(--text-bright);margin-bottom:1.5rem;line-height:1.1}
|
||
.cta-section h2 em{font-style:normal;color:var(--amber)}
|
||
.cta-section p{font-size:1rem;color:var(--text-dim);max-width:40ch;margin:0 auto 3rem;line-height:1.8;font-weight:300}
|
||
.cta-btn{display:inline-block;font-family:'Segoe UI',system-ui,-apple-system,sans-serif;font-weight:700;font-size:.85rem;letter-spacing:.12em;text-transform:uppercase;text-decoration:none;
|
||
color:var(--on-amber);background:var(--amber);padding:1.1rem 3rem;border:none;cursor:pointer;position:relative;transition:all .3s}
|
||
.cta-btn:hover{background:var(--text-bright);color:var(--bg)}
|
||
.cta-btn::after{content:'→';margin-left:1rem;transition:transform .3s}
|
||
.cta-btn:hover::after{transform:translateX(4px)}
|
||
|
||
/* ─── FOOTER ─── */
|
||
footer{border-top:1px solid var(--border);padding:3rem;display:flex;justify-content:space-between;align-items:center;font-size:.75rem;color:var(--text-dim)}
|
||
footer a{color:var(--text-dim);text-decoration:none}
|
||
footer a:hover{color:var(--amber)}
|
||
|
||
/* ─── RESPONSIVE ─── */
|
||
@media(max-width:900px){
|
||
nav{padding:1rem 1.5rem}nav ul{gap:1.2rem}
|
||
.hero{padding:7rem 1.5rem 3rem}.hero h1{font-size:clamp(2rem,8vw,3.5rem)}
|
||
.anti{grid-template-columns:1fr;gap:3rem;padding:5rem 1.5rem}
|
||
.numbers-grid{grid-template-columns:1fr}
|
||
.stack{grid-template-columns:1fr}
|
||
.system{padding:5rem 1.5rem}
|
||
.numbers{padding:4rem 1.5rem}
|
||
}
|
||
@media(max-width:600px){
|
||
nav ul{display:none}
|
||
.hero{padding:6rem 1.2rem 2rem}
|
||
}
|
||
|
||
/* ─── ANIMATIONS ─── */
|
||
.reveal,.reveal-left,.reveal-right,.reveal-zoom{
|
||
opacity:0;
|
||
transition:opacity .9s cubic-bezier(0.16,1,0.3,1),transform .9s cubic-bezier(0.16,1,0.3,1);
|
||
transition-delay:var(--d,0ms);
|
||
will-change:opacity,transform
|
||
}
|
||
.reveal{transform:translateY(40px)}
|
||
.reveal-left{transform:translateX(-40px)}
|
||
.reveal-right{transform:translateX(40px)}
|
||
.reveal-zoom{transform:scale(.94)}
|
||
.reveal.visible,.reveal-left.visible,.reveal-right.visible,.reveal-zoom.visible{opacity:1;transform:none}
|
||
@media (prefers-reduced-motion:reduce){
|
||
.reveal,.reveal-left,.reveal-right,.reveal-zoom{opacity:1;transform:none;transition:none}
|
||
}
|
||
</style>
|
||
</head>
|
||
<body>
|
||
|
||
<nav>
|
||
<div class="logo"><img src="Logo-09.png" alt="Profice" style="height:44px;display:block"></div>
|
||
<div class="nav-right">
|
||
<ul>
|
||
<li><a href="/services">Services</a></li>
|
||
<li><a href="/ergebnisse">Ergebnisse</a></li>
|
||
<li><a href="/feedgine">Marketing</a></li>
|
||
<li><a href="/kontakt" class="nav-cta">Gespräch buchen</a></li>
|
||
</ul>
|
||
<button class="theme-toggle" type="button" aria-label="Theme wechseln" title="Theme wechseln">
|
||
<svg class="icon-sun" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><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"/></svg>
|
||
<svg class="icon-moon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M21 12.79A9 9 0 1 1 11.21 3 7 7 0 0 0 21 12.79z"/></svg>
|
||
</button>
|
||
</div>
|
||
</nav>
|
||
|
||
<!-- ─── HERO ─── -->
|
||
<section class="hero">
|
||
<div class="hero-label reveal">Marketing & KI — als Service</div>
|
||
<h1 class="reveal" style="--d:120ms">Wir verkaufen keine Tools. Wir liefern <em>Wachstum als Service.</em></h1>
|
||
<p class="hero-sub reveal" style="--d:260ms">Profice betreibt zwei Services für Sie — profitables Performance-Marketing und KI-Automatisierung. Die passenden Systeme bringen wir mit: Feedgine, Google Ads, SEO & GEO, Voice, RAG und MCP. Sie buchen das Ergebnis, nicht das Werkzeug.</p>
|
||
<a href="/services" class="cta-btn reveal" style="--d:400ms">Services entdecken</a>
|
||
</section>
|
||
|
||
<!-- ─── THESIS TICKER ─── -->
|
||
<div class="thesis reveal">
|
||
<div class="thesis-inner">
|
||
<span>Umsatz ist Vanity</span>
|
||
<span class="highlight">Gewinn ist Sanity</span>
|
||
<span>ROAS ist blind</span>
|
||
<span class="highlight">POAS ist Klarheit</span>
|
||
<span>Agenturen optimieren Kampagnen</span>
|
||
<span class="highlight">Wir optimieren Systeme</span>
|
||
<span>Umsatz ist Vanity</span>
|
||
<span class="highlight">Gewinn ist Sanity</span>
|
||
<span>ROAS ist blind</span>
|
||
<span class="highlight">POAS ist Klarheit</span>
|
||
<span>Agenturen optimieren Kampagnen</span>
|
||
<span class="highlight">Wir optimieren Systeme</span>
|
||
</div>
|
||
</div>
|
||
|
||
<!-- ─── UNSERE SERVICES ─── -->
|
||
<section class="services-wrap" id="services">
|
||
<div class="system-label reveal-left">Unsere Services</div>
|
||
<h2 class="reveal-left" style="--d:100ms">Keine Tools von der Stange. Zwei Services, die Ergebnisse liefern.</h2>
|
||
<p class="system-sub reveal-left" style="--d:200ms">Wir verkaufen keine Software-Lizenzen. Wir betreiben zwei Services für Sie — und bringen die passenden Systeme gleich mit. Sie buchen das Ergebnis, nicht das Werkzeug.</p>
|
||
<div class="services-grid">
|
||
<div class="service-card reveal">
|
||
<div class="svc-kicker">Service 01 — Marketing</div>
|
||
<h3>Profitables Performance-Marketing</h3>
|
||
<p class="svc-desc">Wir steuern Ihr Marketing auf Gewinn statt Umsatz — von der sauberen Datenbasis bis zur Kampagne. Enthaltene Komponenten:</p>
|
||
<ul class="svc-list">
|
||
<li><a href="https://feedgine.de" target="_blank" rel="noopener">Feedgine</a> — POAS-Optimierung für Google Shopping</li>
|
||
<li>Google Ads — Performance-Kampagnen auf Margenbasis</li>
|
||
<li>SEO & GEO — Sichtbarkeit in Suche und KI, via <a href="https://www.visigine.de" target="_blank" rel="noopener">VISIGINE</a></li>
|
||
<li>Server-Side Tracking via Stape — cookiefeste, präzise Daten</li>
|
||
<li>Cloudflare — Performance, Sicherheit, Edge-Delivery</li>
|
||
</ul>
|
||
<a href="/feedgine" class="svc-more">Im Detail ansehen</a>
|
||
</div>
|
||
<div class="service-card ki reveal" style="--d:150ms">
|
||
<div class="svc-kicker teal">Service 02 — KI</div>
|
||
<h3>KI-Agenten & Automatisierung</h3>
|
||
<p class="svc-desc">Wir bauen KI als Service in Ihre Prozesse — modular, DSGVO-konform, für Team und Kunden. Enthaltene Komponenten:</p>
|
||
<ul class="svc-list">
|
||
<li>Voice — KI-Telefonagenten, rund um die Uhr</li>
|
||
<li>RAG · Corporate LLM — Wissens-KI aus Ihren eigenen Daten</li>
|
||
<li>MCP — sichere Anbindung an Ihre Tools und Systeme</li>
|
||
<li>Spezialisierte Agenten — Sales, Support, Buchhaltung, Assistenz</li>
|
||
</ul>
|
||
</div>
|
||
</div>
|
||
</section>
|
||
|
||
<!-- ─── ANTI-AGENCY ─── -->
|
||
<section class="anti" id="systems">
|
||
<div class="anti-left reveal-left">
|
||
<h2>Die meisten Shops optimieren auf Umsatz.<br><span>Die profitabelsten auf Gewinn.</span></h2>
|
||
<p class="anti-statement">Google Ads zeigt Ihnen ROAS. Ihr Steuerberater zeigt Ihnen die Wahrheit. Dazwischen liegt ein System-Problem — und genau da setzen wir an. Profice verbindet Ihre Warenwirtschaft mit Ihren Werbekanälen. Nicht als Dashboard. Als Infrastruktur.</p>
|
||
</div>
|
||
<div class="anti-right">
|
||
<div class="contrast-card reveal-right">
|
||
<div class="old">Agentur-Modell</div>
|
||
<div class="new">Retainer. Reporting. Rätselraten.</div>
|
||
<p>Agenturen optimieren auf Klicks und Conversions. Ob die profitabel sind, sehen sie nicht — weil sie keinen Zugriff auf Ihre Marge haben.</p>
|
||
</div>
|
||
<div class="contrast-card reveal-right" style="--d:150ms">
|
||
<div class="old">SaaS-Tool</div>
|
||
<div class="new">Feature-Kreislauf. Keine Integration.</div>
|
||
<p>Tools lösen Teilprobleme. Feed hier, Tracking da, Bidding dort. Keines davon kennt Ihren Einkaufspreis.</p>
|
||
</div>
|
||
<div class="contrast-card reveal-right" style="--d:300ms">
|
||
<div class="old">Profice-Modell</div>
|
||
<div class="new" style="text-decoration:none;color:var(--amber)">System. Marge. Kontrolle.</div>
|
||
<p>Wir bauen die Brücke zwischen Ihrer Warenwirtschaft und Google Ads. Ihr EK steuert Ihr Bidding. Ihr Gewinn steuert Ihr Budget.</p>
|
||
</div>
|
||
</div>
|
||
</section>
|
||
|
||
<!-- ─── NUMBERS ─── -->
|
||
<section class="numbers" id="ergebnisse">
|
||
<div class="numbers-inner">
|
||
<div class="numbers-label reveal">Referenz: lkw-teile24.de — 230.000 Produkte, B2B</div>
|
||
<div class="numbers-grid">
|
||
<div class="num-card reveal">
|
||
<div class="value green">+31%</div>
|
||
<div class="label">Profitabler Umsatz</div>
|
||
<div class="desc">Nicht mehr Umsatz. Mehr vom richtigen Umsatz — gesteuert über Margen-Daten direkt aus der Warenwirtschaft.</div>
|
||
</div>
|
||
<div class="num-card reveal" style="--d:150ms">
|
||
<div class="value">−23%</div>
|
||
<div class="label">Verschwendetes Budget</div>
|
||
<div class="desc">Budget, das vorher in margenschwache Produkte floss, wird automatisch umverteilt — ohne manuellen Eingriff.</div>
|
||
</div>
|
||
<div class="num-card reveal" style="--d:300ms">
|
||
<div class="value" style="color:var(--teal)">−€1.250</div>
|
||
<div class="label">Monatliche Toolkosten</div>
|
||
<div class="desc">Externe Feed-Tools, redundante Plugins, überflüssige SaaS-Abos — ersetzt durch eine eigene Pipeline. Weniger Abhängigkeit, mehr Kontrolle.</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</section>
|
||
|
||
<!-- ─── FEEDGINE ─── -->
|
||
<section class="system" id="feedgine">
|
||
<div class="system-label reveal-left">Im Marketing-Service · Kern-Engine</div>
|
||
<h2 class="reveal-left" style="--d:100ms">Feedgine — POAS Intelligence für Google Shopping</h2>
|
||
<p class="system-sub reveal-left" style="--d:200ms">Feedgine verbindet Ihre Margendaten aus der Warenwirtschaft mit Google Shopping, PMax und Microsoft Ads. Kein Tool-Abo. Kein Dashboard-Theater. Ein System, das Ihr Werbebudget an echten Gewinn koppelt.</p>
|
||
<a href="https://feedgine.de" target="_blank" rel="noopener" class="cta-btn reveal-left" style="margin-bottom:4rem;display:inline-block;--d:300ms">Mehr über Feedgine</a>
|
||
<div class="stack">
|
||
<div class="stack-item reveal">
|
||
<div class="stack-num">01</div>
|
||
<h3>IDA Pipeline</h3>
|
||
<p>Direkter MSSQL-Zugriff auf Ihre Warenwirtschaft. EK-Preise, Lagerbestände, Lieferzeiten — alles in Echtzeit im Feed.</p>
|
||
<span class="stack-tag">DuckDB · Polars · Content API</span>
|
||
</div>
|
||
<div class="stack-item reveal" style="--d:150ms">
|
||
<div class="stack-num">02</div>
|
||
<h3>POAS Layer</h3>
|
||
<p>Conversion-Werte basieren auf Netto-Marge, nicht auf Umsatz. Google optimiert auf das, was wirklich zählt.</p>
|
||
<span class="stack-tag">ConversionAdjustments</span>
|
||
</div>
|
||
<div class="stack-item reveal" style="--d:300ms">
|
||
<div class="stack-num">03</div>
|
||
<h3>Custom Labels</h3>
|
||
<p>Automatische Segmentierung nach Marge (A/B/C), Velocity, Lager und Lieferzeit. Budgets fließen in die richtigen Produkte.</p>
|
||
<span class="stack-tag">rules.yaml · Feeder/Core/Longtail</span>
|
||
</div>
|
||
</div>
|
||
</section>
|
||
|
||
<!-- ─── VISIGINE ─── -->
|
||
<section class="system" id="visigine">
|
||
<div class="system-label reveal-left">Im Marketing-Service · GEO & SEO</div>
|
||
<h2 class="reveal-left" style="--d:100ms">VISIGINE — Sichtbarkeit in Suche und KI-Antworten</h2>
|
||
<p class="system-sub reveal-left" style="--d:200ms">VISIGINE analysiert Ihre Website auf GEO- und SEO-Sichtbarkeit und zeigt, ob ChatGPT, Perplexity und Gemini Sie verstehen und empfehlen. Score, Schwachstellen und konkrete Maßnahmen — automatisiert, nicht geraten.</p>
|
||
<a href="https://www.visigine.de" target="_blank" rel="noopener" class="cta-btn reveal-left" style="margin-bottom:4rem;display:inline-block;--d:300ms">Mehr über VISIGINE</a>
|
||
<div class="stack">
|
||
<div class="stack-item reveal">
|
||
<div class="stack-num">01</div>
|
||
<h3>GEO-Analyse</h3>
|
||
<p>llms.txt, AI-Bot-Regeln, JSON-LD-Schema und og-Tags — wir prüfen, ob KI-Systeme Ihre Inhalte lesen, verstehen und in Antworten zitieren.</p>
|
||
<span class="stack-tag">ChatGPT · Perplexity · Gemini</span>
|
||
</div>
|
||
<div class="stack-item reveal" style="--d:150ms">
|
||
<div class="stack-num">02</div>
|
||
<h3>SEO-Fundament</h3>
|
||
<p>Technisches SEO, Struktur und Indexierbarkeit — die Basis, damit klassische Suche und KI-Suche dieselbe starke Grundlage nutzen.</p>
|
||
<span class="stack-tag">Core Web · Schema · Index</span>
|
||
</div>
|
||
<div class="stack-item reveal" style="--d:300ms">
|
||
<div class="stack-num">03</div>
|
||
<h3>Score & Maßnahmen</h3>
|
||
<p>Ein klarer Sichtbarkeits-Score von 1–10 plus priorisierte, umsetzbare Maßnahmen. Sie sehen genau, was zu tun ist — und was es bringt.</p>
|
||
<span class="stack-tag">Score 1–10 · Action-Plan</span>
|
||
</div>
|
||
</div>
|
||
</section>
|
||
|
||
<!-- ─── KI-AGENTEN — VORÜBERGEHEND AUSGEBLENDET (unvollständig). Wieder einblenden: style="display:none" unten entfernen. ─── -->
|
||
<section class="system" id="ki-agenten" style="display:none">
|
||
<div class="system-label reveal-left">Unser KI-Service</div>
|
||
<h2 class="reveal-left" style="--d:100ms">KI-Agenten, die für Ihr Unternehmen sprechen, schreiben und arbeiten.</h2>
|
||
<p class="system-sub reveal-left" style="--d:200ms">Wir entwickeln individuelle KI-Agenten für Ihr Unternehmen — am Telefon (Voice), mit Wissens-KI (RAG · Corporate LLM) und über MCP in Ihren Prozessen. DSGVO-konform, in Ihre Systeme integriert und rund um die Uhr im Einsatz. Damit sich Ihr Team auf das Wesentliche konzentriert, während die Routine automatisch läuft.</p>
|
||
<div class="stack">
|
||
<div class="stack-item reveal">
|
||
<div class="stack-num">01</div>
|
||
<h3>Voice</h3>
|
||
<p>KI-Telefonagenten, die Anrufe annehmen, Anfragen qualifizieren und Termine buchen — in natürlicher Sprache, rund um die Uhr. Kein verpasster Anruf, keine Warteschleife.</p>
|
||
<span class="stack-tag">ElevenLabs · Telnyx · DSGVO</span>
|
||
</div>
|
||
<div class="stack-item reveal" style="--d:150ms">
|
||
<div class="stack-num">02</div>
|
||
<h3>RAG · Corporate LLM</h3>
|
||
<p>Wissensbasierte KI auf Grundlage Ihrer eigenen Dokumente und Daten. Präzise, nachvollziehbare Antworten — als interner Wissens-Assistent oder im Kundenprodukt.</p>
|
||
<span class="stack-tag">Retrieval-Augmented Generation</span>
|
||
</div>
|
||
<div class="stack-item reveal" style="--d:300ms">
|
||
<div class="stack-num">03</div>
|
||
<h3>MCP</h3>
|
||
<p>MCP-Server, die Ihre KI sicher mit CRM, ERP, Tools und Datenquellen verbinden — für Mitarbeiter im internen Einsatz und für Kunden in Ihren Produkten.</p>
|
||
<span class="stack-tag">Model Context Protocol</span>
|
||
</div>
|
||
</div>
|
||
|
||
<div class="ki-roles-label reveal">Fertige Agenten für jede Aufgabe</div>
|
||
<div class="ki-roles">
|
||
<div class="ki-role reveal"><div class="r-name">Sales-Agent</div><div class="r-desc">Qualifiziert Leads, beantwortet Produktfragen und übernimmt Follow-ups.</div></div>
|
||
<div class="ki-role reveal" style="--d:80ms"><div class="r-name">Marketing-Agent</div><div class="r-desc">Erstellt Content, plant Kampagnen und wertet Ergebnisse aus.</div></div>
|
||
<div class="ki-role reveal" style="--d:160ms"><div class="r-name">Support-Agent</div><div class="r-desc">Löst Kundenanfragen rund um die Uhr und eskaliert sauber ans Team.</div></div>
|
||
<div class="ki-role reveal" style="--d:240ms"><div class="r-name">Buchhaltungs-Agent</div><div class="r-desc">Erfasst Belege, sortiert Rechnungen vor und reduziert Routine.</div></div>
|
||
<div class="ki-role reveal" style="--d:320ms"><div class="r-name">Assistent</div><div class="r-desc">Termine, Recherche und Zusammenfassungen — verbunden über MCP.</div></div>
|
||
</div>
|
||
|
||
<!-- TODO: standalone AI site lives in ProficeWebSeiten\ai_services (local preview :8003). Repoint to its final domain once decided. Placeholder for now. -->
|
||
<a href="/ki-agenten-systeme" class="cta-btn reveal" style="margin-top:3rem;display:inline-block">Mehr über KI-Agenten</a>
|
||
</section>
|
||
|
||
<!-- ─── CTA ─── -->
|
||
<section class="cta-section" id="kontakt">
|
||
<h2 class="reveal-zoom">Bereit, Ihr Unternehmen zu <em>verbessern</em>?</h2>
|
||
<p class="reveal" style="--d:150ms">30 Minuten. Keine Slides. Wir schauen uns Ihre Prozesse an und zeigen Ihnen, wo Automatisierung und KI den größten Hebel haben.</p>
|
||
<a href="https://termine.profice.de" class="cta-btn reveal" style="--d:300ms" target="_blank" rel="noopener">Gespräch vereinbaren</a>
|
||
</section>
|
||
|
||
<footer>
|
||
<span>© 2026 Profice GmbH</span>
|
||
<span><a href="/impressum" target="_blank" rel="noopener">Impressum</a> · <a href="/datenschutz" target="_blank" rel="noopener">Datenschutz</a></span>
|
||
</footer>
|
||
|
||
<script>
|
||
// Theme toggle
|
||
(function(){
|
||
var root = document.documentElement;
|
||
var btn = document.querySelector('.theme-toggle');
|
||
if (!btn) return;
|
||
btn.addEventListener('click', function(){
|
||
var next = root.getAttribute('data-theme') === 'light' ? 'dark' : 'light';
|
||
root.setAttribute('data-theme', next);
|
||
try { localStorage.setItem('profice-theme', next); } catch(e) {}
|
||
});
|
||
})();
|
||
|
||
// Reveal animations — slide/fade elements in as they enter viewport
|
||
const observer = new IntersectionObserver((entries, obs) => {
|
||
entries.forEach(e => {
|
||
if (e.isIntersecting) {
|
||
e.target.classList.add('visible');
|
||
obs.unobserve(e.target);
|
||
}
|
||
});
|
||
}, { threshold: 0.15, rootMargin: '0px 0px -60px 0px' });
|
||
document.querySelectorAll('.reveal, .reveal-left, .reveal-right, .reveal-zoom').forEach(el => observer.observe(el));
|
||
|
||
// Clean URL navigation
|
||
const sections = { services: true, systems: true, ergebnisse: true, feedgine: true, visigine: true, 'ki-agenten': true, kontakt: true };
|
||
|
||
// On direct load (e.g. profice.ai/feedgine), scroll to matching section
|
||
(function() {
|
||
const seg = window.location.pathname.replace(/^\//, '');
|
||
if (sections[seg]) {
|
||
const el = document.getElementById(seg);
|
||
if (el) setTimeout(() => el.scrollIntoView({ behavior: 'smooth' }), 50);
|
||
}
|
||
})();
|
||
|
||
// Intercept nav/cta link clicks — smooth scroll + pushState
|
||
document.querySelectorAll('a[href^="/"]').forEach(function(link) {
|
||
const seg = link.getAttribute('href').replace(/^\//, '');
|
||
if (sections[seg]) {
|
||
link.addEventListener('click', function(e) {
|
||
e.preventDefault();
|
||
history.pushState(null, '', '/' + seg);
|
||
document.getElementById(seg).scrollIntoView({ behavior: 'smooth' });
|
||
});
|
||
}
|
||
});
|
||
|
||
// Update URL as sections scroll into view
|
||
const urlObserver = new IntersectionObserver(function(entries) {
|
||
entries.forEach(function(e) {
|
||
if (e.isIntersecting) {
|
||
history.replaceState(null, '', sections[e.target.id] ? '/' + e.target.id : '/');
|
||
}
|
||
});
|
||
}, { threshold: 0.4 });
|
||
document.querySelectorAll('section[id]').forEach(function(s) { urlObserver.observe(s); });
|
||
</script>
|
||
</body>
|
||
</html>
|