* {
margin: 0;
padding: 0;
box-sizing: border-box;
}
html, body {
height: 100%;
background: linear-gradient(135deg, #1a0000 0%, #0a0000 100%);
overflow: hidden;
font-family: ‘Share Tech Mono’, monospace;
}
canvas {
position: absolute;
top: 0;
left: 0;
z-index: 0;
display: block;
}
.container {
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
text-align: center;
z-index: 1;
max-width: 90%;
width: 800px;
}
.skull {
width: 200px;
max-width: 80%;
margin-bottom: 20px;
animation: pulse 2s infinite;
filter: drop-shadow(0 0 10px #cc0000);
display: block;
margin-left: auto;
margin-right: auto;
}
.text {
color: #ff3333;
font-size: clamp(1.5rem, 5vw, 2.5rem);
font-weight: bold;
text-shadow:
0 0 5px #ff3333,
0 0 10px #ff3333,
0 0 20px #cc0000,
0 0 40px #990000;
animation: glitch 1.5s infinite;
margin-bottom: 20px;
word-break: break-word;
}
.dud {
color: #660000;
display: inline;
}
.wkwk {
color: #ffcccc;
font-size: clamp(1rem, 3vw, 1.5rem);
margin-top: 10px;
user-select: none;
text-shadow: 0 0 5px rgba(0,0,0,0.67);
line-height: 1.4;
padding: 0 10px;
}
.quote {
position: fixed;
bottom: 20px;
width: 100%;
text-align: center;
color: #ff3333;
font-size: clamp(0.8rem, 2vw, 1rem);
font-family: ‘Share Tech Mono’, monospace;
user-select: none;
pointer-events: none;
text-shadow: 0 0 5px rgba(0,0,0,0.67);
padding: 0 10px;
z-index: 2;
line-height: 1.3;
}
@keyframes glitch {
0% { text-shadow: 2px 2px #ff3333, -2px -2px rgba(153, 0, 0, 0.33); }
20% { text-shadow: -2px 1px rgba(255, 102, 102, 0.67), 2px -2px rgba(255, 51, 51, 0.47); }
40% { text-shadow: 1px -1px #ff3333, -1px 2px #cc0000; }
60% { text-shadow: 3px 0px rgba(255, 102, 102, 0.67), -3px 0px rgba(153, 0, 0, 0.33); }
80% { text-shadow: 0 0 10px #ff3333, 0 0 30px #cc0000; }
100% { text-shadow: 2px 2px #ff3333, -2px -2px rgba(153, 0, 0, 0.33); }
}
@keyframes pulse {
0% { transform: scale(1); }
50% { transform: scale(1.05); filter: drop-shadow(0 0 30px #ff3333); }
100% { transform: scale(1); }
}
/* Responsive fixes */
@media (max-height: 600px) {
.skull {
width: 150px;
}
.text {
font-size: clamp(1.2rem, 4vw, 2rem);
}
.wkwk {
font-size: clamp(0.9rem, 2.5vw, 1.2rem);
}
}
/* Fallback for older browsers */
.no-cssanimations .text {
animation: none;
}

// Check if browser supports required features
(function() {
‘use strict’;
// Feature detection
if (!window.requestAnimationFrame || !window.HTMLCanvasElement) {
document.body.innerHTML = ‘
‘;
return;
}
// Add no-js class for fallbacks
document.documentElement.className = document.documentElement.className.replace(‘no-js’, ”);
// Particle Net
const canvas = document.getElementById(“canvas”);
if (!canvas.getContext) return;
const ctx = canvas.getContext(“2d”);
let animationFrameId;
function resizeCanvas() {
canvas.width = window.innerWidth;
canvas.height = window.innerHeight;
}
resizeCanvas();
const particles = [];
const particleCount = Math.min(120, Math.floor(window.innerWidth * window.innerHeight / 10000));
function initParticles() {
particles.length = 0;
for (let i = 0; i < particleCount; i++) {
particles.push({
x: Math.random() * canvas.width,
y: Math.random() * canvas.height,
vx: (Math.random() – 0.5) * 0.8,
vy: (Math.random() – 0.5) * 0.8,
radius: 1.2
});
}
}
function draw() {
ctx.clearRect(0, 0, canvas.width, canvas.height);
for (let i = 0; i < particleCount; i++) {
let p = particles[i];
p.x += p.vx;
p.y += p.vy;
// Bounce off walls
if (p.x canvas.width) p.vx *= -1;
if (p.y canvas.height) p.vy *= -1;
// Keep particles within bounds
p.x = Math.max(0, Math.min(canvas.width, p.x));
p.y = Math.max(0, Math.min(canvas.height, p.y));
// Draw particle
ctx.beginPath();
ctx.arc(p.x, p.y, p.radius, 0, Math.PI * 2);
ctx.fillStyle = “#ff3333″;
ctx.fill();
// Draw connections
for (let j = i + 1; j < particleCount; j++) {
let q = particles[j];
let dx = p.x – q.x;
let dy = p.y – q.y;
let dist = Math.sqrt(dx * dx + dy * dy);
if (dist < 100) {
ctx.beginPath();
ctx.moveTo(p.x, p.y);
ctx.lineTo(q.x, q.y);
ctx.strokeStyle = "rgba(153, 0, 0, " + (0.6 – dist/200) + ")";
ctx.lineWidth = 0.8;
ctx.stroke();
}
}
}
animationFrameId = requestAnimationFrame(draw);
}
// Scramble Text Class
class TextScramble {
constructor(el) {
this.el = el;
this.chars = '!@#$%^&*()_+=-{}[]|:;,.?/~’;
this.update = this.update.bind(this);
this.frame = 0;
this.frameRequest = null;
this.queue = [];
this.resolve = null;
}
setText(newText) {
const oldText = this.el.textContent || ”;
const length = Math.max(oldText.length, newText.length);
const promise = new Promise(resolve => this.resolve = resolve);
this.queue = [];
for (let i = 0; i < length; i++) {
const from = oldText[i] || '';
const to = newText[i] || '';
const start = Math.floor(Math.random() * 40);
const end = start + Math.floor(Math.random() * 40);
this.queue.push({ from, to, start, end });
}
cancelAnimationFrame(this.frameRequest);
this.frame = 0;
this.update();
return promise;
}
update() {
let output = '';
let complete = 0;
for (let i = 0, n = this.queue.length; i = end) {
complete++;
output += to;
} else if (this.frame >= start) {
if (!char || Math.random() < 0.28) {
char = this.randomChar();
this.queue[i].char = char;
}
output += `${char}`;
} else {
output += from;
}
}
this.el.innerHTML = output;
if (complete === this.queue.length) {
if (this.resolve) this.resolve();
} else {
this.frameRequest = requestAnimationFrame(this.update);
this.frame++;
}
}
randomChar() {
return this.chars[Math.floor(Math.random() * this.chars.length)];
}
}
// Phrases for text scramble
const phrases = [
'SITE HAS BEEN SEIZED',
'IndoClaySec',
];
// Initialize text scramble
const el = document.querySelector(‘.text’);
let fx;
if (el) {
fx = new TextScramble(el);
let counter = 0;
const next = () => {
if (fx) {
fx.setText(phrases[counter]).then(() => {
setTimeout(next, 2500);
});
counter = (counter + 1) % phrases.length;
}
};
next();
}
// Music handling with user interaction
let musicPlayed = false;
const bgMusic = document.getElementById(‘bg-music’);
function playMusic() {
if (!musicPlayed && bgMusic) {
bgMusic.volume = 0.5;
bgMusic.play().then(() => {
musicPlayed = true;
}).catch(err => {
console.log(“Audio play failed, requires user interaction”);
});
}
}
// Add click/touch event for music
document.addEventListener(‘click’, playMusic);
document.addEventListener(‘touchstart’, playMusic, { once: true });
// Handle window resize
let resizeTimeout;
window.addEventListener(‘resize’, function() {
clearTimeout(resizeTimeout);
resizeTimeout = setTimeout(function() {
resizeCanvas();
initParticles();
}, 250);
});
// Initialize everything
initParticles();
draw();
// Clean up animation on page hide
document.addEventListener(‘visibilitychange’, function() {
if (document.hidden) {
cancelAnimationFrame(animationFrameId);
if (bgMusic) bgMusic.pause();
} else {
if (!document.hidden) {
animationFrameId = requestAnimationFrame(draw);
}
}
});
})();
.container {
position: static;
transform: none;
padding: 50px 20px;
}
.text {
animation: none;
}
.skull {
animation: none;
}
