SuperShipped // Item 14

SNIPPET VIEW

Live Render

HTML CODE

<!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>

AI PROMPT

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.