memory-alchemist-ai / index.html
Adamchab's picture
Les photos doivent être envoyé à rachid.chabi@rocket-school.eu
d3d2b5e verified
<!DOCTYPE html>
<html lang="fr">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Souvenir+ | Redonnez vie à vos souvenirs</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=Playfair+Display:wght@400;700&family=Montserrat:wght@300;400;500;600&display=swap" rel="stylesheet">
<script src="https://cdn.tailwindcss.com"></script>
<script src="https://cdn.jsdelivr.net/npm/feather-icons/dist/feather.min.js"></script>
<script>
tailwind.config = {
theme: {
extend: {
colors: {
sepia: {
50: '#f8f5f0',
100: '#f0e6d9',
200: '#e1cdb3',
300: '#d2b48c',
400: '#c19a66',
500: '#a67c52',
600: '#8c6744',
700: '#6f5236',
800: '#533d28',
900: '#362819',
},
gold: {
50: '#fffdf5',
100: '#fff7e0',
200: '#ffecbf',
300: '#ffe09e',
400: '#ffd47d',
500: '#ffc85c',
600: '#cc9e3a',
700: '#997429',
800: '#664a17',
900: '#332506',
}
},
fontFamily: {
serif: ['Playfair Display', 'serif'],
sans: ['Montserrat', 'sans-serif']
}
}
}
}
</script>
<style>
.before-after-container {
position: relative;
width: 100%;
overflow: hidden;
border-radius: 12px;
box-shadow: 0 10px 30px rgba(0,0,0,0.1);
}
.before-after-slider {
position: absolute;
top: 0;
bottom: 0;
width: 50%;
overflow: hidden;
pointer-events: none;
}
.before-after-slider img {
width: 100%;
height: 100%;
object-fit: cover;
}
.slider-handle {
position: absolute;
top: 0;
bottom: 0;
width: 4px;
background: rgba(255, 200, 92, 0.8);
left: 50%;
transform: translateX(-50%);
cursor: ew-resize;
z-index: 10;
}
.slider-handle::after {
content: '';
position: absolute;
width: 40px;
height: 40px;
background: white;
border: 3px solid rgba(255, 200, 92, 0.8);
border-radius: 50%;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
box-shadow: 0 2px 10px rgba(0,0,0,0.1);
}
.testimonial-card {
transition: all 0.3s ease;
}
.testimonial-card:hover {
transform: translateY(-5px);
box-shadow: 0 15px 30px rgba(0,0,0,0.1);
}
.service-card {
transition: all 0.3s ease;
}
.service-card:hover {
transform: translateY(-5px);
}
</style>
</head>
<body class="bg-white text-sepia-900 font-sans antialiased">
<!-- Navigation -->
<nav class="bg-white/80 backdrop-blur-md border-b border-sepia-100 fixed w-full z-50">
<div class="container mx-auto px-6 py-4">
<div class="flex justify-between items-center">
<div class="flex items-center">
<span class="text-2xl font-serif font-bold text-sepia-700">Souvenir+</span>
</div>
<div class="hidden md:flex space-x-8">
<a href="#accueil" class="hover:text-gold-600 transition">Accueil</a>
<a href="#about" class="hover:text-gold-600 transition">À propos</a>
<a href="#services" class="hover:text-gold-600 transition">Services</a>
<a href="#process" class="hover:text-gold-600 transition">Comment ça marche</a>
<a href="#testimonials" class="hover:text-gold-600 transition">Témoignages</a>
<a href="#pricing" class="hover:text-gold-600 transition">Tarifs</a>
<a href="#contact" class="hover:text-gold-600 transition">Contact</a>
</div>
<div class="md:hidden">
<button id="menu-toggle" class="text-sepia-700">
<i data-feather="menu"></i>
</button>
</div>
</div>
</div>
</nav>
<!-- Mobile Menu -->
<div id="mobile-menu" class="hidden fixed inset-0 bg-white z-40 pt-20 px-6">
<div class="flex flex-col space-y-6">
<a href="#accueil" class="text-xl hover:text-gold-600 transition">Accueil</a>
<a href="#about" class="text-xl hover:text-gold-600 transition">À propos</a>
<a href="#services" class="text-xl hover:text-gold-600 transition">Services</a>
<a href="#process" class="text-xl hover:text-gold-600 transition">Comment ça marche</a>
<a href="#testimonials" class="text-xl hover:text-gold-600 transition">Témoignages</a>
<a href="#pricing" class="text-xl hover:text-gold-600 transition">Tarifs</a>
<a href="#contact" class="text-xl hover:text-gold-600 transition">Contact</a>
</div>
<button id="menu-close" class="absolute top-6 right-6 text-sepia-700">
<i data-feather="x"></i>
</button>
</div>
<!-- Hero Section -->
<section id="accueil" class="pt-32 pb-20 px-6 bg-gradient-to-b from-sepia-50 to-white">
<div class="container mx-auto text-center">
<h1 class="text-4xl md:text-6xl font-serif font-bold text-sepia-800 mb-6">Redonnez vie à vos souvenirs</h1>
<p class="text-xl text-sepia-600 max-w-2xl mx-auto mb-10">Restaurez, recolorisez et sublimez vos anciennes photos grâce à la magie de l'IA.</p>
<button class="bg-gold-500 hover:bg-gold-600 text-white font-medium py-3 px-8 rounded-full shadow-lg transition transform hover:scale-105">
Envoyer ma photo maintenant
</button>
<div class="mt-16 max-w-4xl mx-auto">
<div class="before-after-container h-96">
<img src="http://static.photos/vintage/1024x576/1" alt="Photo avant restauration" class="w-full h-full object-cover">
<div class="before-after-slider">
<img src="http://static.photos/vintage/1024x576/2" alt="Photo après restauration" class="w-full h-full object-cover">
<div class="slider-handle"></div>
</div>
</div>
</div>
</div>
<!-- About Section -->
<section id="about" class="py-20 px-6 bg-white">
<div class="container mx-auto max-w-4xl text-center">
<h2 class="text-3xl font-serif font-bold text-sepia-800 mb-6">Vos photos, vos émotions, nos soins</h2>
<p class="text-lg text-sepia-600 mb-10">Chez Souvenir+, chaque image raconte une histoire. Nous utilisons l'intelligence artificielle et la retouche manuelle pour faire renaître vos souvenirs avec soin et émotion.</p>
<div class="grid grid-cols-1 md:grid-cols-3 gap-8 mt-12">
<div class="bg-sepia-50 p-8 rounded-xl service-card">
<div class="text-gold-600 mb-4">
<i data-feather="image" class="w-12 h-12 mx-auto"></i>
</div>
<h3 class="text-xl font-serif font-bold text-sepia-800 mb-3">Restauration photo</h3>
<p class="text-sepia-600">Restaurez vos vieilles photos en quelques secondes. Réparation des fissures, ravivement des couleurs et netteté retrouvée.</p>
</div>
<div class="bg-sepia-50 p-8 rounded-xl service-card">
<div class="text-gold-600 mb-4">
<i data-feather="edit" class="w-12 h-12 mx-auto"></i>
</div>
<h3 class="text-xl font-serif font-bold text-sepia-800 mb-3">Retouche et correction</h3>
<p class="text-sepia-600">Suppression de fond, ajustement de lumière et couleurs pour un rendu naturel et professionnel.</p>
</div>
<div class="bg-sepia-50 p-8 rounded-xl service-card">
<div class="text-gold-600 mb-4">
<i data-feather="droplet" class="w-12 h-12 mx-auto"></i>
</div>
<h3 class="text-xl font-serif font-bold text-sepia-800 mb-3">Colorisation réaliste</h3>
<p class="text-sepia-600">Transformez vos photos en noir et blanc en images colorées fidèles à la réalité.</p>
</div>
</div>
</div>
</section>
<!-- Process Section -->
<section id="process" class="py-20 px-6 bg-sepia-50">
<div class="container mx-auto max-w-4xl text-center">
<h2 class="text-3xl font-serif font-bold text-sepia-800 mb-12">Comment ça marche</h2>
<div class="grid grid-cols-1 md:grid-cols-3 gap-8">
<div class="p-6">
<div class="bg-gold-100 text-gold-600 w-16 h-16 rounded-full flex items-center justify-center mx-auto mb-4">
<span class="text-2xl font-bold">1</span>
</div>
<h3 class="text-xl font-serif font-medium text-sepia-800 mb-2">Téléversez votre photo</h3>
<p class="text-sepia-600">Envoyez-nous votre image numérique ou photo scannée</p>
</div>
<div class="p-6">
<div class="bg-gold-100 text-gold-600 w-16 h-16 rounded-full flex items-center justify-center mx-auto mb-4">
<span class="text-2xl font-bold">2</span>
</div>
<h3 class="text-xl font-serif font-medium text-sepia-800 mb-2">Choisissez votre traitement</h3>
<p class="text-sepia-600">Sélectionnez les options de restauration souhaitées</p>
</div>
<div class="p-6">
<div class="bg-gold-100 text-gold-600 w-16 h-16 rounded-full flex items-center justify-center mx-auto mb-4">
<span class="text-2xl font-bold">3</span>
</div>
<h3 class="text-xl font-serif font-medium text-sepia-800 mb-2">Recevez votre photo</h3>
<p class="text-sepia-600">Obtenez votre photo rénovée sous 48 heures</p>
</div>
</div>
<button class="mt-12 bg-gold-500 hover:bg-gold-600 text-white font-medium py-3 px-8 rounded-full shadow-lg transition transform hover:scale-105">
Envoyer ma photo
</button>
</div>
</section>
<!-- Testimonials Section -->
<section id="testimonials" class="py-20 px-6 bg-white">
<div class="container mx-auto max-w-4xl">
<h2 class="text-3xl font-serif font-bold text-center text-sepia-800 mb-12">Témoignages</h2>
<div class="grid grid-cols-1 md:grid-cols-3 gap-8">
<div class="bg-sepia-50 p-6 rounded-xl testimonial-card">
<div class="flex items-center mb-4">
<img src="http://static.photos/people/200x200/1" alt="Client" class="w-12 h-12 rounded-full mr-4">
<div>
<h4 class="font-serif font-bold text-sepia-800">Sophie D.</h4>
<div class="flex text-gold-500">
<i data-feather="star" class="w-4 h-4 fill-current"></i>
<i data-feather="star" class="w-4 h-4 fill-current"></i>
<i data-feather="star" class="w-4 h-4 fill-current"></i>
<i data-feather="star" class="w-4 h-4 fill-current"></i>
<i data-feather="star" class="w-4 h-4 fill-current"></i>
</div>
</div>
</div>
<p class="text-sepia-600 italic">"J'ai retrouvé le visage de ma grand-mère comme si c'était hier."</p>
</div>
<div class="bg-sepia-50 p-6 rounded-xl testimonial-card">
<div class="flex items-center mb-4">
<img src="http://static.photos/people/200x200/2" alt="Client" class="w-12 h-12 rounded-full mr-4">
<div>
<h4 class="font-serif font-bold text-sepia-800">Pierre L.</h4>
<div class="flex text-gold-500">
<i data-feather="star" class="w-4 h-4 fill-current"></i>
<i data-feather="star" class="w-4 h-4 fill-current"></i>
<i data-feather="star" class="w-4 h-4 fill-current"></i>
<i data-feather="star" class="w-4 h-4 fill-current"></i>
<i data-feather="star" class="w-4 h-4 fill-current"></i>
</div>
</div>
</div>
<p class="text-sepia-600 italic">"Incroyable travail sur mes photos de mariage des années 60."</p>
</div>
<div class="bg-sepia-50 p-6 rounded-xl testimonial-card">
<div class="flex items-center mb-4">
<img src="http://static.photos/people/200x200/3" alt="Client" class="w-12 h-12 rounded-full mr-4">
<div>
<h4 class="font-serif font-bold text-sepia-800">Émilie T.</h4>
<div class="flex text-gold-500">
<i data-feather="star" class="w-4 h-4 fill-current"></i>
<i data-feather="star" class="w-4 h-4 fill-current"></i>
<i data-feather="star" class="w-4 h-4 fill-current"></i>
<i data-feather="star" class="w-4 h-4 fill-current"></i>
<i data-feather="star" class="w-4 h-4 fill-current"></i>
</div>
</div>
</div>
<p class="text-sepia-600 italic">"La colorisation a redonné vie à nos photos de famille."</p>
</div>
</div>
</div>
</section>
<!-- Pricing Section -->
<section id="pricing" class="py-20 px-6 bg-sepia-50">
<div class="container mx-auto max-w-4xl text-center">
<h2 class="text-3xl font-serif font-bold text-sepia-800 mb-12">Tarifs simples</h2>
<div class="grid grid-cols-1 md:grid-cols-3 gap-8">
<div class="bg-white p-8 rounded-xl shadow-md">
<h3 class="text-2xl font-serif font-bold text-sepia-800 mb-4">2,99 €</h3>
<p class="text-sepia-600 mb-6">par photo</p>
<button class="w-full bg-gold-500 hover:bg-gold-600 text-white font-medium py-2 px-4 rounded-full transition">
Choisir
</button>
</div>
<div class="bg-white p-8 rounded-xl shadow-md border-2 border-gold-500 relative">
<div class="absolute -top-3 -right-3 bg-gold-500 text-white text-xs font-bold px-2 py-1 rounded-full">ÉCONOMIE</div>
<h3 class="text-2xl font-serif font-bold text-sepia-800 mb-4">9,99 €</h3>
<p class="text-sepia-600 mb-6">pour 5 photos</p>
<button class="w-full bg-gold-500 hover:bg-gold-600 text-white font-medium py-2 px-4 rounded-full transition">
Choisir
</button>
</div>
<div class="bg-white p-8 rounded-xl shadow-md">
<h3 class="text-2xl font-serif font-bold text-sepia-800 mb-4">14,99 €</h3>
<p class="text-sepia-600 mb-6">pour 10 photos</p>
<button class="w-full bg-gold-500 hover:bg-gold-600 text-white font-medium py-2 px-4 rounded-full transition">
Choisir
</button>
</div>
</div>
</div>
</section>
<!-- Contact Section -->
<section id="contact" class="py-20 px-6 bg-white">
<div class="container mx-auto max-w-4xl">
<h2 class="text-3xl font-serif font-bold text-center text-sepia-800 mb-12">Contact</h2>
<form class="max-w-2xl mx-auto" action="mailto:rachid.chabi@rocket-school.eu" method="post" enctype="multipart/form-data">
<div class="mb-6">
<label for="name" class="block text-sepia-700 mb-2">Nom</label>
<input type="text" id="name" name="name" required class="w-full px-4 py-2 border border-sepia-300 rounded-lg focus:outline-none focus:ring-2 focus:ring-gold-500">
</div>
<div class="mb-6">
<label for="email" class="block text-sepia-700 mb-2">Email</label>
<input type="email" id="email" name="email" required class="w-full px-4 py-2 border border-sepia-300 rounded-lg focus:outline-none focus:ring-2 focus:ring-gold-500">
</div>
<div class="mb-6">
<label for="photos" class="block text-sepia-700 mb-2">Photos à restaurer (max 10)</label>
<input type="file" id="photos" name="photos" accept="image/*" multiple class="w-full px-4 py-2 border border-sepia-300 rounded-lg focus:outline-none focus:ring-2 focus:ring-gold-500">
</div>
<div class="mb-6">
<label for="message" class="block text-sepia-700 mb-2">Message</label>
<textarea id="message" name="message" rows="4" class="w-full px-4 py-2 border border-sepia-300 rounded-lg focus:outline-none focus:ring-2 focus:ring-gold-500"></textarea>
</div>
<button type="submit" class="w-full bg-gold-500 hover:bg-gold-600 text-white font-medium py-3 px-6 rounded-full shadow-lg transition transform hover:scale-[1.02]">
Envoyer mes photos
</button>
</form>
<p class="text-center text-sepia-600 mt-8 max-w-2xl mx-auto">Vos photos sont traitées avec confidentialité et soin. Chaque photo mérite une seconde vie.</p>
</div>
</section>
<script>
feather.replace();
// Before/After Slider
document.addEventListener('DOMContentLoaded', function() {
const slider = document.querySelector('.before-after-slider');
const handle = document.querySelector('.slider-handle');
let isDragging = false;
handle.addEventListener('mousedown', function(e) {
isDragging = true;
document.body.style.cursor = 'ew-resize';
});
document.addEventListener('mousemove', function(e) {
if (!isDragging) return;
const container = slider.parentElement;
const rect = container.getBoundingClientRect();
let x = e.clientX - rect.left;
// Constrain within container
x = Math.max(0, Math.min(x, rect.width));
const percent = (x / rect.width) * 100;
slider.style.width = `${percent}%`;
});
document.addEventListener('mouseup', function() {
isDragging = false;
document.body.style.cursor = '';
});
// Mobile menu toggle
const menuToggle = document.getElementById('menu-toggle');
const menuClose = document.getElementById('menu-close');
const mobileMenu = document.getElementById('mobile-menu');
menuToggle.addEventListener('click', function() {
mobileMenu.classList.remove('hidden');
});
menuClose.addEventListener('click', function() {
mobileMenu.classList.add('hidden');
});
// Close menu when clicking a link
document.querySelectorAll('#mobile-menu a').forEach(link => {
link.addEventListener('click', function() {
mobileMenu.classList.add('hidden');
});
});
});
</script>
</body>
</html>