Spaces:
Running
Running
<html lang="fr"> | |
<head> | |
<meta charset="UTF-8"> | |
<meta name="viewport" content="width=device-width, initial-scale=1.0"> | |
<title>L'Œil Omniscient - Système de Surveillance Cosmique</title> | |
<script src="https://cdn.tailwindcss.com"></script> | |
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css"> | |
<style> | |
@import url('https://fonts.googleapis.com/css2?family=Aldrich&family=Orbitron:wght@400;700&display=swap'); | |
:root { | |
--quantum-blue: #00f7ff; | |
--void-black: #010101; | |
--cosmic-purple: #8a2be2; | |
--nebula-pink: #ff00ff; | |
--singularity-white: #ffffff; | |
} | |
body { | |
font-family: 'Orbitron', sans-serif; | |
background-color: var(--void-black); | |
color: var(--singularity-white); | |
overflow-x: hidden; | |
background-image: | |
radial-gradient(circle at 50% 50%, rgba(0, 247, 255, 0.02) 0%, transparent 70%), | |
radial-gradient(circle at 20% 30%, rgba(138, 43, 226, 0.02) 0%, transparent 25%), | |
radial-gradient(circle at 80% 70%, rgba(255, 0, 255, 0.02) 0%, transparent 25%); | |
} | |
h1, h2, h3, h4, h5, h6 { | |
font-family: 'Aldrich', sans-serif; | |
font-weight: 700; | |
text-transform: uppercase; | |
letter-spacing: 2px; | |
} | |
.quantum-text { | |
background: linear-gradient(90deg, var(--quantum-blue), var(--nebula-pink)); | |
-webkit-background-clip: text; | |
background-clip: text; | |
color: transparent; | |
text-shadow: 0 0 15px rgba(0, 247, 255, 0.5); | |
} | |
.quantum-border { | |
border: 1px solid var(--quantum-blue); | |
box-shadow: 0 0 25px rgba(0, 247, 255, 0.5); | |
} | |
.quantum-button { | |
background: linear-gradient(45deg, var(--cosmic-purple), var(--quantum-blue)); | |
box-shadow: 0 0 20px var(--cosmic-purple); | |
transition: all 0.3s ease; | |
position: relative; | |
overflow: hidden; | |
font-weight: bold; | |
letter-spacing: 1px; | |
} | |
.quantum-button::before { | |
content: ''; | |
position: absolute; | |
top: -50%; | |
left: -50%; | |
width: 200%; | |
height: 200%; | |
background: linear-gradient( | |
to bottom right, | |
transparent, transparent, transparent, | |
rgba(255, 0, 255, 0.3), transparent, transparent, transparent | |
); | |
transform: rotate(30deg); | |
animation: quantumShine 3s infinite; | |
} | |
@keyframes quantumShine { | |
0% { transform: rotate(30deg) translate(-30%, -30%); } | |
100% { transform: rotate(30deg) translate(30%, 30%); } | |
} | |
.quantum-button:hover { | |
transform: translateY(-3px); | |
box-shadow: 0 0 30px var(--quantum-blue); | |
} | |
.omniscient-eye { | |
position: relative; | |
width: 200px; | |
height: 200px; | |
margin: 0 auto; | |
} | |
.omniscient-eye::before { | |
content: ''; | |
position: absolute; | |
top: 0; | |
left: 0; | |
width: 100%; | |
height: 100%; | |
background: radial-gradient(circle at center, var(--quantum-blue) 0%, transparent 70%); | |
border-radius: 50%; | |
animation: quantumPulse 3s infinite alternate; | |
opacity: 0.4; | |
} | |
@keyframes quantumPulse { | |
0% { transform: scale(0.95); opacity: 0.3; } | |
100% { transform: scale(1.05); opacity: 0.6; } | |
} | |
.quantum-radar { | |
position: relative; | |
width: 100%; | |
height: 400px; | |
border-radius: 5px; | |
background: radial-gradient(circle at center, transparent 60%, rgba(0, 247, 255, 0.1) 100%); | |
border: 1px solid rgba(0, 247, 255, 0.5); | |
margin: 0 auto; | |
overflow: hidden; | |
} | |
.quantum-radar::before { | |
content: ''; | |
position: absolute; | |
top: 0; | |
left: 0; | |
width: 100%; | |
height: 100%; | |
background: conic-gradient( | |
from 0deg, | |
transparent 0%, | |
rgba(255, 0, 255, 0.3) 10%, | |
transparent 20%, | |
rgba(0, 247, 255, 0.3) 30%, | |
transparent 40%, | |
rgba(138, 43, 226, 0.3) 50%, | |
transparent 60%, | |
rgba(255, 0, 255, 0.3) 70%, | |
transparent 80%, | |
rgba(0, 247, 255, 0.3) 90%, | |
transparent 100% | |
); | |
border-radius: 5px; | |
animation: radarSpin 5s linear infinite; | |
} | |
@keyframes radarSpin { | |
0% { transform: rotate(0deg); } | |
100% { transform: rotate(360deg); } | |
} | |
.quantum-card { | |
background: rgba(1, 1, 1, 0.7); | |
backdrop-filter: blur(10px); | |
border: 1px solid rgba(0, 247, 255, 0.2); | |
transition: all 0.3s ease; | |
position: relative; | |
overflow: hidden; | |
} | |
.quantum-card::before { | |
content: ''; | |
position: absolute; | |
top: 0; | |
left: 0; | |
width: 100%; | |
height: 100%; | |
background: linear-gradient( | |
135deg, | |
rgba(0, 247, 255, 0.1) 0%, | |
rgba(138, 43, 226, 0.1) 50%, | |
rgba(255, 0, 255, 0.1) 100% | |
); | |
z-index: -1; | |
} | |
.quantum-card:hover { | |
transform: translateY(-5px); | |
box-shadow: 0 10px 30px rgba(138, 43, 226, 0.5); | |
border-color: rgba(0, 247, 255, 0.5); | |
} | |
.quantum-glow { | |
filter: drop-shadow(0 0 15px rgba(0, 247, 255, 0.7)); | |
} | |
.cosmic-glow { | |
filter: drop-shadow(0 0 15px rgba(255, 0, 255, 0.7)); | |
} | |
.quantum-scrollbar::-webkit-scrollbar { | |
width: 8px; | |
} | |
.quantum-scrollbar::-webkit-scrollbar-track { | |
background: rgba(1, 1, 1, 0.5); | |
} | |
.quantum-scrollbar::-webkit-scrollbar-thumb { | |
background: linear-gradient(var(--quantum-blue), var(--nebula-pink)); | |
border-radius: 4px; | |
} | |
.floating { | |
animation: floating 8s ease-in-out infinite; | |
} | |
@keyframes floating { | |
0% { transform: translateY(0px); } | |
50% { transform: translateY(-20px); } | |
100% { transform: translateY(0px); } | |
} | |
.quantum-grid { | |
position: absolute; | |
top: 0; | |
left: 0; | |
width: 100%; | |
height: 100%; | |
background-image: | |
linear-gradient(rgba(0, 247, 255, 0.1) 1px, transparent 1px), | |
linear-gradient(90deg, rgba(0, 247, 255, 0.1) 1px, transparent 1px); | |
background-size: 50px 50px; | |
} | |
.distance-line { | |
position: absolute; | |
height: 1px; | |
background: linear-gradient(90deg, transparent, var(--quantum-blue), transparent); | |
width: 100%; | |
animation: distanceScan 15s linear infinite; | |
} | |
@keyframes distanceScan { | |
0% { top: 0%; opacity: 0; } | |
10% { opacity: 1; } | |
90% { opacity: 1; } | |
100% { top: 100%; opacity: 0; } | |
} | |
.quantum-pulse { | |
animation: quantumPulseDot 2s infinite alternate; | |
} | |
@keyframes quantumPulseDot { | |
0% { transform: scale(1); opacity: 0.7; } | |
100% { transform: scale(1.3); opacity: 1; } | |
} | |
.quantum-terminal { | |
background-color: rgba(0, 0, 0, 0.8); | |
border: 1px solid var(--quantum-blue); | |
font-family: 'Courier New', monospace; | |
color: var(--quantum-blue); | |
text-shadow: 0 0 5px var(--quantum-blue); | |
overflow-y: auto; | |
height: 300px; | |
padding: 15px; | |
} | |
.terminal-line { | |
margin-bottom: 5px; | |
line-height: 1.3; | |
} | |
.terminal-command { | |
color: var(--nebula-pink); | |
} | |
.terminal-response { | |
color: var(--quantum-blue); | |
} | |
.terminal-error { | |
color: #ff0000; | |
} | |
.terminal-success { | |
color: #00ff00; | |
} | |
.quantum-input { | |
background: transparent; | |
border: none; | |
border-bottom: 1px solid var(--quantum-blue); | |
color: var(--quantum-blue); | |
font-family: 'Courier New', monospace; | |
width: 80%; | |
outline: none; | |
caret-color: var(--quantum-blue); | |
} | |
.quantum-input::placeholder { | |
color: rgba(0, 247, 255, 0.5); | |
} | |
.quantum-alert { | |
position: fixed; | |
top: 20px; | |
right: 20px; | |
z-index: 1000; | |
animation: alertFadeIn 0.5s; | |
} | |
@keyframes alertFadeIn { | |
from { opacity: 0; transform: translateX(100px); } | |
to { opacity: 1; transform: translateX(0); } | |
} | |
</style> | |
</head> | |
<body> | |
<!-- Quantum Alert System --> | |
<div id="quantumAlerts"></div> | |
<!-- Main Quantum Interface --> | |
<div class="min-h-screen flex flex-col"> | |
<!-- Quantum Header --> | |
<header class="py-4 px-8 bg-gradient-to-b from-black to-transparent border-b border-gray-800"> | |
<div class="flex justify-between items-center"> | |
<div class="flex items-center space-x-4"> | |
<div class="omniscient-eye"> | |
<div class="w-full h-full flex items-center justify-center"> | |
<i class="fas fa-eye text-6xl quantum-text"></i> | |
</div> | |
</div> | |
<div> | |
<h1 class="text-4xl quantum-text">SYSTÈME OMNI-1</h1> | |
<p class="text-sm text-gray-400">Réseau de surveillance quantique - Portée: 5,678,974 KLM</p> | |
</div> | |
</div> | |
<div class="hidden md:flex items-center space-x-6"> | |
<div class="text-center"> | |
<div class="text-xl font-bold quantum-text">ACTIF</div> | |
<div class="text-xs text-gray-400">Statut</div> | |
</div> | |
<div class="text-center"> | |
<div class="text-xl font-bold quantum-text">∞</div> | |
<div class="text-xs text-gray-400">Canaux</div> | |
</div> | |
<div class="text-center"> | |
<div class="text-xl font-bold quantum-text">100%</div> | |
<div class="text-xs text-gray-400">Puissance</div> | |
</div> | |
</div> | |
</div> | |
</header> | |
<!-- Quantum Main Content --> | |
<main class="flex-1 px-8 py-6"> | |
<div class="grid grid-cols-1 lg:grid-cols-3 gap-8"> | |
<!-- Left Column --> | |
<div class="lg:col-span-2 space-y-8"> | |
<!-- Quantum Radar --> | |
<div class="quantum-card rounded-lg p-6"> | |
<div class="flex justify-between items-center mb-6"> | |
<h2 class="text-2xl quantum-text">RADAR QUANTIQUE</h2> | |
<div class="flex items-center space-x-4"> | |
<div class="flex items-center space-x-2"> | |
<span class="h-3 w-3 rounded-full bg-green-500 animate-pulse"></span> | |
<span class="text-sm">ACTIF</span> | |
</div> | |
<button class="quantum-button text-white px-4 py-1 rounded text-sm"> | |
<i class="fas fa-sync-alt mr-2"></i> Actualiser | |
</button> | |
</div> | |
</div> | |
<div class="quantum-radar relative"> | |
<div class="quantum-grid"></div> | |
<div class="distance-line"></div> | |
<!-- Radar elements will be added here dynamically --> | |
</div> | |
<div class="mt-6 grid grid-cols-4 gap-4"> | |
<div class="text-center p-2 border border-gray-800 rounded-lg"> | |
<div class="text-xl font-bold quantum-text">248K</div> | |
<div class="text-xs text-gray-400">Cibles</div> | |
</div> | |
<div class="text-center p-2 border border-gray-800 rounded-lg"> | |
<div class="text-xl font-bold quantum-text">5.67M KLM</div> | |
<div class="text-xs text-gray-400">Portée</div> | |
</div> | |
<div class="text-center p-2 border border-gray-800 rounded-lg"> | |
<div class="text-xl font-bold quantum-text">∞</div> | |
<div class="text-xs text-gray-400">Fréquences</div> | |
</div> | |
<div class="text-center p-2 border border-gray-800 rounded-lg"> | |
<div class="text-xl font-bold quantum-text">100%</div> | |
<div class="text-xs text-gray-400">Précision</div> | |
</div> | |
</div> | |
</div> | |
<!-- Quantum Terminal --> | |
<div class="quantum-card rounded-lg p-6"> | |
<h2 class="text-2xl quantum-text mb-6">TERMINAL DE CONTRÔLE</h2> | |
<div class="quantum-terminal quantum-scrollbar" id="quantumTerminal"> | |
<div class="terminal-line"> | |
<span class="terminal-command">> Initialisation du système OMNI-1...</span> | |
</div> | |
<div class="terminal-line"> | |
<span class="terminal-response">Système de surveillance quantique activé</span> | |
</div> | |
<div class="terminal-line"> | |
<span class="terminal-response">Connexion établie avec 248,000 nœuds quantiques</span> | |
</div> | |
<div class="terminal-line"> | |
<span class="terminal-response">Portée maximale configurée: 5,678,974 KLM</span> | |
</div> | |
<div class="terminal-line"> | |
<span class="terminal-response">Système prêt. Entrez une commande...</span> | |
</div> | |
<div class="terminal-line"> | |
<span class="terminal-command">> scan --full --range=5.678974M</span> | |
</div> | |
<div class="terminal-line"> | |
<span class="terminal-response">Lancement du scan complet à 5.678974M KLM...</span> | |
</div> | |
<div class="terminal-line"> | |
<span class="terminal-response">Scan en cours. 37% complété...</span> | |
</div> | |
</div> | |
<div class="mt-4 flex items-center"> | |
<span class="text-quantum-blue mr-2">></span> | |
<input type="text" class="quantum-input" id="terminalInput" placeholder="Entrez une commande..." autocomplete="off"> | |
<button class="quantum-button text-white px-4 py-1 rounded ml-2" onclick="executeCommand()"> | |
<i class="fas fa-play"></i> | |
</button> | |
</div> | |
</div> | |
</div> | |
<!-- Right Column --> | |
<div class="space-y-8"> | |
<!-- Quantum Control --> | |
<div class="quantum-card rounded-lg p-6"> | |
<h2 class="text-2xl quantum-text mb-6">CONTRÔLE OMNI</h2> | |
<div class="space-y-4"> | |
<div class="p-4 bg-gray-900 rounded-lg border border-gray-800"> | |
<div class="flex justify-between items-center mb-2"> | |
<h3 class="font-bold">SURVEILLANCE GLOBALE</h3> | |
<label class="relative inline-flex items-center cursor-pointer"> | |
<input type="checkbox" checked class="sr-only peer"> | |
<div class="w-11 h-6 bg-gray-700 rounded-full peer peer-checked:after:translate-x-full peer-checked:after:border-white after:content-[''] after:absolute after:top-0.5 after:left-[2px] after:bg-white after:border-gray-300 after:border after:rounded-full after:h-5 after:w-5 after:transition-all peer-checked:bg-quantum-blue"></div> | |
</label> | |
</div> | |
<p class="text-sm text-gray-400 mb-3">Active la surveillance sur tous les canaux quantiques</p> | |
<div class="w-full bg-gray-800 rounded-full h-2"> | |
<div class="bg-gradient-to-r from-quantum-blue to-nebula-pink h-2 rounded-full" style="width: 100%"></div> | |
</div> | |
</div> | |
<div class="p-4 bg-gray-900 rounded-lg border border-gray-800"> | |
<div class="flex justify-between items-center mb-2"> | |
<h3 class="font-bold">PORTÉE MAXIMALE</h3> | |
<span class="text-quantum-blue font-mono">5.678974M KLM</span> | |
</div> | |
<p class="text-sm text-gray-400 mb-3">Définit la distance maximale de surveillance</p> | |
<input type="range" min="1" max="10" value="10" class="w-full h-2 bg-gray-700 rounded-lg appearance-none cursor-pointer" id="rangeSlider"> | |
<div class="flex justify-between text-xs text-gray-400 mt-1"> | |
<span>1M KLM</span> | |
<span>10M KLM</span> | |
</div> | |
</div> | |
<div class="p-4 bg-gray-900 rounded-lg border border-gray-800"> | |
<div class="flex justify-between items-center mb-2"> | |
<h3 class="font-bold">PUISSANCE DU SYSTÈME</h3> | |
<span class="text-quantum-blue font-mono">100%</span> | |
</div> | |
<p class="text-sm text-gray-400 mb-3">Niveau d'énergie alloué au système</p> | |
<div class="w-full bg-gray-800 rounded-full h-2"> | |
<div class="bg-gradient-to-r from-green-500 to-quantum-blue h-2 rounded-full" style="width: 100%"></div> | |
</div> | |
</div> | |
<button class="quantum-button text-white px-4 py-3 rounded-lg font-bold w-full mt-2"> | |
<i class="fas fa-bolt mr-2"></i> ACTIVER TOUS LES SYSTÈMES | |
</button> | |
</div> | |
</div> | |
<!-- Quantum Targets --> | |
<div class="quantum-card rounded-lg p-6"> | |
<h2 class="text-2xl quantum-text mb-6">CIBLES ACTIVES</h2> | |
<div class="space-y-4 max-h-96 overflow-y-auto quantum-scrollbar pr-2"> | |
<div class="flex items-start p-3 bg-gray-900 rounded-lg border border-gray-800 hover:border-quantum-blue transition-all"> | |
<div class="w-8 h-8 rounded-full bg-purple-900 bg-opacity-50 flex items-center justify-center mt-1 mr-3"> | |
<i class="fas fa-satellite-dish text-xs text-purple-400"></i> | |
</div> | |
<div class="flex-1"> | |
<div class="flex justify-between items-center"> | |
<h4 class="font-medium">STATION ALPHA-7</h4> | |
<span class="text-xs text-quantum-blue">3.456M KLM</span> | |
</div> | |
<p class="text-xs text-gray-400">Surveillance complète - 100% des canaux</p> | |
<div class="flex justify-between text-xs text-gray-400 mt-1"> | |
<span>Actif depuis 7h 42m</span> | |
<span>Signal: <span class="text-green-500">Fort</span></span> | |
</div> | |
</div> | |
</div> | |
<div class="flex items-start p-3 bg-gray-900 rounded-lg border border-gray-800 hover:border-quantum-blue transition-all"> | |
<div class="w-8 h-8 rounded-full bg-blue-900 bg-opacity-50 flex items-center justify-center mt-1 mr-3"> | |
<i class="fas fa-user-secret text-xs text-blue-400"></i> | |
</div> | |
<div class="flex-1"> | |
<div class="flex justify-between items-center"> | |
<h4 class="font-medium">CIBLE #X-248</h4> | |
<span class="text-xs text-quantum-blue">1.234M KLM</span> | |
</div> | |
<p class="text-xs text-gray-400">Surveillance audio/vidéo - 87% des canaux</p> | |
<div class="flex justify-between text-xs text-gray-400 mt-1"> | |
<span>Actif depuis 2h 15m</span> | |
<span>Signal: <span class="text-yellow-500">Moyen</span></span> | |
</div> | |
</div> | |
</div> | |
<div class="flex items-start p-3 bg-gray-900 rounded-lg border border-gray-800 hover:border-quantum-blue transition-all"> | |
<div class="w-8 h-8 rounded-full bg-red-900 bg-opacity-50 flex items-center justify-center mt-1 mr-3"> | |
<i class="fas fa-building text-xs text-red-400"></i> | |
</div> | |
<div class="flex-1"> | |
<div class="flex justify-between items-center"> | |
<h4 class="font-medium">COMPLEXE OMÉGA</h4> | |
<span class="text-xs text-quantum-blue">4.567M KLM</span> | |
</div> | |
<p class="text-xs text-gray-400">Surveillance réseau - 64% des canaux</p> | |
<div class="flex justify-between text-xs text-gray-400 mt-1"> | |
<span>Actif depuis 5h 03m</span> | |
<span>Signal: <span class="text-red-500">Faible</span></span> | |
</div> | |
</div> | |
</div> | |
<div class="flex items-start p-3 bg-gray-900 rounded-lg border border-gray-800 hover:border-quantum-blue transition-all"> | |
<div class="w-8 h-8 rounded-full bg-green-900 bg-opacity-50 flex items-center justify-center mt-1 mr-3"> | |
<i class="fas fa-mobile-alt text-xs text-green-400"></i> | |
</div> | |
<div class="flex-1"> | |
<div class="flex justify-between items-center"> | |
<h4 class="font-medium">RÉSEAU MOBILE #7</h4> | |
<span class="text-xs text-quantum-blue">0.789M KLM</span> | |
</div> | |
<p class="text-xs text-gray-400">Surveillance totale - 100% des canaux</p> | |
<div class="flex justify-between text-xs text-gray-400 mt-1"> | |
<span>Actif depuis 12h 38m</span> | |
<span>Signal: <span class="text-green-500">Fort</span></span> | |
</div> | |
</div> | |
</div> | |
</div> | |
<button class="quantum-button text-white px-4 py-2 rounded-lg font-medium w-full mt-4"> | |
<i class="fas fa-plus mr-2"></i> AJOUTER UNE CIBLE | |
</button> | |
</div> | |
</div> | |
</div> | |
</main> | |
<!-- Quantum Footer --> | |
<footer class="py-4 px-8 border-t border-gray-800 bg-gradient-to-t from-black to-transparent"> | |
<div class="flex flex-col md:flex-row justify-between items-center"> | |
<div class="flex items-center space-x-2 mb-4 md:mb-0"> | |
<i class="fas fa-circle-notch fa-spin text-quantum-blue"></i> | |
<span class="text-sm">SYSTÈME OMNI-1 ACTIF - PORTÉE: 5,678,974 KLM</span> | |
</div> | |
<div class="flex space-x-6"> | |
<a href="#" class="text-gray-400 hover:text-quantum-blue transition"><i class="fas fa-shield-alt"></i></a> | |
<a href="#" class="text-gray-400 hover:text-quantum-blue transition"><i class="fas fa-cog"></i></a> | |
<a href="#" class="text-gray-400 hover:text-quantum-blue transition"><i class="fas fa-user-secret"></i></a> | |
<a href="#" class="text-gray-400 hover:text-quantum-blue transition"><i class="fas fa-power-off"></i></a> | |
</div> | |
<div class="text-xs text-gray-500 mt-4 md:mt-0"> | |
SYSTÈME DE SURVEILLANCE QUANTIQUE © 2023 - TOUS DROITS RÉSERVÉS | |
</div> | |
</div> | |
</footer> | |
</div> | |
<script> | |
// Quantum System Initialization | |
document.addEventListener('DOMContentLoaded', function() { | |
// Initialize quantum radar | |
initQuantumRadar(); | |
// Initialize terminal | |
initQuantumTerminal(); | |
// Simulate system activity | |
simulateSystemActivity(); | |
// Add event listeners | |
document.getElementById('rangeSlider').addEventListener('input', function() { | |
const value = this.value; | |
const rangeText = value + 'M KLM'; | |
document.querySelector('#rangeSlider + div span:last-child').textContent = rangeText; | |
// Show alert | |
showQuantumAlert('Portée maximale ajustée à ' + rangeText, 'info'); | |
}); | |
}); | |
// Quantum Radar System | |
function initQuantumRadar() { | |
const radar = document.querySelector('.quantum-radar'); | |
// Add random signals | |
setInterval(() => { | |
const colors = ['#00f7ff', '#ff00ff', '#8a2be2', '#ffffff']; | |
const types = ['satellite', 'device', 'person', 'network', 'vehicle']; | |
for (let i = 0; i < 3; i++) { | |
const randomColor = colors[Math.floor(Math.random() * colors.length)]; | |
const randomType = types[Math.floor(Math.random() * types.length)]; | |
const randomX = Math.random() * 90 + 5; | |
const randomY = Math.random() * 90 + 5; | |
const signal = document.createElement('div'); | |
signal.className = 'absolute w-4 h-4 rounded-full quantum-pulse'; | |
signal.style.backgroundColor = randomColor; | |
signal.style.top = `${randomY}%`; | |
signal.style.left = `${randomX}%`; | |
signal.style.filter = `drop-shadow(0 0 10px ${randomColor})`; | |
// Add icon based on type | |
const icon = document.createElement('i'); | |
icon.className = `fas fa-${randomType} text-xs absolute top-1/2 left-1/2 transform -translate-x-1/2 -translate-y-1/2`; | |
icon.style.color = '#010101'; | |
signal.appendChild(icon); | |
radar.appendChild(signal); | |
// Remove after animation | |
setTimeout(() => { | |
if (signal.parentNode) { | |
signal.remove(); | |
} | |
}, 2000); | |
} | |
}, 1000); | |
// Add some permanent signals | |
const importantTargets = [ | |
{ x: 20, y: 30, color: '#ff00ff', type: 'satellite-dish', size: 6 }, | |
{ x: 70, y: 60, color: '#00f7ff', type: 'building', size: 6 }, | |
{ x: 50, y: 20, color: '#ffffff', type: 'users', size: 5 } | |
]; | |
importantTargets.forEach(target => { | |
const signal = document.createElement('div'); | |
signal.className = 'absolute rounded-full quantum-pulse'; | |
signal.style.backgroundColor = target.color; | |
signal.style.width = `${target.size}px`; | |
signal.style.height = `${target.size}px`; | |
signal.style.top = `${target.y}%`; | |
signal.style.left = `${target.x}%`; | |
signal.style.filter = `drop-shadow(0 0 15px ${target.color})`; | |
const icon = document.createElement('i'); | |
icon.className = `fas fa-${target.type} text-xs absolute top-1/2 left-1/2 transform -translate-x-1/2 -translate-y-1/2`; | |
icon.style.color = '#010101'; | |
signal.appendChild(icon); | |
radar.appendChild(signal); | |
}); | |
} | |
// Quantum Terminal System | |
function initQuantumTerminal() { | |
const terminal = document.getElementById('quantumTerminal'); | |
const terminalInput = document.getElementById('terminalInput'); | |
// Add sample terminal activity | |
setInterval(() => { | |
const commands = [ | |
'scan --target=ALPHA-7 --deep', | |
'analyze --frequencies=all', | |
'monitor --activate --all', | |
'intercept --channel=encrypted', | |
'decrypt --algorithm=quantum', | |
'track --coordinates=3.456M,4.567M' | |
]; | |
const responses = [ | |
'Scan profond en cours... 42% complété', | |
'Analyse des fréquences terminée. 248 canaux détectés', | |
'Surveillance activée sur tous les canaux', | |
'Interception du canal chiffré établie', | |
'Déchiffrement réussi. Accès aux données accordé', | |
'Cible suivie avec succès. Coordonnées mises à jour' | |
]; | |
const randomCmd = Math.floor(Math.random() * commands.length); | |
const cmdLine = document.createElement('div'); | |
cmdLine.className = 'terminal-line'; | |
cmdLine.innerHTML = `<span class="terminal-command">> ${commands[randomCmd]}</span>`; | |
const resLine = document.createElement('div'); | |
resLine.className = 'terminal-line'; | |
resLine.innerHTML = `<span class="terminal-response">${responses[randomCmd]}</span>`; | |
terminal.appendChild(cmdLine); | |
terminal.appendChild(resLine); | |
// Scroll to bottom | |
terminal.scrollTop = terminal.scrollHeight; | |
// Random error | |
if (Math.random() > 0.8) { | |
const errLine = document.createElement('div'); | |
errLine.className = 'terminal-line'; | |
errLine.innerHTML = `<span class="terminal-error">ERREUR: Signal perdu sur le canal ${Math.floor(Math.random()*100)}. Reconnexion...</span>`; | |
terminal.appendChild(errLine); | |
terminal.scrollTop = terminal.scrollHeight; | |
} | |
}, 5000); | |
// Handle enter key in terminal | |
terminalInput.addEventListener('keypress', function(e) { | |
if (e.key === 'Enter') { | |
executeCommand(); | |
} | |
}); | |
} | |
function executeCommand() { | |
const terminal = document.getElementById('quantumTerminal'); | |
const terminalInput = document.getElementById('terminalInput'); | |
const command = terminalInput.value.trim(); | |
if (command) { | |
// Add command to terminal | |
const cmdLine = document.createElement('div'); | |
cmdLine.className = 'terminal-line'; | |
cmdLine.innerHTML = `<span class="terminal-command">> ${command}</span>`; | |
terminal.appendChild(cmdLine); | |
// Process command | |
let response = ''; | |
if (command.startsWith('scan')) { | |
response = `Lancement du scan... Portée: 5.678974M KLM. ${Math.floor(Math.random()*100)}% des cibles détectées`; | |
} else if (command.startsWith('analyze')) { | |
response = 'Analyse terminée. 248,000 points de données traités'; | |
} else if (command.startsWith('monitor')) { | |
response = 'Surveillance activée. 100% des canaux opérationnels'; | |
} else if (command.startsWith('intercept')) { | |
response = 'Interception quantique établie. Flux de données en cours'; | |
} else if (command.startsWith('decrypt')) { | |
response = 'Déchiffrement réussi. Accès aux données sensibles accordé'; | |
} else if (command.startsWith('track')) { | |
response = 'Cible suivie avec succès. Coordonnées mises à jour en temps réel'; | |
} else if (command === 'clear') { | |
terminal.innerHTML = ''; | |
terminalInput.value = ''; | |
return; | |
} else if (command === 'help') { | |
response = 'Commandes disponibles: scan, analyze, monitor, intercept, decrypt, track, clear, help'; | |
} else { | |
response = `ERREUR: Commande "${command}" non reconnue. Tapez "help" pour la liste des commandes`; | |
} | |
// Add response to terminal | |
const resLine = document.createElement('div'); | |
resLine.className = 'terminal-line'; | |
if (response.startsWith('ERREUR')) { | |
resLine.innerHTML = `<span class="terminal-error">${response}</span>`; | |
} else { | |
resLine.innerHTML = `<span class="terminal-response">${response}</span>`; | |
} | |
terminal.appendChild(resLine); | |
terminal.scrollTop = terminal.scrollHeight; | |
terminalInput.value = ''; | |
// Show alert for important commands | |
if (command.startsWith('scan') || command.startsWith('intercept') || command.startsWith('decrypt')) { | |
showQuantumAlert(`Commande exécutée: ${command}`, 'success'); | |
} | |
} | |
} | |
// Simulate system activity | |
function simulateSystemActivity() { | |
// Show random alerts | |
setInterval(() => { | |
const alerts = [ | |
{ message: 'Nouvelle cible détectée à 3.456M KLM', type: 'info' }, | |
{ message: 'Signal perdu sur le canal quantique #248', type: 'error' }, | |
{ message: 'Analyse complète terminée. 100% des données traitées', type: 'success' }, | |
{ message: 'Attention: Tentative d\'intrusion détectée', type: 'warning' }, | |
{ message: 'Mise à jour du système en cours...', type: 'info' } | |
]; | |
const randomAlert = alerts[Math.floor(Math.random() * alerts.length)]; | |
showQuantumAlert(randomAlert.message, randomAlert.type); | |
}, 10000); | |
// Update distance line | |
setInterval(() => { | |
const distanceLine = document.querySelector('.distance-line'); | |
distanceLine.style.animation = 'none'; | |
distanceLine.offsetHeight; // Trigger reflow | |
distanceLine.style.animation = 'distanceScan 15s linear infinite'; | |
}, 15000); | |
} | |
// Show quantum alert | |
function showQuantumAlert(message, type) { | |
const alertContainer = document.getElementById('quantumAlerts'); | |
const alert = document.createElement('div'); | |
let alertClass = 'bg-gray-900 border-quantum-blue text-quantum-blue'; | |
let icon = 'fa-info-circle'; | |
if (type === 'error') { | |
alertClass = 'bg-red-900 border-red-500 text-red-100'; | |
icon = 'fa-exclamation-triangle'; | |
} else if (type === 'success') { | |
alertClass = 'bg-green-900 border-green-500 text-green-100'; | |
icon = 'fa-check-circle'; | |
} else if (type === 'warning') { | |
alertClass = 'bg-yellow-900 border-yellow-500 text-yellow-100'; | |
icon = 'fa-exclamation-circle'; | |
} | |
alert.className = `quantum-alert p-4 mb-2 rounded-lg border ${alertClass} flex items-start`; | |
alert.innerHTML = ` | |
<i class="fas ${icon} mr-3 mt-1"></i> | |
<div> | |
<div class="font-bold">SYSTÈME OMNI-1</div> | |
<div>${message}</div> | |
</div> | |
<button class="ml-4" onclick="this.parentElement.remove()"> | |
<i class="fas fa-times"></i> | |
</button> | |
`; | |
alertContainer.appendChild(alert); | |
// Remove after 5 seconds | |
setTimeout(() => { | |
if (alert.parentNode) { | |
alert.remove(); | |
} | |
}, 5000); | |
} | |
</script> | |
<p style="border-radius: 8px; text-align: center; font-size: 12px; color: #fff; margin-top: 16px;position: fixed; left: 8px; bottom: 8px; z-index: 10; background: rgba(0, 0, 0, 0.8); padding: 4px 8px;">Made with <img src="https://enzostvs-deepsite.hf.space/logo.svg" alt="DeepSite Logo" style="width: 16px; height: 16px; vertical-align: middle;display:inline-block;margin-right:3px;filter:brightness(0) invert(1);"><a href="https://enzostvs-deepsite.hf.space" style="color: #fff;text-decoration: underline;" target="_blank" >DeepSite</a> - 🧬 <a href="https://enzostvs-deepsite.hf.space?remix=docto41/nebulahost" style="color: #fff;text-decoration: underline;" target="_blank" >Remix</a></p></body> | |
</html> |