|
|
<!DOCTYPE html> |
|
|
<html lang="en"> |
|
|
<head> |
|
|
<meta charset="UTF-8"> |
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0"> |
|
|
<title>Wireframe Wormhole</title> |
|
|
<script src="https://cdn.tailwindcss.com"></script> |
|
|
<script src="https://cdnjs.cloudflare.com/ajax/libs/three.js/r128/three.min.js" defer></script> |
|
|
<script src="https://cdn.jsdelivr.net/npm/vanta@latest/dist/vanta.net.min.js" defer></script> |
|
|
<script src="https://unpkg.com/feather-icons" defer></script> |
|
|
<link rel="preconnect" href="https://cdnjs.cloudflare.com"> |
|
|
<link rel="preconnect" href="https://cdn.jsdelivr.net"> |
|
|
<link rel="preconnect" href="https://unpkg.com"> |
|
|
<style> |
|
|
body, html { |
|
|
margin: 0; |
|
|
padding: 0; |
|
|
overflow: hidden; |
|
|
height: 100%; |
|
|
will-change: transform, opacity; |
|
|
contain: strict; |
|
|
} |
|
|
#vanta-canvas { |
|
|
position: fixed; |
|
|
top: 0; |
|
|
left: 0; |
|
|
width: 100%; |
|
|
height: 100%; |
|
|
z-index: 0; |
|
|
contain: strict; |
|
|
transform: translateZ(0); |
|
|
backface-visibility: hidden; |
|
|
image-rendering: -webkit-optimize-contrast; |
|
|
} |
|
|
.content { |
|
|
position: relative; |
|
|
z-index: 1; |
|
|
height: 100vh; |
|
|
display: flex; |
|
|
flex-direction: column; |
|
|
justify-content: center; |
|
|
align-items: center; |
|
|
text-shadow: 0 2px 4px rgba(0,0,0,0.5); |
|
|
} |
|
|
@keyframes zoomInOut { |
|
|
0% { transform: scale(1); } |
|
|
100% { transform: scale(1.1); } |
|
|
} |
|
|
|
|
|
.content > * { |
|
|
will-change: transform, opacity; |
|
|
backface-visibility: hidden; |
|
|
} |
|
|
</style> |
|
|
</head> |
|
|
<body class="bg-black text-white"> |
|
|
<div id="vanta-canvas"> |
|
|
</div> |
|
|
|
|
|
<div id="followup" class="hidden w-full min-h-screen bg-black text-white pt-20 pb-32 px-8"> |
|
|
<div class="max-w-4xl mx-auto"> |
|
|
<h2 class="text-4xl font-bold mb-12 text-center">Journey Through the Wormhole</h2> |
|
|
|
|
|
<div class="grid md:grid-cols-2 gap-12"> |
|
|
<div class="space-y-6"> |
|
|
<h3 class="text-2xl font-semibold">Depth Perception</h3> |
|
|
<p class="text-gray-300">Experience true three-dimensional depth with our layered wireframe technology.</p> |
|
|
<div class="h-64 bg-gradient-to-b from-gray-900 to-black border border-gray-800 rounded-lg"></div> |
|
|
</div> |
|
|
|
|
|
<div class="space-y-6"> |
|
|
<h3 class="text-2xl font-semibold">Monochrome Space</h3> |
|
|
<p class="text-gray-300">Navigate through a stark black and white universe of pure geometry.</p> |
|
|
<div class="h-64 bg-gradient-to-b from-white to-gray-300 border border-gray-400 rounded-lg"></div> |
|
|
</div> |
|
|
</div> |
|
|
|
|
|
<div class="mt-20 text-center"> |
|
|
<button id="returnBtn" class="px-8 py-4 bg-white text-black rounded-full text-xl font-semibold hover:scale-105 transition-transform duration-300 shadow-lg hover:shadow-white/30"> |
|
|
Return to Entrance |
|
|
</button> |
|
|
</div> |
|
|
</div> |
|
|
</div> |
|
|
<div class="content text-center px-4"> |
|
|
<h1 class="text-5xl md:text-7xl font-bold mb-6 text-transparent bg-clip-text bg-gradient-to-r from-purple-300 to-pink-500"> |
|
|
Wireframe Wormhole |
|
|
</h1> |
|
|
<p class="text-xl md:text-2xl max-w-2xl mb-10 opacity-95"> |
|
|
Dive into an infinite 3D wireframe universe that zooms endlessly into another dimension |
|
|
</p> |
|
|
<button id="enterBtn" class="px-8 py-4 bg-gradient-to-r from-purple-500 to-pink-600 rounded-full text-xl font-semibold hover:scale-105 transition-transform duration-300 shadow-lg hover:shadow-purple-500/50 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-pink-500"> |
|
|
Enter the Wormhole |
|
|
</button> |
|
|
</div> |
|
|
|
|
|
<div class="absolute bottom-6 left-0 right-0 text-center opacity-70 text-sm"> |
|
|
<p>Scroll or use arrow keys to navigate</p> |
|
|
<i data-feather="arrow-down" class="animate-bounce mt-2 mx-auto"></i> |
|
|
</div> |
|
|
<script> |
|
|
|
|
|
document.addEventListener('DOMContentLoaded', function() { |
|
|
initVanta(); |
|
|
}); |
|
|
function initVanta() { |
|
|
VANTA.NET({ |
|
|
el: "#vanta-canvas", |
|
|
mouseControls: true, |
|
|
touchControls: true, |
|
|
gyroControls: false, |
|
|
minHeight: 200.00, |
|
|
minWidth: 200.00, |
|
|
scale: 1.00, |
|
|
scaleMobile: 1.00, |
|
|
color: 0x8a2be2, |
|
|
backgroundColor: 0x000000, |
|
|
points: 18.00, |
|
|
maxDistance: 30.00, |
|
|
spacing: 22.00, |
|
|
showDots: false, |
|
|
lineWidth: 0.8, |
|
|
color: 0xffffff, |
|
|
backgroundColor: 0x000000, |
|
|
pointSize: 1.5, |
|
|
pointLight: true, |
|
|
pointLightIntensity: 0.5, |
|
|
pointLightColor: 0xffffff, |
|
|
lineColor: 0xaaaaaa |
|
|
}); |
|
|
|
|
|
document.getElementById('enterBtn').addEventListener('click', function() { |
|
|
const netEffect = VANTA.NET({ |
|
|
el: "#vanta-canvas", |
|
|
mouseControls: true, |
|
|
touchControls: true, |
|
|
gyroControls: false, |
|
|
minHeight: 200.00, |
|
|
minWidth: 200.00, |
|
|
scale: 1.00, |
|
|
scaleMobile: 1.00, |
|
|
color: 0x7e3ff2, |
|
|
backgroundColor: 0x000000, |
|
|
points: 18.00, |
|
|
maxDistance: 30.00, |
|
|
spacing: 22.00, |
|
|
showDots: false, |
|
|
lineWidth: 0.8, |
|
|
color: 0xffffff, |
|
|
backgroundColor: 0x000000, |
|
|
pointSize: 1.5, |
|
|
pointLight: true, |
|
|
pointLightIntensity: 0.5, |
|
|
pointLightColor: 0xffffff, |
|
|
lineColor: 0xaaaaaa |
|
|
}); |
|
|
|
|
|
|
|
|
let scale = 1; |
|
|
const zoomStep = () => { |
|
|
scale *= 1.02; |
|
|
requestAnimationFrame(() => { |
|
|
netEffect.setOptions({ |
|
|
spacing: 18.00 * scale, |
|
|
maxDistance: 25.00 * scale, |
|
|
points: 12.00 * scale |
|
|
}); |
|
|
}); |
|
|
); |
|
|
if (scale < 100) { |
|
|
requestAnimationFrame(zoomStep); |
|
|
} else { |
|
|
|
|
|
requestAnimationFrame(() => { |
|
|
document.querySelector('.content').classList.add('hidden'); |
|
|
document.getElementById('followup').classList.remove('hidden'); |
|
|
}); |
|
|
|
|
|
document.getElementById('returnBtn').addEventListener('click', function() { |
|
|
requestAnimationFrame(() => { |
|
|
document.querySelector('.content').classList.remove('hidden'); |
|
|
document.getElementById('followup').classList.add('hidden'); |
|
|
if (netEffect) { |
|
|
netEffect.setOptions({ |
|
|
points: 18.00, |
|
|
maxDistance: 30.00, |
|
|
spacing: 22.00, |
|
|
lineWidth: 0.8, |
|
|
pointSize: 1.5 |
|
|
}); |
|
|
} |
|
|
}); |
|
|
}); |
|
|
zoomStep(); |
|
|
} |
|
|
|
|
|
document.addEventListener('DOMContentLoaded', function() { |
|
|
feather.replace(); |
|
|
}); |
|
|
</script> |
|
|
<script src="https://huggingface.co/deepsite/deepsite-badge.js"></script> |
|
|
</body> |
|
|
</html> |
|
|
|