Landing page: agentische Produkte, Ubuntu Sans, nyx CTA, Suffizienz copy
This commit is contained in:
parent
3133c5bb44
commit
dd3be9b717
101
datenschutz.html
Normal file
101
datenschutz.html
Normal file
@ -0,0 +1,101 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="de">
|
||||||
|
<head>
|
||||||
|
<meta charset="UTF-8">
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||||
|
<title>Datenschutz — loop42</title>
|
||||||
|
<script type="module" src="/src/main.ts"></script>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
|
||||||
|
<nav>
|
||||||
|
<a class="nav-logo" href="/">loop42</a>
|
||||||
|
<ul class="nav-links">
|
||||||
|
<li><a href="/">Startseite</a></li>
|
||||||
|
</ul>
|
||||||
|
</nav>
|
||||||
|
|
||||||
|
<div class="legal-page">
|
||||||
|
<h1>Datenschutzerklärung</h1>
|
||||||
|
|
||||||
|
<h2>1. Verantwortlicher</h2>
|
||||||
|
<p>
|
||||||
|
loop42 UG (haftungsbeschränkt)<br>
|
||||||
|
Bettina Baltes<br>
|
||||||
|
[STRASSE HAUSNUMMER], [PLZ ORT]<br>
|
||||||
|
E-Mail: <a href="mailto:hallo@loop42.de">hallo@loop42.de</a>
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<h2>2. Erhebung und Speicherung personenbezogener Daten</h2>
|
||||||
|
<p>
|
||||||
|
Beim Besuch dieser Website werden automatisch Informationen allgemeiner Natur erfasst
|
||||||
|
(sog. Server-Logfiles). Diese umfassen u. a. den Browsertyp, das verwendete Betriebssystem,
|
||||||
|
den Referrer, die IP-Adresse sowie Datum und Uhrzeit des Zugriffs. Diese Daten sind nicht
|
||||||
|
bestimmten Personen zuordbar und werden nicht mit anderen Datenquellen zusammengeführt.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
Eine darüber hinausgehende Erhebung personenbezogener Daten findet auf dieser Website
|
||||||
|
derzeit nicht statt. Sobald weitere Dienste (z. B. Kontaktformular, Nutzerkonten)
|
||||||
|
eingeführt werden, wird diese Erklärung entsprechend aktualisiert.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<h2>3. Hosting und Infrastruktur</h2>
|
||||||
|
<p>
|
||||||
|
Diese Website wird auf einem Server in einem deutschen Rechenzentrum betrieben.
|
||||||
|
Der Anbieter ist IONOS SE, Elgendorfer Str. 57, 56410 Montabaur, Deutschland.
|
||||||
|
Weitere Informationen zum Datenschutz bei IONOS finden Sie unter
|
||||||
|
<a href="https://www.ionos.de/terms-gtc/datenschutzerklaerung/" target="_blank" rel="noopener">ionos.de</a>.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<h2>4. Cookies</h2>
|
||||||
|
<p>
|
||||||
|
Diese Website verwendet keine Cookies.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<h2>5. Analyse-Tools und Tracking</h2>
|
||||||
|
<p>
|
||||||
|
Diese Website verwendet keine Analyse-Tools, kein Tracking und keine eingebetteten
|
||||||
|
Inhalte Dritter (z. B. Google Fonts, Social-Media-Widgets). Es werden keine Daten
|
||||||
|
an Dritte übermittelt.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<h2>6. Ihre Rechte</h2>
|
||||||
|
<p>Sie haben gegenüber uns folgende Rechte hinsichtlich Ihrer personenbezogenen Daten:</p>
|
||||||
|
<ul>
|
||||||
|
<li>Recht auf Auskunft (Art. 15 DSGVO)</li>
|
||||||
|
<li>Recht auf Berichtigung (Art. 16 DSGVO)</li>
|
||||||
|
<li>Recht auf Löschung (Art. 17 DSGVO)</li>
|
||||||
|
<li>Recht auf Einschränkung der Verarbeitung (Art. 18 DSGVO)</li>
|
||||||
|
<li>Recht auf Datenübertragbarkeit (Art. 20 DSGVO)</li>
|
||||||
|
<li>Recht auf Widerspruch gegen die Verarbeitung (Art. 21 DSGVO)</li>
|
||||||
|
</ul>
|
||||||
|
<p>
|
||||||
|
Zur Ausübung Ihrer Rechte wenden Sie sich bitte an:
|
||||||
|
<a href="mailto:hallo@loop42.de">hallo@loop42.de</a>
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<h2>7. Beschwerderecht bei der Aufsichtsbehörde</h2>
|
||||||
|
<p>
|
||||||
|
Sie haben das Recht, sich bei einer Datenschutz-Aufsichtsbehörde über die Verarbeitung
|
||||||
|
Ihrer personenbezogenen Daten durch uns zu beschweren. Die zuständige Aufsichtsbehörde
|
||||||
|
richtet sich nach dem Bundesland des Unternehmenssitzes.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<h2>8. Aktualität und Änderungen</h2>
|
||||||
|
<p>
|
||||||
|
Diese Datenschutzerklärung ist aktuell gültig und hat den Stand März 2026.
|
||||||
|
Durch die Weiterentwicklung unserer Website oder aufgrund geänderter gesetzlicher
|
||||||
|
Vorgaben kann es notwendig werden, diese Datenschutzerklärung anzupassen.
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<footer>
|
||||||
|
<div class="footer-links">
|
||||||
|
<a href="/legal.html">Impressum</a>
|
||||||
|
<a href="/datenschutz.html">Datenschutz</a>
|
||||||
|
</div>
|
||||||
|
<span>© 2026 loop42</span>
|
||||||
|
</footer>
|
||||||
|
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
87
index.html
87
index.html
@ -3,13 +3,88 @@
|
|||||||
<head>
|
<head>
|
||||||
<meta charset="UTF-8">
|
<meta charset="UTF-8">
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||||
<title>loop42</title>
|
<meta name="description" content="loop42 — Agentische Produkte. Software, Infrastruktur und Datendesign aus einer Hand. DSGVO-konform, betrieben in Deutschland.">
|
||||||
<link rel="stylesheet" href="/src/style.css">
|
<title>loop42 — Agentische Produkte</title>
|
||||||
|
<script type="module" src="/src/main.ts"></script>
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<main>
|
|
||||||
<h1>loop42</h1>
|
<nav>
|
||||||
<p>coming soon</p>
|
<a class="nav-logo" href="/">loop42</a>
|
||||||
</main>
|
<ul class="nav-links">
|
||||||
|
<li><a href="#ansatz">Ansatz</a></li>
|
||||||
|
<li><a href="#projekte">Projekte</a></li>
|
||||||
|
<li><a href="#kontakt">nyx</a></li>
|
||||||
|
</ul>
|
||||||
|
</nav>
|
||||||
|
|
||||||
|
<div class="hero">
|
||||||
|
<div class="hero-label">Agentische Produkte</div>
|
||||||
|
<h1>Für jede Aufgabe<br>das <em>richtige</em> Produkt.</h1>
|
||||||
|
<p>loop42 baut agentische Produkte — Software, Infrastruktur und Datendesign aus einer Hand.</p>
|
||||||
|
<a href="#projekte" class="btn">Erste Projekte</a>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<hr class="divider">
|
||||||
|
|
||||||
|
<section id="ansatz">
|
||||||
|
<div class="section-label">Unser Ansatz</div>
|
||||||
|
<h2>Genau richtig.</h2>
|
||||||
|
<p>Jedes Produkt löst eine klar definierte Aufgabe — mit den Werkzeugen, die dafür nötig sind.</p>
|
||||||
|
<div class="cards">
|
||||||
|
<div class="card">
|
||||||
|
<div class="card-icon">🎯</div>
|
||||||
|
<h3>Das Wesentliche</h3>
|
||||||
|
<p>Jedes Produkt kennt seinen Bereich und bleibt darin. Tiefe schlägt Breite — verlässlich, jeden Tag.</p>
|
||||||
|
</div>
|
||||||
|
<div class="card">
|
||||||
|
<div class="card-icon">👥</div>
|
||||||
|
<h3>Produkte für Teams</h3>
|
||||||
|
<p>Pro Produkt ein gemeinsamer Zugang für alle, die dazugehören — über Gruppenkonten verwaltet, mit getrennten Sitzungen und voller Kontrolle darüber, wer was sieht.</p>
|
||||||
|
</div>
|
||||||
|
<div class="card">
|
||||||
|
<div class="card-icon">🔒</div>
|
||||||
|
<h3>Sicher & konform</h3>
|
||||||
|
<p>Alle Daten liegen in Deutschland. Mandantentrennung auf Datenbankebene, DSGVO-konforme Verarbeitung, Auftragsverarbeitungsvertrag für jedes Produkt.</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<hr class="divider">
|
||||||
|
|
||||||
|
<section id="projekte">
|
||||||
|
<div class="section-label">Erste Projekte</div>
|
||||||
|
<h2>Bildungsangebote — dort, wo sie gebraucht werden.</h2>
|
||||||
|
<p>Unsere ersten Produkte entstehen im Bildungsbereich: praxisnah, fachlich fundiert, für die Fachkräfte, die täglich damit arbeiten.</p>
|
||||||
|
<div class="cards">
|
||||||
|
<div class="card">
|
||||||
|
<div class="card-icon">🧒</div>
|
||||||
|
<h3>Frühkindliche Bildung</h3>
|
||||||
|
<p>Pädagogisches Fachpersonal erhält strukturierte Bildungsangebote — abgestimmt auf die jeweilige Einrichtung, die Altersgruppen und den pädagogischen Alltag.</p>
|
||||||
|
</div>
|
||||||
|
<div class="card">
|
||||||
|
<div class="card-icon">📚</div>
|
||||||
|
<h3>Erwachsenen-Grundbildung</h3>
|
||||||
|
<p>Passgenauige Lernangebote für Erwachsene mit Grundbildungsbedarf — zugänglich, strukturiert, an bestehende Lehrpläne angepasst.</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<hr class="divider">
|
||||||
|
|
||||||
|
<div class="cta" id="kontakt">
|
||||||
|
<h2>nyx</h2>
|
||||||
|
<p>Agentische Produkte erleben — direkt im Browser.</p>
|
||||||
|
<a href="/nyx" class="btn">nyx öffnen</a>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<footer>
|
||||||
|
<div class="footer-links">
|
||||||
|
<a href="/legal.html">Impressum</a>
|
||||||
|
<a href="/datenschutz.html">Datenschutz</a>
|
||||||
|
</div>
|
||||||
|
<span>© 2026 loop42 UG (haftungsbeschränkt)</span>
|
||||||
|
</footer>
|
||||||
|
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|||||||
79
legal.html
Normal file
79
legal.html
Normal file
@ -0,0 +1,79 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="de">
|
||||||
|
<head>
|
||||||
|
<meta charset="UTF-8">
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||||
|
<title>Impressum — loop42</title>
|
||||||
|
<script type="module" src="/src/main.ts"></script>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
|
||||||
|
<nav>
|
||||||
|
<a class="nav-logo" href="/">loop42</a>
|
||||||
|
<ul class="nav-links">
|
||||||
|
<li><a href="/">Startseite</a></li>
|
||||||
|
</ul>
|
||||||
|
</nav>
|
||||||
|
|
||||||
|
<div class="legal-page">
|
||||||
|
<h1>Impressum</h1>
|
||||||
|
|
||||||
|
<h2>Angaben gemäß § 5 TMG</h2>
|
||||||
|
<p>
|
||||||
|
loop42 UG (haftungsbeschränkt)<br>
|
||||||
|
[STRASSE HAUSNUMMER]<br>
|
||||||
|
[PLZ ORT]<br>
|
||||||
|
Deutschland
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<h2>Vertreten durch</h2>
|
||||||
|
<p>Bettina Baltes</p>
|
||||||
|
|
||||||
|
<h2>Kontakt</h2>
|
||||||
|
<p>
|
||||||
|
E-Mail: <a href="mailto:hallo@loop42.de">hallo@loop42.de</a><br>
|
||||||
|
Telefon: [TELEFONNUMMER]
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<h2>Registereintrag</h2>
|
||||||
|
<p>
|
||||||
|
Eintragung im Handelsregister.<br>
|
||||||
|
Registergericht: [AMTSGERICHT]<br>
|
||||||
|
Registernummer: [HRB-NUMMER]
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<h2>Umsatzsteuer-ID</h2>
|
||||||
|
<p>
|
||||||
|
Umsatzsteuer-Identifikationsnummer gemäß § 27 a Umsatzsteuergesetz:<br>
|
||||||
|
[UST-ID-NUMMER]
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<h2>Verantwortlich für den Inhalt nach § 55 Abs. 2 RStV</h2>
|
||||||
|
<p>
|
||||||
|
Bettina Baltes<br>
|
||||||
|
[STRASSE HAUSNUMMER]<br>
|
||||||
|
[PLZ ORT]
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<h2>Streitschlichtung</h2>
|
||||||
|
<p>
|
||||||
|
Die Europäische Kommission stellt eine Plattform zur Online-Streitbeilegung (OS) bereit:
|
||||||
|
<a href="https://ec.europa.eu/consumers/odr/" target="_blank" rel="noopener">https://ec.europa.eu/consumers/odr/</a>.<br>
|
||||||
|
Unsere E-Mail-Adresse finden Sie oben im Impressum.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
Wir sind nicht bereit oder verpflichtet, an Streitbeilegungsverfahren vor einer
|
||||||
|
Verbraucherschlichtungsstelle teilzunehmen.
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<footer>
|
||||||
|
<div class="footer-links">
|
||||||
|
<a href="/legal.html">Impressum</a>
|
||||||
|
<a href="/datenschutz.html">Datenschutz</a>
|
||||||
|
</div>
|
||||||
|
<span>© 2026 loop42</span>
|
||||||
|
</footer>
|
||||||
|
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
1104
package-lock.json
generated
Normal file
1104
package-lock.json
generated
Normal file
File diff suppressed because it is too large
Load Diff
BIN
src/fonts/UbuntuSans-Italic[wght].woff2
Normal file
BIN
src/fonts/UbuntuSans-Italic[wght].woff2
Normal file
Binary file not shown.
BIN
src/fonts/UbuntuSans[wght].woff2
Normal file
BIN
src/fonts/UbuntuSans[wght].woff2
Normal file
Binary file not shown.
1
src/main.ts
Normal file
1
src/main.ts
Normal file
@ -0,0 +1 @@
|
|||||||
|
import './style.css'
|
||||||
283
src/style.css
283
src/style.css
@ -1,29 +1,284 @@
|
|||||||
|
@font-face {
|
||||||
|
font-family: 'Ubuntu Sans';
|
||||||
|
font-style: normal;
|
||||||
|
font-weight: 100 800;
|
||||||
|
font-display: swap;
|
||||||
|
src: url('./fonts/UbuntuSans[wght].woff2') format('woff2');
|
||||||
|
}
|
||||||
|
|
||||||
|
@font-face {
|
||||||
|
font-family: 'Ubuntu Sans';
|
||||||
|
font-style: italic;
|
||||||
|
font-weight: 100 800;
|
||||||
|
font-display: swap;
|
||||||
|
src: url('./fonts/UbuntuSans-Italic[wght].woff2') format('woff2');
|
||||||
|
}
|
||||||
|
|
||||||
*, *::before, *::after { box-sizing: border-box; }
|
*, *::before, *::after { box-sizing: border-box; }
|
||||||
|
|
||||||
|
:root {
|
||||||
|
--bg: #0a0a0a;
|
||||||
|
--bg2: #111;
|
||||||
|
--border: #1e1e1e;
|
||||||
|
--text: #e8e8e8;
|
||||||
|
--muted: rgba(232,232,232,0.4);
|
||||||
|
--accent: #7c6af7;
|
||||||
|
--accent-dim: rgba(124,106,247,0.12);
|
||||||
|
}
|
||||||
|
|
||||||
|
html { scroll-behavior: smooth; }
|
||||||
|
|
||||||
body {
|
body {
|
||||||
margin: 0;
|
margin: 0;
|
||||||
background: #0a0a0a;
|
background: var(--bg);
|
||||||
color: #eee;
|
color: var(--text);
|
||||||
font-family: sans-serif;
|
font-family: 'Ubuntu Sans', sans-serif;
|
||||||
|
font-size: 16px;
|
||||||
|
line-height: 1.6;
|
||||||
|
}
|
||||||
|
|
||||||
|
a {
|
||||||
|
color: var(--accent);
|
||||||
|
text-decoration: none;
|
||||||
|
}
|
||||||
|
a:hover { text-decoration: underline; }
|
||||||
|
|
||||||
|
/* NAV */
|
||||||
|
nav {
|
||||||
|
position: fixed;
|
||||||
|
top: 0; left: 0; right: 0;
|
||||||
|
z-index: 100;
|
||||||
display: flex;
|
display: flex;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
justify-content: center;
|
justify-content: space-between;
|
||||||
min-height: 100vh;
|
padding: 1.25rem 2rem;
|
||||||
|
background: rgba(10,10,10,0.85);
|
||||||
|
backdrop-filter: blur(12px);
|
||||||
|
border-bottom: 1px solid var(--border);
|
||||||
}
|
}
|
||||||
|
|
||||||
main {
|
.nav-logo {
|
||||||
text-align: center;
|
font-size: 1rem;
|
||||||
}
|
|
||||||
|
|
||||||
h1 {
|
|
||||||
font-size: 2rem;
|
|
||||||
font-weight: 300;
|
font-weight: 300;
|
||||||
letter-spacing: 0.2em;
|
letter-spacing: 0.2em;
|
||||||
margin: 0 0 0.5rem;
|
color: var(--text);
|
||||||
|
text-decoration: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
p {
|
.nav-links {
|
||||||
opacity: 0.4;
|
display: flex;
|
||||||
|
gap: 2rem;
|
||||||
|
list-style: none;
|
||||||
|
margin: 0; padding: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.nav-links a {
|
||||||
|
color: var(--muted);
|
||||||
|
font-size: 0.85rem;
|
||||||
|
letter-spacing: 0.05em;
|
||||||
|
transition: color 0.2s;
|
||||||
|
}
|
||||||
|
.nav-links a:hover {
|
||||||
|
color: var(--text);
|
||||||
|
text-decoration: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* HERO */
|
||||||
|
.hero {
|
||||||
|
min-height: 100vh;
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: center;
|
||||||
|
text-align: center;
|
||||||
|
padding: 6rem 2rem 4rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.hero-label {
|
||||||
|
font-size: 0.75rem;
|
||||||
|
letter-spacing: 0.15em;
|
||||||
|
text-transform: uppercase;
|
||||||
|
color: var(--accent);
|
||||||
|
margin-bottom: 1.5rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.hero h1 {
|
||||||
|
font-size: clamp(2.5rem, 6vw, 4.5rem);
|
||||||
|
font-weight: 300;
|
||||||
|
letter-spacing: 0.05em;
|
||||||
|
margin: 0 0 1.5rem;
|
||||||
|
line-height: 1.15;
|
||||||
|
}
|
||||||
|
|
||||||
|
.hero h1 em {
|
||||||
|
font-style: normal;
|
||||||
|
color: var(--accent);
|
||||||
|
}
|
||||||
|
|
||||||
|
.hero p {
|
||||||
|
font-size: 1.1rem;
|
||||||
|
color: var(--muted);
|
||||||
|
max-width: 480px;
|
||||||
|
margin: 0 auto 2.5rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.btn {
|
||||||
|
display: inline-block;
|
||||||
|
padding: 0.75rem 2rem;
|
||||||
|
background: var(--accent);
|
||||||
|
color: #fff;
|
||||||
|
border-radius: 6px;
|
||||||
font-size: 0.9rem;
|
font-size: 0.9rem;
|
||||||
|
letter-spacing: 0.05em;
|
||||||
|
transition: opacity 0.2s;
|
||||||
|
}
|
||||||
|
.btn:hover { opacity: 0.85; text-decoration: none; }
|
||||||
|
|
||||||
|
/* SECTIONS */
|
||||||
|
section {
|
||||||
|
padding: 5rem 2rem;
|
||||||
|
max-width: 960px;
|
||||||
|
margin: 0 auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
.section-label {
|
||||||
|
font-size: 0.75rem;
|
||||||
|
letter-spacing: 0.15em;
|
||||||
|
text-transform: uppercase;
|
||||||
|
color: var(--accent);
|
||||||
|
margin-bottom: 1rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
section h2 {
|
||||||
|
font-size: clamp(1.5rem, 3vw, 2.2rem);
|
||||||
|
font-weight: 300;
|
||||||
|
margin: 0 0 1rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
section > p {
|
||||||
|
color: var(--muted);
|
||||||
|
max-width: 600px;
|
||||||
|
margin: 0 0 3rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* CARDS */
|
||||||
|
.cards {
|
||||||
|
display: grid;
|
||||||
|
grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
|
||||||
|
gap: 1.5rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.card {
|
||||||
|
background: var(--bg2);
|
||||||
|
border: 1px solid var(--border);
|
||||||
|
border-radius: 10px;
|
||||||
|
padding: 2rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.card-icon {
|
||||||
|
font-size: 1.5rem;
|
||||||
|
margin-bottom: 1rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.card h3 {
|
||||||
|
font-size: 1rem;
|
||||||
|
font-weight: 500;
|
||||||
|
margin: 0 0 0.75rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.card p {
|
||||||
|
font-size: 0.9rem;
|
||||||
|
color: var(--muted);
|
||||||
|
margin: 0;
|
||||||
|
line-height: 1.6;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* DIVIDER */
|
||||||
|
.divider {
|
||||||
|
border: none;
|
||||||
|
border-top: 1px solid var(--border);
|
||||||
margin: 0;
|
margin: 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* CTA */
|
||||||
|
.cta {
|
||||||
|
text-align: center;
|
||||||
|
padding: 5rem 2rem;
|
||||||
|
background: var(--accent-dim);
|
||||||
|
border-top: 1px solid var(--border);
|
||||||
|
border-bottom: 1px solid var(--border);
|
||||||
|
}
|
||||||
|
|
||||||
|
.cta h2 {
|
||||||
|
font-size: clamp(1.5rem, 3vw, 2rem);
|
||||||
|
font-weight: 300;
|
||||||
|
margin: 0 0 1rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.cta p {
|
||||||
|
color: var(--muted);
|
||||||
|
margin: 0 auto 2rem;
|
||||||
|
max-width: 480px;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* FOOTER */
|
||||||
|
footer {
|
||||||
|
text-align: center;
|
||||||
|
padding: 2rem;
|
||||||
|
font-size: 0.8rem;
|
||||||
|
color: var(--muted);
|
||||||
|
border-top: 1px solid var(--border);
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
gap: 0.75rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.footer-links {
|
||||||
|
display: flex;
|
||||||
|
justify-content: center;
|
||||||
|
gap: 1.5rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.footer-links a {
|
||||||
|
color: var(--muted);
|
||||||
|
font-size: 0.8rem;
|
||||||
|
}
|
||||||
|
.footer-links a:hover { color: var(--text); }
|
||||||
|
|
||||||
|
/* LEGAL PAGES */
|
||||||
|
.legal-page {
|
||||||
|
padding: 8rem 2rem 4rem;
|
||||||
|
max-width: 720px;
|
||||||
|
margin: 0 auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
.legal-page h1 {
|
||||||
|
font-size: 2rem;
|
||||||
|
font-weight: 300;
|
||||||
|
margin-bottom: 2rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.legal-page h2 {
|
||||||
|
font-size: 1.1rem;
|
||||||
|
font-weight: 500;
|
||||||
|
margin: 2rem 0 0.5rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.legal-page p,
|
||||||
|
.legal-page li {
|
||||||
|
color: var(--muted);
|
||||||
|
font-size: 0.95rem;
|
||||||
|
line-height: 1.7;
|
||||||
|
}
|
||||||
|
|
||||||
|
.legal-page ul {
|
||||||
|
padding-left: 1.5rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* MOBILE */
|
||||||
|
@media (max-width: 600px) {
|
||||||
|
nav { padding: 1rem 1.25rem; }
|
||||||
|
.nav-links { gap: 1.25rem; }
|
||||||
|
section { padding: 3.5rem 1.25rem; }
|
||||||
|
.hero { padding: 5rem 1.25rem 3rem; }
|
||||||
|
}
|
||||||
|
|||||||
@ -1,7 +1,22 @@
|
|||||||
import { defineConfig } from 'vite'
|
import { defineConfig } from 'vite'
|
||||||
|
import { resolve } from 'path'
|
||||||
|
|
||||||
export default defineConfig({
|
export default defineConfig({
|
||||||
|
server: {
|
||||||
|
host: '0.0.0.0',
|
||||||
|
hmr: {
|
||||||
|
host: 'localhost',
|
||||||
|
port: 5173,
|
||||||
|
},
|
||||||
|
},
|
||||||
build: {
|
build: {
|
||||||
outDir: 'dist',
|
outDir: 'dist',
|
||||||
|
rollupOptions: {
|
||||||
|
input: {
|
||||||
|
main: resolve(__dirname, 'index.html'),
|
||||||
|
legal: resolve(__dirname, 'legal.html'),
|
||||||
|
datenschutz: resolve(__dirname, 'datenschutz.html'),
|
||||||
|
},
|
||||||
|
},
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user