diff --git a/gate.html b/gate.html index 50274e8d..037c81fb 100644 --- a/gate.html +++ b/gate.html @@ -144,6 +144,69 @@ .gate-box .btn-holo { width: 100%; justify-content: center; margin-top: .2rem; } .gate-fehler { color: #ff9a9a; font-size: .9rem; margin-top: .9rem; display: none; } .gate-fehler.zeige { display: block; } + + /* ---------- Zwei getrennte Zugangskacheln (Dogi/VanVan) statt einer + gemeinsamen Box — Nutzer-Wunsch 07.08.2026 ("Eingang von VanVan wie bei + ihrer normalen Seite mit den 2 Kacheln"). Gleiches Muster wie schon in + verwaltung.html (.vw-gate-card) etabliert, hier nur farblich an die + bereits vorhandene Gold/Babyblau-Optik dieser Seite angepasst. Nur die + Kacheln sind neu — Hintergrund/Logo/Bühne bleiben unverändert. ---------- */ + .gate-cards { + position: relative; z-index: 2; display: flex; flex-wrap: wrap; gap: 1.1rem; + justify-content: center; width: 100%; margin-top: 1.3rem; + } + .gate-card { + position: relative; isolation: isolate; overflow: hidden; + flex: 1 1 220px; max-width: 280px; text-align: center; + padding: 1.6rem 1.3rem 1.4rem; border-radius: 18px; border: 1.5px solid transparent; + background: + linear-gradient(180deg, rgba(20,23,29,.92), rgba(10,12,15,.96)) padding-box, + linear-gradient(110deg, #8fd9ea, #38bdf8, #d4af37, #8fd9ea) border-box; + background-size: 100% 100%, 320% 100%; + box-shadow: 0 30px 70px -25px rgba(0,0,0,.75), 0 0 50px -20px rgba(143,217,234,.3); + } + /* VanVans Kachel: eigene, femininere Farbwelt (Rosé/Lavendel/Gold statt + Babyblau) — gleiches Prinzip wie in verwaltung.html, keine bloße + Umfärbung von Dogis Kachel. */ + .gate-card--vanvan { + background: + linear-gradient(180deg, rgba(24,15,20,.92), rgba(15,9,13,.96)) padding-box, + linear-gradient(110deg, #ff8fc6, #c084fc, #d4af37, #ff8fc6) border-box; + box-shadow: 0 30px 70px -25px rgba(0,0,0,.75), 0 0 50px -20px rgba(255,143,198,.35); + } + .gate-card-icon { + display: block; width: 60px; height: 60px; margin: 0 auto .6rem; border-radius: 50%; + background-size: cover; background-position: center; + border: 2px solid rgba(143,217,234,.6); + box-shadow: 0 0 18px rgba(143,217,234,.4), inset 0 0 10px rgba(255,255,255,.08); + } + .gate-card-icon--dogi { background-image: url('assets/img/vw-gate-dogi.jpg'); } + .gate-card-icon--vanvan { background-image: url('assets/img/vw-gate-vanvan.jpg'); } + .gate-card--vanvan .gate-card-icon { border-color: rgba(255,143,198,.65); } + .gate-card-name { font-size: 1.05rem; font-weight: 800; margin: 0 0 .8rem; color: var(--text); } + .gate-card--vanvan .gate-card-name { color: #ffd1e8; } + .gate-card input { + width: 100%; box-sizing: border-box; padding: .8rem .9rem; border-radius: 12px; text-align: center; + letter-spacing: .1em; font-size: 1rem; font-weight: 600; margin-bottom: .9rem; + background: rgba(255,255,255,.04); border: 1.5px solid var(--border); color: var(--text); + transition: border-color .15s ease, box-shadow .15s ease, background .15s ease; + } + .gate-card input::placeholder { letter-spacing: normal; font-weight: 400; color: rgba(154,164,178,.55); } + .gate-card input:focus { + outline: none; border-color: rgba(212,175,55,.7); background: rgba(255,255,255,.06); + box-shadow: 0 0 0 4px rgba(212,175,55,.14); + } + .gate-card--vanvan input:focus { border-color: rgba(255,143,198,.7); box-shadow: 0 0 0 4px rgba(255,143,198,.16); } + .gate-card .btn-holo.gate-card-btn { width: 100%; justify-content: center; padding: .65rem 1rem; font-size: .88rem; gap: .3rem; } + .gate-card-btn--vanvan { + background: linear-gradient(120deg, #ff8fc6 0%, #c084fc 30%, #ffd76a 55%, #ff8fc6 80%, #c084fc 100%); + background-size: 340% 340%; + } + .gate-card .gate-fehler { margin-top: .7rem; } + @media (max-width: 480px) { + .gate-cards { flex-direction: column; align-items: center; } + .gate-card { max-width: 300px; width: 100%; } + } @@ -160,21 +223,38 @@ + Link auf die eigene Domain (die spätere, öffentliche Hauptseite). -->

DOGFATHER UNIVERSE

dogfather-universe.com

-
- - +

+
+ +
+ +

VanVan

+ + +

-

@@ -197,31 +277,39 @@ const params = new URLSearchParams(location.search); const next = params.get("next") || "/index.html"; - const form = document.getElementById("gate-form"); - const fehlerEl = document.getElementById("gate-fehler"); - form.addEventListener("submit", async function (e) { - e.preventDefault(); - fehlerEl.classList.remove("zeige"); - const code = document.getElementById("gate-code").value.trim(); - if (!code) return; - try { - const res = await fetch("/gate-auth", { - method: "POST", - headers: { "Content-Type": "application/json" }, - body: JSON.stringify({ code, next }), - }); - const data = await res.json(); - if (!res.ok || !data.ok) { - fehlerEl.textContent = (data && data.error) || "Falscher Zugangscode."; + + // Beide Kacheln (Dogi/VanVan) nutzen dieselbe Logik und denselben + // /gate-auth-Endpunkt — nur das jeweils eigene Formular/Eingabefeld/ + // Fehlerfeld unterscheidet sich. + function bindeGateKachel(formId, inputId, fehlerId) { + const form = document.getElementById(formId); + const fehlerEl = document.getElementById(fehlerId); + form.addEventListener("submit", async function (e) { + e.preventDefault(); + fehlerEl.classList.remove("zeige"); + const code = document.getElementById(inputId).value.trim(); + if (!code) return; + try { + const res = await fetch("/gate-auth", { + method: "POST", + headers: { "Content-Type": "application/json" }, + body: JSON.stringify({ code, next }), + }); + const data = await res.json(); + if (!res.ok || !data.ok) { + fehlerEl.textContent = (data && data.error) || "Falscher Zugangscode."; + fehlerEl.classList.add("zeige"); + return; + } + location.href = data.next || "/index.html"; + } catch { + fehlerEl.textContent = "Verbindung fehlgeschlagen. Bitte nochmal versuchen."; fehlerEl.classList.add("zeige"); - return; } - location.href = data.next || "/index.html"; - } catch { - fehlerEl.textContent = "Verbindung fehlgeschlagen. Bitte nochmal versuchen."; - fehlerEl.classList.add("zeige"); - } - }); + }); + } + bindeGateKachel("gate-form-dogi", "gate-code-dogi", "gate-fehler-dogi"); + bindeGateKachel("gate-form-vanvan", "gate-code-vanvan", "gate-fehler-vanvan"); })(); diff --git a/kontakt.html b/kontakt.html index 019209dd..963c393f 100644 --- a/kontakt.html +++ b/kontakt.html @@ -54,13 +54,15 @@

Impressum

Rechtstexte werden auf Deutsch bereitgestellt, um Übersetzungsfehler bei rechtlich verbindlichen Angaben zu vermeiden. / Legal texts are provided in German only to avoid translation errors in legally binding information.

- Angaben gemäß Anbieterkennzeichnung (u.a. § 5 TMG bzw. vergleichbare Vorschriften)
+ Angaben gemäß Art. 5 der loi modifiée du 14 août 2000 relative au commerce électronique (Luxemburg)
Filipe Pereira Queiroz
3, rue Arthur Thinnes
L-3919 Mondercange
Luxemburg

- Kontakt: dogfather1608@gmail.com

- Verantwortlich für den Inhalt (auch i.S.v. § 55 Abs. 2 RStV bzw. vergleichbarer Vorschriften): Filipe Pereira Queiroz, Anschrift wie oben.

+ Telefon: +49 177 3292805
+ E-Mail: dogfather1608@gmail.com

+ EU-Streitschlichtung: Die Europäische Kommission stellt eine Plattform zur Online-Streitbeilegung (OS) bereit: https://ec.europa.eu/consumers/odr/. Unsere E-Mail-Adresse finden Sie oben im Impressum.

+ Verbraucherstreitbeilegung: Wir sind nicht bereit oder verpflichtet, an Streitbeilegungsverfahren vor einer Verbraucherschlichtungsstelle teilzunehmen.

DOGFATHER UNIVERSE ist ein persönliches Content-/Community-Projekt von Filipe Pereira Queiroz (Künstlername „Dogfather"). Es besteht keine Verbindung dieser Angaben zu Namen weiterer auf der Seite gezeigter Personen (z. B. Team-/Community-Mitglieder), die ausschließlich mit ihren Spitz-/Künstlernamen auftreten.