/* ============================================================
   Firmio Daylight · homepage
   1 · base, media queries, keyframes — repris tels quels de la
       maquette. Ne rien renommer : app.js pose les classes
       .fm-anim, .fn-run, .sa-run qui déclenchent ces animations
       au moment où la section entre dans le cadre.
   2 · styles extraits, un bloc par chapitre de la page.
   Les valeurs propres à une instance — couleur d'une médaille,
   largeur d'une barre, --w — restent en style inline dans
   index.html : elles changent d'un élément au suivant.
   ============================================================ */

/* ============================================================
   1 · base, media queries, keyframes
   ============================================================ */
body { margin:0; background:#ebf5ff; color:#535862; font-family:Inter,ui-sans-serif,system-ui,sans-serif; font-size:16px; line-height:1.5; letter-spacing:-.01em; -webkit-font-smoothing:antialiased; }
  a { color:#0069e0; text-decoration:none; }
  a:hover { color:#0099ff; }
  @keyframes fmPulse { 0%,100% { opacity:.25; transform:scale(.9); } 50% { opacity:1; transform:scale(1.35); } }
  @keyframes fmDrift { 0%,100% { transform:translateY(0); } 50% { transform:translateY(-9px); } }
  @keyframes fmDraw { from { stroke-dashoffset:1200; } to { stroke-dashoffset:0; } }
  @keyframes fmRise { from { opacity:0; transform:translateY(14px); } to { opacity:1; transform:none; } }
  @keyframes fmSat { 0% { opacity:0; } 100% { opacity:1; } }
  /* Un style inline est hors de portée d'une media query : toute règle qui doit
     changer avec la largeur passe par ces classes. Deux ruptures seulement. */
  .fm-h2 { font-size:clamp(34px,6.4vw,72px) !important; }
  .fm-h3 { font-size:clamp(26px,4.2vw,48px) !important; }
  .fm-num { font-size:clamp(40px,5.6vw,72px) !important; }

  @media (max-width:900px) {
    .fm-2col { grid-template-columns:1fr !important; gap:48px !important; }
    .fm-2col-rev > :first-child { order:2; }
    .fm-sticky { position:static !important; }
    .fm-sec { padding-top:96px !important; }
    .fm-pad { padding:40px !important; }
    .fm-hero-ov { position:static !important; background:#fafdff !important; padding:32px 24px !important; }
    .fm-human-ov { position:static !important; background:#fafdff !important; padding:40px 32px !important; }
    .fm-res { grid-template-columns:1fr auto !important; gap:16px !important; }
    .fm-res > :nth-child(2) { grid-column:1 / -1; order:3; }
    .fm-res > :last-child { order:4; grid-column:1 / -1; }
    .fm-score { border-left:0 !important; padding-left:0 !important; border-top:1px solid #f6f7f8; padding-top:24px !important; }
    .fm-opp { grid-template-columns:1fr !important; gap:24px !important; }
  }
  @media (max-width:640px) {
    .fm-4col { grid-template-columns:1fr 1fr !important; }
    .fm-nav-links { display:none !important; }
    .fm-sec { padding-top:72px !important; }
    .fm-pad { padding:28px !important; }
    .fm-foot { grid-template-columns:1fr 1fr !important; }
    .fm-funnel > * { min-width:88px !important; }
  }
  /* ── le croisement · cycle de 11 s, déclenché à l'entrée dans le champ ── */
  .fg-field circle, .fg-e, .fg-f, .fg-n, .fg-nr, .fg-core, .fg-halo, .fg-bloom, .fg-orbit,
  .fg-spark, .fg-ring, .fg-out, .fg-pulse, .fg-goal, .fg-gh, .fg-gauge,
  .fg-l, .fg-cross, .fg-goal-l, .fg-score { animation-play-state:paused; }
  .fg-run .fg-field circle, .fg-run .fg-e, .fg-run .fg-f, .fg-run .fg-n, .fg-run .fg-nr,
  .fg-run .fg-core, .fg-run .fg-halo, .fg-run .fg-bloom, .fg-run .fg-orbit, .fg-run .fg-spark,
  .fg-run .fg-ring, .fg-run .fg-out, .fg-run .fg-pulse, .fg-run .fg-goal, .fg-run .fg-gh,
  .fg-run .fg-gauge, .fg-run .fg-l, .fg-run .fg-cross, .fg-run .fg-goal-l,
  .fg-run .fg-score { animation-play-state:running; }

  /* le champ : dix-sept millions de points qui respirent */
  .fg-dot { fill:#0069e0; opacity:0; animation:fgDot 9s ease-in-out infinite; }
  @keyframes fgDot { 0%,100% { opacity:.05; } 50% { opacity:.2; } }

  /* branches dormantes */
  .fg-e { fill:none; stroke:#d6d9de; stroke-width:1.4; stroke-dasharray:100; stroke-dashoffset:100; }
  .fg-e1 { animation:fgTrace .9s cubic-bezier(.22,1,.36,1) .2s forwards; }
  .fg-e2 { animation:fgTrace .9s cubic-bezier(.22,1,.36,1) .75s forwards; }
  .fg-e3 { animation:fgTrace .9s cubic-bezier(.22,1,.36,1) 1.3s forwards; }
  .fg-e4 { animation:fgTrace .9s cubic-bezier(.22,1,.36,1) 1.85s forwards; }
  @keyframes fgTrace { to { stroke-dashoffset:0; } }

  /* flux lumineux : un segment court qui parcourt la courbe */
  .fg-f { fill:none; stroke:#4da4ff; stroke-width:2.6; stroke-linecap:round; stroke-dasharray:9 91; stroke-dashoffset:9; opacity:0; }
  .fg-f1 { animation:fgFlow 11s cubic-bezier(.5,0,.5,1) 1.1s infinite; }
  .fg-f2 { animation:fgFlow 11s cubic-bezier(.5,0,.5,1) 1.65s infinite; }
  .fg-f3 { animation:fgFlow 11s cubic-bezier(.5,0,.5,1) 2.2s infinite; }
  .fg-f4 { animation:fgFlow 11s cubic-bezier(.5,0,.5,1) 2.75s infinite; }
  @keyframes fgFlow {
    0% { stroke-dashoffset:9; opacity:0; }
    3% { opacity:1; }
    17% { stroke-dashoffset:-91; opacity:1; }
    20%,100% { stroke-dashoffset:-91; opacity:0; }
  }

  /* nœuds sources */
  .fg-n { fill:#c7c9d1; opacity:0; }
  .fg-n1 { animation:fgPop .55s cubic-bezier(.34,1.56,.64,1) 0s forwards, fgLit 11s linear 1.1s infinite; }
  .fg-n2 { animation:fgPop .55s cubic-bezier(.34,1.56,.64,1) .55s forwards, fgLit 11s linear 1.65s infinite; }
  .fg-n3 { animation:fgPop .55s cubic-bezier(.34,1.56,.64,1) 1.1s forwards, fgLit 11s linear 2.2s infinite; }
  .fg-n4 { animation:fgPop .55s cubic-bezier(.34,1.56,.64,1) 1.65s forwards, fgLit 11s linear 2.75s infinite; }
  @keyframes fgPop { from { opacity:0; r:1; } to { opacity:1; r:5.5; } }
  @keyframes fgLit { 0%,2% { fill:#c7c9d1; } 8%,17% { fill:#4da4ff; } 26%,100% { fill:#93979f; } }

  .fg-nr { fill:none; stroke:#0069e0; stroke-width:1.2; opacity:0; }
  .fg-nr1 { animation:fgPing 11s ease-out 1.1s infinite; }
  .fg-nr2 { animation:fgPing 11s ease-out 1.65s infinite; }
  .fg-nr3 { animation:fgPing 11s ease-out 2.2s infinite; }
  .fg-nr4 { animation:fgPing 11s ease-out 2.75s infinite; }
  @keyframes fgPing { 0% { opacity:.6; r:5; } 8% { opacity:0; r:15; } 9%,100% { opacity:0; } }

  /* le noyau s'assemble */
  .fg-core { fill:url(#fgCore); opacity:0; transform-origin:450px 150px; animation:fgCore 11s cubic-bezier(.22,1,.36,1) .9s infinite; }
  @keyframes fgCore {
    0% { opacity:0; transform:scale(.2); }
    6% { opacity:1; transform:scale(.55); }
    24% { transform:scale(.72); }
    30% { transform:scale(.9); }
    36% { transform:scale(1.42); }
    42% { transform:scale(.96); }
    46%,100% { transform:scale(1); opacity:1; }
  }

  .fg-halo { fill:none; stroke:#0069e0; stroke-opacity:.2; stroke-width:1.2; opacity:0; transform-origin:450px 150px; animation:fgHalo 11s ease-in-out 1s infinite; }
  @keyframes fgHalo { 0%,4% { opacity:0; transform:scale(.7); } 12% { opacity:1; transform:scale(1); } 36% { opacity:1; transform:scale(1); } 40% { opacity:.5; transform:scale(1.18); } 48%,100% { opacity:.9; transform:scale(1); } }

  .fg-bloom { fill:#4da4ff; opacity:0; transform-origin:450px 150px; animation:fgBloom 11s ease-out 3.9s infinite; }
  @keyframes fgBloom { 0% { opacity:0; transform:scale(.4); } 4% { opacity:.42; transform:scale(1.3); } 16% { opacity:.12; transform:scale(1); } 100% { opacity:.12; transform:scale(1); } }

  /* l'anneau du croisement se referme */
  .fg-orbit { fill:none; stroke:#0069e0; stroke-width:1.6; stroke-linecap:round; stroke-dasharray:100; stroke-dashoffset:100; transform-origin:450px 150px; transform:rotate(-90deg); animation:fgOrbit 11s cubic-bezier(.22,1,.36,1) 1.1s infinite; }
  @keyframes fgOrbit { 0% { stroke-dashoffset:100; } 30% { stroke-dashoffset:0; } 100% { stroke-dashoffset:0; } }

  .fg-spark { fill:#fff; opacity:0; transform-origin:450px 150px; animation:fgSpark 11s ease-out 4s infinite; }
  @keyframes fgSpark { 0% { opacity:0; transform:scale(.2); } 2% { opacity:1; transform:scale(2.4); } 9% { opacity:0; transform:scale(.6); } 100% { opacity:0; } }

  /* les ondes traversent le champ */
  .fg-ring { fill:none; stroke:#0069e0; stroke-width:2; opacity:0; transform-origin:450px 150px; }
  .fg-ring1 { animation:fgShock 11s cubic-bezier(.16,1,.3,1) 3.95s infinite; }
  .fg-ring2 { animation:fgShock 11s cubic-bezier(.16,1,.3,1) 4.15s infinite; }
  .fg-ring3 { animation:fgShock 11s cubic-bezier(.16,1,.3,1) 4.35s infinite; }
  @keyframes fgShock { 0% { opacity:.65; transform:scale(1); stroke-width:2.4; } 16% { opacity:0; transform:scale(9); stroke-width:.25; } 17%,100% { opacity:0; } }

  /* le faisceau */
  .fg-out { stroke:url(#fgBeam); stroke-width:2.4; stroke-dasharray:100; stroke-dashoffset:100; animation:fgTrace 1.1s cubic-bezier(.22,1,.36,1) 4.3s forwards; }
  .fg-pulse { stroke:#4da4ff; stroke-width:3; stroke-linecap:round; stroke-dasharray:7 93; stroke-dashoffset:7; opacity:0; animation:fgBeamPulse 11s cubic-bezier(.5,0,.5,1) 4.6s infinite; }
  @keyframes fgBeamPulse { 0% { stroke-dashoffset:7; opacity:0; } 2% { opacity:1; } 12% { stroke-dashoffset:-93; opacity:1; } 15%,100% { stroke-dashoffset:-93; opacity:0; } }

  /* l'opportunité et sa jauge */
  .fg-goal { fill:#0a0d12; opacity:0; transform-origin:760px 150px; animation:fgGoal 11s cubic-bezier(.34,1.56,.64,1) 5.2s infinite; }
  @keyframes fgGoal { 0% { opacity:0; transform:scale(.2); } 6% { opacity:1; transform:scale(1.55); } 12% { transform:scale(1); } 100% { opacity:1; transform:scale(1); } }
  .fg-gh { fill:none; stroke:#0a0d12; stroke-width:2; opacity:0; transform-origin:760px 150px; animation:fgShock 11s ease-out 5.3s infinite; }
  .fg-gauge { fill:none; stroke:#0069e0; stroke-width:2.2; stroke-linecap:round; stroke-dasharray:100; stroke-dashoffset:100; transform-origin:760px 150px; transform:rotate(-90deg); animation:fgGauge 11s cubic-bezier(.22,1,.36,1) 5.5s infinite; }
  @keyframes fgGauge { 0% { stroke-dashoffset:100; } 18% { stroke-dashoffset:6; } 100% { stroke-dashoffset:6; } }

  .fg-l { opacity:0; }
  .fg-l1 { animation:fgSlide .7s cubic-bezier(.22,1,.36,1) .2s forwards; }
  .fg-l2 { animation:fgSlide .7s cubic-bezier(.22,1,.36,1) .75s forwards; }
  .fg-l3 { animation:fgSlide .7s cubic-bezier(.22,1,.36,1) 1.3s forwards; }
  .fg-l4 { animation:fgSlide .7s cubic-bezier(.22,1,.36,1) 1.85s forwards; }
  @keyframes fgSlide { from { opacity:0; transform:translateY(6px); } to { opacity:1; transform:none; } }
  .fg-cross { opacity:0; animation:fgSlide .7s cubic-bezier(.22,1,.36,1) 2.4s forwards; }
  .fg-goal-l { opacity:0; animation:fgSlide .7s cubic-bezier(.22,1,.36,1) 5.4s forwards; }
  .fg-score { opacity:0; animation:fgSlide .7s cubic-bezier(.22,1,.36,1) 5.9s forwards; }

  /* ── survol : la colonne s'allume ── */
  .fn-col { cursor:pointer; }
  .fn-col .fn-bar, .fn-col .fn-num, .fn-col .fn-lab, .fn-col .fn-glow { transition:transform .42s cubic-bezier(.22,1,.36,1), opacity .32s ease, filter .32s ease; }
  .fn-col:hover .fn-bar { transform:scaleY(1) translateY(-9px); filter:brightness(1.06) saturate(1.12) drop-shadow(0 12px 22px rgba(0,105,224,.34)); }
  .fn-col:hover .fn-num { transform:translateY(-13px) scale(1.16); fill:#0069e0 !important; }
  .fn-col:hover .fn-lab { fill:#0069e0 !important; transform:translateY(2px); }
  .fn-col:hover .fn-sheen { opacity:1; animation:none; }
  .fn-col:hover .fn-glow { opacity:.5 !important; animation:none; transform:scale(1.05); }
  .fn-col:not(:hover) .fn-bar { filter:none; }
  /* les voisines s'effacent : le regard va là où la souris est */
  svg:has(.fn-col:hover) .fn-col:not(:hover) .fn-bar { opacity:.42; }
  svg:has(.fn-col:hover) .fn-col:not(:hover) .fn-num,
  svg:has(.fn-col:hover) .fn-col:not(:hover) .fn-lab { opacity:.38; }

  /* ── l'entonnoir · le filtrage se voit ── */
  .fn-bar, .fn-ghost, .fn-dust, .fn-sheen, .fn-num, .fn-lab, .fn-glow { animation-play-state:paused; }
  .fn-run .fn-bar, .fn-run .fn-ghost, .fn-run .fn-dust, .fn-run .fn-sheen,
  .fn-run .fn-num, .fn-run .fn-lab, .fn-run .fn-glow { animation-play-state:running; }

  .fn-bar { animation:fnGrow .9s cubic-bezier(.22,1.12,.36,1) both; }
  @keyframes fnGrow { from { transform:scaleY(0); } to { transform:scaleY(1); } }

  .fn-last { animation:fnGrow .9s cubic-bezier(.34,1.56,.64,1) both; }
  .fn-glow { opacity:0; pointer-events:none; animation:fnGlow 4.5s ease-in-out infinite; }
  @keyframes fnGlow { 0%,100% { opacity:.18; transform:scale(1); } 50% { opacity:.42; transform:scale(1.06); } }

  /* la matière écartée apparaît, puis s'évapore */
  .fn-ghost { opacity:0; animation:fnShed 1.5s cubic-bezier(.22,1,.36,1) both; }
  @keyframes fnShed { 0% { opacity:0; transform:translateY(0); } 22% { opacity:.85; } 58% { opacity:.5; transform:translateY(-6px); } 100% { opacity:0; transform:translateY(-26px); } }

  .fn-dust { opacity:0; animation:fnDust 1.7s cubic-bezier(.3,0,.4,1) both; }
  @keyframes fnDust { 0% { opacity:0; transform:translateY(0) scale(1); } 18% { opacity:.9; } 100% { opacity:0; transform:translateY(-52px) scale(.3); } }

  /* balayage sur les barres établies */
  .fn-sheen { opacity:0; animation:fnSheen 5.5s ease-in-out infinite; }
  @keyframes fnSheen { 0%,72% { opacity:0; } 82% { opacity:1; } 100% { opacity:0; } }

  /* les nombres se verrouillent */
  .fn-num { opacity:0; animation:fnLock .8s cubic-bezier(.22,1,.36,1) both; }
  @keyframes fnLock { 0% { opacity:0; filter:blur(5px); transform:translateY(8px) scale(.9); } 100% { opacity:1; filter:blur(0); transform:none; } }

  .fn-lab { opacity:0; animation:fnFadeUp .7s ease-out both; }
  @keyframes fnFadeUp { from { opacity:0; transform:translateY(5px); } to { opacity:1; transform:none; } }

  /* la ligne de filtrage descend en escalier */
  

  /* ── chapitre 01 · la frise datée ── */
  .va-row { position:relative; padding:18px 0 18px 64px; }
  .va-row::before { content:''; position:absolute; left:19px; top:0; bottom:0; width:1px; background:#d6e4f5; }
  .va-row:last-child::before { bottom:50%; }
  .va-dot { position:absolute; left:12px; top:24px; width:15px; height:15px; border-radius:9999px; background:#fff; border:2px solid #c7d5e8; transition:box-shadow .34s ease, transform .34s cubic-bezier(.34,1.56,.64,1); }
  .va-row:hover .va-dot { box-shadow:0 0 0 6px rgba(0,105,224,.1); transform:scale(1.16); }
  .va-t { transition:color .3s ease; }
  .va-row:hover .va-t { color:#0a0d12; }
  .va-bar { height:1px; width:0; background:linear-gradient(90deg,#0069e0,transparent); transition:width .5s cubic-bezier(.22,1,.36,1); margin-top:11px; }
  .va-row:hover .va-bar { width:100%; }
  @media (max-width:560px) { .va-row { padding-left:52px; } .va-dot { left:6px; } .va-row::before { left:13px; } }

  /* ── chapitre 03 · le score se construit ── */
  .sa-row { display:grid; grid-template-columns:26px 1fr 76px 60px; gap:18px; align-items:center; padding:19px 0; border-bottom:1px solid #eef3fa; opacity:0; animation-play-state:paused; }
  .sa-tick { width:26px; height:26px; border-radius:9999px; background:#f1f6fc; display:flex; align-items:center; justify-content:center; }
  .sa-tick svg { opacity:0; animation-play-state:paused; }
  .sa-add { font-family:'Schibsted Grotesk',sans-serif; font-size:15px; color:#0069e0; text-align:right; opacity:0; animation-play-state:paused; }
  .sa-track { height:5px; border-radius:9999px; background:#eef3fa; overflow:hidden; }
  .sa-fill { height:100%; border-radius:9999px; background:linear-gradient(90deg,#8ac6ff,#0069e0); width:0; animation-play-state:paused; }
  .sa-digits { display:inline-block; height:1em; overflow:hidden; vertical-align:top; }
  .sa-digits span { display:block; height:1em; }
  .sa-stack { animation-play-state:paused; }

  .sa-run .sa-row { animation:saIn .7s cubic-bezier(.22,1,.36,1) both; animation-play-state:running; }
  .sa-run .sa-tick svg { animation:saTick .4s cubic-bezier(.34,1.56,.64,1) both; animation-play-state:running; }
  .sa-run .sa-add { animation:saIn .5s ease both; animation-play-state:running; }
  .sa-run .sa-fill { animation:saFill 1s cubic-bezier(.22,1,.36,1) both; animation-play-state:running; }
  .sa-run .sa-stack { animation:saCount 4.6s cubic-bezier(.5,0,.4,1) both; animation-play-state:running; }

  @keyframes saIn { from { opacity:0; transform:translateX(-14px); } to { opacity:1; transform:none; } }
  @keyframes saTick { from { opacity:0; transform:scale(.3); } to { opacity:1; transform:scale(1); } }
  @keyframes saFill { from { width:0; } to { width:var(--w); } }
  @keyframes saCount { 0% { transform:translateY(0); } 14% { transform:translateY(-1em); } 34% { transform:translateY(-2em); } 56% { transform:translateY(-3em); } 78%,100% { transform:translateY(-4em); } }
  @media (max-width:560px) { .sa-row { grid-template-columns:22px 1fr 52px; gap:12px; } .sa-add { display:none; } }

  .fm-menu { display:none; }
  .fm-menu.is-open { display:block; }
  #fmStage video { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; opacity:0; transition:opacity .45s ease; will-change:opacity; }
  #fmStage video.on { opacity:1; }
  .fmChap { position:absolute; inset:0; display:flex; align-items:center; opacity:0; transform:translateY(18px); transition:opacity .5s ease, transform .5s ease; pointer-events:none; }
  .fmChap.on { opacity:1; transform:none; }
  .fmChap em { font-style:normal; color:#5eead4; }
  @media (max-width:900px) { .fmChap { align-items:flex-end !important; padding-bottom:110px !important; } }
  @keyframes fmSpin { to { transform:rotate(360deg); } }

  /* ── dévoilement au défilement ─────────────────────────────── */
  @keyframes fmGrow { from { transform:scaleY(.04); } to { transform:scaleY(1); } }
  @keyframes fmWiden { from { transform:scaleX(0); } to { transform:scaleX(1); } }
  @keyframes fmFadeUp { from { opacity:0; transform:translateY(16px); } to { opacity:1; transform:none; } }
  @keyframes fmTrace { from { stroke-dashoffset:1400; } to { stroke-dashoffset:0; } }
  @keyframes fmPop { 0% { opacity:0; transform:scale(.55); } 64% { transform:scale(1.14); } 100% { opacity:1; transform:scale(1); } }

  /* barres verticales : montent depuis leur base */
  .fm-anim [class*="bar-fill"], .fm-anim .fm-bar {
    transform-origin:bottom center; animation:fmGrow .9s cubic-bezier(.22,1,.36,1) both;
  }
  /* barres horizontales : se déploient depuis la gauche */
  .fm-anim .fm-hbar { transform-origin:left center; animation:fmWiden 1s cubic-bezier(.22,1,.36,1) both; }
  /* tracés SVG : se dessinent */
  .fm-anim .fm-line { stroke-dasharray:1400; animation:fmTrace 1.6s cubic-bezier(.33,1,.68,1) both; }
  /* points, pastilles, jalons : éclosent */
  .fm-anim .fm-node { animation:fmPop .7s cubic-bezier(.34,1.56,.64,1) both; }
  /* lignes de liste, cartes, cellules : montent en cascade */
  .fm-anim .fm-step { animation:fmFadeUp .7s cubic-bezier(.22,1,.36,1) both; }
  @keyframes fmTilt {
    0%,100% { transform:rotateX(9deg) rotateY(-7deg) rotateZ(-.6deg) translateZ(0); }
    24%     { transform:rotateX(4deg) rotateY(8deg)  rotateZ(.5deg)  translateZ(6px); }
    48%     { transform:rotateX(12deg) rotateY(3deg) rotateZ(-.3deg) translateZ(2px); }
    72%     { transform:rotateX(6deg) rotateY(-10deg) rotateZ(.7deg) translateZ(8px); }
  }
  .fm-medal:hover .fm-tilt { animation-play-state:paused; transform:rotateX(3deg) rotateY(0deg) translateZ(22px) scale(1.07); transition:transform .6s cubic-bezier(.16,1,.3,1); }
  @keyframes fmSpinBack { to { transform:rotate(-360deg); } }
  @keyframes fmSweep { 0% { transform:translateX(-150%) skewX(-22deg); } 100% { transform:translateX(360%) skewX(-22deg); } }
  @media (max-width:1100px) { .fm-5col { grid-template-columns:repeat(3,1fr) !important; gap:32px !important; } }
  @media (max-width:680px) { .fm-5col { grid-template-columns:repeat(2,1fr) !important; } }
  .fm-anim-off *, .fm-anim-off { animation-play-state:paused !important; }
  @media (prefers-reduced-motion: reduce) {
    * { animation:none !important; }
    #fmStage video { opacity:1 !important; transition:none !important; }
    .fmChap { opacity:1 !important; transform:none !important; transition:none !important; }
    .fg-e, .fg-out, .fg-orbit { stroke-dashoffset:0 !important; }
    .fg-gauge { stroke-dashoffset:6 !important; }
    .fg-n, .fg-l, .fg-core, .fg-halo, .fg-orbit, .fg-goal, .fg-gauge, .fg-cross, .fg-goal-l, .fg-score { opacity:1 !important; animation:none !important; }
    .fg-e { animation:none !important; }
    .fg-n { fill:#93979f !important; }
    .fg-dot { opacity:.12 !important; animation:none !important; }
    .fg-f, .fg-pulse, .fg-ring, .fg-gh, .fg-nr, .fg-spark, .fg-bloom { display:none !important; }
    .fn-bar, .fn-num, .fn-lab { opacity:1 !important; transform:none !important; filter:none !important; animation:none !important; }
    .fn-ghost, .fn-dust, .fn-sheen, .fn-glow { display:none !important; }
    .sa-row, .sa-add, .sa-tick svg { opacity:1 !important; animation:none !important; }
    .sa-fill { width:var(--w) !important; animation:none !important; }
    .sa-stack { transform:translateY(-4em) !important; animation:none !important; }
  }

  /* la carte d'opportunité garde sa colonne de score seulement quand elle est large */
  @media (max-width:1100px) {
    .fm-opp { grid-template-columns:1fr !important; gap:28px !important; }
    .fm-opp-score { padding-left:0 !important; border-left:0 !important; border-top:1px solid #f6f7f8; padding-top:28px !important; }
  }
  @keyframes fmHold {
    0%,100% { transform:rotateX(6deg) rotateY(-4deg); }
    30%     { transform:rotateX(2deg) rotateY(5deg); }
    62%     { transform:rotateX(8deg) rotateY(1deg); }
  }
  .fm-coin { animation:fmHold 16s ease-in-out infinite; transform-style:preserve-3d; }
  .fm-piece:hover .fm-coin { animation-play-state:paused; transform:rotateX(1deg) rotateY(0deg) scale(1.045); transition:transform .55s cubic-bezier(.22,1,.36,1); }
  @keyframes fmSealRot { to { transform:rotate(360deg); } }
  @media (max-width:1100px) { .fm-5col { grid-template-columns:repeat(3,1fr) !important; gap:28px !important; } }
  @media (max-width:660px) { .fm-5col { grid-template-columns:repeat(2,1fr) !important; } }
  @media (max-width:960px) {
    .fm-2col { grid-template-columns:1fr !important; gap:48px !important; }
    .fm-4col { grid-template-columns:repeat(2,1fr) !important; }
    .fm-foot { grid-template-columns:1fr 1fr !important; gap:32px !important; }
    .fm-sticky { position:static !important; }
    .fm-nav-links { display:none !important; }
    .fm-nav-login { display:none !important; }
    .fm-menu-btn { display:flex !important; }
    .fm-sec { padding-top:104px !important; }
    .fm-pad { padding:72px 32px !important; }
    .fm-media-pad { padding:48px !important; }
  }
  @media (max-width:960px) {
    .fm-3col { grid-template-columns:1fr !important; }
    .fm-prod-head { display:none !important; }
    .fm-prod-row { grid-template-columns:1fr !important; gap:14px !important; }
  }
  @media (max-width:760px) {
    .fm-tl { grid-template-columns:52px 1fr !important; gap:12px !important; }
    .fm-tl > span:nth-child(2) { display:none !important; }
    .fm-tl > span:last-child { grid-column:2; }
    .fm-row { grid-template-columns:1fr !important; gap:12px !important; }
    .fm-row-score { text-align:left !important; }
    .fm-4col { grid-template-columns:1fr !important; }
    .fm-foot { grid-template-columns:1fr !important; }
    .fm-sec { padding-top:80px !important; }
    .fm-pad { padding:48px 24px !important; }
    .fm-media-pad { padding:32px !important; }
    .fm-card-pad { padding:28px !important; }
  }

/* ============================================================
   2 · styles extraits, par chapitre
   ============================================================ */

/* ── nav ───────────────────────────────────────────────────── */

.nav-el {
  position: sticky;
  top: 0;
  z-index: 40;
  background: rgba(235,245,255,.86);
  backdrop-filter: blur(14px);
  border-bottom: 1px solid rgba(10,13,18,.06);
}

.nav-ligne {
  max-width: 1200px;
  margin: 0 auto;
  padding: 20px 24px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
}

.nav-lien {
  display: inline-flex;
  align-items: center;
  flex: 0 0 auto;
}

.nav-el-2 {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  color: #0a0d12;
} /* ×2 */

.nav-el-3 {
  font-family: 'Schibsted Grotesk',sans-serif;
  font-weight: 500;
  font-size: 23px;
  letter-spacing: -.02em;
}

.nav-ligne-2 {
  display: flex;
  gap: 28px;
  font-size: 14px;
  font-weight: 500;
  flex: 1 1 auto;
  min-width: 0;
  justify-content: center;
}

.nav-lien-2 {
  color: #535862;
} /* ×4 */

.nav-lien-2:hover {
  color: #0a0d12;
}

.nav-ligne-3 {
  display: flex;
  align-items: center;
  gap: 20px;
  flex: 0 0 auto;
}

.nav-bouton {
  display: none;
  align-items: center;
  justify-content: center;
  width: 42px;
  height: 42px;
  padding: 0;
  border-radius: 12px;
  background: #fafdff;
  border: 1px solid rgba(10,13,18,.1);
  cursor: pointer;
  flex: 0 0 auto;
}

.nav-lien-3 {
  font-size: 14px;
  font-weight: 500;
  color: #535862;
  white-space: nowrap;
}

.nav-lien-3:hover {
  color: #0a0d12;
}

.nav-lien-4 {
  padding: 12px 26px;
  border-radius: 9999px;
  background: #181d27;
  color: #fff;
  font-size: 15px;
  font-weight: 500;
  white-space: nowrap;
  box-shadow: rgba(10,13,18,.8) 0 1px 2px 0, rgb(10,13,18) 0 0 0 1px;
}

.nav-lien-4:hover {
  background: #0a0d12;
}

.nav-el-4 {
  border-top: 1px solid rgba(10,13,18,.06);
  background: #fafdff;
} /* ×2 */

.nav-colonne {
  max-width: 1200px;
  margin: 0 auto;
  padding: 16px 24px 24px;
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.nav-lien-5 {
  padding: 14px 16px;
  border-radius: 12px;
  font-size: 16px;
  font-weight: 500;
  color: #0a0d12;
} /* ×5 */

.nav-lien-5:hover {
  background: #ebf5ff;
  color: #0069e0;
}

/* ── hero ──────────────────────────────────────────────────── */

.hero-conteneur {
  max-width: 1200px;
  margin: 0 auto;
  padding: 28px 24px 0;
  position: relative;
}

.hero-el {
  text-align: center;
  position: relative;
  z-index: 2;
}

.hero-pilule {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  padding: 8px 18px;
  border-radius: 9999px;
  background: #fafdff;
  border: 1px solid rgba(0,105,224,.16);
  font-size: 12px;
  font-weight: 500;
  color: #0069e0;
  box-shadow: rgba(4,69,144,.08) 0 14px 20px 4px;
}

.hero-pilule-2 {
  width: 6px;
  height: 6px;
  border-radius: 9999px;
  background: #0069e0;
  animation: fmPulse 2s ease-in-out infinite;
}

.hero-titre {
  font-family: 'Schibsted Grotesk',sans-serif;
  font-weight: 500;
  font-size: clamp(56px,10.4vw,148px);
  line-height: 1.05;
  letter-spacing: -.02em;
  margin: 32px 0 0;
  color: #0a0d12;
  text-wrap: balance;
}

.hero-texte {
  margin: 32px auto 0;
  max-width: 620px;
  font-size: 20px;
  line-height: 1.4;
  letter-spacing: -.01em;
  color: #535862;
}

.hero-ligne {
  margin-top: 40px;
  display: flex;
  gap: 16px;
  justify-content: center;
  flex-wrap: wrap;
}

.hero-lien {
  padding: 16px 32px;
  border-radius: 9999px;
  background: #181d27;
  color: #fff;
  font-size: 16px;
  font-weight: 500;
  white-space: nowrap;
  box-shadow: rgba(10,13,18,.8) 0 1px 2px 0, rgb(10,13,18) 0 0 0 1px;
}

.hero-lien:hover {
  background: #0a0d12;
}

.hero-lien-2 {
  padding: 16px 32px;
  border-radius: 9999px;
  background: #fafdff;
  border: 1px solid rgba(10,13,18,.1);
  color: #0a0d12;
  font-size: 16px;
  font-weight: 500;
  white-space: nowrap;
}

.hero-lien-2:hover {
  border-color: rgba(0,105,224,.4);
  color: #0069e0;
}

.hero-carte {
  margin-top: 64px;
  border-radius: 32px;
  overflow: hidden;
  background: #fafdff;
  box-shadow: rgba(4,69,144,.08) 0 14px 20px 4px;
  position: relative;
}

.hero-bloc {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 16/7;
  background: linear-gradient(180deg,#fafdff 0%,#f3f8ff 58%,#eaf3ff 100%);
  cursor: crosshair;
}

.hero-surtitre {
  position: absolute;
  top: 26px;
  left: 0;
  right: 0;
  text-align: center;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: #93979f;
  pointer-events: none;
  transition: opacity .5s ease;
}

.hero-ligne-2 {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: flex-end;
  padding: 40px;
  pointer-events: none;
  background: linear-gradient(180deg,transparent 38%,rgba(250,253,255,.84) 66%,#fafdff 100%);
}

.hero-grille {
  display: grid;
  grid-template-columns: repeat(4,1fr);
  gap: 24px;
  width: 100%;
}

.hero-label {
  font-family: 'Schibsted Grotesk',sans-serif;
  font-weight: 500;
  font-size: clamp(24px,2.6vw,32px);
  line-height: 1.25;
  letter-spacing: -.02em;
  color: #0a0d12;
  font-variant-numeric: tabular-nums;
} /* ×4 */

.hero-label-2 {
  font-size: 12px;
  font-weight: 500;
  color: #535862;
  margin-top: 4px;
} /* ×4 */

/* ── mouvement ─────────────────────────────────────────────── */

.mouvement-conteneur {
  max-width: 1200px;
  margin: 0 auto;
  padding: 160px 24px 0;
} /* ×14 */

.mouvement-grille {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 80px;
  align-items: center;
}

.mouvement-surtitre {
  font-size: 12px;
  font-weight: 600;
  letter-spacing: .06em;
  text-transform: uppercase;
  color: #0069e0;
} /* ×12 */

.mouvement-titre {
  font-family: 'Schibsted Grotesk',sans-serif;
  font-weight: 500;
  font-size: clamp(34px,5.6vw,72px);
  line-height: 1.11;
  letter-spacing: -.02em;
  margin: 24px 0 0;
  color: #0a0d12;
  text-wrap: balance;
} /* ×7 */

.mouvement-texte {
  margin: 32px 0 0;
  font-size: 18px;
  line-height: 1.33;
  letter-spacing: -.01em;
  color: #535862;
  max-width: 460px;
}

.mouvement-carte {
  border-radius: 32px;
  background: #fafdff;
  box-shadow: rgba(4,69,144,.08) 0 14px 20px 4px;
  padding: 32px 36px;
}

.mouvement-ligne {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 16px;
  padding-bottom: 20px;
  border-bottom: 1px solid #eef3fa;
}

.mouvement-label {
  font-family: 'Schibsted Grotesk',sans-serif;
  font-weight: 500;
  font-size: 19px;
  letter-spacing: -.02em;
  color: #0a0d12;
} /* ×2 */

.mouvement-label-2 {
  font-size: 12px;
  color: #93979f;
  white-space: nowrap;
  flex: 0 0 auto;
} /* ×2 */

.mouvement-ligne-2 {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 16px;
} /* ×5 */

.mouvement-label-3 {
  font-size: 16px;
  font-weight: 500;
  color: #535862;
} /* ×5 */

.mouvement-label-4 {
  font-family: 'Schibsted Grotesk',sans-serif;
  font-size: 13px;
  color: #93979f;
  white-space: nowrap;
  flex: 0 0 auto;
} /* ×5 */

.mouvement-carte-2 {
  margin-top: 16px;
  padding: 18px 20px;
  border-radius: 16px;
  background: #ebf5ff;
  font-size: 14px;
  line-height: 1.5;
  color: #535862;
}

.mouvement-el {
  color: #0a0d12;
  font-weight: 600;
}

/* ── scenes ────────────────────────────────────────────────── */

.scenes-el {
  position: relative;
  margin-top: 160px;
  background: #0b0c10;
}

.scenes-bloc {
  position: sticky;
  top: 0;
  height: 100svh;
  overflow: hidden;
  background: #000;
}

.scenes-couche {
  position: absolute;
  inset: 0;
  pointer-events: none;
  background: linear-gradient(90deg,rgba(11,12,16,.88) 0%,rgba(11,12,16,.54) 38%,rgba(11,12,16,.1) 68%,transparent 100%),linear-gradient(0deg,rgba(11,12,16,.62) 0%,transparent 34%);
}

.scenes-surtitre {
  position: absolute;
  left: clamp(24px,6vw,104px);
  top: clamp(24px,5vh,56px);
  font-size: 12px;
  font-weight: 600;
  letter-spacing: .06em;
  text-transform: uppercase;
  color: rgba(255,255,255,.42);
  z-index: 2;
}

.scenes-couche-2 {
  position: absolute;
  inset: 0;
}

.scenes-el-2 {
  padding: 0 clamp(24px,6vw,104px);
} /* ×5 */

.scenes-bloc-2 {
  max-width: 620px;
} /* ×5 */

.scenes-surtitre-2 {
  font-size: 11px;
  font-weight: 600;
  letter-spacing: .16em;
  text-transform: uppercase;
  color: #5eead4;
} /* ×5 */

.scenes-label {
  font-family: 'Schibsted Grotesk',sans-serif;
  font-weight: 500;
  font-size: clamp(32px,5.2vw,68px);
  line-height: 1.06;
  letter-spacing: -.02em;
  color: #fff;
  margin-top: 22px;
} /* ×5 */

.scenes-texte {
  margin: 24px 0 0;
  font-size: 17px;
  line-height: 1.45;
  color: #c7c9d1;
  max-width: 470px;
} /* ×5 */

.scenes-colonne {
  position: absolute;
  right: clamp(20px,3vw,40px);
  top: 50%;
  transform: translateY(-50%);
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.scenes-pilule {
  width: 2px;
  height: 26px;
  border-radius: 9999px;
  background: rgba(255,255,255,.2);
  transition: background .4s ease;
} /* ×5 */

.scenes-couche-3 {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  height: 2px;
  background: rgba(255,255,255,.1);
}

.scenes-bloc-3 {
  height: 100%;
  width: 0%;
  background: linear-gradient(90deg,#5eead4,#0099ff);
}

/* ── score ─────────────────────────────────────────────────── */

.score-grille {
  display: grid;
  grid-template-columns: .85fr 1.15fr;
  gap: 64px;
  align-items: center;
} /* ×2 */

.score-label {
  font-family: 'Schibsted Grotesk',sans-serif;
  font-weight: 500;
  font-size: clamp(26px,3.8vw,48px);
  line-height: 1.17;
  letter-spacing: -.02em;
  color: #0069e0;
  margin-top: 14px;
}

.score-texte {
  margin: 32px 0 0;
  font-size: 18px;
  line-height: 1.33;
  letter-spacing: -.01em;
  color: #535862;
  max-width: 420px;
} /* ×2 */

.score-carte {
  border-radius: 32px;
  background: #fafdff;
  box-shadow: rgba(4,69,144,.08) 0 14px 20px 4px;
  padding: 36px 40px;
}

.score-ligne {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 16px;
  padding-bottom: 14px;
}

.score-graphe {
  animation-delay: .7s;
} /* ×2 */

.score-label-2 {
  font-size: 16px;
  font-weight: 500;
  color: #0a0d12;
} /* ×9 */

.score-graphe-2 {
  animation-delay: 1.6s;
} /* ×2 */

.score-graphe-3 {
  animation-delay: 2.5s;
} /* ×2 */

.score-graphe-4 {
  animation-delay: 3.4s;
} /* ×2 */

.score-ligne-2 {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 20px;
  padding-top: 26px;
}

.score-surtitre {
  font-size: 12px;
  font-weight: 600;
  letter-spacing: .06em;
  text-transform: uppercase;
  color: #93979f;
}

.score-label-3 {
  font-size: 14px;
  color: #535862;
  margin-top: 6px;
}

.score-label-4 {
  font-family: 'Schibsted Grotesk',sans-serif;
  font-weight: 500;
  font-size: clamp(44px,6vw,64px);
  line-height: 1;
  letter-spacing: -.03em;
  color: #0069e0;
  font-variant-numeric: tabular-nums;
}

/* ── angle ─────────────────────────────────────────────────── */

.angle-texte {
  margin: 28px 0 0;
  font-size: 17px;
  line-height: 1.45;
  color: #535862;
  max-width: 400px;
}

.angle-carte {
  border-radius: 32px;
  background: #fff;
  box-shadow: rgba(4,69,144,.08) 0 14px 20px 4px;
  overflow: hidden;
}

.angle-ligne {
  display: flex;
  gap: 6px;
  padding: 5px;
  border-radius: 9999px;
  background: #f4f9ff;
  flex-wrap: wrap;
}

.angle-ligne-2 {
  display: flex;
  align-items: baseline;
  gap: 16px;
  flex-wrap: wrap;
}

.angle-label {
  font-family: 'Schibsted Grotesk',sans-serif;
  font-weight: 500;
  font-size: clamp(20px,2.2vw,26px);
  line-height: 1.2;
  letter-spacing: -.02em;
  color: #0a0d12;
  margin-top: 18px;
}

.angle-texte-2 {
  margin: 14px 0 0;
  font-size: 14.5px;
  line-height: 1.5;
  color: #535862;
}

.angle-carte-2 {
  margin-top: 24px;
  padding: 20px 22px;
  border-radius: 16px;
  background: #ebf5ff;
}

.angle-surtitre {
  font-family: 'JetBrains Mono',ui-monospace,monospace;
  font-size: 9.5px;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: #00458f;
} /* ×2 */

.angle-label-2 {
  font-size: 15px;
  line-height: 1.5;
  color: #0a0d12;
  margin-top: 10px;
  font-style: italic;
}

.angle-label-3 {
  margin-top: 14px;
  font-size: 12px;
  line-height: 1.45;
  color: #535862;
}

/* ── ciblage ───────────────────────────────────────────────── */

.ciblage-titre {
  font-family: 'Schibsted Grotesk',sans-serif;
  font-weight: 500;
  font-size: clamp(34px,5.6vw,72px);
  line-height: 1.11;
  letter-spacing: -.02em;
  margin: 24px auto 0;
  color: #0a0d12;
  max-width: 780px;
  text-wrap: balance;
}

.ciblage-label {
  font-family: 'Schibsted Grotesk',sans-serif;
  font-weight: 500;
  font-size: clamp(26px,3.8vw,48px);
  line-height: 1.17;
  letter-spacing: -.02em;
  margin: 16px auto 0;
  max-width: 780px;
  color: #0069e0;
}

.ciblage-graphe {
  width: 100%;
  height: auto;
  display: block;
  max-width: 900px;
  margin: 0 auto;
  overflow: visible;
}

.ciblage-g-text {
  animation-delay: 0.65s;
} /* ×2 */

.ciblage-g-circle {
  animation-delay: 0.97s;
} /* ×2 */

.ciblage-g-text-2 {
  animation-delay: 1.07s;
} /* ×2 */

.ciblage-g-circle-2 {
  animation-delay: 1.39s;
} /* ×2 */

.ciblage-g-text-3 {
  animation-delay: 1.49s;
} /* ×2 */

.ciblage-g-circle-3 {
  animation-delay: 1.81s;
} /* ×2 */

.ciblage-g-text-4 {
  animation-delay: 1.91s;
} /* ×2 */

.ciblage-g-circle-4 {
  animation-delay: 2.23s;
} /* ×2 */

.ciblage-g-text-5 {
  animation-delay: 2.33s;
} /* ×2 */

.ciblage-g-circle-5 {
  animation-delay: 2.65s;
} /* ×2 */

.ciblage-g-text-6 {
  animation-delay: 2.75s;
} /* ×2 */

.ciblage-label-2 {
  margin-top: 32px;
  font-size: 14px;
  color: #535862;
}

/* ── produit ───────────────────────────────────────────────── */

.produit-el {
  text-align: center;
  margin-bottom: 56px;
} /* ×2 */

.produit-titre {
  font-family: 'Schibsted Grotesk',sans-serif;
  font-weight: 500;
  font-size: clamp(34px,5.6vw,72px);
  line-height: 1.11;
  letter-spacing: -.02em;
  margin: 24px auto 0;
  max-width: 700px;
  color: #0a0d12;
  text-wrap: balance;
}

.produit-texte {
  margin: 24px auto 0;
  max-width: 560px;
  font-size: 17px;
  line-height: 1.45;
  color: #535862;
}

.produit-carte {
  border-radius: 24px;
  overflow: hidden;
  background: #fafdff;
  box-shadow: rgba(4,69,144,.14) 0 24px 52px 0;
}

.produit-ligne {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 14px 20px;
  background: #f4f9ff;
  border-bottom: 1px solid #eef3fa;
}

.produit-ligne-2 {
  display: flex;
  gap: 6px;
  flex: 0 0 auto;
}

.produit-pilule {
  width: 9px;
  height: 9px;
  border-radius: 9999px;
  background: #dce9f7;
} /* ×3 */

.produit-pilule-2 {
  flex: 1;
  min-width: 0;
  padding: 6px 14px;
  border-radius: 9999px;
  background: #fff;
  border: 1px solid #eef3fa;
  font-family: 'JetBrains Mono',ui-monospace,monospace;
  font-size: 11.5px;
  color: #535862;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.produit-ligne-3 {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
}

.produit-label {
  font-size: 13.5px;
  color: #535862;
  margin-top: 10px;
}

.produit-grille {
  display: grid;
  grid-template-columns: repeat(4,1fr);
  gap: 12px;
  margin-top: 28px;
}

.produit-carte-2 {
  padding: 20px;
  border-radius: 16px;
  background: #f4fbf7;
  min-width: 0;
} /* ×2 */

.produit-ligne-4 {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
} /* ×4 */

.produit-label-2 {
  font-size: 11.5px;
  color: #535862;
} /* ×9 */

.produit-surtitre {
  padding: 3px 7px;
  border-radius: 9999px;
  background: #eef3fa;
  color: #3d5875;
  font-family: 'JetBrains Mono',ui-monospace,monospace;
  font-size: 8px;
  font-weight: 600;
  letter-spacing: .06em;
  text-transform: uppercase;
  white-space: nowrap;
  flex: 0 0 auto;
} /* ×4 */

.produit-label-3 {
  font-family: 'Schibsted Grotesk',sans-serif;
  font-weight: 500;
  font-size: clamp(24px,2.6vw,34px);
  line-height: 1;
  letter-spacing: -.02em;
  color: #00458f;
  margin-top: 12px;
} /* ×2 */

.produit-carte-3 {
  padding: 20px;
  border-radius: 16px;
  background: #fafdff;
  min-width: 0;
} /* ×2 */

.produit-label-4 {
  font-family: 'Schibsted Grotesk',sans-serif;
  font-weight: 500;
  font-size: clamp(24px,2.6vw,34px);
  line-height: 1;
  letter-spacing: -.02em;
  color: #0069e0;
  margin-top: 12px;
} /* ×2 */

.produit-grille-2 {
  display: grid;
  grid-template-columns: 1.35fr .65fr;
  gap: 12px;
  margin-top: 12px;
  align-items: stretch;
}

.produit-carte-4 {
  padding: 24px;
  border-radius: 16px;
  background: #fff;
  border: 1px solid #eef3fa;
}

.produit-ligne-5 {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 14px;
  flex-wrap: wrap;
} /* ×2 */

.produit-label-5 {
  font-size: 14px;
  font-weight: 600;
  color: #0a0d12;
} /* ×2 */

.produit-pilule-3 {
  padding: 3px 10px;
  border-radius: 9999px;
  background: #e4edf7;
  color: #00458f;
  font-size: 10.5px;
  font-weight: 600;
  white-space: nowrap;
  flex: 0 0 auto;
}

.produit-ligne-6 {
  display: flex;
  align-items: flex-end;
  gap: 4px;
  height: 104px;
  margin-top: 22px;
}

.produit-ligne-7 {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 12px;
  margin-top: 12px;
  font-family: 'JetBrains Mono',ui-monospace,monospace;
  font-size: 10.5px;
  color: #535862;
}

.produit-el-2 {
  color: #0069e0;
  font-weight: 500;
}

.produit-colonne {
  padding: 24px;
  border-radius: 16px;
  background: #fff;
  border: 1px solid #eef3fa;
  display: flex;
  flex-direction: column;
  justify-content: center;
  text-align: center;
}

.produit-label-6 {
  font-size: 12.5px;
  font-weight: 600;
  color: #00458f;
  margin-top: 10px;
}

.produit-label-7 {
  font-size: 11px;
  line-height: 1.45;
  color: #535862;
  margin-top: 12px;
}

.produit-carte-5 {
  margin-top: 12px;
  padding: 24px;
  border-radius: 16px;
  background: #fff;
  border: 1px solid #eef3fa;
}

.produit-grille-3 {
  display: grid;
  grid-template-columns: repeat(4,1fr);
  gap: 12px;
  margin-top: 20px;
}

.produit-bloc {
  min-width: 0;
} /* ×10 */

.produit-label-8 {
  font-size: 10.5px;
  color: #535862;
  margin-top: 6px;
} /* ×4 */

.produit-label-9 {
  font-family: 'Schibsted Grotesk',sans-serif;
  font-weight: 500;
  font-size: 22px;
  line-height: 1;
  letter-spacing: -.02em;
  color: #2f4a68;
  margin-top: 8px;
} /* ×2 */

.produit-ligne-8 {
  margin-top: 20px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  flex-wrap: wrap;
}

.produit-label-10 {
  font-size: 13px;
  color: #535862;
} /* ×2 */

.produit-lien {
  font-size: 13.5px;
  font-weight: 600;
  white-space: nowrap;
}

/* ── journee ───────────────────────────────────────────────── */

.journee-conteneur {
  text-align: center;
  max-width: 620px;
  margin: 0 auto;
}

.journee-texte {
  margin: 24px 0 0;
  font-size: 17px;
  line-height: 1.45;
  color: #535862;
}

.journee-carte {
  margin-top: 48px;
  background: #fafdff;
  border-radius: 32px;
  padding: 36px clamp(20px,2.8vw,40px);
  box-shadow: rgba(4,69,144,.08) 0 14px 20px 4px;
}

.journee-ligne {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  flex-wrap: wrap;
  margin-bottom: 24px;
}

.journee-ligne-2 {
  display: flex;
  align-items: center;
  gap: 9px;
}

.journee-pilule {
  width: 6px;
  height: 6px;
  border-radius: 9999px;
  background: #00458f;
  animation: fmPulse 1.8s ease-in-out infinite;
}

.journee-surtitre {
  font-family: 'JetBrains Mono',ui-monospace,monospace;
  font-size: 10.5px;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: #535862;
}

.journee-label {
  font-size: 12.5px;
  color: #535862;
}

.journee-ligne-3 {
  display: flex;
  align-items: flex-end;
  gap: 2px;
  height: 88px;
}

.journee-carte-2 {
  flex: 1;
  border-radius: 4px 4px 0 0;
  background: #c2ddf7;
  height: 38%;
  min-width: 0;
} /* ×2 */

.journee-carte-3 {
  flex: 1;
  border-radius: 4px 4px 0 0;
  background: #7fb2f0;
  height: 66%;
  min-width: 0;
} /* ×2 */

.journee-carte-4 {
  flex: 1;
  border-radius: 4px 4px 0 0;
  background: #7fb2f0;
  height: 50%;
  min-width: 0;
} /* ×2 */

.journee-bloc {
  height: 1px;
  background: #dce9f7;
  margin-top: 2px;
}

.journee-ligne-4 {
  display: flex;
  justify-content: space-between;
  margin-top: 10px;
  font-family: 'JetBrains Mono',ui-monospace,monospace;
  font-size: 10px;
  color: #535862;
}

.journee-grille {
  padding: 15px 0;
  display: grid;
  grid-template-columns: 60px auto 1fr auto;
  gap: 18px;
  align-items: center;
  border-top: 1px solid #f4f9ff;
} /* ×5 */

.journee-label-2 {
  font-family: 'JetBrains Mono',ui-monospace,monospace;
  font-size: 12.5px;
  font-weight: 500;
  color: #0069e0;
  flex: 0 0 auto;
} /* ×5 */

.journee-label-3 {
  font-size: 14.5px;
  font-weight: 500;
  color: #0a0d12;
} /* ×5 */

.journee-label-4 {
  font-size: 12px;
  color: #535862;
  margin-top: 2px;
} /* ×5 */

.journee-label-5 {
  font-family: 'JetBrains Mono',ui-monospace,monospace;
  font-size: 10.5px;
  color: #535862;
  white-space: nowrap;
  flex: 0 0 auto;
} /* ×5 */

.journee-ligne-5 {
  width: 30px;
  height: 30px;
  border-radius: 9999px;
  background: #eef3fa;
  display: flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
} /* ×2 */

.journee-ligne-6 {
  margin-top: 18px;
  padding-top: 16px;
  border-top: 1px solid #eef3fa;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  flex-wrap: wrap;
}

.journee-lien {
  font-size: 13px;
  font-weight: 600;
  white-space: nowrap;
}

/* ── metiers ───────────────────────────────────────────────── */

.metiers-titre {
  font-family: 'Schibsted Grotesk',sans-serif;
  font-weight: 500;
  font-size: clamp(34px,5.6vw,72px);
  line-height: 1.11;
  letter-spacing: -.02em;
  margin: 24px auto 0;
  color: #0a0d12;
  max-width: 820px;
  text-wrap: balance;
}

.metiers-ligne {
  display: flex;
  gap: 8px;
  justify-content: center;
  flex-wrap: wrap;
  margin-bottom: 40px;
}

.metiers-grille {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 56px;
  align-items: center;
}

.metiers-label {
  font-family: 'Schibsted Grotesk',sans-serif;
  font-weight: 500;
  font-size: clamp(26px,3.8vw,48px);
  line-height: 1.17;
  letter-spacing: -.02em;
  color: #0a0d12;
}

.metiers-texte {
  margin: 24px 0 0;
  font-size: 18px;
  line-height: 1.33;
  letter-spacing: -.01em;
  color: #535862;
}

.metiers-el {
  margin-top: 32px;
  padding-top: 24px;
  border-top: 1px solid rgba(10,13,18,.08);
}

.metiers-surtitre {
  font-size: 12px;
  font-weight: 600;
  letter-spacing: .06em;
  text-transform: uppercase;
  color: #535862;
}

.metiers-label-2 {
  font-family: 'Schibsted Grotesk',sans-serif;
  font-weight: 500;
  font-size: clamp(26px,3.8vw,48px);
  line-height: 1.17;
  letter-spacing: -.02em;
  color: #0069e0;
  margin-top: 8px;
  font-variant-numeric: tabular-nums;
}

.metiers-carte {
  background: #fff;
  border-radius: 24px;
  padding: 32px;
  box-shadow: rgba(4,69,144,.08) 0 14px 20px 4px;
}

.metiers-surtitre-2 {
  font-size: 10px;
  font-weight: 600;
  letter-spacing: .06em;
  text-transform: uppercase;
  color: #535862;
  margin-bottom: 20px;
}

.metiers-colonne {
  display: flex;
  flex-direction: column;
  gap: 14px;
} /* ×3 */

.metiers-ligne-2 {
  display: flex;
  align-items: center;
  gap: 12px;
} /* ×9 */

.metiers-ligne-3 {
  width: 24px;
  height: 24px;
  border-radius: 9999px;
  background: #ebf5ff;
  display: flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
} /* ×4 */

.metiers-label-3 {
  font-size: 15px;
  font-weight: 500;
  color: #0a0d12;
} /* ×4 */

/* ── medailles ─────────────────────────────────────────────── */

.medailles-carte {
  border-radius: 32px;
  background: linear-gradient(168deg,#12100a 0%,#0a0d12 52%,#080a0e 100%);
  padding: clamp(40px,5vw,80px);
  position: relative;
  overflow: hidden;
}

.medailles-couche {
  position: absolute;
  top: -160px;
  left: 50%;
  width: 900px;
  height: 560px;
  margin-left: -450px;
  background: radial-gradient(ellipse at 50% 0%,rgba(240,208,138,.13) 0%,transparent 62%);
  pointer-events: none;
}

.medailles-conteneur {
  position: relative;
  text-align: center;
  max-width: 720px;
  margin: 0 auto;
}

.medailles-pilule {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  padding: 7px 17px;
  border-radius: 9999px;
  background: rgba(240,208,138,.08);
  border: 1px solid rgba(240,208,138,.24);
}

.medailles-pilule-2 {
  width: 5px;
  height: 5px;
  border-radius: 9999px;
  background: #f0d08a;
}

.medailles-surtitre {
  font-size: 11px;
  font-weight: 600;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: #f0d08a;
}

.medailles-titre {
  font-family: 'Playfair Display',Georgia,serif;
  font-weight: 500;
  font-size: clamp(34px,5.4vw,68px);
  line-height: 1.04;
  letter-spacing: -.02em;
  margin: 28px 0 0;
  color: #fff;
  text-wrap: balance;
}

.medailles-el {
  font-style: italic;
  color: #f0d08a;
}

.medailles-texte {
  margin: 26px auto 0;
  max-width: 560px;
  font-size: 17px;
  line-height: 1.5;
  color: #c9cacd;
}

.medailles-grille {
  display: grid;
  grid-template-columns: repeat(5,1fr);
  gap: 24px;
  margin-top: 80px;
}

.medailles-bloc {
  text-align: center;
  min-width: 0;
} /* ×5 */

.medailles-conteneur-2 {
  position: relative;
  width: 100%;
  max-width: 190px;
  aspect-ratio: 1;
  margin: 0 auto;
  perspective: 900px;
} /* ×5 */

.medailles-pilule-3 {
  position: absolute;
  left: 10%;
  right: 10%;
  bottom: -4%;
  height: 12%;
  border-radius: 9999px;
  background: radial-gradient(ellipse at 50% 50%,rgba(0,0,0,.76) 0%,rgba(0,0,0,.26) 46%,transparent 74%);
  filter: blur(9px);
  display: block;
} /* ×5 */

.medailles-graphe {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  display: block;
  filter: drop-shadow(0 18px 32px rgba(0,0,0,.66));
} /* ×5 */

.medailles-couche-2 {
  position: absolute;
  inset: 0;
  pointer-events: none;
  display: block;
  z-index: 3;
} /* ×5 */

.medailles-couche-3 {
  position: absolute;
  left: 50%;
  top: 7.5%;
  width: 0;
  height: 42.5%;
  transform-origin: bottom center;
  transform: rotate(-46deg);
  display: block;
} /* ×5 */

.medailles-label {
  display: block;
  transform: translateX(-50%) none;
  font-family: 'JetBrains Mono',ui-monospace,monospace;
  font-size: clamp(5.5px,4.2vw,9.5px);
  font-weight: 600;
  line-height: 1;
  white-space: nowrap;
  color: #02060c;
  text-shadow: 0 1px 0 #c8dcf680;
} /* ×19 */

.medailles-couche-4 {
  position: absolute;
  left: 50%;
  top: 7.5%;
  width: 0;
  height: 42.5%;
  transform-origin: bottom center;
  transform: rotate(-35.78deg);
  display: block;
} /* ×2 */

.medailles-couche-5 {
  position: absolute;
  left: 50%;
  top: 7.5%;
  width: 0;
  height: 42.5%;
  transform-origin: bottom center;
  transform: rotate(-30.67deg);
  display: block;
} /* ×2 */

.medailles-couche-6 {
  position: absolute;
  left: 50%;
  top: 7.5%;
  width: 0;
  height: 42.5%;
  transform-origin: bottom center;
  transform: rotate(-25.56deg);
  display: block;
} /* ×2 */

.medailles-couche-7 {
  position: absolute;
  left: 50%;
  top: 7.5%;
  width: 0;
  height: 42.5%;
  transform-origin: bottom center;
  transform: rotate(-15.33deg);
  display: block;
} /* ×3 */

.medailles-couche-8 {
  position: absolute;
  left: 50%;
  top: 7.5%;
  width: 0;
  height: 42.5%;
  transform-origin: bottom center;
  transform: rotate(-5.11deg);
  display: block;
} /* ×2 */

.medailles-couche-9 {
  position: absolute;
  left: 50%;
  top: 7.5%;
  width: 0;
  height: 42.5%;
  transform-origin: bottom center;
  transform: rotate(0deg);
  display: block;
} /* ×3 */

.medailles-couche-10 {
  position: absolute;
  left: 50%;
  top: 7.5%;
  width: 0;
  height: 42.5%;
  transform-origin: bottom center;
  transform: rotate(5.11deg);
  display: block;
} /* ×2 */

.medailles-couche-11 {
  position: absolute;
  left: 50%;
  top: 7.5%;
  width: 0;
  height: 42.5%;
  transform-origin: bottom center;
  transform: rotate(15.33deg);
  display: block;
} /* ×3 */

.medailles-couche-12 {
  position: absolute;
  left: 50%;
  top: 7.5%;
  width: 0;
  height: 42.5%;
  transform-origin: bottom center;
  transform: rotate(25.56deg);
  display: block;
} /* ×2 */

.medailles-couche-13 {
  position: absolute;
  left: 50%;
  top: 7.5%;
  width: 0;
  height: 42.5%;
  transform-origin: bottom center;
  transform: rotate(30.67deg);
  display: block;
} /* ×2 */

.medailles-couche-14 {
  position: absolute;
  left: 50%;
  top: 7.5%;
  width: 0;
  height: 42.5%;
  transform-origin: bottom center;
  transform: rotate(35.78deg);
  display: block;
} /* ×2 */

.medailles-couche-15 {
  position: absolute;
  left: 50%;
  top: 7.5%;
  width: 0;
  height: 42.5%;
  transform-origin: bottom center;
  transform: rotate(46deg);
  display: block;
} /* ×5 */

.medailles-couche-16 {
  position: absolute;
  left: 50%;
  top: 7.5%;
  width: 0;
  height: 42.5%;
  transform-origin: bottom center;
  transform: rotate(226deg);
  display: block;
} /* ×5 */

.medailles-label-2 {
  display: block;
  transform: translateX(-50%) rotate(180deg);
  font-family: 'JetBrains Mono',ui-monospace,monospace;
  font-size: clamp(5.5px,4.2vw,9.5px);
  font-weight: 600;
  line-height: 1;
  white-space: nowrap;
  color: #02060c;
  text-shadow: 0 1px 0 #c8dcf680;
} /* ×11 */

.medailles-couche-17 {
  position: absolute;
  left: 50%;
  top: 7.5%;
  width: 0;
  height: 42.5%;
  transform-origin: bottom center;
  transform: rotate(207.6deg);
  display: block;
} /* ×3 */

.medailles-couche-18 {
  position: absolute;
  left: 50%;
  top: 7.5%;
  width: 0;
  height: 42.5%;
  transform-origin: bottom center;
  transform: rotate(189.2deg);
  display: block;
} /* ×3 */

.medailles-couche-19 {
  position: absolute;
  left: 50%;
  top: 7.5%;
  width: 0;
  height: 42.5%;
  transform-origin: bottom center;
  transform: rotate(170.8deg);
  display: block;
} /* ×3 */

.medailles-couche-20 {
  position: absolute;
  left: 50%;
  top: 7.5%;
  width: 0;
  height: 42.5%;
  transform-origin: bottom center;
  transform: rotate(152.4deg);
  display: block;
} /* ×3 */

.medailles-couche-21 {
  position: absolute;
  left: 50%;
  top: 7.5%;
  width: 0;
  height: 42.5%;
  transform-origin: bottom center;
  transform: rotate(134deg);
  display: block;
} /* ×5 */

.medailles-couche-22 {
  position: absolute;
  left: 12%;
  right: 12%;
  top: 57%;
  text-align: center;
  pointer-events: none;
  display: block;
} /* ×5 */

.medailles-label-3 {
  font-size: 14px;
  font-weight: 600;
  color: #fff;
  margin-top: 26px;
} /* ×5 */

.medailles-label-4 {
  font-size: 12.5px;
  line-height: 1.45;
  color: #93a0b4;
  margin-top: 7px;
} /* ×5 */

.medailles-label-5 {
  display: block;
  transform: translateX(-50%) none;
  font-family: 'JetBrains Mono',ui-monospace,monospace;
  font-size: clamp(5.5px,4.2vw,9.5px);
  font-weight: 600;
  line-height: 1;
  white-space: nowrap;
  color: #120c02;
  text-shadow: 0 1px 0 #fff0c680;
} /* ×11 */

.medailles-label-6 {
  display: block;
  transform: translateX(-50%) rotate(180deg);
  font-family: 'JetBrains Mono',ui-monospace,monospace;
  font-size: clamp(5.5px,4.2vw,9.5px);
  font-weight: 600;
  line-height: 1;
  white-space: nowrap;
  color: #120c02;
  text-shadow: 0 1px 0 #fff0c680;
} /* ×16 */

.medailles-couche-23 {
  position: absolute;
  left: 50%;
  top: 7.5%;
  width: 0;
  height: 42.5%;
  transform-origin: bottom center;
  transform: rotate(219.87deg);
  display: block;
} /* ×2 */

.medailles-couche-24 {
  position: absolute;
  left: 50%;
  top: 7.5%;
  width: 0;
  height: 42.5%;
  transform-origin: bottom center;
  transform: rotate(213.73deg);
  display: block;
} /* ×2 */

.medailles-couche-25 {
  position: absolute;
  left: 50%;
  top: 7.5%;
  width: 0;
  height: 42.5%;
  transform-origin: bottom center;
  transform: rotate(201.47deg);
  display: block;
} /* ×2 */

.medailles-couche-26 {
  position: absolute;
  left: 50%;
  top: 7.5%;
  width: 0;
  height: 42.5%;
  transform-origin: bottom center;
  transform: rotate(195.33deg);
  display: block;
} /* ×2 */

.medailles-couche-27 {
  position: absolute;
  left: 50%;
  top: 7.5%;
  width: 0;
  height: 42.5%;
  transform-origin: bottom center;
  transform: rotate(183.07deg);
  display: block;
} /* ×2 */

.medailles-couche-28 {
  position: absolute;
  left: 50%;
  top: 7.5%;
  width: 0;
  height: 42.5%;
  transform-origin: bottom center;
  transform: rotate(176.93deg);
  display: block;
} /* ×2 */

.medailles-couche-29 {
  position: absolute;
  left: 50%;
  top: 7.5%;
  width: 0;
  height: 42.5%;
  transform-origin: bottom center;
  transform: rotate(164.67deg);
  display: block;
} /* ×2 */

.medailles-couche-30 {
  position: absolute;
  left: 50%;
  top: 7.5%;
  width: 0;
  height: 42.5%;
  transform-origin: bottom center;
  transform: rotate(158.53deg);
  display: block;
} /* ×2 */

.medailles-couche-31 {
  position: absolute;
  left: 50%;
  top: 7.5%;
  width: 0;
  height: 42.5%;
  transform-origin: bottom center;
  transform: rotate(146.27deg);
  display: block;
} /* ×2 */

.medailles-couche-32 {
  position: absolute;
  left: 50%;
  top: 7.5%;
  width: 0;
  height: 42.5%;
  transform-origin: bottom center;
  transform: rotate(140.13deg);
  display: block;
} /* ×2 */

.medailles-label-7 {
  display: block;
  transform: translateX(-50%) none;
  font-family: 'JetBrains Mono',ui-monospace,monospace;
  font-size: clamp(5.5px,4.2vw,9.5px);
  font-weight: 600;
  line-height: 1;
  white-space: nowrap;
  color: #010a08;
  text-shadow: 0 1px 0 #d6fff480;
} /* ×14 */

.medailles-label-8 {
  display: block;
  transform: translateX(-50%) rotate(180deg);
  font-family: 'JetBrains Mono',ui-monospace,monospace;
  font-size: clamp(5.5px,4.2vw,9.5px);
  font-weight: 600;
  line-height: 1;
  white-space: nowrap;
  color: #010a08;
  text-shadow: 0 1px 0 #d6fff480;
} /* ×14 */

.medailles-couche-33 {
  position: absolute;
  left: 50%;
  top: 7.5%;
  width: 0;
  height: 42.5%;
  transform-origin: bottom center;
  transform: rotate(218.92deg);
  display: block;
} /* ×2 */

.medailles-couche-34 {
  position: absolute;
  left: 50%;
  top: 7.5%;
  width: 0;
  height: 42.5%;
  transform-origin: bottom center;
  transform: rotate(211.85deg);
  display: block;
} /* ×2 */

.medailles-couche-35 {
  position: absolute;
  left: 50%;
  top: 7.5%;
  width: 0;
  height: 42.5%;
  transform-origin: bottom center;
  transform: rotate(204.77deg);
  display: block;
} /* ×2 */

.medailles-couche-36 {
  position: absolute;
  left: 50%;
  top: 7.5%;
  width: 0;
  height: 42.5%;
  transform-origin: bottom center;
  transform: rotate(197.69deg);
  display: block;
} /* ×2 */

.medailles-couche-37 {
  position: absolute;
  left: 50%;
  top: 7.5%;
  width: 0;
  height: 42.5%;
  transform-origin: bottom center;
  transform: rotate(190.62deg);
  display: block;
} /* ×2 */

.medailles-couche-38 {
  position: absolute;
  left: 50%;
  top: 7.5%;
  width: 0;
  height: 42.5%;
  transform-origin: bottom center;
  transform: rotate(183.54deg);
  display: block;
} /* ×2 */

.medailles-couche-39 {
  position: absolute;
  left: 50%;
  top: 7.5%;
  width: 0;
  height: 42.5%;
  transform-origin: bottom center;
  transform: rotate(176.46deg);
  display: block;
} /* ×2 */

.medailles-couche-40 {
  position: absolute;
  left: 50%;
  top: 7.5%;
  width: 0;
  height: 42.5%;
  transform-origin: bottom center;
  transform: rotate(169.38deg);
  display: block;
} /* ×2 */

.medailles-couche-41 {
  position: absolute;
  left: 50%;
  top: 7.5%;
  width: 0;
  height: 42.5%;
  transform-origin: bottom center;
  transform: rotate(162.31deg);
  display: block;
} /* ×2 */

.medailles-couche-42 {
  position: absolute;
  left: 50%;
  top: 7.5%;
  width: 0;
  height: 42.5%;
  transform-origin: bottom center;
  transform: rotate(155.23deg);
  display: block;
} /* ×2 */

.medailles-couche-43 {
  position: absolute;
  left: 50%;
  top: 7.5%;
  width: 0;
  height: 42.5%;
  transform-origin: bottom center;
  transform: rotate(148.15deg);
  display: block;
} /* ×2 */

.medailles-couche-44 {
  position: absolute;
  left: 50%;
  top: 7.5%;
  width: 0;
  height: 42.5%;
  transform-origin: bottom center;
  transform: rotate(141.08deg);
  display: block;
} /* ×2 */

.medailles-label-9 {
  display: block;
  transform: translateX(-50%) none;
  font-family: 'JetBrains Mono',ui-monospace,monospace;
  font-size: clamp(5.5px,4.2vw,9.5px);
  font-weight: 600;
  line-height: 1;
  white-space: nowrap;
  color: #0d0502;
  text-shadow: 0 1px 0 #ffdcc880;
} /* ×13 */

.medailles-label-10 {
  display: block;
  transform: translateX(-50%) rotate(180deg);
  font-family: 'JetBrains Mono',ui-monospace,monospace;
  font-size: clamp(5.5px,4.2vw,9.5px);
  font-weight: 600;
  line-height: 1;
  white-space: nowrap;
  color: #0d0502;
  text-shadow: 0 1px 0 #ffdcc880;
} /* ×16 */

.medailles-label-11 {
  display: block;
  transform: translateX(-50%) none;
  font-family: 'JetBrains Mono',ui-monospace,monospace;
  font-size: clamp(5.5px,4.2vw,9.5px);
  font-weight: 600;
  line-height: 1;
  white-space: nowrap;
  color: #050608;
  text-shadow: 0 1px 0 #ffffff80;
} /* ×10 */

.medailles-label-12 {
  display: block;
  transform: translateX(-50%) rotate(180deg);
  font-family: 'JetBrains Mono',ui-monospace,monospace;
  font-size: clamp(5.5px,4.2vw,9.5px);
  font-weight: 600;
  line-height: 1;
  white-space: nowrap;
  color: #050608;
  text-shadow: 0 1px 0 #ffffff80;
} /* ×14 */

.medailles-ligne {
  margin-top: 28px;
  display: flex;
  align-items: baseline;
  gap: 14px;
  flex-wrap: wrap;
}

.medailles-label-13 {
  font-family: 'Playfair Display',Georgia,serif;
  font-weight: 600;
  font-size: 44px;
  line-height: 1;
  letter-spacing: -1.5px;
  color: #f0d08a;
  font-variant-numeric: tabular-nums;
}

.medailles-label-14 {
  font-size: 14px;
  color: #93a0b4;
  max-width: 200px;
}

.medailles-carte-2 {
  background: #fff;
  border: 1px solid #e2e8f0;
  border-radius: 11px;
  padding: 11px 16px 11px 12px;
  display: inline-flex;
  align-items: center;
  gap: 12px;
  box-shadow: 0 12px 34px rgba(0,0,0,.4);
}

.medailles-ligne-2 {
  width: 38px;
  height: 38px;
  border-radius: 10px;
  background: linear-gradient(155deg,#fdf7e6,#f4e4bd);
  border: 1px solid #e8d9ae;
  display: flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
}

.medailles-label-15 {
  display: block;
  font-size: 13.5px;
  font-weight: 700;
  letter-spacing: -.2px;
  color: #0f172a;
}

.medailles-ligne-3 {
  display: flex;
  align-items: center;
  gap: 5px;
  font-size: 10.5px;
  color: #64748b;
  margin-top: 3px;
}

.medailles-label-16 {
  font-size: 12px;
  color: #93a0b4;
} /* ×2 */

.medailles-carte-3 {
  margin-top: 10px;
  background: #0a0d12;
  border: 1px solid rgba(255,255,255,.12);
  border-radius: 14px;
  padding: 18px 20px;
  font-family: 'JetBrains Mono',ui-monospace,monospace;
  font-size: 11.5px;
  line-height: 1.7;
  color: #a8c2f0;
  overflow-x: auto;
  white-space: pre;
}

/* ── fondation ─────────────────────────────────────────────── */

.fondation-titre {
  font-family: 'Schibsted Grotesk',sans-serif;
  font-weight: 500;
  font-size: clamp(34px,5.6vw,72px);
  line-height: 1.11;
  letter-spacing: -.02em;
  margin: 24px auto 0;
  color: #0a0d12;
  max-width: 640px;
  text-wrap: balance;
}

.fondation-grille {
  margin-top: 64px;
  display: grid;
  grid-template-columns: repeat(4,1fr);
  gap: 24px;
}

.fondation-label {
  font-family: 'Schibsted Grotesk',sans-serif;
  font-weight: 500;
  font-size: clamp(34px,5.6vw,72px);
  line-height: 1.11;
  letter-spacing: -.02em;
  color: #0a0d12;
  font-variant-numeric: tabular-nums;
} /* ×4 */

.fondation-surtitre {
  font-size: 12px;
  font-weight: 600;
  letter-spacing: .06em;
  text-transform: uppercase;
  color: #535862;
  margin-top: 16px;
} /* ×4 */

.fondation-ligne {
  margin-top: 32px;
  display: flex;
  gap: 12px;
  justify-content: center;
  flex-wrap: wrap;
}

.fondation-pilule {
  padding: 8px 16px;
  border-radius: 9999px;
  background: #fafdff;
  border: 1px solid rgba(10,13,18,.06);
  font-size: 12px;
  font-weight: 500;
  color: #535862;
  white-space: nowrap;
} /* ×8 */

/* ── difference ────────────────────────────────────────────── */

.difference-el {
  text-align: center;
  margin-bottom: 64px;
}

.difference-titre {
  font-family: 'Schibsted Grotesk',sans-serif;
  font-weight: 500;
  font-size: clamp(34px,5.6vw,72px);
  line-height: 1.11;
  letter-spacing: -.02em;
  margin: 24px auto 0;
  color: #0a0d12;
  max-width: 760px;
  text-wrap: balance;
}

.difference-grille {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 24px;
}

.difference-carte {
  border-radius: 32px;
  background: #f6f7f8;
  padding: 48px;
}

.difference-label {
  font-family: 'Schibsted Grotesk',sans-serif;
  font-weight: 500;
  font-size: clamp(24px,2.6vw,32px);
  line-height: 1.25;
  letter-spacing: -.02em;
  color: #535862;
}

.difference-colonne {
  margin-top: 32px;
  display: flex;
  flex-direction: column;
  gap: 16px;
} /* ×3 */

.difference-ligne {
  width: fit-content;
  display: flex;
  align-items: center;
  gap: 12px;
  font-size: 16px;
  color: #535862;
} /* ×6 */

.difference-bloc {
  width: 16px;
  height: 1px;
  background: #93979f;
  flex: 0 0 auto;
} /* ×6 */

.difference-label-2 {
  margin-top: 40px;
  padding-top: 24px;
  border-top: 1px solid rgba(10,13,18,.08);
  font-size: 14px;
  color: #535862;
}

.difference-carte-2 {
  border-radius: 32px;
  background: #181d27;
  padding: 48px;
  position: relative;
  overflow: hidden;
}

.difference-couche {
  position: absolute;
  top: -80px;
  right: -80px;
  width: 280px;
  height: 280px;
  background: radial-gradient(circle,rgba(0,153,255,.2) 0%,transparent 66%);
  pointer-events: none;
}

.difference-el-2 {
  position: relative;
} /* ×2 */

.difference-label-3 {
  font-family: 'Schibsted Grotesk',sans-serif;
  font-weight: 500;
  font-size: clamp(24px,2.6vw,32px);
  line-height: 1.25;
  letter-spacing: -.02em;
  color: #fff;
}

.difference-ligne-2 {
  display: flex;
  align-items: center;
  gap: 12px;
  font-size: 16px;
  font-weight: 500;
  color: #fff;
} /* ×6 */

.difference-bloc-2 {
  width: 16px;
  height: 1px;
  background: #0099ff;
  flex: 0 0 auto;
} /* ×6 */

.difference-label-4 {
  margin-top: 40px;
  padding-top: 24px;
  border-top: 1px solid rgba(255,255,255,.12);
  font-size: 14px;
  color: #c9ccd2;
}

/* ── moat ──────────────────────────────────────────────────── */

.moat-texte {
  margin: 32px 0 0;
  font-size: 18px;
  line-height: 1.33;
  letter-spacing: -.01em;
  color: #535862;
}

.moat-grille {
  display: grid;
  grid-template-columns: repeat(3,1fr);
  gap: 18px;
}

.moat-colonne {
  background: #fafdff;
  border-radius: 24px;
  padding: 32px;
  display: flex;
  flex-direction: column;
} /* ×3 */

.moat-surtitre {
  font-size: 10px;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: #00458f;
} /* ×3 */

.moat-bloc {
  font-size: 23px;
  line-height: 1.2;
  margin-top: 14px;
} /* ×3 */

.moat-ligne {
  margin: 28px 0;
  height: 96px;
  display: flex;
  align-items: flex-end;
  gap: 3px;
}

.moat-carte {
  flex: 1;
  height: 15%;
  border-radius: 3px 3px 0 0;
  background: #dae6f4;
} /* ×2 */

.moat-carte-2 {
  flex: 1;
  height: 14%;
  border-radius: 3px 3px 0 0;
  background: #dae6f4;
} /* ×3 */

.moat-ligne-2 {
  display: flex;
  align-items: center;
  gap: 16px;
  font-size: 11px;
  color: #535862;
  margin-top: -14px;
}

.moat-el {
  display: inline-flex;
  align-items: center;
  gap: 6px;
} /* ×2 */

.moat-carte-3 {
  width: 9px;
  height: 9px;
  border-radius: 2px;
  background: #0069e0;
}

.moat-carte-4 {
  width: 9px;
  height: 9px;
  border-radius: 2px;
  background: #dae6f4;
}

.moat-texte-2 {
  margin: 22px 0 0;
  font-size: 14px;
  line-height: 1.5;
  color: #535862;
  flex: 1;
} /* ×3 */

.moat-ligne-3 {
  margin-top: 24px;
  padding-top: 20px;
  border-top: 1px solid #dce9f7;
  display: flex;
  align-items: baseline;
  gap: 12px;
} /* ×3 */

.moat-label {
  font-size: 38px;
  line-height: 1;
  color: #0069e0;
  font-variant-numeric: tabular-nums;
} /* ×3 */

.moat-label-2 {
  font-size: 12px;
  line-height: 1.4;
  color: #535862;
} /* ×3 */

.moat-graphe {
  margin: 24px 0 8px;
  width: 100%;
  height: auto;
  display: block;
}

.moat-label-3 {
  font-size: 10px;
  color: #535862;
  text-align: center;
} /* ×2 */

.moat-grille-2 {
  margin: 26px 0 10px;
  display: grid;
  grid-template-columns: repeat(14,1fr);
  gap: 3px;
}

.moat-carte-5 {
  aspect-ratio: 1;
  border-radius: 2px;
  background: #7fb2f0;
} /* ×25 */

.moat-carte-6 {
  aspect-ratio: 1;
  border-radius: 2px;
  background: #0069e0;
} /* ×14 */

.moat-carte-7 {
  aspect-ratio: 1;
  border-radius: 2px;
  background: #dae6f4;
} /* ×19 */

.moat-carte-8 {
  aspect-ratio: 1;
  border-radius: 2px;
  background: #e8f2fd;
} /* ×12 */

/* ── substrat ──────────────────────────────────────────────── */

.substrat-carte {
  border-radius: 32px;
  background: #181d27;
  padding: clamp(44px,6vw,88px);
  position: relative;
  overflow: hidden;
}

.substrat-couche {
  position: absolute;
  top: -120px;
  right: -100px;
  width: 420px;
  height: 420px;
  background: radial-gradient(circle,rgba(0,153,255,.18) 0%,transparent 66%);
  pointer-events: none;
}

.substrat-grille {
  display: grid;
  grid-template-columns: 1.1fr .9fr;
  gap: 64px;
  align-items: center;
}

.substrat-pilule {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  padding: 7px 16px;
  border-radius: 9999px;
  background: rgba(94,234,212,.12);
  border: 1px solid rgba(94,234,212,.28);
}

.substrat-pilule-2 {
  width: 6px;
  height: 6px;
  border-radius: 9999px;
  background: #5eead4;
}

.substrat-surtitre {
  font-size: 11px;
  font-weight: 600;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: #5eead4;
}

.substrat-surtitre-2 {
  font-size: 12px;
  font-weight: 600;
  letter-spacing: .06em;
  text-transform: uppercase;
  color: #5eead4;
  margin-top: 28px;
}

.substrat-titre {
  font-family: 'Schibsted Grotesk',sans-serif;
  font-weight: 500;
  font-size: clamp(32px,5vw,60px);
  line-height: 1.08;
  letter-spacing: -.02em;
  margin: 20px 0 0;
  color: #fff;
  text-wrap: balance;
}

.substrat-texte {
  margin: 28px 0 0;
  font-size: 18px;
  line-height: 1.45;
  color: #c7c9d1;
  max-width: 480px;
}

.substrat-texte-2 {
  margin: 20px 0 0;
  font-size: 15px;
  line-height: 1.5;
  color: #93979f;
  max-width: 460px;
}

.substrat-carte-2 {
  border-radius: 24px;
  background: rgba(255,255,255,.05);
  border: 1px solid rgba(255,255,255,.1);
  padding: 32px;
}

.substrat-surtitre-3 {
  font-size: 10px;
  font-weight: 600;
  letter-spacing: .06em;
  text-transform: uppercase;
  color: #5eead4;
  margin-bottom: 20px;
}

.substrat-carte-3 {
  padding: 14px 16px;
  border-radius: 12px;
  background: rgba(0,0,0,.28);
  font-family: 'JetBrains Mono',ui-monospace,monospace;
  font-size: 12px;
  line-height: 1.5;
  color: #a8c2f0;
} /* ×4 */

.substrat-el {
  margin-top: 56px;
  padding-top: 36px;
  border-top: 1px solid rgba(255,255,255,.12);
}

.substrat-label {
  font-family: 'Schibsted Grotesk',sans-serif;
  font-weight: 500;
  font-size: clamp(22px,2.8vw,30px);
  line-height: 1.22;
  letter-spacing: -.02em;
  color: #fff;
  max-width: 820px;
}

/* ── humain ────────────────────────────────────────────────── */

.humain-texte {
  margin: 32px 0 0;
  font-size: 18px;
  line-height: 1.4;
  color: #535862;
  max-width: 400px;
}

.humain-carte {
  border-radius: 32px;
  background: #fafdff;
  padding: clamp(24px,3vw,40px);
  box-shadow: rgba(4,69,144,.08) 0 14px 20px 4px;
}

.humain-surtitre {
  font-family: 'JetBrains Mono',ui-monospace,monospace;
  font-size: 9.5px;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: #0069e0;
}

.humain-colonne {
  margin-top: 18px;
  display: flex;
  flex-direction: column;
  gap: 13px;
} /* ×2 */

.humain-grille {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 10px;
  align-items: start;
} /* ×8 */

.humain-ligne {
  width: 16px;
  height: 16px;
  border-radius: 9999px;
  background: #dae6f4;
  display: flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  margin-top: 2px;
} /* ×4 */

.humain-label {
  font-size: 13.5px;
  line-height: 1.4;
  color: #0a0d12;
} /* ×8 */

.humain-bloc {
  width: 1px;
  background: linear-gradient(180deg,transparent,#dce9f7 20%,#dce9f7 80%,transparent);
  position: relative;
}

.humain-ligne-2 {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%,-50%);
  width: 26px;
  height: 26px;
  border-radius: 9999px;
  background: #fafdff;
  border: 1px solid #dce9f7;
  display: flex;
  align-items: center;
  justify-content: center;
}

.humain-ligne-3 {
  width: 16px;
  height: 16px;
  border-radius: 9999px;
  background: #e4edf7;
  display: flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  margin-top: 2px;
} /* ×4 */

.humain-label-2 {
  margin-top: 28px;
  padding-top: 22px;
  border-top: 1px solid #eef3fa;
  font-size: 13px;
  line-height: 1.5;
  color: #535862;
}

/* ── tarifs ────────────────────────────────────────────────── */

.tarifs-grille {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 64px;
  align-items: center;
}

.tarifs-carte {
  border-radius: 32px;
  background: #fff;
  padding: 48px;
  box-shadow: rgba(4,69,144,.08) 0 14px 20px 4px;
}

.tarifs-ligne {
  display: flex;
  align-items: baseline;
  gap: 8px;
}

.tarifs-label {
  font-family: 'Schibsted Grotesk',sans-serif;
  font-weight: 500;
  font-size: 72px;
  line-height: 1;
  letter-spacing: -.02em;
  color: #0a0d12;
  font-variant-numeric: tabular-nums;
}

.tarifs-label-2 {
  font-size: 18px;
  font-weight: 500;
  color: #535862;
}

.tarifs-ligne-2 {
  width: 20px;
  height: 20px;
  border-radius: 9999px;
  background: #e4edf7;
  display: flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
} /* ×5 */

.tarifs-lien {
  display: block;
  margin-top: 40px;
  padding: 16px;
  border-radius: 9999px;
  background: #181d27;
  color: #fff;
  font-size: 16px;
  font-weight: 500;
  text-align: center;
  box-shadow: rgba(10,13,18,.8) 0 1px 2px 0, rgb(10,13,18) 0 0 0 1px;
}

.tarifs-lien:hover {
  background: #0a0d12;
}

.tarifs-label-3 {
  margin-top: 16px;
  font-size: 13px;
  color: #535862;
  text-align: center;
}

/* ── final ─────────────────────────────────────────────────── */

.final-conteneur {
  max-width: 1200px;
  margin: 0 auto;
  padding: 160px 24px 160px;
}

.final-carte {
  border-radius: 32px;
  overflow: hidden;
  position: relative;
  background: #fafdff;
  box-shadow: rgba(4,69,144,.08) 0 14px 20px 4px;
}

.final-couche {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  opacity: .55;
}

.final-el {
  position: relative;
  padding: 120px 64px;
  text-align: center;
}

.final-titre {
  font-family: 'Schibsted Grotesk',sans-serif;
  font-weight: 500;
  font-size: clamp(48px,7.4vw,104px);
  line-height: 1.05;
  letter-spacing: -.02em;
  margin: 0 auto;
  color: #0a0d12;
  max-width: 820px;
  text-wrap: balance;
}

.final-label {
  font-family: 'Schibsted Grotesk',sans-serif;
  font-weight: 500;
  font-size: clamp(32px,4.6vw,64px);
  line-height: 1.11;
  letter-spacing: -.02em;
  margin: 16px auto 0;
  color: #0069e0;
  max-width: 700px;
}

.final-lien {
  display: inline-block;
  margin-top: 48px;
  padding: 20px 44px;
  border-radius: 9999px;
  background: #181d27;
  color: #fff;
  font-size: 18px;
  font-weight: 500;
  box-shadow: rgba(10,13,18,.8) 0 1px 2px 0, rgb(10,13,18) 0 0 0 1px;
}

.final-lien:hover {
  background: #0a0d12;
}

.final-label-2 {
  margin-top: 20px;
  font-size: 14px;
  color: #535862;
}

/* ── pied ──────────────────────────────────────────────────── */

.pied-conteneur {
  max-width: 1200px;
  margin: 0 auto;
  padding: 64px 24px 40px;
}

.pied-grille {
  display: grid;
  grid-template-columns: 1.4fr repeat(3,1fr);
  gap: 40px;
}

.pied-el {
  font-family: 'Schibsted Grotesk',sans-serif;
  font-weight: 500;
  font-size: 22px;
  letter-spacing: -.02em;
}

.pied-texte {
  margin: 16px 0 0;
  font-size: 14px;
  line-height: 1.5;
  color: #535862;
  max-width: 280px;
}

.pied-surtitre {
  font-size: 10px;
  font-weight: 600;
  letter-spacing: .06em;
  text-transform: uppercase;
  color: #535862;
  margin-bottom: 16px;
} /* ×3 */

.pied-colonne {
  display: flex;
  flex-direction: column;
  gap: 12px;
} /* ×3 */

.pied-lien {
  font-size: 14px;
  font-weight: 500;
  color: #535862;
} /* ×13 */

.pied-lien:hover {
  color: #0069e0;
}

.pied-label {
  margin-top: 56px;
  padding-top: 24px;
  border-top: 1px solid rgba(10,13,18,.06);
  font-size: 13px;
  color: #535862;
}


/* ============================================================
   3 · animations ajoutées — les graphiques restés immobiles
   Toutes les classes .fmv-* sont posées par app.js quand la
   section entre dans le cadre, jamais écrites dans le HTML :
   sans JavaScript rien n'est masqué, la page se lit telle quelle.
   Un seul passage par élément, aucune boucle infinie.
   Le préfixe #page donne à ces règles la priorité sur celles de
   la maquette (« .fm-anim .fm-step ») qui visent les mêmes éléments.
   ============================================================ */

@keyframes fmvRise   { from { opacity: 0; transform: translateY(16px); } to { opacity: 1; transform: none; } }
@keyframes fmvSnap   { 0% { opacity: 0; transform: translateX(-12px); } 68% { transform: translateX(3px); } 100% { opacity: 1; transform: none; } }
@keyframes fmvPop    { 0% { opacity: 0; transform: scale(.35); } 62% { transform: scale(1.2); } 100% { opacity: 1; transform: scale(1); } }
@keyframes fmvStrike { from { background-size: 0% 1px; } to { background-size: 100% 1px; } }
@keyframes fmvDraw   { from { stroke-dashoffset: var(--len, 20); } to { stroke-dashoffset: 0; } }
@keyframes fmvWipe   { from { clip-path: inset(0 0 105% 0); } to { clip-path: inset(0 0 -5% 0); } }
@keyframes fmvShine  { from { transform: translateX(-130%) skewX(-14deg); } to { transform: translateX(240%) skewX(-14deg); } }
@keyframes fmvZoom   { from { transform: scale(1.14); } to { transform: scale(1); } }
@keyframes fmvBeat   { 0%, 100% { transform: scaleY(1); filter: none; } 42% { transform: scaleY(1.06); filter: brightness(1.12) drop-shadow(0 8px 18px rgba(0,105,224,.4)); } }
@keyframes fmvGlow   { 0%, 100% { opacity: .55; } 50% { opacity: 1; } }
@keyframes fmvCaret  { 0%, 46% { opacity: 1; } 47%, 100% { opacity: 0; } }

#page .fmv-rise { animation: fmvRise .72s cubic-bezier(.22,1,.36,1) both; }
#page .fmv-snap { animation: fmvSnap .42s cubic-bezier(.34,1.56,.64,1) both; }
#page .fmv-pop { animation: fmvPop .5s cubic-bezier(.34,1.56,.64,1) both; }
#page .fmv-wipe { animation: fmvWipe .9s cubic-bezier(.22,1,.36,1) both; }
#page .fmv-zoom { animation: fmvZoom 9s cubic-bezier(.16,1,.3,1) both; }
#page .fmv-beat { animation: fmvBeat 1.1s cubic-bezier(.34,1.4,.64,1) both; }

/* la prospection classique se raye, ligne à ligne */
#page .fmv-strike {
  background-image: linear-gradient(currentColor, currentColor);
  background-repeat: no-repeat;
  background-position: 0 60%;
  background-size: 0% 1px;
  animation: fmvStrike .55s cubic-bezier(.22,1,.36,1) both;
}

/* les coches se tracent au lieu d'apparaître */
#page .fmv-draw {
  stroke-dasharray: var(--len, 20);
  animation: fmvDraw .5s cubic-bezier(.22,1,.36,1) both;
}

/* un seul reflet sur les boutons d'appel, jamais répété */
#page .fmv-shine-host { position: relative; overflow: hidden; }
#page .fmv-shine {
  position: absolute;
  inset: -20% -10%;
  pointer-events: none;
  background: linear-gradient(100deg, transparent 24%, rgba(255,255,255,.5) 50%, transparent 76%);
  animation: fmvShine 1.15s ease-out both;
}

/* la requête d'un agent s'écrit sous les yeux */
#page .fmv-typing::after {
  content: '';
  display: inline-block;
  width: 7px;
  height: 1.05em;
  margin-left: 2px;
  vertical-align: -.18em;
  background: #0069e0;
  animation: fmvCaret .9s step-end infinite;
}

/* les valeurs estimées respirent une fois, après la pousse des barres */
#page .fmv-glow { animation: fmvGlow 1.6s ease-in-out both; }

@media (prefers-reduced-motion: reduce) {
  .fmv-rise, .fmv-snap, .fmv-pop, .fmv-wipe, .fmv-zoom,
  .fmv-beat, .fmv-strike, .fmv-draw, .fmv-glow { animation: none !important; }
  .fmv-strike { background-size: 100% 1px; }
  .fmv-shine { display: none; }
}

/* ── la carte de capacité · le recensement se voit ──────────── */
@keyframes fmvCell    { 0% { opacity: 0; transform: scale(.26); } 70% { transform: scale(1.07); } 100% { opacity: 1; transform: scale(1); } }
@keyframes fmvCellHit { 0%, 100% { transform: scale(1); box-shadow: none; } 46% { transform: scale(1.24); box-shadow: 0 2px 12px rgba(0,105,224,.55); } }

#page .fmv-cell { animation: fmvCell .5s cubic-bezier(.34,1.5,.64,1) both; }
#page .fmv-cell-hit { animation: fmvCellHit .72s cubic-bezier(.34,1.4,.64,1) both; }

@media (prefers-reduced-motion: reduce) {
  #page .fmv-cell, #page .fmv-cell-hit { animation: none !important; }
}
