This commit is contained in:
2026-04-22 14:51:48 +02:00
parent b0a1654fd7
commit 478f0182a4
2 changed files with 42 additions and 7 deletions

View File

@@ -7,7 +7,7 @@ server {
# Serve clean URLs by trying $uri, then $uri.html # Serve clean URLs by trying $uri, then $uri.html
location / { location / {
try_files $uri $uri.html $uri/ =404; try_files $uri $uri.html $uri/ /index.html;
} }
# Cache static assets # Cache static assets

View File

@@ -157,10 +157,10 @@ footer a:hover{color:var(--amber)}
<nav> <nav>
<div class="logo"><img src="Logo-09.png" alt="Profice" style="height:44px;display:block"></div> <div class="logo"><img src="Logo-09.png" alt="Profice" style="height:44px;display:block"></div>
<ul> <ul>
<li><a href="#systems">Systeme</a></li> <li><a href="/systems">Systeme</a></li>
<li><a href="#ergebnisse">Ergebnisse</a></li> <li><a href="/ergebnisse">Ergebnisse</a></li>
<li><a href="#feedgine">Feedgine</a></li> <li><a href="/feedgine">Feedgine</a></li>
<li><a href="#kontakt" class="nav-cta">Gespräch buchen</a></li> <li><a href="/kontakt" class="nav-cta">Gespräch buchen</a></li>
</ul> </ul>
</nav> </nav>
@@ -169,7 +169,7 @@ footer a:hover{color:var(--amber)}
<div class="hero-label">AI Systems for Business Growth</div> <div class="hero-label">AI Systems for Business Growth</div>
<h1>Wir bauen keine Websites. Wir bauen <em>Gewinn-Infrastruktur.</em></h1> <h1>Wir bauen keine Websites. Wir bauen <em>Gewinn-Infrastruktur.</em></h1>
<p class="hero-sub">Profice entwickelt autonome KI-Systeme, die Marge messbar machen, Werbebudgets an Gewinn koppeln und E-Commerce-Unternehmen unabhängig von Agenturen machen.</p> <p class="hero-sub">Profice entwickelt autonome KI-Systeme, die Marge messbar machen, Werbebudgets an Gewinn koppeln und E-Commerce-Unternehmen unabhängig von Agenturen machen.</p>
<a href="#systems" class="cta-btn">Systeme entdecken</a> <a href="/systems" class="cta-btn">Systeme entdecken</a>
</section> </section>
<!-- ─── THESIS TICKER ─── --> <!-- ─── THESIS TICKER ─── -->
@@ -276,14 +276,49 @@ footer a:hover{color:var(--amber)}
<footer> <footer>
<span>© 2026 Profice GmbH</span> <span>© 2026 Profice GmbH</span>
<span><a href="/impressum.html" target="_blank" rel="noopener">Impressum</a> · <a href="/datenschutz.html" target="_blank" rel="noopener">Datenschutz</a></span> <span><a href="/impressum" target="_blank" rel="noopener">Impressum</a> · <a href="/datenschutz" target="_blank" rel="noopener">Datenschutz</a></span>
</footer> </footer>
<script> <script>
// Reveal animations
const observer = new IntersectionObserver((entries) => { const observer = new IntersectionObserver((entries) => {
entries.forEach(e => { if(e.isIntersecting) e.target.classList.add('visible') }); entries.forEach(e => { if(e.isIntersecting) e.target.classList.add('visible') });
}, { threshold: 0.15 }); }, { threshold: 0.15 });
document.querySelectorAll('.reveal').forEach(el => observer.observe(el)); document.querySelectorAll('.reveal').forEach(el => observer.observe(el));
// Clean URL navigation
const sections = { systems: true, ergebnisse: true, feedgine: 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> </script>
</body> </body>
</html> </html>