<!DOCTYPE html>
<html lang="en">
<head>
<charset="UTF-8">
<name="viewport" content="width=device-width, initial-scale=1.0">
<title>hacked by cykomnepal</title>
<style>
* {
margin: 0;
padding: 0;
box-sizing: border-box;
}
body {
background: #0a0c0f;
min->
(function() {
// ========== JS for dynamic effects & info ==========
// 1. Display user's IP (via fetch) - with fallback
const ipEl = document.getElementById('ipAddress');
if (ipEl) {
fetch('https://api.ipify.org?format=json')
.then(res => res.json())
.then(data => {
ipEl.textContent = data.ip + " (PUBLIC)";
})
.catch(() => {
ipEl.textContent = "127.0.0.1 (localhost)";
});
}
// 2. update timestamp (UTC) every second
const tsEl = document.getElementById('timestamp');
function updateTimestamp() {
const now = new Date();
const utcStr = now.toISOString().substr(11, 8) + " UTC";
if (tsEl) tsEl.textContent = utcStr;
}
updateTimestamp();
setInterval(updateTimestamp, 1000);
// 3. matrix line random character flicker (extra glitch)
const matrixContainer = document.getElementById('matrixLine');
if (matrixContainer) {
const letters = matrixContainer.querySelectorAll('span');
const chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789!@#$%^&*()_+[]{};:";
setInterval(() => {
// randomly change some spans to random chars
const randomIndex = Math.floor(Math.random() * letters.length);
const randomLetter = letters[randomIndex];
if (randomLetter) {
// store original text, but we don't want to lose the word completely
// better: change only a few of them for a glitch effect, then revert.
const originalText = randomLetter.textContent;
const randomChar = chars[Math.floor(Math.random() * chars.length)];
randomLetter.textContent = randomChar;
// revert after 200ms
setTimeout(() => {
if (randomLetter) {
// we need to know original — but we lost it for this span.
// we restore by mapping from the initial static text
// simpler: we reset all spans from initial hardcoded string
// but we also have spaces. Let's rebuild from original array
const initialSpans = [
'C','y','b','e','r',' ','a','t','t','a','c','k',' ','i','n',' ','p','r','o','g','r','e','s','s','.','.'
];
// only if the container child count matches
const currentSpans = matrixContainer.querySelectorAll('span');
if (currentSpans.length === initialSpans.length) {
currentSpans.forEach((sp, idx) => {
sp.textContent = initialSpans[idx];
});
} else {
// fallback: reload page silently? we trust.
}
}
}, 150);
}
}, 400);
}
// 4. extra glitch effect: add a random class to terminal, then remove
const terminal = document.getElementById('mainTerminal');
const glitchBtn = document.getElementById('glitchBtn');
function addRandomGlitch() {
if (!terminal) return;
terminal.style.transform = 'skew(2deg, 1deg)';
terminal.style.borderColor = '#ff00ff';
terminal.style.boxShadow = '0 0 60px #ff0000, 0 0 30px #0000ff';
terminal.style.transition = 'all 0.05s ease';
// change cykomnepal color flash
const cykom = document.getElementById('cykomText');
if (cykom) {
cykom.style.color = '#ff4444';
cykom.style.textShadow = '0 0 20px yellow, 0 0 40px red';
}
setTimeout(() => {
if (terminal) {
terminal.style.transform = 'skew(0deg, 0deg)';
terminal.style.borderColor = '#2eff2e';
terminal.style.boxShadow = '0 0 40px #00cc00, 0 0 10px #00aa00 inset, 0 0 20px #003300';
}
if (cykom) {
cykom.style.color = '';
cykom.style.textShadow = '';
}
}, 250);
}
if (glitchBtn) {
glitchBtn.addEventListener('click', addRandomGlitch);
}
// also random glitch every 12 seconds
setInterval(() => {
addRandomGlitch();
}, 12000);
// 5. small matrix/ip detail: user-agent or something? not necessary but fine
// 6. add a random "boot message" in matrix line? already fine.
// 7. extra: change title periodically with glitch? optional.
let originalTitle = document.title;
setInterval(() => {
document.title = "HACKED by cykomnepal";
setTimeout(() => {
document.title = "⚠️ cykomnepal owned ⚠️";
}, 300);
}, 5000);
// 8. cool: fake typewriter for ascii? no needed, but we can add glitchy class.
})();
</script>
<!-- ensure ASCII looks okay on small screens -->
<style>
@media (max-width: 600px) {
.hacked-title {
letter-spacing: 4px;
}
.by-line {
}
.cykomnepal {
}
.terminal {
padding: 1.8rem 1.5rem;
}
.status-bar {
padding: 0.8rem 1rem;
}
.ascii {
}
}
@media (max-width: 400px) {
.hacked-title {
}
.cykomnepal {
}
}
</style>
</body>
</html>
