<!DOCTYPE html>

<html lang="fr">

<head>

<meta charset="UTF-8">

<meta name="viewport" content="width=device-width, initial-scale=1.0">

<title>MF Design — Identités visuelles · Trophées · Motion Design</title>

<link rel="preconnect" href="https://fonts.googleapis.com">

<link href="https://fonts.googleapis.com/css2?family=Bebas+Neue&family=Barlow:ital,wght@0,300;0,400;0,600;1,300&family=Barlow+Condensed:wght@300;700&display=swap" rel="stylesheet">

<style>

:root {

  --noir: #0a0a0a;

  --rouge: #CC0000;

  --jaune: #F5A623;

  --blanc: #f0ede8;

  --gris: #888;

  --gris-clair: #1a1a1a;

}


*, *::before, *::after { margin: 0; padding: 0; box-sizing: border-box; }


html { scroll-behavior: smooth; }


body {

  background: var(--noir);

  color: var(--blanc);

  font-family: 'Barlow', sans-serif;

  font-weight: 300;

  overflow-x: hidden;

  cursor: default;

}


/* GRAIN OVERLAY */

body::before {

  content: '';

  position: fixed;

  inset: 0;

  background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noise)' opacity='0.05'/%3E%3C/svg%3E");

  pointer-events: none;

  z-index: 9999;

  opacity: 0.4;

}


/* NAV */

nav {

  position: fixed;

  top: 0;

  left: 0;

  right: 0;

  z-index: 100;

  display: flex;

  justify-content: space-between;

  align-items: center;

  padding: 24px 48px;

  background: linear-gradient(to bottom, rgba(10,10,10,0.95), transparent);

}


.nav-logo {

  font-family: 'Bebas Neue', sans-serif;

  font-size: 1.4rem;

  letter-spacing: 4px;

  color: var(--blanc);

  text-decoration: none;

}


.nav-logo span { color: var(--rouge); }


.nav-links {

  display: flex;

  gap: 40px;

  list-style: none;

}


.nav-links a {

  font-family: 'Barlow Condensed', sans-serif;

  font-size: 0.8rem;

  letter-spacing: 3px;

  text-transform: uppercase;

  color: var(--gris);

  text-decoration: none;

  transition: color 0.3s;

}


.nav-links a:hover { color: var(--blanc); }


/* HERO */

.hero {

  min-height: 100vh;

  display: flex;

  align-items: center;

  position: relative;

  padding: 0 48px;

  overflow: hidden;

}


.hero-bg {

  position: absolute;

  inset: 0;

  background: 

    radial-gradient(ellipse at 70% 50%, rgba(204,0,0,0.08) 0%, transparent 60%),

    radial-gradient(ellipse at 20% 80%, rgba(245,166,35,0.05) 0%, transparent 50%);

}


.hero-line {

  position: absolute;

  left: 48px;

  top: 0;

  bottom: 0;

  width: 1px;

  background: linear-gradient(to bottom, transparent, var(--rouge), var(--jaune), transparent);

  opacity: 0.4;

}


.hero-content {

  max-width: 900px;

  padding-left: 64px;

  animation: fadeUp 1.2s ease both;

}


.hero-eyebrow {

  font-family: 'Barlow Condensed', sans-serif;

  font-size: 0.75rem;

  letter-spacing: 6px;

  text-transform: uppercase;

  color: var(--rouge);

  margin-bottom: 32px;

  opacity: 0;

  animation: fadeUp 0.8s ease 0.3s both;

}


.hero-title {

  font-family: 'Bebas Neue', sans-serif;

  font-size: clamp(5rem, 12vw, 11rem);

  line-height: 0.9;

  letter-spacing: -2px;

  margin-bottom: 40px;

  opacity: 0;

  animation: fadeUp 1s ease 0.5s both;

}


.hero-title span {

  display: block;

  color: transparent;

  -webkit-text-stroke: 1px rgba(240,237,232,0.3);

}


.hero-title em {

  font-style: normal;

  color: var(--rouge);

}


.hero-sub {

  font-size: 1.1rem;

  line-height: 1.7;

  color: var(--gris);

  max-width: 480px;

  margin-bottom: 48px;

  opacity: 0;

  animation: fadeUp 1s ease 0.7s both;

}


.hero-cta {

  display: inline-flex;

  align-items: center;

  gap: 16px;

  font-family: 'Barlow Condensed', sans-serif;

  font-size: 0.85rem;

  letter-spacing: 4px;

  text-transform: uppercase;

  color: var(--blanc);

  text-decoration: none;

  border: 1px solid rgba(240,237,232,0.2);

  padding: 16px 32px;

  transition: all 0.3s;

  opacity: 0;

  animation: fadeUp 1s ease 0.9s both;

}


.hero-cta:hover {

  border-color: var(--rouge);

  color: var(--rouge);

  transform: translateX(8px);

}


.hero-cta::after {

  content: '→';

  transition: transform 0.3s;

}


.hero-cta:hover::after { transform: translateX(4px); }


.hero-logo {

  position: absolute;

  right: -40px;

  top: 50%;

  transform: translateY(-50%);

  width: 55vw;

  max-width: 700px;

  opacity: 0.04;

  filter: invert(1);

  pointer-events: none;

  animation: fadeIn 2s ease 1s both;

}


.hero-scroll {

  position: absolute;

  bottom: 40px;

  left: 50%;

  transform: translateX(-50%);

  display: flex;

  flex-direction: column;

  align-items: center;

  gap: 8px;

  opacity: 0;

  animation: fadeIn 1s ease 1.5s both;

}


.hero-scroll span {

  font-family: 'Barlow Condensed', sans-serif;

  font-size: 0.65rem;

  letter-spacing: 4px;

  text-transform: uppercase;

  color: var(--gris);

}


.scroll-line {

  width: 1px;

  height: 60px;

  background: linear-gradient(to bottom, var(--rouge), transparent);

  animation: scrollPulse 2s ease infinite;

}


/* CHIFFRES */

.stats {

  display: grid;

  grid-template-columns: repeat(3, 1fr);

  border-top: 1px solid rgba(255,255,255,0.06);

  border-bottom: 1px solid rgba(255,255,255,0.06);

}


.stat {

  padding: 60px 48px;

  border-right: 1px solid rgba(255,255,255,0.06);

  position: relative;

  overflow: hidden;

}


.stat:last-child { border-right: none; }


.stat::before {

  content: '';

  position: absolute;

  bottom: 0;

  left: 0;

  right: 0;

  height: 2px;

  background: linear-gradient(to right, var(--rouge), var(--jaune));

  transform: scaleX(0);

  transition: transform 0.5s ease;

}


.stat:hover::before { transform: scaleX(1); }


.stat-number {

  font-family: 'Bebas Neue', sans-serif;

  font-size: 4rem;

  color: var(--blanc);

  display: block;

}


.stat-number span { color: var(--rouge); }


.stat-label {

  font-size: 0.8rem;

  letter-spacing: 2px;

  text-transform: uppercase;

  color: var(--gris);

  font-family: 'Barlow Condensed', sans-serif;

}


/* SECTIONS */

section {

  padding: 120px 48px;

}


.section-tag {

  font-family: 'Barlow Condensed', sans-serif;

  font-size: 0.7rem;

  letter-spacing: 6px;

  text-transform: uppercase;

  color: var(--rouge);

  margin-bottom: 24px;

  display: flex;

  align-items: center;

  gap: 16px;

}


.section-tag::before {

  content: '';

  width: 40px;

  height: 1px;

  background: var(--rouge);

}


.section-title {

  font-family: 'Bebas Neue', sans-serif;

  font-size: clamp(3rem, 6vw, 5.5rem);

  line-height: 1;

  margin-bottom: 24px;

}


/* SERVICES */

.services { background: var(--noir); }


.services-grid {

  display: grid;

  grid-template-columns: 1fr 1fr;

  gap: 2px;

  margin-top: 80px;

  background: rgba(255,255,255,0.04);

}


.service-card {

  background: var(--noir);

  padding: 64px 48px;

  position: relative;

  overflow: hidden;

  transition: background 0.4s;

}


.service-card:hover { background: var(--gris-clair); }


.service-num {

  font-family: 'Bebas Neue', sans-serif;

  font-size: 5rem;

  color: transparent;

  -webkit-text-stroke: 1px rgba(255,255,255,0.06);

  position: absolute;

  top: 24px;

  right: 32px;

  line-height: 1;

  transition: -webkit-text-stroke-color 0.4s;

}


.service-card:hover .service-num {

  -webkit-text-stroke-color: rgba(204,0,0,0.2);

}


.service-icon {

  width: 48px;

  height: 2px;

  background: linear-gradient(to right, var(--rouge), var(--jaune));

  margin-bottom: 32px;

  transition: width 0.4s;

}


.service-card:hover .service-icon { width: 80px; }


.service-name {

  font-family: 'Bebas Neue', sans-serif;

  font-size: 2rem;

  letter-spacing: 2px;

  margin-bottom: 16px;

  color: var(--blanc);

}


.service-desc {

  font-size: 0.95rem;

  line-height: 1.7;

  color: var(--gris);

  max-width: 380px;

}


.service-price {

  margin-top: 32px;

  font-family: 'Barlow Condensed', sans-serif;

  font-size: 0.8rem;

  letter-spacing: 3px;

  text-transform: uppercase;

  color: var(--jaune);

}


/* REFERENCES */

.references { background: var(--gris-clair); }


.ref-intro {

  max-width: 600px;

  font-size: 1.1rem;

  line-height: 1.8;

  color: var(--gris);

  margin-bottom: 80px;

}


.ref-list {

  display: grid;

  grid-template-columns: repeat(3, 1fr);

  gap: 40px;

}


.ref-item {

  border-top: 1px solid rgba(255,255,255,0.08);

  padding-top: 32px;

}


.ref-name {

  font-family: 'Bebas Neue', sans-serif;

  font-size: 1.4rem;

  letter-spacing: 2px;

  color: var(--blanc);

  margin-bottom: 8px;

}


.ref-detail {

  font-size: 0.85rem;

  color: var(--gris);

  line-height: 1.6;

}


.ref-badge {

  display: inline-block;

  margin-top: 12px;

  font-family: 'Barlow Condensed', sans-serif;

  font-size: 0.65rem;

  letter-spacing: 3px;

  text-transform: uppercase;

  color: var(--rouge);

  border: 1px solid rgba(204,0,0,0.3);

  padding: 4px 12px;

}


/* CONTACT */

.contact {

  background: var(--noir);

  position: relative;

  overflow: hidden;

}


.contact::before {

  content: 'CONTACT';

  position: absolute;

  font-family: 'Bebas Neue', sans-serif;

  font-size: 20vw;

  color: transparent;

  -webkit-text-stroke: 1px rgba(255,255,255,0.02);

  bottom: -40px;

  right: -20px;

  line-height: 1;

  pointer-events: none;

}


.contact-grid {

  display: grid;

  grid-template-columns: 1fr 1fr;

  gap: 80px;

  align-items: start;

  margin-top: 80px;

}


.contact-info { }


.contact-line {

  display: flex;

  align-items: flex-start;

  gap: 24px;

  margin-bottom: 40px;

  padding-bottom: 40px;

  border-bottom: 1px solid rgba(255,255,255,0.06);

}


.contact-line:last-child {

  border-bottom: none;

  margin-bottom: 0;

  padding-bottom: 0;

}


.contact-label {

  font-family: 'Barlow Condensed', sans-serif;

  font-size: 0.65rem;

  letter-spacing: 4px;

  text-transform: uppercase;

  color: var(--rouge);

  min-width: 80px;

  padding-top: 4px;

}


.contact-value {

  font-size: 1rem;

  color: var(--blanc);

  line-height: 1.6;

}


.contact-value a {

  color: var(--blanc);

  text-decoration: none;

  transition: color 0.3s;

}


.contact-value a:hover { color: var(--rouge); }


.contact-form { }


.form-group {

  margin-bottom: 24px;

}


.form-group label {

  display: block;

  font-family: 'Barlow Condensed', sans-serif;

  font-size: 0.7rem;

  letter-spacing: 3px;

  text-transform: uppercase;

  color: var(--gris);

  margin-bottom: 8px;

}


.form-group input,

.form-group textarea,

.form-group select {

  width: 100%;

  background: rgba(255,255,255,0.03);

  border: 1px solid rgba(255,255,255,0.1);

  color: var(--blanc);

  padding: 14px 16px;

  font-family: 'Barlow', sans-serif;

  font-size: 0.95rem;

  outline: none;

  transition: border-color 0.3s;

  -webkit-appearance: none;

}


.form-group input:focus,

.form-group textarea:focus,

.form-group select:focus {

  border-color: var(--rouge);

}


.form-group select option {

  background: #1a1a1a;

}


.form-group textarea {

  height: 120px;

  resize: none;

}


.form-submit {

  width: 100%;

  background: var(--rouge);

  color: var(--blanc);

  border: none;

  padding: 18px;

  font-family: 'Bebas Neue', sans-serif;

  font-size: 1.2rem;

  letter-spacing: 4px;

  cursor: pointer;

  transition: all 0.3s;

  position: relative;

  overflow: hidden;

}


.form-submit::before {

  content: '';

  position: absolute;

  inset: 0;

  background: var(--jaune);

  transform: translateX(-100%);

  transition: transform 0.4s ease;

}


.form-submit:hover::before { transform: translateX(0); }

.form-submit span { position: relative; }


/* FOOTER */

footer {

  background: var(--gris-clair);

  padding: 40px 48px;

  display: flex;

  justify-content: space-between;

  align-items: center;

  border-top: 1px solid rgba(255,255,255,0.04);

}


.footer-brand {

  font-family: 'Bebas Neue', sans-serif;

  font-size: 1.2rem;

  letter-spacing: 4px;

  color: var(--blanc);

}


.footer-brand span { color: var(--rouge); }


.footer-legal {

  font-family: 'Barlow Condensed', sans-serif;

  font-size: 0.7rem;

  letter-spacing: 2px;

  color: var(--gris);

  text-align: center;

}


.footer-links {

  display: flex;

  gap: 24px;

}


.footer-links a {

  font-family: 'Barlow Condensed', sans-serif;

  font-size: 0.7rem;

  letter-spacing: 3px;

  text-transform: uppercase;

  color: var(--gris);

  text-decoration: none;

  transition: color 0.3s;

}


.footer-links a:hover { color: var(--rouge); }


/* ANIMATIONS */

@keyframes fadeUp {

  from { opacity: 0; transform: translateY(40px); }

  to { opacity: 1; transform: translateY(0); }

}


@keyframes fadeIn {

  from { opacity: 0; }

  to { opacity: 1; }

}


@keyframes scrollPulse {

  0%, 100% { opacity: 0.3; transform: scaleY(1); }

  50% { opacity: 1; transform: scaleY(1.2); }

}


/* SCROLL REVEAL */

.reveal {

  opacity: 0;

  transform: translateY(40px);

  transition: opacity 0.8s ease, transform 0.8s ease;

}


.reveal.visible {

  opacity: 1;

  transform: translateY(0);

}


.reveal-delay-1 { transition-delay: 0.1s; }

.reveal-delay-2 { transition-delay: 0.2s; }

.reveal-delay-3 { transition-delay: 0.3s; }

.reveal-delay-4 { transition-delay: 0.4s; }


/* RESPONSIVE */

@media (max-width: 768px) {

  nav { padding: 20px 24px; }

  .nav-links { display: none; }

  .hero { padding: 0 24px; }

  .hero-content { padding-left: 32px; }

  section { padding: 80px 24px; }

  .services-grid { grid-template-columns: 1fr; }

  .ref-list { grid-template-columns: 1fr; }

  .contact-grid { grid-template-columns: 1fr; gap: 48px; }

  .stats { grid-template-columns: 1fr; }

  .stat { border-right: none; border-bottom: 1px solid rgba(255,255,255,0.06); }

  footer { flex-direction: column; gap: 20px; text-align: center; }

}

</style>

</head>

<body>


<!-- NAV -->

<nav>

  <a href="#" class="nav-logo">MF<span>.</span>DESIGN</a>

  <ul class="nav-links">

    <li><a href="#services">Services</a></li>

    <li><a href="#references">Références</a></li>

    <li><a href="#contact">Contact</a></li>

  </ul>

</nav>


<!-- HERO -->

<section class="hero" id="accueil">

  <div class="hero-bg"></div>

  <div class="hero-line"></div>


  <img src="mon_logo_trans_web_.png" alt="" class="hero-logo">


  <div class="hero-content">

    <p class="hero-eyebrow">Martial Fournel — MF Design — Monistrol-sur-Loire</p>

    <h1 class="hero-title">

      CRÉER<br>

      <span>CE QUI</span><br>

      <em>DURE.</em>

    </h1>

    <p class="hero-sub">Identités visuelles, trophées sur mesure et motion design pour les entreprises qui accordent de l'importance à leur image.</p>

    <a href="#contact" class="hero-cta">Démarrer un projet</a>

  </div>


  <div class="hero-scroll">

    <span>Défiler</span>

    <div class="scroll-line"></div>

  </div>

</section>


<!-- STATS -->

<div class="stats">

  <div class="stat reveal">

    <span class="stat-number">30<span>+</span></span>

    <span class="stat-label">Trophées Volants d'Or — Fraikin France</span>

  </div>

  <div class="stat reveal reveal-delay-1">

    <span class="stat-number">5<span>+</span></span>

    <span class="stat-label">Années d'expérience en création</span>

  </div>

  <div class="stat reveal reveal-delay-2">

    <span class="stat-number">A<span>→Z</span></span>

    <span class="stat-label">Du brief au livrable final</span>

  </div>

</div>


<!-- SERVICES -->

<section class="services" id="services">

  <div class="section-tag">Ce que je fais</div>

  <h2 class="section-title reveal">MES<br>SERVICES</h2>


  <div class="services-grid">


    <div class="service-card reveal">

      <span class="service-num">01</span>

      <div class="service-icon"></div>

      <h3 class="service-name">Trophées & Médailles</h3>

      <p class="service-desc">Conception complète de A à Z — brief, design, fichiers techniques, coordination fabrication et livraison. Chaque pièce est unique, conçue pour valoriser vos collaborateurs.</p>

      <div class="service-price">Design 850€ · Prototype 240–350€ · Série sur devis</div>

    </div>


    <div class="service-card reveal reveal-delay-1">

      <span class="service-num">02</span>

      <div class="service-icon"></div>

      <h3 class="service-name">Identité Visuelle</h3>

      <p class="service-desc">Logo, charte graphique, déclinaisons print et digital. Une image cohérente et mémorable qui reflète vraiment votre entreprise.</p>

      <div class="service-price">Pack Logo 350€ · Pack Identité 750€</div>

    </div>


    <div class="service-card reveal reveal-delay-2">

      <span class="service-num">03</span>

      <div class="service-icon"></div>

      <h3 class="service-name">Motion Design</h3>

      <p class="service-desc">Teasers, animations, vidéos événementielles. Des contenus visuels dynamiques qui donnent vie à vos projets sur tous vos écrans.</p>

      <div class="service-price">Sur devis selon complexité</div>

    </div>


    <div class="service-card reveal reveal-delay-3">

      <span class="service-num">04</span>

      <div class="service-icon"></div>

      <h3 class="service-name">Supports Communication</h3>

      <p class="service-desc">Affiches, flyers, visuels réseaux sociaux, bannières publicitaires. Création du visuel prêt à l'impression — hors impression et livraison.</p>

      <div class="service-price">À partir de 60€ · Taux horaire 30€/h</div>

    </div>


  </div>

</section>


<!-- REFERENCES -->

<section class="references" id="references">

  <div class="section-tag">Ils me font confiance</div>

  <h2 class="section-title reveal">RÉFÉRENCES</h2>

  <p class="ref-intro reveal">Je travaille avec des entreprises de toutes tailles, des PME locales aux grands groupes nationaux. Chaque projet est traité avec la même rigueur et le même engagement.</p>


  <div class="ref-list">

    <div class="ref-item reveal">

      <div class="ref-name">Groupe Fraikin France</div>

      <div class="ref-detail">Conception et production des trophées Volants d'Or — 30 pièces annuelles pour leur cérémonie nationale à Paris.</div>

      <span class="ref-badge">Trophées · Récurrent</span>

    </div>

    <div class="ref-item reveal reveal-delay-1">

      <div class="ref-name">Giraudon Carrosserie</div>

      <div class="ref-detail">Trophées Giraudon d'Or, affiches événementielles, visuels flocage véhicule pour les Giraudon Games 2025.</div>

      <span class="ref-badge">Trophées · Design</span>

    </div>

    <div class="ref-item reveal reveal-delay-2">

      <div class="ref-name">Multitrailer</div>

      <div class="ref-detail">Identité visuelle complète — logo, charte graphique, carte de visite pour Bruno Davier.</div>

      <span class="ref-badge">Identité visuelle</span>

    </div>

    <div class="ref-item reveal reveal-delay-1">

      <div class="ref-name">L'Auto du Fau</div>

      <div class="ref-detail">Logo, charte graphique, carte de visite, flyer A5, flocage véhicule.</div>

      <span class="ref-badge">Identité visuelle</span>

    </div>

    <div class="ref-item reveal reveal-delay-2">

      <div class="ref-name">Pizza Mania</div>

      <div class="ref-detail">Création de l'identité visuelle complète — logo original et déclinaisons.</div>

      <span class="ref-badge">Logo · Design</span>

    </div>

    <div class="ref-item reveal reveal-delay-3">

      <div class="ref-name">Tôlerie Fournel</div>

      <div class="ref-detail">Série vidéo documentaire — teaser, motion design, post-production épisode 1.</div>

      <span class="ref-badge">Motion Design · Vidéo</span>

    </div>

  </div>

</section>


<!-- CONTACT -->

<section class="contact" id="contact">

  <div class="section-tag">Travaillons ensemble</div>

  <h2 class="section-title reveal">DÉMARRER<br>UN PROJET</h2>


  <div class="contact-grid">


    <div class="contact-info reveal">

      <div class="contact-line">

        <span class="contact-label">Email</span>

        <div class="contact-value"><a href="mailto:martial@mfdesign.fr">martial@mfdesign.fr</a></div>

      </div>

      <div class="contact-line">

        <span class="contact-label">Téléphone</span>

        <div class="contact-value"><a href="tel:0619576887">06.19.57.68.87</a></div>

      </div>

      <div class="contact-line">

        <span class="contact-label">Localisation</span>

        <div class="contact-value">Monistrol-sur-Loire (43)<br><span style="color:var(--gris);font-size:0.85rem">Intervention sur toute la France</span></div>

      </div>

      <div class="contact-line">

        <span class="contact-label">SIREN</span>

        <div class="contact-value" style="color:var(--gris);font-size:0.85rem">829 673 755 · Micro-entreprise<br>TVA non applicable — art. 293 B CGI</div>

      </div>

      <div class="contact-line">

        <span class="contact-label">Portfolio</span>

        <div class="contact-value"><a href="https://behance.net/martialfournel" target="_blank">behance.net/martialfournel</a></div>

      </div>

    </div>


    <div class="contact-form reveal reveal-delay-2">

      <form onsubmit="handleSubmit(event)">

        <div class="form-group">

          <label>Nom / Entreprise</label>

          <input type="text" placeholder="Jean Dupont — Entreprise SA" required>

        </div>

        <div class="form-group">

          <label>Email</label>

          <input type="email" placeholder="jean@entreprise.fr" required>

        </div>

        <div class="form-group">

          <label>Type de projet</label>

          <select required>

            <option value="" disabled selected>Sélectionner...</option>

            <option>Trophées & Médailles sur mesure</option>

            <option>Identité visuelle / Logo</option>

            <option>Motion Design / Vidéo</option>

            <option>Supports de communication</option>

            <option>Autre projet</option>

          </select>

        </div>

        <div class="form-group">

          <label>Message</label>

          <textarea placeholder="Décrivez votre projet..." required></textarea>

        </div>

        <button type="submit" class="form-submit"><span>ENVOYER LE MESSAGE →</span></button>

      </form>

    </div>


  </div>

</section>


<!-- FOOTER -->

<footer>

  <div class="footer-brand">MF<span>.</span>DESIGN</div>

  <div class="footer-legal">© 2026 MF Design — Martial Fournel · SIREN 829 673 755</div>

  <div class="footer-links">

    <a href="https://behance.net/martialfournel" target="_blank">Behance</a>

    <a href="https://linkedin.com/company/mfdesign-creation" target="_blank">LinkedIn</a>

  </div>

</footer>


<script>

// Scroll reveal

const observer = new IntersectionObserver((entries) => {

  entries.forEach(entry => {

    if (entry.isIntersecting) {

      entry.target.classList.add('visible');

    }

  });

}, { threshold: 0.1 });


document.querySelectorAll('.reveal').forEach(el => observer.observe(el));


// Form

function handleSubmit(e) {

  e.preventDefault();

  const btn = e.target.querySelector('.form-submit span');

  btn.textContent = 'MESSAGE ENVOYÉ ✓';

  setTimeout(() => { btn.textContent = 'ENVOYER LE MESSAGE →'; e.target.reset(); }, 3000);

}


// Smooth nav highlight

window.addEventListener('scroll', () => {

  const nav = document.querySelector('nav');

  if (window.scrollY > 80) {

    nav.style.background = 'rgba(10,10,10,0.97)';

    nav.style.backdropFilter = 'blur(10px)';

  } else {

    nav.style.background = 'linear-gradient(to bottom, rgba(10,10,10,0.95), transparent)';

    nav.style.backdropFilter = 'none';

  }

});

</script>


</body>

</html>