:root{
    --violet:#6936EC;
    --violet-2:#7558DB;
    --violet-soft:#D7CCFB;
    --navy:#28155F;
    --ink:#0d0817;
    --ink-2:#141024;
    --lavande:#EEECF8;
    --blanc:#FFFFFF;
    --text:#EDEAF6;
    --text-mut:#A79FC4;
    --glass:rgba(255,255,255,0.045);
    --glass-brd:rgba(215,204,251,0.14);
    --radius:18px;
    --font-body:'Poppins',-apple-system,sans-serif;
    --font-display:'Space Grotesk','Poppins',-apple-system,sans-serif;
    --font-mono:'JetBrains Mono',ui-monospace,SFMono-Regular,Menlo,monospace;
  }
  *{box-sizing:border-box;}
  html{scroll-behavior:smooth;}
  body{
    margin:0; font-family:var(--font-body); color:var(--text);
    background:var(--ink); overflow-x:hidden; position:relative;
  }
  h1,h2,h3,.qual-q,.stat-num{font-family:var(--font-display); letter-spacing:-0.02em;}
  .eyebrow,.qual-count,.tag,.chip,.stat-label,.faq-num,.footer-bottom span:last-child,.btn-pill,.btn-ghost{font-family:var(--font-mono);}
  .eyebrow,.qual-count,.stat-label{text-transform:uppercase; letter-spacing:0.12em;}
  /* Fond continu header->footer : halos violets fixes + grain */
  body::before{
    content:""; position:fixed; inset:0; z-index:-2; pointer-events:none;
    background:
      radial-gradient(760px 560px at 8% -5%, rgba(105,54,236,0.30), transparent 60%),
      radial-gradient(680px 620px at 100% 22%, rgba(40,21,95,0.55), transparent 62%),
      radial-gradient(720px 640px at 30% 108%, rgba(117,88,219,0.20), transparent 60%),
      var(--ink);
  }
  body::after{
    content:""; position:fixed; inset:0; z-index:-1; pointer-events:none; opacity:0.05;
    background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='120' height='120'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2'/></filter><rect width='100%25' height='100%25' filter='url(%23n)'/></svg>");
  }
  a{text-decoration:none;}
  .wrap{max-width:1120px; margin:0 auto; padding:0 24px;}

  /* Reveal au scroll */
  .reveal{opacity:0; transform:translateY(18px); transition:opacity .6s ease, transform .6s ease;}
  .reveal.in{opacity:1; transform:none;}

  /* Header glass */
  header{position:sticky; top:0; z-index:50; background:rgba(13,8,23,0.55); backdrop-filter:blur(16px) saturate(150%); -webkit-backdrop-filter:blur(16px) saturate(150%); border-bottom:1px solid var(--glass-brd);}
  .nav{display:flex; align-items:center; justify-content:space-between; padding:14px 0;}
  .logo-mark svg{display:block; height:26px; width:auto;}
  .pill-tabs{display:flex; gap:4px; background:rgba(255,255,255,0.05); padding:4px; border-radius:9999px; border:1px solid var(--glass-brd);}
  .pill-tabs a{padding:8px 16px; border-radius:9999px; font-size:14px; font-weight:500; color:var(--text-mut);}
  .pill-tabs a.active,.pill-tabs a:hover{background:rgba(255,255,255,0.08); color:var(--blanc);}
  .btn-pill{display:inline-flex; align-items:center; gap:8px; background:var(--violet); color:var(--blanc); font-weight:600; font-size:14px; padding:12px 22px; border-radius:9999px; border:none; cursor:pointer; box-shadow:0 6px 26px rgba(105,54,236,0.45); transition:transform .15s ease, box-shadow .2s ease;}
  .btn-pill:hover{transform:translateY(-1px); box-shadow:0 10px 34px rgba(105,54,236,0.6);}
  .btn-pill .arrow{display:inline-flex; align-items:center; justify-content:center; width:20px; height:20px; border-radius:50%; background:rgba(255,255,255,0.22); font-size:12px;}

  /* Hero */
  .hero-banner{position:relative; padding:0; overflow:hidden; min-height:90vh; display:flex; align-items:center;}
  #hero-canvas{position:absolute; inset:0; width:100%; height:100%; display:block;}
  .hero-scrim{position:absolute; inset:0; background:radial-gradient(60% 55% at 50% 42%, rgba(13,8,23,0.05) 0%, rgba(13,8,23,0.5) 68%, rgba(13,8,23,0.85) 100%);}
  .hero-inner{position:relative; z-index:2; text-align:center; padding:96px 24px; width:100%;}
  .glass-panel{display:inline-block; background:rgba(255,255,255,0.06); border:1px solid rgba(255,255,255,0.16); backdrop-filter:blur(20px) saturate(150%); -webkit-backdrop-filter:blur(20px) saturate(150%); border-radius:30px; padding:46px 50px; max-width:780px; box-shadow:0 30px 90px rgba(0,0,0,0.35);}
  .tag{display:inline-block; background:rgba(105,54,236,0.18); color:var(--violet-soft); font-size:13px; font-weight:600; padding:6px 16px; border-radius:9999px; margin-bottom:20px; border:1px solid rgba(105,54,236,0.4);}
  .tag .dot{display:inline-block; width:6px; height:6px; border-radius:50%; background:var(--violet-2); margin-right:7px; box-shadow:0 0 10px var(--violet-2); vertical-align:middle;}
  h1{font-size:46px; font-weight:700; color:var(--blanc); line-height:1.14; margin:0 0 20px 0; letter-spacing:-0.02em;}
  .grad-text{background:linear-gradient(100deg,var(--violet-2),var(--violet-soft)); -webkit-background-clip:text; background-clip:text; color:transparent;}
  .hero-sub{font-size:17px; color:rgba(237,234,246,0.78); max-width:560px; margin:0 auto 32px auto; line-height:1.55;}
  .hero-caption{position:absolute; bottom:18px; left:0; right:0; z-index:2; text-align:center; font-family:var(--font-mono); font-size:11px; letter-spacing:.14em; text-transform:uppercase; color:rgba(215,204,251,0.55);}
  .hero-ctas{display:flex; gap:12px; justify-content:center; flex-wrap:wrap;}
  .btn-ghost{display:inline-flex; align-items:center; padding:12px 22px; border-radius:9999px; border:1px solid rgba(255,255,255,0.28); color:var(--blanc); font-weight:600; font-size:14px; background:rgba(255,255,255,0.05); backdrop-filter:blur(6px);}
  .btn-ghost:hover{background:rgba(255,255,255,0.1);}

  /* Sections */
  section{padding:88px 0; position:relative;}
  .section-head{text-align:center; max-width:660px; margin:0 auto 52px auto;}
  .eyebrow{font-size:12px; letter-spacing:.18em; text-transform:uppercase; color:var(--violet-2); font-weight:600; margin-bottom:12px;}
  h2{font-size:34px; font-weight:600; color:var(--blanc); margin:0 0 12px 0; letter-spacing:-0.01em;}
  .section-sub{color:var(--text-mut); font-size:16px; line-height:1.55;}

  /* Stats */
  .stats-row{display:flex; justify-content:center; gap:20px; flex-wrap:wrap;}
  .stat{flex:1; min-width:200px; max-width:300px; text-align:center; padding:28px 24px; border-radius:var(--radius); background:var(--glass); border:1px solid var(--glass-brd); backdrop-filter:blur(12px);}
  .stat-num{font-size:40px; font-weight:800; color:var(--blanc); text-shadow:0 0 30px rgba(105,54,236,0.55); letter-spacing:-0.02em;}
  .stat-label{font-size:13px; color:var(--text-mut); margin-top:6px;}

  /* Cards offre */
  .grid-3{display:grid; grid-template-columns:repeat(3,1fr); gap:22px;}
  .card{position:relative; border:1px solid var(--glass-brd); border-radius:var(--radius); padding:28px; background:var(--glass); backdrop-filter:blur(14px) saturate(150%); -webkit-backdrop-filter:blur(14px) saturate(150%); transition:transform .2s ease, border-color .2s ease, box-shadow .2s ease; overflow:hidden;}
  .card::after{content:""; position:absolute; inset:0; border-radius:var(--radius); padding:1px; background:linear-gradient(140deg, rgba(105,54,236,0.6), transparent 45%); -webkit-mask:linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0); -webkit-mask-composite:xor; mask-composite:exclude; opacity:0; transition:opacity .25s ease;}
  .card:hover{transform:translateY(-4px); box-shadow:0 20px 50px rgba(0,0,0,0.4);}
  .card:hover::after{opacity:1;}
  .card .tag{margin-bottom:16px;}
  .card h3{font-size:18px; font-weight:600; color:var(--blanc); margin:0 0 10px 0;}
  .card p{font-size:14px; color:var(--text-mut); line-height:1.6; margin:0;}

  /* Timeline comment */
  .timeline{max-width:760px; margin:0 auto; position:relative; padding-left:36px;}
  .timeline::before{content:""; position:absolute; left:11px; top:6px; bottom:6px; width:2px; background:linear-gradient(var(--violet),rgba(105,54,236,0.05));}
  .tl-item{position:relative; padding:0 0 34px 0;}
  .tl-item:last-child{padding-bottom:0;}
  .tl-dot{position:absolute; left:-36px; top:2px; width:24px; height:24px; border-radius:50%; background:var(--ink-2); border:2px solid var(--violet); color:var(--violet-soft); display:flex; align-items:center; justify-content:center; font-size:12px; font-weight:700; box-shadow:0 0 0 6px rgba(105,54,236,0.12);}
  .tl-item h3{font-size:17px; font-weight:600; color:var(--blanc); margin:0 0 6px 0;}
  .tl-item p{font-size:14px; color:var(--text-mut); line-height:1.6; margin:0;}

  /* Vivier / profils */
  .profils{display:grid; grid-template-columns:repeat(3,1fr); gap:22px;}
  .profil{border:1px solid var(--glass-brd); border-radius:var(--radius); padding:24px; background:var(--glass); backdrop-filter:blur(12px);}
  .profil-top{display:flex; align-items:center; gap:14px; margin-bottom:16px;}
  .avatar{width:52px; height:52px; border-radius:50%; display:flex; align-items:center; justify-content:center; font-family:var(--font-mono); font-weight:600; font-size:16px; color:var(--violet-soft); background:linear-gradient(140deg, rgba(105,54,236,0.4), rgba(40,21,95,0.6)); border:1px solid rgba(105,54,236,0.45); flex-shrink:0;}
  .profil-id strong{display:block; color:var(--blanc); font-size:15px; font-weight:600;}
  .profil-id span{font-size:12px; color:var(--text-mut); font-family:var(--font-mono);}
  .profil-tags{display:flex; flex-wrap:wrap; gap:6px; margin-top:4px;}
  .profil-tags .t{font-family:var(--font-mono); font-size:11px; padding:4px 9px; border-radius:9999px; background:rgba(105,54,236,0.14); color:var(--violet-soft); border:1px solid rgba(105,54,236,0.3);}
  .profil p{font-size:13px; color:var(--text-mut); line-height:1.55; margin:0;}
  .quote{max-width:820px; margin:44px auto 0; border:1px solid var(--glass-brd); border-radius:22px; padding:34px 38px; background:var(--glass); backdrop-filter:blur(14px); position:relative;}
  .quote p{font-size:19px; line-height:1.5; color:var(--blanc); margin:0 0 18px 0; font-family:var(--font-display); font-weight:500;}
  .quote .who{display:flex; align-items:center; gap:12px;}
  .quote .who span{font-size:13px; color:var(--text-mut);}
  .logos-row{display:flex; flex-wrap:wrap; gap:14px; justify-content:center; align-items:center; margin-top:44px; opacity:0.7;}
  .logo-slot{font-family:var(--font-mono); font-size:12px; letter-spacing:.1em; color:var(--text-mut); border:1px dashed var(--glass-brd); border-radius:10px; padding:12px 20px;}

  /* Mission / manifeste AI-first */
  .manifesto{max-width:820px; margin:0 auto 44px;}
  .manifesto-lead{font-family:var(--font-display); font-size:26px; line-height:1.4; color:var(--blanc); font-weight:500; margin:0 0 18px 0;}
  .manifesto-lead b{color:var(--violet-soft); font-weight:600;}
  .manifesto p{font-size:16px; line-height:1.65; color:var(--text-mut); margin:0;}
  .steps-ai{display:grid; grid-template-columns:repeat(3,1fr); gap:22px; margin-top:8px;}
  .ai-card{border:1px solid var(--glass-brd); border-radius:var(--radius); padding:26px; background:var(--glass); backdrop-filter:blur(12px);}
  .ai-ico{font-family:var(--font-mono); font-size:12px; font-weight:600; color:var(--violet-soft); border:1px solid rgba(105,54,236,0.4); background:rgba(105,54,236,0.14); border-radius:9px; padding:6px 10px; display:inline-block; margin-bottom:14px;}
  .ai-card h3{font-family:var(--font-display); font-size:17px; color:var(--blanc); margin:0 0 8px 0;}
  .ai-card p{font-size:14px; color:var(--text-mut); line-height:1.6; margin:0;}
  @media (max-width:820px){ .steps-ai{grid-template-columns:1fr;} .manifesto-lead{font-size:21px;} }

  /* ===== FORM QUALIFICATION ===== */
  .qual{max-width:720px; margin:0 auto;}
  .qual-shell{position:relative; border:1px solid var(--glass-brd); border-radius:26px; background:rgba(255,255,255,0.05); backdrop-filter:blur(20px) saturate(150%); -webkit-backdrop-filter:blur(20px) saturate(150%); padding:34px 36px 30px; box-shadow:0 30px 90px rgba(0,0,0,0.4); overflow:hidden;}
  .qual-shell::before{content:""; position:absolute; top:-40%; right:-20%; width:60%; height:120%; background:radial-gradient(circle, rgba(105,54,236,0.28), transparent 70%); pointer-events:none;}
  .qual-progress{position:relative; height:5px; border-radius:9999px; background:rgba(255,255,255,0.08); margin-bottom:26px; overflow:hidden;}
  .qual-progress span{position:absolute; left:0; top:0; bottom:0; width:14%; border-radius:9999px; background:linear-gradient(90deg,var(--violet),var(--violet-2)); transition:width .35s ease;}
  /* Agent IA conversationnel */
  .qbot{display:flex; gap:12px; align-items:flex-start; margin-bottom:22px;}
  .qbot-av{width:38px; height:38px; border-radius:11px; flex-shrink:0; display:flex; align-items:center; justify-content:center; font-family:var(--font-mono); font-weight:600; font-size:12px; color:var(--violet-soft); background:linear-gradient(140deg, rgba(105,54,236,0.5), rgba(40,21,95,0.7)); border:1px solid rgba(105,54,236,0.5); box-shadow:0 0 18px rgba(105,54,236,0.35);}
  .qbot-wrap{flex:1;}
  .qbot-name{font-family:var(--font-mono); font-size:10px; letter-spacing:.14em; text-transform:uppercase; color:var(--text-mut); margin-bottom:5px;}
  .qbot-msg{background:rgba(105,54,236,0.1); border:1px solid rgba(105,54,236,0.28); border-radius:4px 14px 14px 14px; padding:12px 15px; font-size:14px; line-height:1.5; color:var(--text); min-height:20px;}
  .qbot-msg.pop{animation:botpop .3s ease;}
  @keyframes botpop{from{opacity:0; transform:translateY(-4px);} to{opacity:1; transform:none;}}
  .qual-step{display:none; animation:fadeStep .35s ease;}
  .qual-step.active{display:block;}
  @keyframes fadeStep{from{opacity:0; transform:translateY(10px);} to{opacity:1; transform:none;}}
  .qual-count{font-size:12px; color:var(--violet-2); font-weight:600; letter-spacing:.06em; margin-bottom:8px;}
  .qual-q{font-size:22px; font-weight:600; color:var(--blanc); margin:0 0 6px 0; line-height:1.25;}
  .qual-help{font-size:13px; color:var(--text-mut); margin:0 0 22px 0;}
  .opt-grid{display:grid; grid-template-columns:1fr 1fr; gap:12px;}
  .opt-grid.one{grid-template-columns:1fr;}
  .opt{display:flex; flex-direction:column; gap:4px; text-align:left; padding:16px 18px; border-radius:14px; border:1px solid var(--glass-brd); background:rgba(255,255,255,0.03); color:var(--text); cursor:pointer; font-family:inherit; font-size:15px; transition:border-color .15s ease, background .15s ease, transform .1s ease;}
  .opt small{color:var(--text-mut); font-size:12px;}
  .opt:hover{border-color:rgba(105,54,236,0.5); background:rgba(105,54,236,0.08);}
  .opt.sel{border-color:var(--violet); background:rgba(105,54,236,0.16); box-shadow:0 0 0 3px rgba(105,54,236,0.18);}
  .chips{display:flex; flex-wrap:wrap; gap:10px;}
  .chip{padding:9px 15px; border-radius:9999px; border:1px solid var(--glass-brd); background:rgba(255,255,255,0.03); color:var(--text); cursor:pointer; font-family:inherit; font-size:14px; transition:all .15s ease;}
  .chip:hover{border-color:rgba(105,54,236,0.5);}
  .chip.sel{border-color:var(--violet); background:rgba(105,54,236,0.18); color:var(--blanc);}
  .field{margin-bottom:14px;}
  .field label{display:block; font-size:13px; color:var(--text-mut); margin-bottom:6px;}
  .field input, .qual-input{width:100%; padding:13px 15px; border-radius:12px; border:1px solid var(--glass-brd); background:rgba(255,255,255,0.05); color:var(--blanc); font-family:inherit; font-size:15px;}
  .field input::placeholder,.qual-input::placeholder{color:#7d76a0;}
  .field input:focus,.qual-input:focus{outline:none; border-color:var(--violet); box-shadow:0 0 0 3px rgba(105,54,236,0.18);}
  .two-col{display:grid; grid-template-columns:1fr 1fr; gap:12px;}
  /* Pappers selector */
  .pappers{position:relative;}
  .pappers-drop{position:absolute; left:0; right:0; top:calc(100% + 6px); z-index:20; background:#17122b; border:1px solid var(--glass-brd); border-radius:12px; overflow:hidden; box-shadow:0 20px 50px rgba(0,0,0,0.5); display:none;}
  .pappers-drop.open{display:block;}
  .pappers-item{padding:11px 15px; cursor:pointer; border-bottom:1px solid rgba(255,255,255,0.05);}
  .pappers-item:last-child{border-bottom:none;}
  .pappers-item:hover,.pappers-item.hl{background:rgba(105,54,236,0.16);}
  .pappers-item strong{display:block; font-size:14px; color:var(--blanc); font-weight:600;}
  .pappers-item small{font-size:12px; color:var(--text-mut);}
  .pappers-note{font-size:12px; color:var(--text-mut); margin-top:8px;}
  .qual-nav{display:flex; justify-content:space-between; align-items:center; margin-top:26px; gap:12px;}
  .qual-back{background:none; border:none; color:var(--text-mut); font-family:inherit; font-size:14px; cursor:pointer; padding:8px 4px;}
  .qual-back:hover{color:var(--blanc);}
  .qual-back[disabled]{opacity:0; pointer-events:none;}
  /* Recap / success */
  .recap{display:none;}
  .recap.active{display:block;}
  .tier-badge{display:inline-flex; align-items:center; gap:8px; padding:8px 16px; border-radius:9999px; font-weight:600; font-size:13px; margin-bottom:18px;}
  .tier-hot{background:rgba(105,54,236,0.2); color:var(--violet-soft); border:1px solid rgba(105,54,236,0.5);}
  .recap-list{list-style:none; padding:0; margin:0 0 22px 0; display:grid; gap:8px;}
  .recap-list li{display:flex; justify-content:space-between; gap:16px; font-size:14px; padding:10px 14px; border-radius:10px; background:rgba(255,255,255,0.03); border:1px solid var(--glass-brd);}
  .recap-list li span:first-child{color:var(--text-mut);}
  .recap-list li span:last-child{color:var(--blanc); text-align:right; font-weight:500;}
  .success-icon{width:56px; height:56px; border-radius:50%; background:rgba(105,54,236,0.18); border:1px solid rgba(105,54,236,0.5); display:flex; align-items:center; justify-content:center; margin:0 auto 18px; font-size:26px; color:var(--violet-soft);}

  /* FAQ */
  .faq{max-width:760px; margin:0 auto; display:grid; gap:12px;}
  .faq-item{border:1px solid var(--glass-brd); border-radius:14px; padding:18px 22px; background:var(--glass); backdrop-filter:blur(10px);}
  .faq-item summary{list-style:none; cursor:pointer; display:flex; align-items:center; gap:16px; font-weight:600; font-size:16px; color:var(--blanc);}
  .faq-item summary::-webkit-details-marker{display:none;}
  .faq-num{color:var(--violet-2); font-weight:700; font-size:14px; min-width:24px;}
  .faq-item p{margin:12px 0 0 40px; color:var(--text-mut); font-size:14px; line-height:1.6;}

  /* Footer */
  footer{position:relative; padding:64px 0 26px 0; margin-top:24px; border-top:1px solid var(--glass-brd);}
  footer::before{content:""; position:absolute; left:0; right:0; bottom:0; height:60%; background:radial-gradient(60% 120% at 50% 120%, rgba(105,54,236,0.22), transparent 70%); pointer-events:none;}
  .footer-top{display:flex; justify-content:space-between; align-items:flex-start; flex-wrap:wrap; gap:24px; padding-bottom:32px; position:relative;}
  .footer-logo svg{display:block; height:24px; width:auto;}
  .footer-links{display:flex; gap:32px; flex-wrap:wrap;}
  .footer-links a{color:var(--text-mut); font-size:14px;}
  .footer-links a:hover{color:var(--blanc);}
  .footer-bottom{border-top:1px solid rgba(255,255,255,0.08); padding-top:20px; font-size:12px; display:flex; justify-content:space-between; flex-wrap:wrap; gap:8px; color:var(--text-mut); position:relative;}
  .back-top{position:fixed; bottom:24px; right:24px; width:44px; height:44px; border-radius:50%; background:var(--violet); color:#fff; display:flex; align-items:center; justify-content:center; box-shadow:0 6px 20px rgba(105,54,236,0.5); font-size:18px; z-index:40;}

  @media (max-width:820px){
    h1{font-size:32px;}
    .grid-3, .profils, .two-col, .opt-grid{grid-template-columns:1fr;}
    .glass-panel,.qual-shell{padding:28px 22px;}
    .footer-top{flex-direction:column;}
    .pill-tabs{display:none;}
  }
  @media (max-width:520px){
    section{padding:64px 0;}
    .wrap{padding:0 18px;}
    h1{font-size:28px;}
    h2{font-size:26px;}
    .glass-panel{padding:24px 18px; border-radius:22px;}
    .hero-inner{padding:80px 16px;}
    .qual-shell{padding:24px 16px;}
    .quote{padding:24px 20px;}
    .btn-pill{padding:11px 18px; font-size:13px;}
  }
  @media (prefers-reduced-motion: reduce){
    .reveal{opacity:1; transform:none; transition:none;}
    html{scroll-behavior:auto;}
  }
