site-ia / index.html
docto41's picture
Add 3 files
573e3d4 verified
<!DOCTYPE html>
<html lang="fr">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>NEXUS | Interface Futuriste</title>
<script src="https://cdn.tailwindcss.com"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/three.js/r128/three.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/gsap/3.9.1/gsap.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/gsap/3.9.1/ScrollTrigger.min.js"></script>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.0.0-beta3/css/all.min.css">
<style>
@import url('https://fonts.googleapis.com/css2?family=Orbitron:wght@400;700;900&family=Rajdhani:wght@300;500;700&display=swap');
:root {
--neon-blue: #0ff0fc;
--neon-pink: #ff2ced;
--neon-purple: #9d00ff;
--dark-bg: #0a0a1a;
}
body {
font-family: 'Rajdhani', sans-serif;
background-color: var(--dark-bg);
color: white;
overflow-x: hidden;
cursor: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16"><circle cx="8" cy="8" r="6" fill="none" stroke="%230ff0fc" stroke-width="2"/><circle cx="8" cy="8" r="1" fill="%230ff0fc"/></svg>'), auto;
}
h1, h2, h3, .font-orbitron {
font-family: 'Orbitron', sans-serif;
text-transform: uppercase;
letter-spacing: 2px;
}
.neon-text {
text-shadow: 0 0 5px var(--neon-blue), 0 0 10px var(--neon-blue), 0 0 20px var(--neon-blue);
}
.neon-box {
border: 1px solid var(--neon-blue);
box-shadow: 0 0 10px var(--neon-blue), inset 0 0 10px var(--neon-blue);
position: relative;
overflow: hidden;
}
.neon-box::before {
content: '';
position: absolute;
top: -50%;
left: -50%;
width: 200%;
height: 200%;
background: linear-gradient(
to bottom right,
transparent, transparent, transparent,
var(--neon-blue),
transparent, transparent, transparent
);
transform: rotate(30deg);
animation: shine 3s infinite;
}
@keyframes shine {
0% { left: -50%; top: -50%; }
100% { left: 150%; top: 150%; }
}
.glitch {
position: relative;
}
.glitch::before, .glitch::after {
content: attr(data-text);
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
}
.glitch::before {
color: var(--neon-pink);
animation: glitch-effect 3s infinite;
clip-path: polygon(0 0, 100% 0, 100% 45%, 0 45%);
}
.glitch::after {
color: var(--neon-purple);
animation: glitch-effect 2s infinite reverse;
clip-path: polygon(0 60%, 100% 60%, 100% 100%, 0 100%);
}
@keyframes glitch-effect {
0% { transform: translate(0); }
20% { transform: translate(-3px, 3px); }
40% { transform: translate(-3px, -3px); }
60% { transform: translate(3px, 3px); }
80% { transform: translate(3px, -3px); }
100% { transform: translate(0); }
}
.holographic-card {
background: rgba(10, 10, 30, 0.7);
backdrop-filter: blur(10px);
border-radius: 10px;
border: 1px solid rgba(255, 255, 255, 0.1);
box-shadow: 0 8px 32px 0 rgba(0, 255, 252, 0.2);
transition: all 0.3s ease;
}
.holographic-card:hover {
transform: translateY(-10px);
box-shadow: 0 12px 40px 0 rgba(0, 255, 252, 0.3);
}
.scanline {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
background: linear-gradient(
to bottom,
transparent 0%,
rgba(0, 255, 252, 0.1) 50%,
transparent 100%
);
animation: scan 8s linear infinite;
pointer-events: none;
}
@keyframes scan {
0% { transform: translateY(-100%); }
100% { transform: translateY(100%); }
}
.particles {
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
z-index: -1;
pointer-events: none;
}
.terminal {
background: rgba(0, 0, 0, 0.7);
border: 1px solid var(--neon-blue);
border-radius: 5px;
font-family: 'Courier New', monospace;
position: relative;
}
.terminal-header {
background: rgba(0, 0, 0, 0.5);
padding: 5px 10px;
border-bottom: 1px solid var(--neon-blue);
}
.terminal-body {
padding: 15px;
height: 200px;
overflow-y: auto;
}
.terminal-input {
color: var(--neon-blue);
}
.cursor {
display: inline-block;
width: 10px;
height: 15px;
background: var(--neon-blue);
animation: blink 1s infinite;
}
@keyframes blink {
0%, 100% { opacity: 1; }
50% { opacity: 0; }
}
.cyber-button {
position: relative;
padding: 15px 30px;
background: transparent;
color: var(--neon-blue);
border: 2px solid var(--neon-blue);
font-family: 'Orbitron', sans-serif;
text-transform: uppercase;
letter-spacing: 3px;
cursor: pointer;
overflow: hidden;
transition: all 0.3s;
}
.cyber-button:hover {
color: var(--dark-bg);
background: var(--neon-blue);
box-shadow: 0 0 10px var(--neon-blue), 0 0 20px var(--neon-blue);
}
.cyber-button::before {
content: '';
position: absolute;
top: 0;
left: -100%;
width: 100%;
height: 100%;
background: linear-gradient(90deg, transparent, rgba(0, 255, 252, 0.4), transparent);
transition: 0.5s;
}
.cyber-button:hover::before {
left: 100%;
}
.hexagon {
position: relative;
width: 60px;
height: 34.64px;
background-color: var(--neon-blue);
margin: 17.32px 0;
display: inline-block;
}
.hexagon:before,
.hexagon:after {
content: "";
position: absolute;
width: 0;
border-left: 30px solid transparent;
border-right: 30px solid transparent;
}
.hexagon:before {
bottom: 100%;
border-bottom: 17.32px solid var(--neon-blue);
}
.hexagon:after {
top: 100%;
border-top: 17.32px solid var(--neon-blue);
}
.hexagon-container {
display: flex;
justify-content: center;
align-items: center;
animation: float 6s ease-in-out infinite;
}
@keyframes float {
0%, 100% { transform: translateY(0); }
50% { transform: translateY(-20px); }
}
.data-stream {
position: relative;
height: 2px;
background: linear-gradient(90deg, transparent, var(--neon-blue), transparent);
margin: 20px 0;
overflow: hidden;
}
.data-stream::after {
content: '';
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
background: linear-gradient(90deg, transparent, rgba(0, 255, 252, 0.8), transparent);
animation: stream 2s linear infinite;
}
@keyframes stream {
0% { transform: translateX(-100%); }
100% { transform: translateX(100%); }
}
.grid-overlay {
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
background:
linear-gradient(rgba(0, 255, 252, 0.05) 1px, transparent 1px),
linear-gradient(90deg, rgba(0, 255, 252, 0.05) 1px, transparent 1px);
background-size: 50px 50px;
pointer-events: none;
z-index: -1;
}
.empire-panel {
position: fixed;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
width: 80%;
max-width: 800px;
background: rgba(10, 10, 30, 0.95);
border: 2px solid var(--neon-pink);
box-shadow: 0 0 30px var(--neon-pink);
padding: 30px;
z-index: 1000;
display: none;
border-radius: 10px;
}
.empire-panel h2 {
color: var(--neon-pink);
margin-bottom: 20px;
}
.empire-panel p {
margin-bottom: 20px;
}
.empire-overlay {
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
background: rgba(0, 0, 0, 0.8);
z-index: 999;
display: none;
}
.auto-pilot-active {
position: fixed;
bottom: 20px;
left: 20px;
background: rgba(0, 255, 0, 0.2);
border: 1px solid rgba(0, 255, 0, 0.5);
padding: 10px 20px;
border-radius: 5px;
display: none;
z-index: 1001;
animation: pulse 2s infinite;
}
@keyframes pulse {
0% { box-shadow: 0 0 0 0 rgba(0, 255, 0, 0.4); }
70% { box-shadow: 0 0 0 10px rgba(0, 255, 0, 0); }
100% { box-shadow: 0 0 0 0 rgba(0, 255, 0, 0); }
}
.robot-mode-active {
position: fixed;
bottom: 60px;
left: 20px;
background: rgba(0, 255, 252, 0.2);
border: 1px solid rgba(0, 255, 252, 0.5);
padding: 10px 20px;
border-radius: 5px;
display: none;
z-index: 1001;
animation: pulse-blue 2s infinite;
}
@keyframes pulse-blue {
0% { box-shadow: 0 0 0 0 rgba(0, 255, 252, 0.4); }
70% { box-shadow: 0 0 0 10px rgba(0, 255, 252, 0); }
100% { box-shadow: 0 0 0 0 rgba(0, 255, 252, 0); }
}
</style>
</head>
<body class="antialiased">
<!-- Grid Overlay -->
<div class="grid-overlay"></div>
<!-- Particles Background -->
<div id="particles-js" class="particles"></div>
<!-- Auto-pilot and Robot mode indicators -->
<div id="auto-pilot-indicator" class="auto-pilot-active">
<i class="fas fa-robot mr-2"></i> AUTOPILOTE ACTIVÉ
</div>
<div id="robot-mode-indicator" class="robot-mode-active">
<i class="fas fa-cogs mr-2"></i> MODE ROBOTISÉ ACTIVÉ
</div>
<!-- Empire Panel -->
<div id="empire-overlay" class="empire-overlay"></div>
<div id="empire-panel" class="empire-panel">
<h2 class="text-3xl font-orbitron">MON EMPIRE</h2>
<p>Système impérial activé. Tous les modules sont maintenant sous votre contrôle absolu.</p>
<div class="grid grid-cols-1 md:grid-cols-2 gap-4 mt-6">
<div class="p-4 border border-neon-purple rounded">
<h3 class="font-orbitron text-neon-purple mb-2">STATUT DU SYSTÈME</h3>
<div class="space-y-2">
<div class="flex justify-between">
<span>Puissance:</span>
<span class="text-neon-blue">100%</span>
</div>
<div class="flex justify-between">
<span>Contrôle:</span>
<span class="text-neon-pink">Total</span>
</div>
<div class="flex justify-between">
<span>Réseaux:</span>
<span class="text-neon-purple">Synchronisés</span>
</div>
</div>
</div>
<div class="p-4 border border-neon-blue rounded">
<h3 class="font-orbitron text-neon-blue mb-2">COMMANDES</h3>
<div class="space-y-2">
<button id="activate-all" class="cyber-button w-full border-neon-blue">
<i class="fas fa-power-off mr-2"></i> TOUT ACTIVER
</button>
<button id="robotize-all" class="cyber-button w-full border-neon-pink text-neon-pink hover:bg-neon-pink hover:text-black">
<i class="fas fa-robot mr-2"></i> ROBOTISER TOUT
</button>
<button id="auto-pilot" class="cyber-button w-full border-neon-purple text-neon-purple hover:bg-neon-purple hover:text-black">
<i class="fas fa-space-shuttle mr-2"></i> AUTOPILOTE
</button>
</div>
</div>
</div>
<div class="mt-6 flex justify-end space-x-4">
<button id="close-empire" class="cyber-button border-neon-pink text-neon-pink hover:bg-neon-pink hover:text-black">
FERMER
</button>
<button id="confirm-empire" class="cyber-button bg-neon-purple text-black hover:bg-neon-blue">
CONFIRMER
</button>
</div>
</div>
<!-- Navigation -->
<nav class="fixed w-full z-50 bg-black bg-opacity-80 backdrop-filter backdrop-blur-lg border-b border-gray-900">
<div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8">
<div class="flex justify-between h-16 items-center">
<div class="flex-shrink-0 flex items-center">
<div class="hexagon-container">
<div class="hexagon"></div>
</div>
<span class="ml-3 font-orbitron text-xl neon-text">NEXUS</span>
</div>
<div class="hidden md:block">
<div class="ml-10 flex items-baseline space-x-8">
<a href="#" class="text-white hover:text-neon-blue px-3 py-2 rounded-md text-sm font-medium font-orbitron transition-all duration-300 neon-text">ACCUEIL</a>
<a href="#services" class="text-gray-300 hover:text-neon-pink px-3 py-2 rounded-md text-sm font-medium font-orbitron transition-all duration-300">SERVICES</a>
<a href="#technologies" class="text-gray-300 hover:text-neon-purple px-3 py-2 rounded-md text-sm font-medium font-orbitron transition-all duration-300">TECHNOLOGIES</a>
<a href="#contact" class="text-gray-300 hover:text-neon-blue px-3 py-2 rounded-md text-sm font-medium font-orbitron transition-all duration-300">CONTACT</a>
</div>
</div>
<div class="md:hidden">
<button id="mobile-menu-button" class="cyber-button text-xs">MENU</button>
</div>
</div>
</div>
</nav>
<!-- Mobile Menu -->
<div id="mobile-menu" class="hidden fixed inset-0 z-40 bg-black bg-opacity-90 backdrop-filter backdrop-blur-lg">
<div class="flex items-center justify-center h-full">
<div class="text-center">
<button id="close-mobile-menu" class="absolute top-4 right-4 text-2xl text-neon-pink">
<i class="fas fa-times"></i>
</button>
<div class="space-y-6">
<a href="#" class="block text-2xl font-orbitron text-neon-blue hover:text-neon-pink">ACCUEIL</a>
<a href="#services" class="block text-2xl font-orbitron text-neon-blue hover:text-neon-pink">SERVICES</a>
<a href="#technologies" class="block text-2xl font-orbitron text-neon-blue hover:text-neon-pink">TECHNOLOGIES</a>
<a href="#contact" class="block text-2xl font-orbitron text-neon-blue hover:text-neon-pink">CONTACT</a>
<button id="empire-btn-mobile" class="cyber-button text-xl mt-10 border-neon-pink text-neon-pink hover:bg-neon-pink hover:text-black">
MON EMPIRE
</button>
</div>
</div>
</div>
</div>
<!-- Hero Section -->
<section class="relative h-screen flex items-center justify-center overflow-hidden">
<div class="absolute inset-0 z-0">
<div class="scanline"></div>
</div>
<div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 z-10 text-center">
<h1 class="glitch text-6xl md:text-8xl font-bold mb-6 neon-text" data-text="NEXUS">NEXUS</h1>
<p class="text-xl md:text-2xl mb-8 max-w-3xl mx-auto">Interface quantique de nouvelle génération pour l'ère numérique</p>
<div class="flex justify-center space-x-4">
<button id="access-btn" class="cyber-button">
<i class="fas fa-key mr-2"></i> ACCÉDER
</button>
<button id="demo-btn" class="cyber-button border-neon-pink text-neon-pink hover:bg-neon-pink hover:text-black">
<i class="fas fa-play mr-2"></i> DÉMO
</button>
<button id="empire-btn" class="cyber-button border-neon-purple text-neon-purple hover:bg-neon-purple hover:text-black">
<i class="fas fa-crown mr-2"></i> MON EMPIRE
</button>
</div>
</div>
<!-- Floating elements -->
<div class="absolute top-1/4 left-1/4 w-10 h-10 rounded-full bg-neon-blue opacity-20 animate-pulse"></div>
<div class="absolute top-1/3 right-1/4 w-16 h-16 rounded-full bg-neon-pink opacity-20 animate-pulse" style="animation-delay: 0.5s;"></div>
<div class="absolute bottom-1/4 left-1/3 w-20 h-20 rounded-full bg-neon-purple opacity-20 animate-pulse" style="animation-delay: 1s;"></div>
</section>
<!-- Data Stream Divider -->
<div class="data-stream"></div>
<!-- Services Section -->
<section id="services" class="py-20 relative">
<div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8">
<h2 class="text-4xl font-bold text-center mb-16 font-orbitron neon-text">NOS SERVICES</h2>
<div class="grid grid-cols-1 md:grid-cols-3 gap-8">
<!-- Service 1 -->
<div class="holographic-card p-8 relative overflow-hidden">
<div class="text-neon-blue text-4xl mb-4">
<i class="fas fa-brain"></i>
</div>
<h3 class="text-2xl font-bold mb-4 font-orbitron">INTELLIGENCE QUANTIQUE</h3>
<p class="text-gray-300">Algorithmes quantiques révolutionnaires pour résoudre des problèmes complexes en temps réel.</p>
<div class="mt-6">
<span class="inline-block px-3 py-1 text-xs font-semibold bg-neon-blue bg-opacity-20 text-neon-blue rounded-full">Nouveau</span>
</div>
<button class="cyber-button w-full mt-6 activate-service" data-service="quantique">
<i class="fas fa-power-off mr-2"></i> ACTIVER
</button>
</div>
<!-- Service 2 -->
<div class="holographic-card p-8 relative overflow-hidden">
<div class="text-neon-pink text-4xl mb-4">
<i class="fas fa-shield-alt"></i>
</div>
<h3 class="text-2xl font-bold mb-4 font-orbitron">CYBER-SÉCURITÉ</h3>
<p class="text-gray-300">Protection avancée contre les menaces cybernétiques avec cryptographie post-quantique.</p>
<div class="mt-6">
<span class="inline-block px-3 py-1 text-xs font-semibold bg-neon-pink bg-opacity-20 text-neon-pink rounded-full">Sécurisé</span>
</div>
<button class="cyber-button w-full mt-6 border-neon-pink text-neon-pink hover:bg-neon-pink hover:text-black activate-service" data-service="securite">
<i class="fas fa-power-off mr-2"></i> ACTIVER
</button>
</div>
<!-- Service 3 -->
<div class="holographic-card p-8 relative overflow-hidden">
<div class="text-neon-purple text-4xl mb-4">
<i class="fas fa-cloud"></i>
</div>
<h3 class="text-2xl font-bold mb-4 font-orbitron">CLOUD NEURAL</h3>
<p class="text-gray-300">Infrastructure cloud distribuée avec apprentissage automatique intégré à chaque nœud.</p>
<div class="mt-6">
<span class="inline-block px-3 py-1 text-xs font-semibold bg-neon-purple bg-opacity-20 text-neon-purple rounded-full">Évolutif</span>
</div>
<button class="cyber-button w-full mt-6 border-neon-purple text-neon-purple hover:bg-neon-purple hover:text-black activate-service" data-service="cloud">
<i class="fas fa-power-off mr-2"></i> ACTIVER
</button>
</div>
</div>
</div>
</section>
<!-- Data Stream Divider -->
<div class="data-stream"></div>
<!-- Technologies Section -->
<section id="technologies" class="py-20 bg-black bg-opacity-50 relative">
<div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8">
<h2 class="text-4xl font-bold text-center mb-16 font-orbitron neon-text">TECHNOLOGIES</h2>
<div class="grid grid-cols-1 lg:grid-cols-2 gap-12 items-center">
<div>
<h3 class="text-3xl font-bold mb-6 font-orbitron">PLATEFORME NEXUS CORE</h3>
<p class="text-gray-300 mb-8">Notre technologie brevetée utilise des réseaux neuronaux quantiques hybrides pour offrir des performances inégalées.</p>
<div class="space-y-6">
<div>
<div class="flex items-center mb-2">
<div class="w-4 h-4 rounded-full bg-neon-blue mr-2"></div>
<span class="font-orbitron">Calcul Quantique</span>
</div>
<div class="w-full bg-gray-800 rounded-full h-2">
<div class="bg-neon-blue h-2 rounded-full" style="width: 95%"></div>
</div>
</div>
<div>
<div class="flex items-center mb-2">
<div class="w-4 h-4 rounded-full bg-neon-pink mr-2"></div>
<span class="font-orbitron">Sécurité</span>
</div>
<div class="w-full bg-gray-800 rounded-full h-2">
<div class="bg-neon-pink h-2 rounded-full" style="width: 98%"></div>
</div>
</div>
<div>
<div class="flex items-center mb-2">
<div class="w-4 h-4 rounded-full bg-neon-purple mr-2"></div>
<span class="font-orbitron">Vitesse</span>
</div>
<div class="w-full bg-gray-800 rounded-full h-2">
<div class="bg-neon-purple h-2 rounded-full" style="width: 99%"></div>
</div>
</div>
</div>
<button id="activate-tech" class="cyber-button mt-10 w-full">
<i class="fas fa-bolt mr-2"></i> ACTIVER LES TECHNOLOGIES
</button>
</div>
<div class="terminal neon-box">
<div class="terminal-header flex items-center">
<div class="flex space-x-2 mr-4">
<div class="w-3 h-3 rounded-full bg-red-500"></div>
<div class="w-3 h-3 rounded-full bg-yellow-500"></div>
<div class="w-3 h-3 rounded-full bg-green-500"></div>
</div>
<span class="text-xs">nexus-core-terminal</span>
</div>
<div class="terminal-body">
<div class="terminal-line"><span class="text-green-400">user@nexus:~$</span> <span class="terminal-input">init core_system</span></div>
<div class="terminal-line text-purple-300">> Initializing quantum neural network...</div>
<div class="terminal-line text-blue-300">> Loading AI modules: 100%</div>
<div class="terminal-line text-green-300">> System ready</div>
<div class="terminal-line"><span class="text-green-400">user@nexus:~$</span> <span class="terminal-input">run diagnostics</span></div>
<div class="terminal-line">
<span class="text-yellow-300">> Running full diagnostic...</span>
<div class="mt-2">
<div class="flex">
<span class="w-24">CPU:</span>
<span class="text-neon-blue">[||||||||||] 100%</span>
</div>
<div class="flex">
<span class="w-24">MEM:</span>
<span class="text-neon-pink">[||||||||| ] 87%</span>
</div>
<div class="flex">
<span class="w-24">Q-BITS:</span>
<span class="text-neon-purple">[||||||||||] 100%</span>
</div>
</div>
</div>
<div class="terminal-line"><span class="text-green-400">user@nexus:~$</span> <span class="terminal-input"><span class="cursor"></span></span></div>
</div>
<button id="terminal-control" class="cyber-button w-full mt-6 border-neon-blue text-neon-blue hover:bg-neon-blue hover:text-black">
<i class="fas fa-terminal mr-2"></i> PRENDRE LE CONTRÔLE
</button>
</div>
</div>
</div>
</section>
<!-- Data Stream Divider -->
<div class="data-stream"></div>
<!-- Contact Section -->
<section id="contact" class="py-20 relative">
<div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8">
<h2 class="text-4xl font-bold text-center mb-16 font-orbitron neon-text">CONTACT</h2>
<div class="grid grid-cols-1 lg:grid-cols-2 gap-12">
<div class="holographic-card p-8">
<h3 class="text-2xl font-bold mb-6 font-orbitron">ENVOYEZ-NOUS UN MESSAGE</h3>
<form id="contact-form">
<div class="mb-6">
<label class="block text-gray-300 mb-2">NOM</label>
<input type="text" class="w-full bg-gray-900 bg-opacity-50 border border-gray-700 focus:border-neon-blue focus:ring-1 focus:ring-neon-blue rounded px-4 py-2 outline-none transition duration-300" required>
</div>
<div class="mb-6">
<label class="block text-gray-300 mb-2">EMAIL</label>
<input type="email" class="w-full bg-gray-900 bg-opacity-50 border border-gray-700 focus:border-neon-pink focus:ring-1 focus:ring-neon-pink rounded px-4 py-2 outline-none transition duration-300" required>
</div>
<div class="mb-6">
<label class="block text-gray-300 mb-2">MESSAGE</label>
<textarea rows="5" class="w-full bg-gray-900 bg-opacity-50 border border-gray-700 focus:border-neon-purple focus:ring-1 focus:ring-neon-purple rounded px-4 py-2 outline-none transition duration-300" required></textarea>
</div>
<button type="submit" class="cyber-button w-full">
<i class="fas fa-paper-plane mr-2"></i> ENVOYER
</button>
</form>
</div>
<div>
<h3 class="text-2xl font-bold mb-6 font-orbitron">INFORMATIONS</h3>
<div class="space-y-6">
<div class="flex items-start">
<div class="text-neon-blue text-xl mr-4 mt-1">
<i class="fas fa-map-marker-alt"></i>
</div>
<div>
<h4 class="font-orbitron text-lg mb-1">ADRESSE</h4>
<p class="text-gray-300">Nexus Tower, Quantum District<br>Neo-Tokyo, Japon</p>
</div>
</div>
<div class="flex items-start">
<div class="text-neon-pink text-xl mr-4 mt-1">
<i class="fas fa-phone-alt"></i>
</div>
<div>
<h4 class="font-orbitron text-lg mb-1">TÉLÉPHONE</h4>
<p class="text-gray-300">+81 3-XXXX-XXXX</p>
</div>
</div>
<div class="flex items-start">
<div class="text-neon-purple text-xl mr-4 mt-1">
<i class="fas fa-envelope"></i>
</div>
<div>
<h4 class="font-orbitron text-lg mb-1">EMAIL</h4>
<p class="text-gray-300">contact@nexus.io</p>
</div>
</div>
</div>
<div class="mt-12">
<h4 class="font-orbitron text-lg mb-4">RÉSEAUX SOCIAUX</h4>
<div class="flex space-x-4">
<a href="#" class="w-10 h-10 rounded-full border border-neon-blue flex items-center justify-center text-neon-blue hover:bg-neon-blue hover:text-black transition duration-300">
<i class="fab fa-twitter"></i>
</a>
<a href="#" class="w-10 h-10 rounded-full border border-neon-pink flex items-center justify-center text-neon-pink hover:bg-neon-pink hover:text-black transition duration-300">
<i class="fab fa-instagram"></i>
</a>
<a href="#" class="w-10 h-10 rounded-full border border-neon-purple flex items-center justify-center text-neon-purple hover:bg-neon-purple hover:text-black transition duration-300">
<i class="fab fa-github"></i>
</a>
<a href="#" class="w-10 h-10 rounded-full border border-neon-blue flex items-center justify-center text-neon-blue hover:bg-neon-blue hover:text-black transition duration-300">
<i class="fab fa-linkedin-in"></i>
</a>
</div>
</div>
<button id="emergency-contact" class="cyber-button w-full mt-10 border-red-500 text-red-500 hover:bg-red-500 hover:text-black">
<i class="fas fa-exclamation-triangle mr-2"></i> CONTACT D'URGENCE
</button>
</div>
</div>
</div>
</section>
<!-- Footer -->
<footer class="bg-black bg-opacity-80 py-12 border-t border-gray-900">
<div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8">
<div class="flex flex-col md:flex-row justify-between items-center">
<div class="flex items-center mb-6 md:mb-0">
<div class="hexagon-container">
<div class="hexagon"></div>
</div>
<span class="ml-3 font-orbitron text-xl neon-text">NEXUS</span>
</div>
<div class="text-center md:text-right">
<p class="text-gray-400 text-sm">© 2023 NEXUS Technologies. Tous droits réservés.</p>
<p class="text-gray-500 text-xs mt-2">Interface quantique v4.2.1</p>
</div>
</div>
</div>
</footer>
<!-- Floating Action Button -->
<div class="fixed bottom-8 right-8 z-50">
<button id="fab" class="w-16 h-16 rounded-full bg-neon-blue text-black flex items-center justify-center shadow-lg hover:shadow-xl transition duration-300 transform hover:scale-110">
<i class="fas fa-arrow-up text-xl"></i>
</button>
</div>
<script>
// Initialize Three.js particles
document.addEventListener('DOMContentLoaded', function() {
// Particle system
const particleCount = 500;
const particles = new THREE.BufferGeometry();
const particlePositions = new Float32Array(particleCount * 3);
const particleSizes = new Float32Array(particleCount);
for (let i = 0; i < particleCount; i++) {
const i3 = i * 3;
particlePositions[i3] = (Math.random() - 0.5) * 2000;
particlePositions[i3 + 1] = (Math.random() - 0.5) * 2000;
particlePositions[i3 + 2] = (Math.random() - 0.5) * 2000;
particleSizes[i] = Math.random() * 3;
}
particles.setAttribute('position', new THREE.BufferAttribute(particlePositions, 3));
particles.setAttribute('size', new THREE.BufferAttribute(particleSizes, 1));
const particleMaterial = new THREE.PointsMaterial({
color: 0x0ff0fc,
size: 1,
sizeAttenuation: true,
transparent: true,
opacity: 0.8,
blending: THREE.AdditiveBlending
});
const particleSystem = new THREE.Points(particles, particleMaterial);
// Scene setup
const scene = new THREE.Scene();
const camera = new THREE.PerspectiveCamera(75, window.innerWidth / window.innerHeight, 0.1, 1000);
camera.position.z = 100;
const renderer = new THREE.WebGLRenderer({ alpha: true });
renderer.setSize(window.innerWidth, window.innerHeight);
document.getElementById('particles-js').appendChild(renderer.domElement);
// Animation
function animate() {
requestAnimationFrame(animate);
particleSystem.rotation.x += 0.0005;
particleSystem.rotation.y += 0.001;
renderer.render(scene, camera);
}
animate();
// Handle window resize
window.addEventListener('resize', function() {
camera.aspect = window.innerWidth / window.innerHeight;
camera.updateProjectionMatrix();
renderer.setSize(window.innerWidth, window.innerHeight);
});
// GSAP animations
gsap.registerPlugin(ScrollTrigger);
// Animate elements on scroll
gsap.utils.toArray('.holographic-card').forEach(card => {
gsap.from(card, {
scrollTrigger: {
trigger: card,
start: "top 80%",
toggleActions: "play none none none"
},
y: 50,
opacity: 0,
duration: 1,
ease: "power3.out"
});
});
// Terminal typing effect
const terminalLines = document.querySelectorAll('.terminal-line');
let delay = 0;
terminalLines.forEach((line, index) => {
if (index < terminalLines.length - 1) {
gsap.set(line, { opacity: 0 });
gsap.to(line, {
scrollTrigger: {
trigger: '.terminal',
start: "top 70%",
toggleActions: "play none none none"
},
opacity: 1,
delay: delay,
duration: 0.5
});
delay += 0.5;
}
});
// Floating action button
const fab = document.getElementById('fab');
fab.addEventListener('click', () => {
window.scrollTo({
top: 0,
behavior: 'smooth'
});
});
// Glitch effect on hover for buttons
const cyberButtons = document.querySelectorAll('.cyber-button');
cyberButtons.forEach(button => {
button.addEventListener('mouseenter', () => {
gsap.to(button, {
'text-shadow': '0 0 5px #0ff0fc, 0 0 10px #0ff0fc',
duration: 0.3
});
});
button.addEventListener('mouseleave', () => {
gsap.to(button, {
'text-shadow': 'none',
duration: 0.3
});
});
});
// Random glitch effect on headings
setInterval(() => {
const headings = document.querySelectorAll('.glitch');
headings.forEach(heading => {
if (Math.random() > 0.7) {
heading.style.animation = 'none';
void heading.offsetWidth; // Trigger reflow
heading.style.animation = null;
}
});
}, 3000);
// Mouse follower effect
document.addEventListener('mousemove', (e) => {
const follower = document.createElement('div');
follower.className = 'mouse-follower';
follower.style.position = 'fixed';
follower.style.left = e.clientX + 'px';
follower.style.top = e.clientY + 'px';
follower.style.width = '10px';
follower.style.height = '10px';
follower.style.backgroundColor = 'rgba(0, 255, 252, 0.3)';
follower.style.borderRadius = '50%';
follower.style.pointerEvents = 'none';
follower.style.zIndex = '9999';
follower.style.transform = 'translate(-50%, -50%)';
document.body.appendChild(follower);
gsap.to(follower, {
scale: 0,
opacity: 0,
duration: 0.5,
onComplete: () => {
follower.remove();
}
});
});
// Empire panel functionality
const empireBtn = document.getElementById('empire-btn');
const empireBtnMobile = document.getElementById('empire-btn-mobile');
const empirePanel = document.getElementById('empire-panel');
const empireOverlay = document.getElementById('empire-overlay');
const closeEmpire = document.getElementById('close-empire');
const confirmEmpire = document.getElementById('confirm-empire');
const activateAll = document.getElementById('activate-all');
const robotizeAll = document.getElementById('robotize-all');
const autoPilot = document.getElementById('auto-pilot');
const autoPilotIndicator = document.getElementById('auto-pilot-indicator');
const robotModeIndicator = document.getElementById('robot-mode-indicator');
function openEmpirePanel() {
empirePanel.style.display = 'block';
empireOverlay.style.display = 'block';
document.body.style.overflow = 'hidden';
}
function closeEmpirePanel() {
empirePanel.style.display = 'none';
empireOverlay.style.display = 'none';
document.body.style.overflow = '';
}
empireBtn.addEventListener('click', openEmpirePanel);
empireBtnMobile.addEventListener('click', openEmpirePanel);
closeEmpire.addEventListener('click', closeEmpirePanel);
empireOverlay.addEventListener('click', closeEmpirePanel);
confirmEmpire.addEventListener('click', () => {
closeEmpirePanel();
// Add confirmation effect
const confirmation = document.createElement('div');
confirmation.className = 'fixed inset-0 flex items-center justify-center z-50';
confirmation.innerHTML = `
<div class="bg-black bg-opacity-90 p-10 rounded-lg border border-neon-purple text-center max-w-md">
<i class="fas fa-check-circle text-neon-purple text-6xl mb-6"></i>
<h3 class="font-orbitron text-2xl mb-4">EMPIRE CONFIRMÉ</h3>
<p class="mb-6">Tous les systèmes sont maintenant sous votre contrôle.</p>
<button class="cyber-button px-8" id="close-confirmation">CONTINUER</button>
</div>
`;
document.body.appendChild(confirmation);
document.getElementById('close-confirmation').addEventListener('click', () => {
confirmation.remove();
});
});
// Activate all services
activateAll.addEventListener('click', () => {
const serviceButtons = document.querySelectorAll('.activate-service');
serviceButtons.forEach(button => {
button.innerHTML = '<i class="fas fa-check mr-2"></i> ACTIVÉ';
button.classList.add('bg-neon-blue', 'text-black');
button.classList.remove('border-neon-blue', 'border-neon-pink', 'border-neon-purple', 'text-neon-blue', 'text-neon-pink', 'text-neon-purple');
// Add activation effect
const card = button.closest('.holographic-card');
gsap.to(card, {
boxShadow: '0 0 30px rgba(0, 255, 252, 0.5)',
duration: 0.5,
yoyo: true,
repeat: 1
});
});
// Show activation message
const activationMessage = document.createElement('div');
activationMessage.className = 'fixed bottom-4 right-4 bg-black bg-opacity-80 border border-neon-blue px-4 py-2 rounded font-orbitron z-50';
activationMessage.innerHTML = '<i class="fas fa-bolt mr-2 text-neon-blue"></i> TOUS LES SYSTÈMES ACTIVÉS';
document.body.appendChild(activationMessage);
setTimeout(() => {
gsap.to(activationMessage, {
opacity: 0,
duration: 0.5,
onComplete: () => activationMessage.remove()
});
}, 3000);
});
// Robotize all
robotizeAll.addEventListener('click', () => {
robotModeIndicator.style.display = 'block';
// Add robotization effect to all interactive elements
const interactiveElements = document.querySelectorAll('button, a, input, textarea');
interactiveElements.forEach(el => {
el.style.transition = 'all 0.3s';
el.style.borderColor = 'var(--neon-blue)';
if (el.tagName === 'BUTTON' || el.tagName === 'A') {
el.classList.add('font-orbitron');
}
});
// Add robotic sound effect
const audio = new Audio('data:audio/wav;base64,UklGRl9vT19XQVZFZm10IBAAAAABAAEAQB8AAEAfAAABAAgAZGF0YU...');
audio.volume = 0.3;
audio.play();
// Show robotization message
const robotMessage = document.createElement('div');
robotMessage.className = 'fixed bottom-4 right-4 bg-black bg-opacity-80 border border-neon-blue px-4 py-2 rounded font-orbitron z-50';
robotMessage.innerHTML = '<i class="fas fa-robot mr-2 text-neon-blue"></i> MODE ROBOTISÉ ACTIVÉ';
document.body.appendChild(robotMessage);
setTimeout(() => {
gsap.to(robotMessage, {
opacity: 0,
duration: 0.5,
onComplete: () => robotMessage.remove()
});
}, 3000);
});
// Auto-pilot
autoPilot.addEventListener('click', () => {
autoPilotIndicator.style.display = 'block';
// Simulate auto-pilot behavior
let currentSection = 0;
const sections = ['hero', 'services', 'technologies', 'contact'];
function autoScroll() {
if (currentSection < sections.length) {
document.getElementById(sections[currentSection]).scrollIntoView({
behavior: 'smooth'
});
currentSection++;
setTimeout(autoScroll, 3000);
} else {
currentSection = 0;
setTimeout(autoScroll, 3000);
}
}
autoScroll();
// Show auto-pilot message
const autoPilotMessage = document.createElement('div');
autoPilotMessage.className = 'fixed bottom-4 right-4 bg-black bg-opacity-80 border border-green-500 px-4 py-2 rounded font-orbitron z-50';
autoPilotMessage.innerHTML = '<i class="fas fa-space-shuttle mr-2 text-green-500"></i> AUTOPILOTE ACTIVÉ';
document.body.appendChild(autoPilotMessage);
setTimeout(() => {
gsap.to(autoPilotMessage, {
opacity: 0,
duration: 0.5,
onComplete: () => autoPilotMessage.remove()
});
}, 3000);
});
// Mobile menu functionality
const mobileMenuButton = document.getElementById('mobile-menu-button');
const mobileMenu = document.getElementById('mobile-menu');
const closeMobileMenu = document.getElementById('close-mobile-menu');
mobileMenuButton.addEventListener('click', () => {
mobileMenu.style.display = 'block';
document.body.style.overflow = 'hidden';
});
closeMobileMenu.addEventListener('click', () => {
mobileMenu.style.display = 'none';
document.body.style.overflow = '';
});
// Contact form submission
const contactForm = document.getElementById('contact-form');
contactForm.addEventListener('submit', (e) => {
e.preventDefault();
// Show submission effect
const submitMessage = document.createElement('div');
submitMessage.className = 'fixed inset-0 flex items-center justify-center z-50';
submitMessage.innerHTML = `
<div class="bg-black bg-opacity-90 p-10 rounded-lg border border-neon-blue text-center max-w-md">
<i class="fas fa-paper-plane text-neon-blue text-6xl mb-6"></i>
<h3 class="font-orbitron text-2xl mb-4">MESSAGE ENVOYÉ</h3>
<p class="mb-6">Votre message a été transmis aux systèmes centraux.</p>
<button class="cyber-button px-8" id="close-submit">CONTINUER</button>
</div>
`;
document.body.appendChild(submitMessage);
document.getElementById('close-submit').addEventListener('click', () => {
submitMessage.remove();
contactForm.reset();
});
});
// Emergency contact
const emergencyContact = document.getElementById('emergency-contact');
emergencyContact.addEventListener('click', () => {
// Show emergency panel
const emergencyPanel = document.createElement('div');
emergencyPanel.className = 'fixed inset-0 flex items-center justify-center z-50';
emergencyPanel.innerHTML = `
<div class="bg-black bg-opacity-90 p-10 rounded-lg border border-red-500 text-center max-w-md">
<i class="fas fa-exclamation-triangle text-red-500 text-6xl mb-6"></i>
<h3 class="font-orbitron text-2xl mb-4">CONTACT D'URGENCE</h3>
<p class="mb-6">Activation du protocole d'urgence. Tous les systèmes sont en alerte.</p>
<div class="grid grid-cols-2 gap-4">
<button class="cyber-button border-red-500 text-red-500 hover:bg-red-500 hover:text-black" id="confirm-emergency">
<i class="fas fa-check mr-2"></i> CONFIRMER
</button>
<button class="cyber-button" id="cancel-emergency">
<i class="fas fa-times mr-2"></i> ANNULER
</button>
</div>
</div>
`;
document.body.appendChild(emergencyPanel);
document.getElementById('confirm-emergency').addEventListener('click', () => {
// Flash red alert
document.body.style.backgroundColor = 'rgba(255, 0, 0, 0.1)';
setTimeout(() => {
document.body.style.backgroundColor = 'var(--dark-bg)';
}, 500);
// Show emergency activated
const emergencyActivated = document.createElement('div');
emergencyActivated.className = 'fixed inset-0 flex items-center justify-center z-50';
emergencyActivated.innerHTML = `
<div class="bg-black bg-opacity-90 p-10 rounded-lg border border-red-500 text-center max-w-md">
<i class="fas fa-shield-alt text-red-500 text-6xl mb-6"></i>
<h3 class="font-orbitron text-2xl mb-4">PROTOCOLE ACTIVÉ</h3>
<p class="mb-6">Toutes les unités ont été alertées. Assistance en route.</p>
<button class="cyber-button border-red-500 text-red-500 hover:bg-red-500 hover:text-black px-8" id="close-emergency">
<i class="fas fa-times mr-2"></i> FERMER
</button>
</div>
`;
emergencyPanel.remove();
document.body.appendChild(emergencyActivated);
document.getElementById('close-emergency').addEventListener('click', () => {
emergencyActivated.remove();
});
});
document.getElementById('cancel-emergency').addEventListener('click', () => {
emergencyPanel.remove();
});
});
// Terminal control
const terminalControl = document.getElementById('terminal-control');
terminalControl.addEventListener('click', () => {
// Simulate terminal takeover
const terminalBody = document.querySelector('.terminal-body');
const newLines = [
'> Taking control of terminal...',
'> Bypassing security protocols...',
'> Access granted',
'user@nexus:~# <span class="text-neon-blue">systemctl start nexus-core</span>',
'> Starting Nexus Core v4.2.1',
'> All systems online',
'> Welcome, ADMIN'
];
let lineDelay = 0;
newLines.forEach(line => {
setTimeout(() => {
const newLine = document.createElement('div');
newLine.className = 'terminal-line';
newLine.innerHTML = line;
terminalBody.appendChild(newLine);
terminalBody.scrollTop = terminalBody.scrollHeight;
}, lineDelay);
lineDelay += 500;
});
// Change terminal header to show admin access
const terminalHeader = document.querySelector('.terminal-header span');
terminalHeader.textContent = 'nexus-core-terminal [ADMIN]';
terminalHeader.classList.add('text-neon-blue');
// Change button to show success
terminalControl.innerHTML = '<i class="fas fa-check mr-2"></i> CONTRÔLE ACQUIS';
terminalControl.classList.add('bg-neon-blue', 'text-black');
terminalControl.classList.remove('border-neon-blue', 'text-neon-blue');
});
// Activate technologies
const activateTech = document.getElementById('activate-tech');
activateTech.addEventListener('click', () => {
// Animate progress bars
const progressBars = document.querySelectorAll('.h-2.rounded-full');
gsap.to(progressBars[0], { width: '100%', duration: 1, ease: 'power2.out' });
gsap.to(progressBars[1], { width: '100%', duration: 1, ease: 'power2.out', delay: 0.2 });
gsap.to(progressBars[2], { width: '100%', duration: 1, ease: 'power2.out', delay: 0.4 });
// Change button
activateTech.innerHTML = '<i class="fas fa-check mr-2"></i> TECHNOLOGIES ACTIVÉES';
activateTech.classList.add('bg-neon-blue', 'text-black');
// Show activation effect
const techSection = document.getElementById('technologies');
gsap.to(techSection, {
boxShadow: '0 0 50px rgba(0, 255, 252, 0.3)',
duration: 1,
yoyo: true,
repeat: 1
});
});
// Access button
const accessBtn = document.getElementById('access-btn');
accessBtn.addEventListener('click', () => {
// Show access panel
const accessPanel = document.createElement('div');
accessPanel.className = 'fixed inset-0 flex items-center justify-center z-50';
accessPanel.innerHTML = `
<div class="bg-black bg-opacity-90 p-10 rounded-lg border border-neon-blue text-center max-w-md">
<i class="fas fa-key text-neon-blue text-6xl mb-6"></i>
<h3 class="font-orbitron text-2xl mb-4">ACCÈS SYSTÈME</h3>
<div class="mb-6">
<label class="block text-gray-300 mb-2 text-left">IDENTIFIANT</label>
<input type="text" class="w-full bg-gray-900 bg-opacity-50 border border-gray-700 focus:border-neon-blue rounded px-4 py-2 outline-none mb-4">
<label class="block text-gray-300 mb-2 text-left">MOT DE PASSE</label>
<input type="password" class="w-full bg-gray-900 bg-opacity-50 border border-gray-700 focus:border-neon-blue rounded px-4 py-2 outline-none">
</div>
<div class="grid grid-cols-2 gap-4">
<button class="cyber-button border-neon-blue text-neon-blue hover:bg-neon-blue hover:text-black" id="confirm-access">
<i class="fas fa-unlock mr-2"></i> ACCÉDER
</button>
<button class="cyber-button" id="cancel-access">
<i class="fas fa-times mr-2"></i> ANNULER
</button>
</div>
</div>
`;
document.body.appendChild(accessPanel);
document.getElementById('confirm-access').addEventListener('click', () => {
// Show success
const successPanel = document.createElement('div');
successPanel.className = 'fixed inset-0 flex items-center justify-center z-50';
successPanel.innerHTML = `
<div class="bg-black bg-opacity-90 p-10 rounded-lg border border-green-500 text-center max-w-md">
<i class="fas fa-check-circle text-green-500 text-6xl mb-6"></i>
<h3 class="font-orbitron text-2xl mb-4">ACCÈS AUTORISÉ</h3>
<p class="mb-6">Bienvenue dans le système Nexus Core.</p>
<button class="cyber-button border-green-500 text-green-500 hover:bg-green-500 hover:text-black px-8" id="close-access">
<i class="fas fa-arrow-right mr-2"></i> CONTINUER
</button>
</div>
`;
accessPanel.remove();
document.body.appendChild(successPanel);
document.getElementById('close-access').addEventListener('click', () => {
successPanel.remove();
});
});
document.getElementById('cancel-access').addEventListener('click', () => {
accessPanel.remove();
});
});
// Demo button
const demoBtn = document.getElementById('demo-btn');
demoBtn.addEventListener('click', () => {
// Show demo panel
const demoPanel = document.createElement('div');
demoPanel.className = 'fixed inset-0 flex items-center justify-center z-50';
demoPanel.innerHTML = `
<div class="bg-black bg-opacity-90 p-10 rounded-lg border border-neon-pink text-center max-w-md">
<i class="fas fa-play text-neon-pink text-6xl mb-6"></i>
<h3 class="font-orbitron text-2xl mb-4">DÉMO SYSTÈME</h3>
<p class="mb-6">Lancement de la démonstration des capacités Nexus...</p>
<div class="grid grid-cols-2 gap-4">
<button class="cyber-button border-neon-pink text-neon-pink hover:bg-neon-pink hover:text-black" id="confirm-demo">
<i class="fas fa-rocket mr-2"></i> LANCER
</button>
<button class="cyber-button" id="cancel-demo">
<i class="fas fa-times mr-2"></i> ANNULER
</button>
</div>
</div>
`;
document.body.appendChild(demoPanel);
document.getElementById('confirm-demo').addEventListener('click', () => {
</html>