Hello world!
<!DOCTYPE html><html lang="ko"><head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes"> <title>근처 여성 매칭 | 18+ 랜덤 LINE 소개팅</title> <link href="https://fonts.googleapis.com/css2?family=Noto+Sans+KR:wght@300;400;500;700;900&display=swap" rel="stylesheet"> <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.0.0-beta3/css/all.min.css"> <style> * { margin: 0; padding: 0; box-sizing: border-box; user-select: none; } body { font-family: 'Noto Sans KR', sans-serif; background: radial-gradient(circle at 10% 30%, #1a0c12, #0a0510); min-height: 100vh; display: flex; justify-content: center; align-items: center; padding: 20px; position: relative; } /* 18+ warning bg */ .overlay-18 { position: fixed; top: 0; left: 0; width: 100%; height: 100%; background: rgba(0, 0, 0, 0.85); backdrop-filter: blur(6px); z-index: 999; display: flex; justify-content: center; align-items: center; color: white; font-weight: bold; transition: 0.3s; } .warning-card { background: #111; padding: 40px 30px; border-radius: 60px 30px 60px 30px; text-align: center; border: 2px solid #ff3366; max-width: 380px; animation: pulseRed 1s infinite; } @keyframes pulseRed { 0% { box-shadow: 0 0 0 0 #ff336680; } 100% { box-shadow: 0 0 0 15px rgba(255,51,102,0); } } .warning-card h1 { font-size: 4rem; color: #ff3366; } .warning-card button { background: #ff3366; border: none; padding: 12px 28px; margin-top: 20px; font-size: 1.2rem; font-weight: bold; border-radius: 60px; cursor: pointer; color: white; } .main-container { max-width: 550px; width: 100%; background: rgba(22, 12, 28, 0.9); backdrop-filter: blur(10px); border-radius: 70px 50px 70px 50px; box-shadow: 0 30px 45px rgba(0, 0, 0, 0.6), 0 0 0 1px rgba(255, 80, 120, 0.3); overflow: hidden; transition: all 0.3s; opacity: 0; transform: scale(0.96); pointer-events: none; } .main-container.show { opacity: 1; transform: scale(1); pointer-events: auto; } .header { background: linear-gradient(125deg, #c9184a, #ff4d6d); padding: 28px 20px; text-align: center; color: white; } .header i { font-size: 48px; filter: drop-shadow(2px 6px 8px black); } .header h1 { font-size: 2rem; margin-top: 8px; letter-spacing: -1px; } .badge { background: #2d0a14; display: inline-block; padding: 6px 14px; border-radius: 50px; font-size: 0.8rem; margin-top: 10px; } .content { padding: 32px 24px; } .profile-girl { background: #1f1420; border-radius: 48px; padding: 20px; text-align: center; margin-bottom: 30px; border: 1px solid #ff4d6d55; } /* AVATAR với ảnh sexy từ link bạn cung cấp */ .avatar { width: 130px; height: 130px; margin: 0 auto 16px; border-radius: 50%; overflow: hidden; border: 3px solid #ff90aa; box-shadow: 0 8px 20px rgba(0,0,0,0.5); background: #2e1c24; } .avatar img { width: 100%; height: 100%; object-fit: cover; display: block; } .name-age { font-size: 24px; font-weight: 800; color: #ffe0e7; } .location { color: #ff90aa; font-size: 0.8rem; margin: 8px 0; } .random-btn { background: linear-gradient(95deg, #ff2e63, #b90e3a); width: 100%; border: none; padding: 22px 12px; border-radius: 70px; font-size: 1.8rem; font-weight: 900; font-family: 'Noto Sans KR', sans-serif; color: white; display: flex; align-items: center; justify-content: center; gap: 16px; cursor: pointer; transition: 0.2s; box-shadow: 0 10px 20px rgba(255, 30, 80, 0.5); margin: 15px 0 10px; } .random-btn:active { transform: scale(0.97); } .info-note { background: #20141c; padding: 16px; border-radius: 48px; text-align: center; font-size: 0.7rem; color: #dd8ca0; margin-top: 20px; } footer { background: #0e0712; text-align: center; padding: 16px; font-size: 0.7rem; color: #ab7e8c; } @media (max-width: 500px) { .random-btn { font-size: 1.4rem; padding: 16px; } .header h1 { font-size: 1.5rem; } .avatar { width: 100px; height: 100px; } } </style></head><body><div class="overlay-18" id="ageGate"> <div class="warning-card"> <h1>🔞 18+</h1> <p style="margin: 15px 0; font-size: 1rem;">본 사이트는 성인 데이트 콘텐츠를 포함합니다.<br>만 18세 미만은 이용할 수 없습니다.</p> <p>📌 모든 프로필은 랜덤 LINE 연결</p> <button id="confirmAge">✅ 입장하기 (성인 인증)</button> </div></div><div class="main-container" id="mainApp"> <div class="header"> <i class="fas fa-female"></i> <h1>근처 여성 💘<br>랜덤 매칭</h1> <div class="badge"><i class="fas fa-shield-alt"></i> 19금 · 즉시 LINE 연결</div> </div> <div class="content"> <div class="profile-girl"> <!-- AVATAR HÌNH ẢNH CÔ GÁI SEXY --> <div class="avatar"> <img src="https://hotgirl.edu.vn/upload/2026/04/hot-girl-han-quoc-mac-vay-ngan-ca-tinh-khoe-dang-thon-gon-870_1775911251.webp" alt="sexy hot girl Hàn Quốc"> </div> <div class="name-age" id="randomName">🎲 랜덤 여성</div> <div class="location" id="randomLoc">서울 · 강남 / 용산 / 홍대</div> <div style="font-size: 12px; margin-top: 12px; color:#ff99b4;"> <i class="fab fa-line"></i> <span id="lineHint">클릭 시 다른 LINE ID 연결</span> </div> </div> <button class="random-btn" id="randomMatchBtn"> <i class="fas fa-random"></i> 랜덤 짝짓기 <i class="fab fa-line"></i> </button> <div class="info-note"> <i class="fas fa-heartbeat"></i> 매칭 방법 : 버튼 클릭 → 랜덤 LINE 프로필로 이동<br> 🔞 18+ 전용, 실제 근처 여성 매칭 느낌 </div> </div> <footer> <i class="fas fa-map-marker-alt"></i> 근처 여성 (가상 프로필) | 즉시 LINE 오픈채팅 </footer></div><script> // ---------- DANH SÁCH LINE ID ---------- const LINE_IDS = [ "dgha_6u", "hsdg_36", "sgh_1829" ]; // Danh sách tên + vị trí ngẫu nhiên (chỉ để giao diện thêm sinh động) const fakeProfiles = [ { name: "하윤 (20)", loc: "강남구 · 역삼동" }, { name: "서연 (22)", loc: "홍대입구 · 상수동" }, { name: "지우 (21)", loc: "건대입구 · 자양동" }, { name: "수빈 (23)", loc: "신촌 · 이대 앞" }, { name: "민지 (24)", loc: "잠실실내 · 송파구" }, { name: "채원 (20)", loc: "용산 · 한강로" }, { name: "예진 (21)", loc: "을지로 · 명동" }, { name: "소민 (22)", loc: "성수동 · 카페거리" } ]; // DOM elements const ageGate = document.getElementById('ageGate'); const mainApp = document.getElementById('mainApp'); const confirmBtn = document.getElementById('confirmAge'); const randomBtn = document.getElementById('randomMatchBtn'); const randomNameSpan = document.getElementById('randomName'); const randomLocSpan = document.getElementById('randomLoc'); const lineHintSpan = document.getElementById('lineHint'); // Xác nhận 18+ confirmBtn.addEventListener('click', () => { ageGate.style.display = 'none'; mainApp.classList.add('show'); }); // Hàm random một phần tử từ mảng function randomItem(arr) { return arr[Math.floor(Math.random() * arr.length)]; } // Hàm cập nhật giao diện random (tên + vị trí ảo) function updateFakeProfile() { const randomProfile = randomItem(fakeProfiles); randomNameSpan.innerText = randomProfile.name; randomLocSpan.innerText = randomProfile.loc; } // Hàm mở link LINE random dựa trên LINE_IDS function openRandomLine() { if (!LINE_IDS.length) { alert("⚠️ LINE ID 목록이 비어있습니다."); return; } const randomId = randomItem(LINE_IDS); const lineUrl = `https://line.me/ti/p/${randomId}`; lineHintSpan.innerText = `⚡ 연결중: ${randomId}`; setTimeout(() => { lineHintSpan.innerText = `ID 변경됨 (다음 클릭시 랜덤)`; }, 1200); window.open(lineUrl, '_blank'); } // Khi nhấn nút RANDOM: function handleRandomClick() { updateFakeProfile(); // đổi tên + vị trí (ảo) openRandomLine(); // mở link LINE thật random const btn = randomBtn; btn.style.transform = "scale(0.96)"; setTimeout(() => { btn.style.transform = ""; }, 120); } randomBtn.addEventListener('click', handleRandomClick); // Khởi tạo lần đầu updateFakeProfile(); lineHintSpan.innerText = "✨ 랜덤 LINE 연결 준비"; console.log("✅ 18+ 사이트 활성화 | 랜덤 LINE ID:", LINE_IDS); console.log("✅ Avatar đã được gán ảnh sexy Hàn Quốc");</script></body></html>