bhad-jenny Chat
* { margin: 0; padding: 0; box-sizing: border-box; }
html, body {
height: 100%;
font-family: ‚DM Sans‘, sans-serif;
background: #ffffff;
overflow: hidden;
}
.chat-page { display: flex; flex-direction: column; height: 100vh; width: 100%; background: #ffffff; }
.chat-header {
background: linear-gradient(135deg, #B86E5E, #E8B7B0);
padding: 14px 20px;
display: flex;
align-items: center;
gap: 14px;
border-bottom: 1px solid #E8B7B0;
flex-shrink: 0;
}
.avatar-wrap { position: relative; flex-shrink: 0; }
.avatar-wrap img {
width: 52px; height: 52px; border-radius: 50%; object-fit: cover; border: 3px solid #FF69B4;
}
.online-dot {
position: absolute; bottom: 2px; right: 2px;
width: 13px; height: 13px; background: #00e676; border-radius: 50%; border: 2.5px solid #B86E5E;
}
.header-name { font-size: 17px; font-weight: 700; color: #fff; }
.header-status { font-size: 12.5px; color: #fff; margin-top: 2px; }
.chat-body {
flex: 1; overflow-y: auto; padding: 24px 20px; display: flex; flex-direction: column; gap: 14px; background: #ffffff;
}
.msg { display: flex; align-items: flex-end; gap: 10px; max-width: 75%; }
.msg.them { align-self: flex-start; }
.msg.me { align-self: flex-end; flex-direction: row-reverse; }
.msg-avatar { width: 32px; height: 32px; border-radius: 50%; object-fit: cover; border: 2px solid #FF69B4; }
.bubble {
padding: 12px 17px;
border-radius: 20px;
font-size: 15px;
line-height: 1.5;
color: #ffffff;
}
.them .bubble { background: #B86E5E; border-bottom-left-radius: 5px; }
.me .bubble { background: linear-gradient(135deg, #FF69B4, #B86E5E); border-bottom-right-radius: 5px; }
.bubble img { max-width: 100%; border-radius: 12px; margin-top: 8px; display: block; }
.chat-footer {
background: #ffffff;
border-top: 1px solid #E8B7B0;
padding: 14px 20px;
display: flex;
align-items: center;
gap: 10px;
}
.msg-input {
flex: 1;
background: #f8f8f8;
border: 1px solid #E8B7B0;
border-radius: 24px;
padding: 12px 18px;
color: #333;
font-size: 15px;
outline: none;
}
.send-btn {
width: 46px; height: 46px;
border-radius: 50%;
border: none;
background: linear-gradient(135deg, #FF69B4, #B86E5E);
color: white;
cursor: pointer;
font-size: 20px;
}
/* Final Button im Chat */
.final-chat-button {
display: block;
width: 90%;
max-width: 420px;
margin: 20px auto 10px;
padding: 18px 20px;
background: linear-gradient(135deg, #FF69B4, #B86E5E);
color: white;
text-align: center;
font-weight: 700;
font-size: 16px;
border-radius: 14px;
text-decoration: none;
box-shadow: 0 5px 20px rgba(184, 110, 94, 0.35);
line-height: 1.4;
}
let currentStep = 0;
let wrongAttempts = 0;
let chatEnded = false;
const sequence = [
{ code: „POPO“, message: „Die Bluse ist schon mal Geschichte 😏 Willst du sehen, wie es weitergeht? Schreib mir
POPO …“, image: „https://www.bad-jenny.net/wp-content/uploads/sites/72/2026/06/img_0893-scaled.jpeg“ },
{ code: „NACKT“, message: „Wie gerne ich dich jetzt hier hätte um mir an mein POPO zu greifen 😇 Schreib mir
NACKT …“, image: „https://www.bad-jenny.net/wp-content/uploads/sites/72/2026/06/6-ttgbot-scaled.jpeg“ },
{ code: „BOOBS“, message: „Merk dir die Pose – die heben wir uns fürs Finale auf 😇 Schreib mir
BOOBS …“, image: „https://www.bad-jenny.net/wp-content/uploads/sites/72/2026/06/image00024-scaled.jpeg“ },
{ code: „SLIP“, message: „Meine Brüste warten schon auf dich 😈 Schreib mir schnell den Code
SLIP …“, image: „https://www.bad-jenny.net/wp-content/uploads/sites/72/2026/06/img_4112-scaled.jpeg“ }
];
function addMessage(text, isMe = false, image = null) {
const body = document.getElementById(‚chatBody‘);
const div = document.createElement(‚div‘);
div.className = isMe ? ‚msg me‘ : ‚msg them‘;
let html = !isMe ? `

` : “;
html += `
${text}`;
if (image) html += `

`;
html += `
`;
div.innerHTML = html;
body.appendChild(div);
body.scrollTop = body.scrollHeight;
}
// Erste Nachricht
addMessage(
`Hey 😉 Willst du sehen, wie weit ich für dich gehe?
Schreib mir das Codewort
STRIP und ich zeig dir, was ich für dich vorbereitet habe…`,
false,
„https://www.bad-jenny.net/wp-content/uploads/sites/72/2026/06/img_3935-scaled.jpeg“
);
function showFinalButton() {
if (chatEnded) return;
chatEnded = true;
const body = document.getElementById(‚chatBody‘);
const buttonHTML = `
Lass uns privat weiter Texten anonym!
Du wirst es nicht bereuen versprochen!
Melde dich an und wenn ich dich enttäusche bekommst du 10 Videos GRATIS von mir und darfst dich auch wieder löschen
`;
const tempDiv = document.createElement(‚div‘);
tempDiv.innerHTML = buttonHTML;
body.appendChild(tempDiv.firstElementChild);
body.scrollTop = body.scrollHeight;
}
function sendMessage() {
const input = document.getElementById(‚msgInput‘);
let text = input.value.trim();
if (!text) return;
addMessage(text, true);
input.value = “;
const upper = text.toUpperCase();
if (currentStep === 0 && upper === „STRIP“) {
const next = sequence[0];
addMessage(next.message, false, next.image);
currentStep = 1;
wrongAttempts = 0;
return;
}
if (currentStep > 0 && currentStep <= sequence.length) {
const expected = sequence[currentStep – 1].code;
if (upper === expected) {
if (currentStep = 5) {
addMessage(„Zu viele Fehlversuche. Beginne nochmal mit
STRIP 😉“, false);
wrongAttempts = 0;
} else {
addMessage(`Falsches Codewort. Schreib bitte
${expected} (${wrongAttempts}/5)`, false);
}
}
}
}
function handleKey(e) {
if (e.key === ‚Enter‘ && !e.shiftKey) {
e.preventDefault();
sendMessage();
}
}