<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Interactive Matrix Rain Canvas</title>
<script src="https://cdn.tailwindcss.com"></script>
<style>
*, *::before, *::after { box-sizing: border-box; }
body {
margin: 0;
padding: 0;
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
background-color: #09090b;
color: #fafafa;
min-height: 100vh;
}
canvas {
display: block;
max-width: 100%;
height: auto;
}
</style>
</head>
<body>
<div class="flex flex-col items-center justify-center min-h-screen bg-black text-green-400 font-mono p-4"><h1 class="text-xl font-bold mb-3 tracking-widest text-green-500">SYSTEM ACCESS GRANTED</h1><canvas id="matrix" width="800" height="450" class="rounded-xl border border-green-500/30 shadow-2xl shadow-green-500/10 bg-black"></canvas><p class="text-xs text-green-600/70 mt-3">AI Design Preview Platform • Live Canvas Test</p></div><script>const canvas = document.getElementById("matrix"); const ctx = canvas.getContext("2d"); const chars = "01010101ABCDEFGHIJKLMNOPQRSTUVWXYZ@#$%"; const fontSize = 14; const columns = canvas.width / fontSize; const drops = []; for (let i = 0; i < columns; i++) drops[i] = 1; function draw() { ctx.fillStyle = "rgba(0, 0, 0, 0.05)"; ctx.fillRect(0, 0, canvas.width, canvas.height); ctx.fillStyle = "#22c55e"; ctx.font = fontSize + "px monospace"; for (let i = 0; i < drops.length; i++) { const text = chars[Math.floor(Math.random() * chars.length)]; ctx.fillText(text, i * fontSize, drops[i] * fontSize); if (drops[i] * fontSize > canvas.height && Math.random() > 0.975) drops[i] = 0; drops[i]++; } requestAnimationFrame(draw); } draw();</script>
</body>
</html>
Scan with iPhone Camera or Android QR scanner to preview natively on your device.