<!
DOCTYPE html>
<html lang="fr">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>TENSHI - Téléchargement</title>
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?
family=Poppins:wght@400;500;600&display=swap" rel="stylesheet">
<style>
* {
margin: 0;
padding: 0;
box-sizing: border-box;
}
body {
font-family: 'Poppins', sans-serif;
background-color: #000;
color: #fff;
min-height: 100vh;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
position: relative;
overflow: hidden;
}
/* Grille d'arrière-plan avec flou */
.grid-background {
position: absolute;
inset: 0;
z-index: 0;
background-image:
linear-gradient(rgba(255, 255, 255, 0.03) 1px, transparent 1px),
linear-gradient(90deg, rgba(255, 255, 255, 0.03) 1px, transparent
1px);
background-size: 40px 40px;
}
/* Effets lumineux en arrière-plan */
.glow-effect {
position: absolute;
width: 100%;
height: 100%;
z-index: 1;
overflow: hidden;
}
.glow-1 {
position: absolute;
top: 30%;
left: 20%;
width: 300px;
height: 300px;
background: radial-gradient(circle, rgba(255, 255, 255, 0.1) 0%,
rgba(255, 255, 255, 0) 70%);
border-radius: 50%;
filter: blur(40px);
animation: float 15s infinite ease-in-out;
}
.glow-2 {
position: absolute;
bottom: 20%;
right: 15%;
width: 250px;
height: 250px;
background: radial-gradient(circle, rgba(255, 255, 255, 0.08) 0%,
rgba(255, 255, 255, 0) 70%);
border-radius: 50%;
filter: blur(30px);
animation: float 12s infinite ease-in-out reverse;
}
.blur-overlay {
position: absolute;
inset: 0;
backdrop-filter: blur(3px);
z-index: 2;
background: rgba(0, 0, 0, 0.3);
}
.container {
z-index: 10;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
gap: 64px;
padding: 16px;
position: relative;
}
.logo-container {
display: flex;
flex-direction: column;
align-items: center;
position: relative;
}
.logo-glow {
position: absolute;
width: 150px;
height: 150px;
background: radial-gradient(circle, rgba(255, 255, 255, 0.15) 0%,
rgba(255, 255, 255, 0) 70%);
border-radius: 50%;
filter: blur(20px);
z-index: -1;
}
.logo {
width: 140px;
height: 140px;
margin-bottom: 24px;
filter: drop-shadow(0 0 8px rgba(255, 255, 255, 0.5));
animation: pulse 4s infinite ease-in-out;
position: relative;
object-fit: contain;
}
.title {
font-size: 3rem;
font-weight: 700;
letter-spacing: 0.2em;
text-transform: uppercase;
background: linear-gradient(to right, #fff, #aaa);
-webkit-background-clip: text;
background-clip: text;
color: transparent;
text-shadow: 0 0 15px rgba(255, 255, 255, 0.3);
margin-bottom: 8px;
}
.subtitle {
font-size: 1rem;
font-weight: 300;
letter-spacing: 0.1em;
color: rgba(255, 255, 255, 0.7);
text-transform: uppercase;
margin-top: 4px;
}
.download-button {
background-color: white;
color: black;
font-family: 'Poppins', sans-serif;
font-weight: 500;
font-size: 1.1rem;
letter-spacing: 0.03em;
padding: 16px 32px;
border-radius: 50px;
border: none;
display: flex;
align-items: center;
gap: 12px;
cursor: pointer;
box-shadow: 0 4px 10px rgba(0, 0, 0, 0.1);
transition: all 0.3s ease;
}
.download-button:hover {
transform: translateY(-5px);
box-shadow: 0 8px 15px rgba(0, 0, 0, 0.2);
}
.download-button:active {
transform: translateY(-2px);
box-shadow: 0 4px 8px rgba(0, 0, 0, 0.15);
}
.download-icon {
width: 22px;
height: 22px;
}
.particles {
position: absolute;
width: 100%;
height: 100%;
z-index: 3;
pointer-events: none;
}
.particle {
position: absolute;
width: 3px;
height: 3px;
background-color: rgba(255, 255, 255, 0.3);
border-radius: 50%;
animation: float-up var(--duration) infinite ease-in-out;
opacity: var(--opacity);
animation-delay: var(--delay);
}
@keyframes pulse {
0%, 100% {
transform: scale(1);
opacity: 1;
}
50% {
transform: scale(1.05);
opacity: 0.9;
}
}
@keyframes float {
0%, 100% {
transform: translate(0, 0);
}
25% {
transform: translate(-20px, 20px);
}
50% {
transform: translate(10px, -15px);
}
75% {
transform: translate(15px, 10px);
}
}
@keyframes float-up {
0% {
transform: translateY(100vh) translateX(0);
opacity: var(--opacity);
}
100% {
transform: translateY(-100px) translateX(var(--drift));
opacity: 0;
}
}
@media (max-width: 768px) {
.title {
font-size: 2.5rem;
}
.logo {
width: 120px;
height: 120px;
}
.download-button {
padding: 14px 28px;
font-size: 1rem;
}
}
</style>
</head>
<body>
<div class="grid-background"></div>
<div class="glow-effect">
<div class="glow-1"></div>
<div class="glow-2"></div>
</div>
<div class="blur-overlay"></div>
<div class="particles" id="particles"></div>
<div class="container">
<div class="logo-container">
<div class="logo-glow"></div>
<img
src="https://hebbkx1anhila5yf.public.blob.vercel-storage.com/image-
f7Wkz0yP54GUU57W6msbxPzVZBdWFX.png" alt="TENSHI Logo" class="logo">
<h1 class="title">TENSHI</h1>
<p class="subtitle">Expérience Ultime</p>
</div>
<button class="download-button" id="downloadBtn">
<svg class="download-icon" xmlns="http://www.w3.org/2000/svg"
viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-
linecap="round" stroke-linejoin="round">
<path d="M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4"></path>
<polyline points="7 10 12 15 17 10"></polyline>
<line x1="12" y1="15" x2="12" y2="3"></line>
</svg>
Télécharger l'application
</button>
</div>
<script>
document.getElementById('downloadBtn').addEventListener('click', function()
{
const downloadUrl = 'le .exe ici'
const link = document.createElement('a')
link.href = downloadUrl
link.download = 'nom du ficher'
document.body.appendChild(link)
link.click()
document.body.removeChild(link)
});
function createParticles() {
const particlesContainer = document.getElementById('particles')
const particleCount = 30
for (let i = 0; i < particleCount; i++) {
const particle = document.createElement('div')
particle.classList.add('particle')
const posX = Math.random() * 100
particle.style.left = `${posX}%`
const duration = 15 + Math.random() * 20
const delay = Math.random() * 10
const opacity = 0.1 + Math.random() * 0.3
const drift = -50 + Math.random() * 100
particle.style.setProperty('--duration', `${duration}s`)
particle.style.setProperty('--delay', `${delay}s`)
particle.style.setProperty('--opacity', opacity)
particle.style.setProperty('--drift', `${drift}px`)
particlesContainer.appendChild(particle)
}
}
window.addEventListener('load', createParticles)
</script>
</body>
</html>