Compare commits
3 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| d806236b7c | |||
| 40fef2cf6a | |||
| 34d86f4602 |
@@ -12,6 +12,53 @@ import PricingCardEight from '@/components/sections/pricing/PricingCardEight';
|
|||||||
import FaqSplitText from '@/components/sections/faq/FaqSplitText';
|
import FaqSplitText from '@/components/sections/faq/FaqSplitText';
|
||||||
import FooterLogoReveal from '@/components/sections/footer/FooterLogoReveal';
|
import FooterLogoReveal from '@/components/sections/footer/FooterLogoReveal';
|
||||||
import { Brain, Clock, Target, Zap, Flame, Leaf, Moon, Heart, Mountain, Compass, AlertCircle, CheckCircle, Sparkles, TrendingDown } from 'lucide-react';
|
import { Brain, Clock, Target, Zap, Flame, Leaf, Moon, Heart, Mountain, Compass, AlertCircle, CheckCircle, Sparkles, TrendingDown } from 'lucide-react';
|
||||||
|
import { Canvas } from '@react-three/fiber';
|
||||||
|
import { OrbitControls, PerspectiveCamera } from '@react-three/drei';
|
||||||
|
import * as THREE from 'three';
|
||||||
|
|
||||||
|
// 3D Tree Component
|
||||||
|
function TreeModel() {
|
||||||
|
const trunkRef = React.useRef<THREE.Mesh>(null);
|
||||||
|
const leavesRef = React.useRef<THREE.Mesh>(null);
|
||||||
|
|
||||||
|
React.useEffect(() => {
|
||||||
|
if (trunkRef.current) {
|
||||||
|
trunkRef.current.rotation.y += 0.005;
|
||||||
|
}
|
||||||
|
if (leavesRef.current) {
|
||||||
|
leavesRef.current.rotation.y += 0.003;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
return (
|
||||||
|
<group>
|
||||||
|
{/* Trunk */}
|
||||||
|
<mesh ref={trunkRef} position={[0, -0.5, 0]}>
|
||||||
|
<cylinderGeometry args={[0.3, 0.4, 2, 8]} />
|
||||||
|
<meshStandardMaterial color="#8B4513" roughness={0.8} />
|
||||||
|
</mesh>
|
||||||
|
|
||||||
|
{/* Foliage - Main Crown */}
|
||||||
|
<mesh ref={leavesRef} position={[0, 1.2, 0]}>
|
||||||
|
<coneGeometry args={[1.5, 2.5, 32]} />
|
||||||
|
<meshStandardMaterial color="#228B22" roughness={0.6} metalness={0.1} />
|
||||||
|
</mesh>
|
||||||
|
|
||||||
|
{/* Additional foliage layers for depth */}
|
||||||
|
<mesh position={[0, 0.8, 0]}>
|
||||||
|
<sphereGeometry args={[1.2, 32, 32]} />
|
||||||
|
<meshStandardMaterial color="#2d5016" roughness={0.7} metalness={0.05} />
|
||||||
|
</mesh>
|
||||||
|
|
||||||
|
<mesh position={[0, 1.8, 0]}>
|
||||||
|
<sphereGeometry args={[0.9, 32, 32]} />
|
||||||
|
<meshStandardMaterial color="#3cb371" roughness={0.6} metalness={0.1} />
|
||||||
|
</mesh>
|
||||||
|
</group>
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
import React from 'react';
|
||||||
|
|
||||||
export default function LandingPage() {
|
export default function LandingPage() {
|
||||||
return (
|
return (
|
||||||
@@ -41,6 +88,36 @@ export default function LandingPage() {
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div id="hero" data-section="hero">
|
<div id="hero" data-section="hero">
|
||||||
|
<div style={{
|
||||||
|
position: 'relative',
|
||||||
|
width: '100%',
|
||||||
|
height: '600px',
|
||||||
|
marginBottom: '2rem',
|
||||||
|
borderRadius: '12px',
|
||||||
|
overflow: 'hidden',
|
||||||
|
background: 'linear-gradient(135deg, rgba(40, 139, 34, 0.1) 0%, rgba(50, 205, 50, 0.05) 100%)'
|
||||||
|
}}>
|
||||||
|
<Canvas
|
||||||
|
style={{
|
||||||
|
width: '100%',
|
||||||
|
height: '100%'
|
||||||
|
}}
|
||||||
|
camera={{ position: [0, 0, 5], fov: 50 }}
|
||||||
|
>
|
||||||
|
<PerspectiveCamera makeDefault position={[0, 0, 5]} />
|
||||||
|
<ambientLight intensity={1.2} />
|
||||||
|
<pointLight position={[10, 10, 10]} intensity={1} />
|
||||||
|
<pointLight position={[-10, -10, 5]} intensity={0.5} color="#87CEEB" />
|
||||||
|
<TreeModel />
|
||||||
|
<OrbitControls
|
||||||
|
enableZoom={true}
|
||||||
|
enablePan={true}
|
||||||
|
enableRotate={true}
|
||||||
|
autoRotate={true}
|
||||||
|
autoRotateSpeed={3}
|
||||||
|
/>
|
||||||
|
</Canvas>
|
||||||
|
</div>
|
||||||
<HeroBillboard
|
<HeroBillboard
|
||||||
title="Return to What You Were Built For"
|
title="Return to What You Were Built For"
|
||||||
description="A complete system for men who want to live at full capacity — physically, mentally, spiritually, and in alignment with nature. Master the fundamentals that ancestral wisdom and modern science both confirm work."
|
description="A complete system for men who want to live at full capacity — physically, mentally, spiritually, and in alignment with nature. Master the fundamentals that ancestral wisdom and modern science both confirm work."
|
||||||
@@ -52,8 +129,6 @@ export default function LandingPage() {
|
|||||||
{ text: "Explore Modules", href: "#modules" }
|
{ text: "Explore Modules", href: "#modules" }
|
||||||
]}
|
]}
|
||||||
buttonAnimation="slide-up"
|
buttonAnimation="slide-up"
|
||||||
videoSrc="https://media.vidyard.com/watch/LvPJ5GHqRXRDdKC3XDRfWA/default.mp4"
|
|
||||||
videoAriaLabel="Roots forest nature video"
|
|
||||||
mediaAnimation="opacity"
|
mediaAnimation="opacity"
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
Reference in New Issue
Block a user