<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Aura — The Intelligence Layer</title>
<script src="https://cdn.tailwindcss.com"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/three.js/0.160.0/three.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/gsap/3.12.2/gsap.min.js"></script>
<link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600&display=swap" rel="stylesheet">
<style>
body {
background-color: #000;
color: #fff;
font-family: 'Inter', sans-serif;
margin: 0;
overflow: hidden;
}
#webgl-canvas {
position: fixed;
top: 0;
left: 0;
z-index: 1;
}
.ui-layer {
position: relative;
z-index: 10;
height: 100vh;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
pointer-events: none;
text-align: center;
}
.ui-layer * {
pointer-events: auto;
}
/* Animation Base */
.stagger-text {
display: inline-block;
opacity: 1;
}
/* Architects - Stroke effect */
.architects-stroke {
color: transparent;
-webkit-text-stroke: 1px rgba(255, 255, 255, 0.4);
transition: -webkit-text-stroke 0.3s;
}
.architects-stroke:hover {
-webkit-text-stroke: 1px rgba(255, 255, 255, 1);
}
/* Visionaries - Blur effect wrapper */
.visionaries-hover-wrap {
display: inline-block;
filter: blur(4px);
opacity: 0.7;
transition: filter 0.5s ease, opacity 0.5s ease;
cursor: pointer;
}
.visionaries-hover-wrap:hover {
filter: blur(0px);
opacity: 1;
}
/* Engineers - Dimension Box */
.engineers-box {
position: relative;
border: 1px solid rgba(255, 255, 255, 0.4);
padding: 0 14px;
margin: 0 4px;
transition: border-color 0.3s, background 0.3s;
}
.engineers-box:hover {
border-color: #fff;
background: rgba(255,255,255,0.05);
}
.engineers-box::after {
content: "ID: 0x8A2";
position: absolute;
top: -24px;
right: -1px;
background: #111;
color: #666;
font-size: 9px;
letter-spacing: 1px;
padding: 2px 6px;
border: 1px solid #333;
border-radius: 2px;
}
/* Navigation */
.nav-container {
background: rgba(255, 255, 255, 0.02);
border: 1px solid rgba(255, 255, 255, 0.08);
border-radius: 100px;
padding: 4px;
backdrop-filter: blur(15px);
display: flex;
}
.nav-btn {
padding: 8px 18px;
border-radius: 100px;
font-size: 13px;
font-weight: 500;
color: #777;
transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}
.nav-btn:hover, .nav-btn.active {
color: #fff;
background: rgba(255,255,255,0.08);
}
/* Glow Follower */
.cursor-glow {
position: fixed;
width: 600px;
height: 600px;
background: radial-gradient(circle, rgba(100,150,255,0.04) 0%, transparent 70%);
border-radius: 50%;
pointer-events: none;
z-index: 2;
transform: translate(-50%, -50%);
}
</style>
</head>
<body>
<canvas id="webgl-canvas"></canvas>
<div class="cursor-glow" id="glow"></div>
<div class="absolute top-10 left-10 z-20 flex items-center space-x-3" id="brand-logo">
<svg width="28" height="28" viewBox="0 0 100 100" fill="none" xmlns="http://www.w3.org/2000/svg">
<circle cx="50" cy="50" r="45" stroke="white" stroke-width="2" stroke-dasharray="10 5"/>
<circle cx="50" cy="50" r="15" fill="white"/>
</svg>
<span class="text-xl font-medium tracking-widest uppercase">Aura</span>
</div>
<main class="ui-layer px-6">
<h1 class="text-4xl md:text-7xl font-semibold tracking-tighter leading-tight max-w-5xl">
<span class="stagger-text">Build</span>
<span class="stagger-text">with</span>
<span class="stagger-text architects-stroke">architects</span>,<br>
<span class="stagger-text engineers-box">engineers</span>,
<span class="stagger-text">and</span>
<span class="stagger-text"><span class="visionaries-hover-wrap">visionaries.</span></span>
</h1>
<p class="stagger-item text-gray-400 mt-10 max-w-xl text-lg md:text-xl font-light leading-relaxed">
Aura is the decentralized intelligence layer for the next generation of autonomous web experiences.
</p>
<nav class="stagger-item mt-14 nav-container">
<button class="nav-btn active">Platform</button>
<button class="nav-btn">Ecosystem</button>
<button class="nav-btn">Models</button>
<button class="nav-btn">Access</button>
</nav>
</main>
<script>
// --- GSAP Entrance ---
window.addEventListener('load', () => {
const tl = gsap.timeline({ defaults: { ease: "expo.out" } });
gsap.set(["#brand-logo", ".stagger-text", ".stagger-item"], { opacity: 0 });
tl.to("#brand-logo", { opacity: 1, y: 0, duration: 1.5, startAt: { y: -20 } })
.to(".stagger-text", {
opacity: 1,
y: 0,
scale: 1,
duration: 1.4,
stagger: 0.08,
startAt: { y: 60, scale: 0.95, opacity: 0 }
}, "-=1.2")
.to(".stagger-item", {
opacity: 1,
y: 0,
duration: 1.2,
stagger: 0.15,
startAt: { y: 30, opacity: 0 }
}, "-=1");
});
// --- Three.js Aura Background (Flat Surface) ---
const canvas = document.querySelector('#webgl-canvas');
const scene = new THREE.Scene();
const camera = new THREE.PerspectiveCamera(55, window.innerWidth / window.innerHeight, 0.1, 1000);
const renderer = new THREE.WebGLRenderer({ canvas, antialias: true, alpha: true });
renderer.setSize(window.innerWidth, window.innerHeight);
renderer.setPixelRatio(Math.min(window.devicePixelRatio, 2));
const ringsGroup = new THREE.Group();
scene.add(ringsGroup);
const createRing = (radius, opacity) => {
const geometry = new THREE.TorusGeometry(radius, 0.015, 16, 100);
const material = new THREE.MeshBasicMaterial({
color: 0x6699ff,
transparent: true,
opacity: opacity
});
return new THREE.Mesh(geometry, material);
};
const rings = [];
[4, 7, 11, 16, 22, 29].forEach((r, i) => {
const ring = createRing(r, 0.04 + (i * 0.01));
ringsGroup.add(ring);
rings.push(ring);
// Subtle data points on rings
if (i > 1) {
for(let s=0; s<2; s++){
const starGeo = new THREE.CircleGeometry(0.06, 6);
const starMat = new THREE.MeshBasicMaterial({ color: 0xffffff, transparent: true, opacity: 0.15 });
const star = new THREE.Mesh(starGeo, starMat);
const angle = Math.random() * Math.PI * 2;
star.position.set(Math.cos(angle) * r, Math.sin(angle) * r, 0);
ringsGroup.add(star);
}
}
});
// Keep it flat - No rotation on X
ringsGroup.rotation.x = 0;
camera.position.z = 22;
let mouseX = 0, mouseY = 0, targetX = 0, targetY = 0;
const glow = document.getElementById('glow');
window.addEventListener('mousemove', (e) => {
glow.style.left = e.clientX + 'px';
glow.style.top = e.clientY + 'px';
mouseX = (e.clientX / window.innerWidth) - 0.5;
mouseY = (e.clientY / window.innerHeight) - 0.5;
});
function animate() {
requestAnimationFrame(animate);
// Very subtle parallax while maintaining the "flat" feel
targetX += (mouseX - targetX) * 0.03;
targetY += (mouseY - targetY) * 0.03;
ringsGroup.position.x = targetX * 1.5;
ringsGroup.position.y = -targetY * 1.5;
// Breathing effect on rings
rings.forEach((ring, i) => {
const time = Date.now() * 0.001;
ring.material.opacity = (0.04 + (i * 0.015)) + (Math.sin(time + i) * 0.02);
});
renderer.render(scene, camera);
}
animate();
window.addEventListener('resize', () => {
camera.aspect = window.innerWidth / window.innerHeight;
camera.updateProjectionMatrix();
renderer.setSize(window.innerWidth, window.innerHeight);
});
</script>
</body>
</html>“Create a "Aura — The Intelligence Layer" component. Use Three.js for 3D WebGL rendering, GSAP for advanced animations, Inter font. Use WebGL for GPU-accelerated rendering. Apply glass-morphism / backdrop blur, gradients, hover transitions. Layout: Flexbox, full-screen fixed canvas background, full-viewport sizing. Interactivity: mouse tracking, continuous animation loop, responsive resize handling.”