
  /* ---------- Tokens ---------- */
  :root{
    --purple:#893c92;
    --purple-deep:#6e2f76;
    --purple-tint:#f4ecf6;       /* very soft lavender wash */
    --purple-tint-2:#ede0f0;
    --black:#0a0a0a;
    --ink:#1a1418;               /* near-black with a hint of plum */
    --ink-soft:#4a4248;
    --ink-mute:#7a7278;
    --white:#ffffff;
    --paper:#fbfafb;             /* off-white background */
    --paper-2:#f6f3f7;
    --rule:#e7dfe9;

    --shadow-1: 0 1px 2px rgba(20,10,25,.04), 0 8px 24px rgba(20,10,25,.05);
    --shadow-2: 0 2px 6px rgba(20,10,25,.06), 0 24px 60px rgba(137,60,146,.10);

    --container: 1240px;
    --gutter: clamp(20px, 4vw, 56px);

    --t-fast: 200ms cubic-bezier(.22,.61,.36,1);
    --t-med: 420ms cubic-bezier(.22,.61,.36,1);
    --t-slow: 700ms cubic-bezier(.22,.61,.36,1);
  }

  *{ box-sizing: border-box; }
  html, body{ margin:0; padding:0; }
  html{ scroll-behavior: smooth; }
  html, body{ overflow-x: hidden; max-width: 100%; }
  body{
    background: var(--paper);
    color: var(--ink);
    font-family: 'PT Sans Narrow', system-ui, sans-serif;
    font-size: 18px;
    line-height: 1.55;
    -webkit-font-smoothing: antialiased;
    text-rendering: optimizeLegibility;
  }
  img{ display:block; max-width:100%; }
  a{ color: inherit; text-decoration: none; }
  button{ font-family: inherit; cursor: pointer; }

  /* ---------- Type ---------- */
  .display, h1, h2, h3, .eyebrow{
    font-family: 'Bebas Neue', 'PT Sans Narrow', sans-serif;
    font-weight: 700;
    letter-spacing: .01em;
    line-height: 1.02;
  }
  h1{ font-size: clamp(48px, 7.6vw, 120px); margin:0; }
  h2{ font-size: clamp(36px, 5vw, 76px); margin:0 0 .35em 0; letter-spacing: .015em; }
  h3{ font-size: clamp(22px, 2.2vw, 30px); margin:0 0 .4em 0; letter-spacing: .04em; }
  .eyebrow{
    font-size: 14px; letter-spacing: .28em; text-transform: uppercase;
    color: var(--purple); font-family: 'PT Sans Narrow', sans-serif; font-weight: 700;
  }
  p{ margin: 0 0 1em 0; max-width: 62ch; color: var(--ink-soft); }
  .lead{ font-size: clamp(18px, 1.4vw, 22px); color: var(--ink); }

  /* ---------- Layout ---------- */
  .container{ max-width: var(--container); margin: 0 auto; padding: 0 var(--gutter); }
  section{ padding: clamp(72px, 9vw, 140px) 0; position: relative; }
  .section-head{ display:flex; align-items: baseline; gap: 24px; margin-bottom: clamp(32px,4vw,56px); flex-wrap: wrap; }
  .section-head .num{
    font-family:'Bebas Neue', sans-serif; color: var(--purple);
    font-size: clamp(20px, 1.8vw, 26px); letter-spacing: .12em;
  }

  /* ---------- Pattern (Tissu des Anges — official brand asset) ---------- */
  /* The motif PNG is the official brand pattern — used as-is, only color variant changes. */
  .pattern-color{ background-image: url('medias/logos/Le motif _tissu des anges_ - 1 Couleur.png'); background-repeat: repeat; background-size: 360px auto; }
  .pattern-black{ background-image: url('medias/logos/Le motif _tissu des anges_ - 2 Noir.png'); background-repeat: repeat; background-size: 360px auto; }
  .pattern-white{ background-image: url('medias/logos/Le motif _tissu des anges_ - 2 Blanc.png'); background-repeat: repeat; background-size: 360px auto; }

  /* ---------- Top nav ---------- */
  .nav{
    position: fixed; top: 0; left:0; right:0; z-index: 50;
    transition: background var(--t-med), box-shadow var(--t-med), backdrop-filter var(--t-med);
  }
  .nav-inner{
    display:flex; align-items:center; justify-content: space-between;
    padding: 20px var(--gutter);
    max-width: var(--container); margin: 0 auto;
  }
  .nav.scrolled{
    background: rgba(251, 250, 251, 0.92);
    backdrop-filter: saturate(160%) blur(12px);
    -webkit-backdrop-filter: saturate(160%) blur(12px);
    box-shadow: 0 1px 0 rgba(20,10,25,.06);
  }
  .nav-logo{ display:flex; align-items:center; gap: 14px; position: relative; }
  .nav-logo img{ height: 44px; width:auto; transition: opacity var(--t-med); }
  .nav-logo .logo-light{ position: absolute; left: 0; top: 0; opacity: 1; }
  .nav-logo .logo-color{ opacity: 0; }
  .nav.scrolled .nav-logo .logo-light{ opacity: 0; }
  .nav.scrolled .nav-logo .logo-color{ opacity: 1; }
  .nav-links{ display:flex; gap: 36px; align-items:center; }
  .nav-links a{
    font-family:'Bebas Neue', sans-serif; letter-spacing: .14em; font-size: 16px;
    color: var(--white); position: relative; padding: 4px 0;
    transition: color var(--t-med);
    text-shadow: 0 1px 12px rgba(0,0,0,.35);
  }
  .nav.scrolled .nav-links a{ color: var(--ink); text-shadow: none; }
  .nav-links a::after{
    content:""; position:absolute; left:0; bottom:-2px; height:1px; width: 0;
    background: currentColor; transition: width var(--t-med);
  }
  .nav.scrolled .nav-links a::after{ background: var(--purple); }
  .nav-links a:hover::after{ width: 100%; }
  .nav-cta{
    font-family:'Bebas Neue', sans-serif; letter-spacing: .14em; font-size: 15px;
    border: 1px solid rgba(255,255,255,.7); color: var(--white);
    padding: 10px 18px; border-radius: 999px;
    transition: background var(--t-fast), color var(--t-fast), border-color var(--t-fast);
    backdrop-filter: blur(6px);
  }
  .nav-cta:hover{ background: var(--white); color: var(--purple); border-color: var(--white); }
  .nav.scrolled .nav-cta{ border-color: var(--purple); color: var(--purple); backdrop-filter: none; }
  .nav.scrolled .nav-cta:hover{ background: var(--purple); color: var(--white); }
  .nav-burger{
    display:none;
    width: 44px; height: 44px;
    border: 1px solid rgba(255,255,255,.5);
    background: transparent; color: var(--white);
    border-radius: 50%;
    align-items: center; justify-content: center;
    transition: border-color var(--t-fast), color var(--t-fast), background var(--t-fast);
  }
  .nav.scrolled .nav-burger{ border-color: var(--purple); color: var(--purple); }
  .nav-burger span{
    display:block; width: 18px; height: 1.5px; background: currentColor;
    position: relative;
  }
  .nav-burger span::before, .nav-burger span::after{
    content:""; position:absolute; left:0; right:0; height: 1.5px; background: currentColor;
  }
  .nav-burger span::before{ top: -6px; }
  .nav-burger span::after{ top: 6px; }

  @media (max-width: 880px){
    .nav-links{
      position: fixed; top: 0; right: 0; bottom: 0; left: 0;
      width: 100vw;
      background: var(--white);
      flex-direction: column; align-items: stretch; gap: 0;
      padding: 96px var(--gutter) 32px;
      transform: translateX(100%);
      transition: transform 360ms cubic-bezier(.22,.61,.36,1);
      display: flex;
    }
    .nav-links.open{ transform: translateX(0); }
    .nav-links a{
      color: var(--ink) !important;
      text-shadow: none !important;
      font-size: 22px;
      padding: 14px 0;
      width: 100%;
      border-bottom: 1px solid var(--rule);
    }
    .nav-links a::after{ display: none; }
    .nav-burger{ display: inline-flex; }
    .nav-cta{ display: none; }
    .nav.menu-open{
      background: rgba(251, 250, 251, 0.96);
      backdrop-filter: saturate(160%) blur(12px);
    }
    .nav.menu-open .nav-burger{ border-color: var(--purple); color: var(--purple); }
    .nav.menu-open .nav-logo .logo-light{ opacity: 0; }
    .nav.menu-open .nav-logo .logo-color{ opacity: 1; }
    .nav-backdrop{
      position: fixed; inset: 0; background: rgba(10,5,12,.5);
      opacity: 0; pointer-events: none;
      transition: opacity 280ms;
      z-index: 49;
    }
    .nav-backdrop.show{ opacity: 1; pointer-events: auto; }
  }

  /* ---------- Hero / Carousel ---------- */
  .hero{
    position: relative; height: 100vh; min-height: 640px; max-height: 900px;
    overflow: hidden; padding: 0;
    background: var(--ink);
  }
  .hero-canvas{
    position: absolute; inset: 0;
    width: 100%; height: 100%;
    z-index: 1;
  }
  .hero-canvas canvas{ display:block; width:100%; height:100%; }
  .hero-overlay{
    position: absolute; inset: 0; z-index: 2; pointer-events: none;
    background:
      linear-gradient(180deg, rgba(10,5,12,.18) 0%, rgba(10,5,12,.45) 60%, rgba(10,5,12,.72) 100%),
      linear-gradient(90deg, rgba(137,60,146,.28) 0%, rgba(137,60,146,0) 55%);
  }

  /* placeholder slide artwork (subtle striped + label) */
  .slide-placeholder{
    width:100%; height:100%;
    background:
      repeating-linear-gradient(135deg, rgba(255,255,255,.06) 0 2px, transparent 2px 14px),
      linear-gradient(160deg, var(--c1,#5a2c63) 0%, var(--c2,#2a1530) 100%);
    position: relative;
  }
  .slide-placeholder .ph-label{
    position:absolute; left: 24px; bottom: 24px;
    font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
    font-size: 12px; letter-spacing: .14em; color: rgba(255,255,255,.7);
    text-transform: uppercase;
    border: 1px solid rgba(255,255,255,.25); padding: 6px 10px; border-radius: 4px;
    background: rgba(0,0,0,.18);
  }

  .hero-content{
    position: relative; z-index: 3;
    display: flex; flex-direction: column; justify-content: flex-end;
    height: 100%; padding: 0 var(--gutter) clamp(64px, 8vw, 110px);
    max-width: var(--container); margin: 0 auto;
    color: var(--white);
  }
  .hero-eyebrow{
    display: inline-flex; align-items:center; gap: 10px;
    font-family:'Bebas Neue', sans-serif; letter-spacing: .26em;
    color: rgba(255,255,255,.9); font-size: 14px; margin-bottom: 22px;
  }
  .hero-eyebrow .dot{ width: 8px; height: 8px; background: var(--purple); border-radius: 50%; }
  .hero-title{
    color: var(--white);
    max-width: 18ch;
    text-shadow: 0 2px 24px rgba(0,0,0,.25);
  }
  .hero-title em{ font-style: normal; color: #e8b9ee; }
  .hero-sub{
    margin-top: 18px; max-width: 56ch;
    font-size: clamp(17px, 1.4vw, 21px); color: rgba(255,255,255,.86);
  }
  .hero-cta-row{
    margin-top: 36px;
    display:flex; flex-wrap: wrap; gap: 14px;
  }

  /* Buttons */
  .btn{
    display:inline-flex; align-items:center; gap: 12px;
    font-family:'Bebas Neue', sans-serif; letter-spacing: .14em; font-size: 17px;
    padding: 16px 26px; border-radius: 999px;
    transition: transform var(--t-fast), background var(--t-fast), color var(--t-fast), box-shadow var(--t-fast);
    border: 1px solid transparent; cursor: pointer; text-decoration:none;
  }
  .btn .arrow{ transition: transform var(--t-fast); }
  .btn:hover .arrow{ transform: translateX(4px); }
  .btn-primary{
    background: var(--purple); color: var(--white);
    box-shadow: 0 8px 24px rgba(137,60,146,.35);
  }
  .btn-primary:hover{ background: var(--purple-deep); }
  .btn-ghost{
    background: rgba(255,255,255,.08);
    color: var(--white);
    border-color: rgba(255,255,255,.55);
    backdrop-filter: blur(8px);
  }
  .btn-ghost:hover{ background: rgba(255,255,255,.18); }
  .btn-light{
    background: var(--white); color: var(--ink); border-color: var(--rule);
  }
  .btn-light:hover{ border-color: var(--purple); color: var(--purple); }
  .btn-dark{
    background: var(--ink); color: var(--white);
  }
  .btn-dark:hover{ background: var(--purple); }

  /* Carousel controls */
  .hero-controls{
    position: absolute; right: var(--gutter); bottom: clamp(64px, 8vw, 110px);
    z-index: 4; display:flex; gap: 8px; align-items:center;
  }
  .hero-dots{
    display:flex; gap: 10px; align-items:center;
    margin-right: 18px;
  }
  .dot-btn{
    width: 28px; height: 2px; background: rgba(255,255,255,.35);
    border: 0; padding: 0; cursor: pointer; transition: background var(--t-fast), width var(--t-fast);
  }
  .dot-btn.active{ background: var(--white); width: 44px; }
  .arrow-btn{
    width: 44px; height: 44px; border-radius: 50%;
    background: rgba(255,255,255,.08); border: 1px solid rgba(255,255,255,.4);
    color: var(--white); display:grid; place-items:center;
    transition: background var(--t-fast), border-color var(--t-fast);
  }
  .arrow-btn:hover{ background: rgba(255,255,255,.18); border-color: var(--white); }

  .scroll-hint{
    position: absolute; left: 50%; bottom: 18px; transform: translateX(-50%);
    color: rgba(255,255,255,.7); font-family:'Bebas Neue', sans-serif;
    letter-spacing: .26em; font-size: 11px; z-index: 4;
    display:flex; flex-direction:column; align-items:center; gap: 8px;
  }
  .scroll-hint .line{
    width:1px; height: 36px; background: rgba(255,255,255,.5);
    animation: drip 2.4s ease-in-out infinite;
    transform-origin: top;
  }
  @keyframes drip{
    0%,100%{ transform: scaleY(.4); opacity:.3; }
    50%{ transform: scaleY(1); opacity:1; }
  }

  @media (max-width: 720px){
    .hero-controls{ display: none; }
  }

  /* ---------- Stats strip ---------- */
  .strip{
    background: var(--ink);
    color: var(--white);
    padding: 0;
    position: relative;
    overflow: hidden;
  }
  .strip::before{
    content:""; position:absolute; inset:0;
    background-image: url('medias/logos/Le motif _tissu des anges_ - 2 Blanc.png');
    background-repeat: repeat;
    background-size: 320px auto;
    opacity: .07;
  }
  .strip-inner{
    max-width: var(--container); margin: 0 auto; padding: 56px var(--gutter);
    display:grid; grid-template-columns: repeat(4, 1fr); gap: 24px;
    position: relative;
  }
  .stat .k{
    font-family:'Bebas Neue', sans-serif; font-size: clamp(44px, 5vw, 72px);
    line-height: 1; color: var(--white); letter-spacing: .02em;
  }
  .stat .k .accent{ color: #e8b9ee; }
  .stat .v{
    font-size: 14px; letter-spacing: .18em; text-transform: uppercase;
    color: rgba(255,255,255,.7); margin-top: 8px;
    font-family: 'Bebas Neue', sans-serif;
  }
  @media (max-width: 880px){
    .strip-inner{ grid-template-columns: repeat(2, 1fr); }
  }

  /* ---------- Présentation ---------- */
  .presentation{
    position: relative;
    overflow: hidden;
  }
  .presentation::before{
    content:""; position: absolute; right: -60px; top: -40px;
    width: 480px; height: 420px;
    background-image: url('medias/logos/Le motif _tissu des anges_ - 1 Couleur.png');
    background-repeat: repeat;
    background-size: 320px auto;
    opacity: .14;
    pointer-events:none;
    mask-image: linear-gradient(225deg, rgba(0,0,0,1) 30%, rgba(0,0,0,0) 80%);
    -webkit-mask-image: linear-gradient(225deg, rgba(0,0,0,1) 30%, rgba(0,0,0,0) 80%);
  }
  .pres-grid{
    display:grid; grid-template-columns: 5fr 7fr; gap: clamp(32px, 5vw, 80px);
    align-items: center;
  }
  @media (max-width: 980px){ .pres-grid{ grid-template-columns: 1fr; } }
  .pres-text h2 em{ font-style: normal; color: var(--purple); }
  .pres-text .lead{ margin-top: 18px; }

  /* 3C pills */
  .threeC{
    margin-top: 28px;
    display:flex; flex-wrap: wrap; gap: 10px;
  }
  .pill{
    display:inline-flex; align-items: baseline; gap: 8px;
    padding: 10px 16px; border-radius: 999px;
    border: 1px solid var(--rule); background: var(--white);
    font-family:'Bebas Neue', sans-serif; letter-spacing: .12em; font-size: 14px;
    color: var(--ink);
  }
  .pill .num{ color: var(--purple); }

  /* Video card */
  .video-card{
    position: relative; aspect-ratio: 16/9;
    border-radius: 6px; overflow: hidden;
    box-shadow: var(--shadow-2);
    background: var(--ink);
    isolation: isolate;
  }
  .video-card iframe,
  .video-card video{
    position:absolute; inset:0; width:100%; height:100%; border:0;
    object-fit: cover; background: var(--ink);
  }
  .video-cover{
    position:absolute; inset:0; cursor:pointer;
    background:
      linear-gradient(180deg, rgba(0,0,0,.0) 30%, rgba(0,0,0,.55)),
      repeating-linear-gradient(135deg, rgba(255,255,255,.04) 0 2px, transparent 2px 14px),
      linear-gradient(160deg, #4a2353 0%, #1a0d1f 100%);
    display:grid; place-items:center;
    transition: transform var(--t-med);
  }
  .video-cover:hover{ transform: scale(1.01); }
  .video-cover .play{
    width: 96px; height: 96px; border-radius: 50%;
    background: var(--white); display:grid; place-items:center;
    box-shadow: 0 12px 40px rgba(137,60,146,.55);
    transition: transform var(--t-fast), background var(--t-fast);
  }
  .video-cover:hover .play{ transform: scale(1.05); background: #faf2fb; }
  .video-cover .play svg{ margin-left: 6px; }
  .video-cover .label{
    position:absolute; left: 22px; bottom: 22px;
    color: var(--white);
    font-family:'Bebas Neue', sans-serif; letter-spacing: .14em;
    font-size: 16px;
  }
  .video-cover .label small{
    display:block; font-family:'PT Sans Narrow', sans-serif;
    font-size: 12px; letter-spacing: .22em; color: rgba(255,255,255,.7); text-transform: uppercase;
    margin-bottom: 4px;
  }
  .video-cover::after{
    content:""; position:absolute; right: 18px; top:18px;
    width: 96px; height: 60px;
    background-image: url('medias/logos/Le motif _tissu des anges_ - 2 Blanc.png');
    background-repeat: repeat;
    background-size: 200px auto;
    opacity: .35;
  }

  /* ---------- Audience split (Investisseurs / Entrepreneurs) ---------- */
  .audiences{
    background: var(--paper-2);
    position: relative;
    overflow: hidden;
  }
  .aud-grid{
    display:grid; grid-template-columns: 1fr 1fr; gap: 28px;
  }
  @media (max-width: 880px){ .aud-grid{ grid-template-columns: 1fr; } }

  .aud-card{
    position: relative;
    background: var(--white);
    border: 1px solid var(--rule);
    border-radius: 4px;
    padding: clamp(28px, 3.4vw, 48px);
    overflow: hidden;
    transition: transform var(--t-med), box-shadow var(--t-med), border-color var(--t-med);
    display: flex;
    flex-direction: column;
  }
  .aud-card:hover{ transform: translateY(-4px); box-shadow: var(--shadow-2); border-color: rgba(137,60,146,.4); }
  .aud-card .num{
    font-family:'Bebas Neue', sans-serif; font-size: 14px; letter-spacing: .26em;
    color: var(--purple);
  }
  .aud-card h2{
    margin-top: 12px;
    font-size: clamp(40px, 4.4vw, 64px);
  }
  .aud-card p{ margin-top: 10px; }
  .aud-card .pattern-deco{
    position:absolute; right: -40px; bottom: -50px;
    width: 340px; height: 240px;
    background-image: url('medias/logos/Le motif _tissu des anges_ - 1 Couleur.png');
    background-repeat: repeat;
    background-size: 280px auto;
    opacity: .12;
    pointer-events:none;
    transition: opacity var(--t-med), transform var(--t-med);
    mask-image: linear-gradient(315deg, rgba(0,0,0,1) 20%, rgba(0,0,0,0) 80%);
    -webkit-mask-image: linear-gradient(315deg, rgba(0,0,0,1) 20%, rgba(0,0,0,0) 80%);
  }
  .aud-card:hover .pattern-deco{ opacity: .22; transform: translate(-6px,-6px); }
  .aud-features{
    list-style: none; padding: 0; margin: 22px 0 32px 0;
    display:flex; flex-direction: column; gap: 10px;
  }
  .aud-features li{
    display:flex; gap: 12px; align-items: flex-start;
    color: var(--ink); font-size: 16px;
  }
  .aud-features li svg{ flex: 0 0 auto; margin-top: 4px; color: var(--purple); }
  .aud-card .actions{ display:grid; grid-template-columns: 1fr 1fr; gap: 10px; margin-top: auto; }
  .aud-card .actions .btn{ justify-content: center; white-space: nowrap; }
  @media (max-width: 480px){ .aud-card .actions{ grid-template-columns: 1fr; } }

  /* Photo strip (about / association) */
  .photo-strip{
    margin-top: clamp(48px, 5vw, 80px);
    display: grid;
    grid-template-columns: 1.4fr 1fr 1fr;
    grid-template-rows: 220px 220px;
    gap: 14px;
  }
  @media (max-width: 880px){
    .photo-strip{ grid-template-columns: 1fr 1fr; grid-template-rows: 180px 180px 180px; }
    .photo-strip .ph-1{ grid-column: span 2; }
  }
  .ph{
    position: relative; overflow: hidden;
    background: var(--paper-2);
    border: 1px solid var(--rule);
    border-radius: 4px;
  }
  .ph-1{ grid-row: span 2; --c1:#893c92; --c2:#4a1a52; }
  .ph-2{ --c1:#5a2c63; --c2:#2a1530; }
  .ph-3{ --c1:#3a1d42; --c2:#1a0d1f; }
  .ph-4{ --c1:#893c92; --c2:#3d1a44; }
  .ph-5{ --c1:#2a1530; --c2:#0d050f; }
  .ph .bg{
    position:absolute; inset:0;
    background-color: var(--c2, #1a0d1f);
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    transition: transform 1200ms ease;
  }
  .ph:hover .bg{ transform: scale(1.04); }
  .ph .tag{
    position:absolute; left: 14px; bottom: 14px; z-index:2;
    font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
    font-size: 11px; letter-spacing: .14em; color: rgba(255,255,255,.85);
    text-transform: uppercase;
    border: 1px solid rgba(255,255,255,.3); padding: 5px 9px; border-radius: 3px;
    background: rgba(0,0,0,.25);
  }

  /* ---------- Process ribbon ---------- */
  .process{
    background: var(--white);
    border-top: 1px solid var(--rule);
    border-bottom: 1px solid var(--rule);
  }
  .process-grid{
    display:grid; grid-template-columns: repeat(4, 1fr); gap: 0;
  }
  @media (max-width: 880px){ .process-grid{ grid-template-columns: repeat(2, 1fr); } }
  .step{
    padding: 32px;
    border-right: 1px solid var(--rule);
    position: relative;
  }
  .step:last-child{ border-right: 0; }
  @media (max-width: 880px){
    .step{ border-bottom: 1px solid var(--rule); }
    .step:nth-child(2n){ border-right: 0; }
  }
  .step .n{
    font-family:'Bebas Neue', sans-serif; color: var(--purple);
    font-size: 14px; letter-spacing: .22em;
  }
  .step h3{ margin-top: 8px; font-size: 22px; letter-spacing: .04em; }
  .step p{ font-size: 15px; margin: 0; }

  /* ---------- Partners ---------- */
  .partners{
    background: var(--paper);
  }
  .partner-grid{
    --cols: 5;
    --gap: 24px;
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: var(--gap);
  }
  .partner{
    flex: 0 0 calc((100% - (var(--cols) - 1) * var(--gap)) / var(--cols));
    background: transparent;
    aspect-ratio: 16/9;
    display:grid; place-items:center;
    transition: opacity var(--t-fast), transform var(--t-fast);
    text-align:center; padding: 16px;
    color: var(--ink-mute);
    border: 1px solid var(--rule);
    border-radius: 4px;
    opacity: .85;
  }
  @media (max-width: 980px){ .partner-grid{ --cols: 3; } }
  @media (max-width: 560px){ .partner-grid{ --cols: 2; } }
  .partner:hover{ opacity: 1; transform: translateY(-2px); border-color: var(--purple); color: var(--purple); }
  .partner .pname{
    font-family:'Bebas Neue', sans-serif; letter-spacing: .12em; font-size: 18px;
  }
  .partner .ptype{
    display:block; font-size: 11px; letter-spacing: .2em; text-transform: uppercase;
    color: var(--ink-mute); margin-top: 4px;
  }

  /* ---------- Contact ---------- */
  .contact{
    background: var(--ink); color: var(--white); position: relative; overflow: hidden;
  }
  .contact::before{
    content:""; position:absolute; left:-60px; top:-60px; width: 560px; height:520px;
    background-image: url('medias/logos/Le motif _tissu des anges_ - 1 Couleur.png');
    background-repeat: repeat;
    background-size: 360px auto;
    opacity: .35;
    mask-image: linear-gradient(135deg, rgba(0,0,0,1) 20%, rgba(0,0,0,0) 75%);
    -webkit-mask-image: linear-gradient(135deg, rgba(0,0,0,1) 20%, rgba(0,0,0,0) 75%);
  }
  .contact-grid{
    display:grid; grid-template-columns: 5fr 7fr; gap: clamp(32px, 5vw, 80px);
    position: relative;
  }
  @media (max-width: 980px){ .contact-grid{ grid-template-columns: 1fr; } }
  .contact h2{ color: var(--white); }
  .contact p{ color: rgba(255,255,255,.74); }
  .contact-info{
    margin-top: 32px; display:flex; flex-direction: column; gap: 16px;
  }
  .contact-info a{
    display:flex; align-items: center; gap: 14px;
    color: var(--white); font-size: 16px;
    padding: 14px 0; border-bottom: 1px solid rgba(255,255,255,.12);
    transition: color var(--t-fast), border-color var(--t-fast);
  }
  .contact-info a:hover{ color: #e8b9ee; border-color: rgba(232,185,238,.4); }
  .contact-info a .ico{
    width: 36px; height: 36px; display:grid; place-items:center;
    border: 1px solid rgba(255,255,255,.2); border-radius: 50%;
  }

  /* Form */
  .form{
    background: rgba(255,255,255,.03);
    border: 1px solid rgba(255,255,255,.12);
    border-radius: 4px;
    padding: clamp(28px, 3.4vw, 44px);
    backdrop-filter: blur(6px);
  }
  .form-row{ display:grid; grid-template-columns: 1fr 1fr; gap: 16px; }
  @media (max-width: 720px){ .form-row{ grid-template-columns: 1fr; } }
  .field{ display:flex; flex-direction: column; gap: 6px; margin-bottom: 16px; }
  .field label{
    font-family:'Bebas Neue', sans-serif; letter-spacing: .18em; font-size: 12px;
    color: rgba(255,255,255,.7);
  }
  .field input, .field select, .field textarea{
    background: transparent;
    border: 0; border-bottom: 1px solid rgba(255,255,255,.25);
    color: var(--white); font: inherit; padding: 10px 0;
    transition: border-color var(--t-fast);
  }
  .field input:focus, .field select:focus, .field textarea:focus{
    outline: none; border-color: #e8b9ee;
  }
  .field textarea{ min-height: 110px; resize: vertical; }
  .field select option{ color: var(--ink); }
  .form-actions{ display:flex; align-items:center; justify-content: space-between; gap: 16px; margin-top: 12px; }
  .form-actions small{ color: rgba(255,255,255,.55); font-size: 12px; max-width: 32ch; }

  .audience-toggle{
    display:flex; gap: 8px; flex-wrap: wrap; margin-bottom: 8px;
  }
  .audience-toggle button{
    background: transparent; color: rgba(255,255,255,.7);
    border: 1px solid rgba(255,255,255,.25); border-radius: 999px;
    padding: 8px 14px; font-family:'Bebas Neue', sans-serif; letter-spacing: .14em;
    font-size: 13px;
    transition: all var(--t-fast);
  }
  .audience-toggle button.active{
    background: var(--purple); border-color: var(--purple); color: var(--white);
  }

  /* ---------- Footer ---------- */
  footer{
    background: var(--paper);
    border-top: 1px solid var(--rule);
    padding: 56px 0 24px;
  }
  .foot-grid{
    display:grid; grid-template-columns: 2fr 1fr 1fr 1fr; gap: 48px;
  }
  @media (max-width: 880px){ .foot-grid{ grid-template-columns: 1fr 1fr; gap: 32px; } }
  .foot-logo img{ height: 64px; width: auto; }
  .foot-col h4{
    font-family:'Bebas Neue', sans-serif; letter-spacing: .2em; font-size: 14px;
    color: var(--ink); margin: 0 0 14px 0;
  }
  .foot-col ul{ list-style:none; padding: 0; margin: 0; display:flex; flex-direction:column; gap:8px; }
  .foot-col a{ color: var(--ink-soft); font-size: 15px; transition: color var(--t-fast); }
  .foot-col a:hover{ color: var(--purple); }
  .foot-bottom{
    margin-top: 48px; padding-top: 20px;
    border-top: 1px solid var(--rule);
    display:flex; justify-content: space-between; gap: 16px; flex-wrap: wrap;
    color: var(--ink-mute); font-size: 13px;
  }

  /* ---------- Reveal ---------- */
  .reveal{
    opacity: 0; transform: translateY(18px);
    transition: opacity 800ms cubic-bezier(.22,.61,.36,1),
                transform 800ms cubic-bezier(.22,.61,.36,1);
    transition-delay: var(--rd, 0ms);
  }
  .reveal.in{ opacity: 1; transform: none; }

  /* ---------- Responsive (tablet & mobile) ---------- */
  @media (max-width: 980px){
    :root{ --gutter: clamp(20px, 5vw, 32px); }
    section{ padding: clamp(64px, 8vw, 100px) 0; }
    h1{ font-size: clamp(44px, 9vw, 80px); }
    h2{ font-size: clamp(32px, 5.6vw, 56px); }
    .aud-card h2{ font-size: clamp(30px, 5vw, 44px); }
    .pres-grid{ gap: clamp(28px, 5vw, 48px); }
    .stat .k{ font-size: clamp(40px, 7vw, 56px); }
  }
  @media (max-width: 720px){
    body{ font-size: 17px; }
    h1{ font-size: clamp(40px, 11vw, 64px); }
    h2{ font-size: clamp(28px, 7vw, 44px); }
    .lead{ font-size: 17px; }
    .hero{ min-height: 560px; height: 92vh; }
    .hero-title{ max-width: 14ch; }
    .hero-sub{ font-size: 16px; }
    .hero-cta-row{ width: 100%; }
    .hero-cta-row .btn{ flex: 1 1 auto; justify-content: center; }
    .btn{ padding: 14px 20px; font-size: 15px; }
    .strip-inner{ padding: 40px var(--gutter); gap: 18px; }
    .stat .v{ font-size: 12px; }
    .section-head{ gap: 12px; margin-bottom: 28px; }
    .section-head h2[style*="margin-left:auto"]{ margin-left: 0 !important; }
    .aud-card{ padding: 28px 22px; }
    .aud-features li{ font-size: 15px; }
    .video-cover .play{ width: 72px; height: 72px; }
    .video-cover .play svg{ width: 22px; height: 22px; }
    .video-cover .label{ left: 16px; bottom: 16px; font-size: 14px; }
    .video-cover::after{ width: 70px; height: 44px; background-size: 140px auto; }
    .form{ padding: 24px 20px; }
    .form-actions{ flex-direction: column; align-items: stretch; gap: 14px; }
    .form-actions .btn{ justify-content: center; }
    .foot-grid{ grid-template-columns: 1fr; gap: 28px; }
    .foot-bottom{ flex-direction: column; gap: 8px; }
    .photo-strip{ gap: 10px; }
    .step{ padding: 24px 22px; }
    .step h3{ font-size: 20px; }
    .pill{ font-size: 13px; padding: 8px 14px; }
    .threeC{ gap: 8px; }
    .nav-inner{ padding: 14px var(--gutter); }
    .nav-logo img{ height: 38px; }
  }
  @media (max-width: 480px){
    h1{ font-size: clamp(36px, 12vw, 56px); }
    .hero-eyebrow{ font-size: 12px; letter-spacing: .2em; }
    .hero-cta-row{ flex-direction: column; gap: 10px; }
    .hero-cta-row .btn{ width: 100%; }
    .photo-strip{ grid-template-columns: 1fr; grid-template-rows: repeat(5, 180px); }
    .photo-strip .ph-1{ grid-column: auto; grid-row: auto; }
    .strip-inner{ grid-template-columns: 1fr 1fr; }
    .audience-toggle button{ flex: 1; }
  }

  /* Reduced motion */
  @media (prefers-reduced-motion: reduce){
    *, *::before, *::after{ transition: none !important; animation: none !important; }
    .slide{ transition: opacity 1ms; }
  }
