:root{
  --ink:#1d2433;--mute:#5d6577;--line:#e6e2d8;--bg:#fbfaf7;--surface:#fff;
  --brand:#2f4b9c;--brand-soft:#e9eefb;
  --erp:#E8A33D;--tab:#3FB27F;--mail:#4A8CF2;--doc:#8B6BEA;--pt:#F26D5B;
  --sans:"Schibsted Grotesk",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
  --serif:"Zilla Slab","Roboto Slab",Georgia,serif;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:auto;color-scheme:light}
body{margin:0;color:var(--ink);font-family:var(--sans);font-size:16px;line-height:1.65;overflow-x:hidden;
 background:
  radial-gradient(900px 600px at 10% 6%, #fff3dc 0%, transparent 60%),
  radial-gradient(800px 600px at 94% 10%, #e4efff 0%, transparent 60%),
  radial-gradient(900px 700px at 88% 100%, #fde3df 0%, transparent 60%),
  radial-gradient(800px 600px at 6% 100%, #e3f5ea 0%, transparent 60%),
  var(--bg);
 background-attachment:fixed}
a{color:var(--brand);text-underline-offset:3px}
a:focus-visible,button:focus-visible,[tabindex="0"]:focus-visible{outline:2px solid var(--brand);outline-offset:3px}
.wrap{max-width:820px;margin:0 auto;padding:0 20px}

/* header */
header.top{position:fixed;z-index:20;left:0;right:0;top:0;padding:18px 34px;display:flex;justify-content:space-between;align-items:center;pointer-events:none}
header.top>*{pointer-events:auto}
.brand{font-family:var(--serif);font-weight:600;font-size:2.7rem;line-height:1;letter-spacing:.01em;color:var(--ink);text-decoration:none;display:flex;align-items:center;gap:14px}
.brand i{width:46px;height:46px;border-radius:13px;background:var(--brand);display:block;position:relative;box-shadow:0 3px 8px rgba(47,75,156,.35)}
.brand i::after{content:"";position:absolute;left:9px;right:9px;bottom:9px;height:12px;border-radius:4px;background:#fff}
nav.main{display:flex;gap:6px;background:rgba(255,255,255,.78);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border:1px solid var(--line);border-radius:999px;padding:5px 8px;box-shadow:0 6px 20px rgba(40,50,80,.08)}
nav.main a{font-size:.86rem;color:var(--mute);text-decoration:none;padding:5px 12px;border-radius:999px;font-weight:500}
@media (hover:hover) and (pointer:fine){nav.main a:hover{color:var(--ink);background:#f3f1ea}}
nav.main a.cta{background:var(--ink);color:#fff}

/* story : scène collante */
#story{position:relative;height:1000vh}
#stage{position:sticky;top:0;height:100vh;height:100svh;overflow:hidden}
#gl{position:absolute;inset:0;width:100%;height:100%;display:block}
#veil{position:absolute;inset:0;pointer-events:none;background:linear-gradient(90deg,rgba(251,250,247,.95) 0%,rgba(251,250,247,.9) 28%,rgba(251,250,247,0) 46%);z-index:2}
#cards{position:absolute;z-index:1;inset:0;pointer-events:none;overflow:hidden}
.card{position:absolute;left:0;top:0;background:#fff;border-radius:10px;border:1px solid color-mix(in srgb,var(--c,#999) 40%,#e6e2d8);
 box-shadow:0 10px 24px rgba(40,50,80,.13),0 1px 3px rgba(0,0,0,.08);padding:11px 11px 8px;font-weight:600;font-size:13px;line-height:1.25;
 white-space:nowrap;opacity:0;will-change:transform,opacity}
.card::after{content:"";position:absolute;left:50%;top:100%;width:2px;height:var(--stem,14px);background:var(--c,#999);transform:translateX(-1px)}
.card::before{content:"";position:absolute;left:50%;top:calc(100% + var(--stem,14px));width:8px;height:8px;border-radius:50%;background:var(--c,#999);transform:translate(-4px,-3px)}
.card.nostem::after,.card.nostem::before{display:none}
.tag{background:color-mix(in srgb,var(--c) 13%,#fff);border-color:color-mix(in srgb,var(--c) 50%,#fff);padding:5px 11px;border-radius:999px;font-size:12px;--stem:0px}
.tag::after,.tag::before{display:none}
.k{display:block;font-size:9.5px;letter-spacing:.09em;text-transform:uppercase;color:var(--mute);font-weight:700;margin-bottom:2px}
.q{white-space:normal;width:215px;font-family:var(--serif);font-weight:500;font-style:italic;font-size:15px}
.a{white-space:normal;width:250px;font-size:12.5px;font-weight:500;padding-bottom:12px}
.a b{font-weight:700}
.card.tailR::after,.card.tailL::after{content:'';display:block;position:absolute;top:100%;width:14px;height:14px;background:#fff;transform:translateY(-8px) rotate(45deg);box-shadow:3px 3px 5px rgba(40,50,80,.08)}
.card.tailR::after{left:auto;right:12px}.card.tailL::after{left:16px}
.card.tailR::before,.card.tailL::before{display:none}
.note{position:absolute;right:20px;bottom:calc(32px + 14px);font-size:11px;color:var(--mute);opacity:.8;z-index:3}

/* chapitres (texte synchronisé) */
.chap{position:absolute;z-index:5;left:max(28px,5vw);top:50%;width:min(410px,31vw);opacity:0;pointer-events:none;will-change:transform,opacity}
.chap.on{pointer-events:auto}
.chap h2,.chap h1{font-family:var(--serif);font-weight:600;font-size:clamp(2rem,3.9vw,3.5rem);line-height:1.08;letter-spacing:-.015em;margin:0 0 16px}
.chap h1{font-size:clamp(1.7rem,2.9vw,2.7rem)}
.chap p{font-size:clamp(.98rem,1.15vw,1.1rem);color:#444c5e;margin:0 0 14px;line-height:1.55}
.pill{display:inline-block;font-size:.78rem;color:var(--mute);border:1px solid var(--line);background:rgba(255,255,255,.85);border-radius:999px;padding:4px 12px;margin:0 0 22px}
.links{display:flex;flex-wrap:wrap;gap:12px;margin-top:20px}
.btn{display:inline-block;padding:11px 20px;border-radius:999px;border:1px solid var(--line);background:#fff;color:var(--ink);text-decoration:none;font-size:.95rem;font-weight:600;box-shadow:0 4px 14px rgba(40,50,80,.08)}
.btn.primary{background:var(--ink);border-color:var(--ink);color:#fff}
@media (hover:hover) and (pointer:fine){.btn:hover{transform:translateY(-1px)}}
.rail{position:absolute;z-index:6;right:22px;top:50%;transform:translateY(-50%);display:flex;flex-direction:column;gap:10px}
.rail i{width:9px;height:9px;border-radius:50%;background:#cfd3dc;display:block;transition:all .3s}
.rail i.on{background:var(--ink);transform:scale(1.35)}

/* reste du site : voir le bloc SOUS LE FILM plus bas */
main.rest{position:relative;z-index:2}

/* repli : mouvement réduit ou WebGL absent */
#still{display:none;position:relative;z-index:2;background:#fbfaf7}
.reduced #story,.nogl #story{display:none}
.reduced #still,.nogl #still{display:block;padding-top:84px}
.reduced header.top,.nogl header.top{position:absolute}
#still .step{max-width:1080px;margin:0 auto;padding:36px 20px;display:grid;grid-template-columns:1fr 1.4fr;gap:34px;align-items:center}
#still .step img{width:100%;height:auto;border-radius:18px;box-shadow:0 20px 50px rgba(40,50,80,.14);display:block}
#still .step:nth-child(even){direction:rtl}#still .step:nth-child(even)>*{direction:ltr}
#still h2,#still h1{font-family:var(--serif);font-weight:600;font-size:clamp(1.8rem,3.4vw,2.8rem);line-height:1.1;margin:0 0 14px}
#still .kick{font-size:.78rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--brand);margin:0 0 10px;display:block}
#still p{color:#444c5e}

@media (max-width:760px){
  header.top{padding:10px 14px}
  nav.main a:not(.cta){display:none}
  .chap{left:14px;right:14px;width:auto;top:auto;bottom:14px;background:#fff;border:1px solid var(--line);border-radius:18px;padding:16px 18px 6px;box-shadow:0 14px 34px rgba(40,50,80,.14)}
  .chap h2,.chap h1{font-size:1.45rem;margin-bottom:8px}
  .chap h1{font-size:1.5rem}
  .chap p{font-size:.88rem;margin-bottom:10px;line-height:1.45}
  .pill{margin-bottom:12px}
  .links{margin-top:10px}.btn{padding:9px 16px;font-size:.88rem}
  #veil{display:none}
  .rail,.note{display:none}
  .card{font-size:11px;padding:6px 9px}
  #story{height:900vh}
  #still .step{grid-template-columns:1fr}
  #still .step:nth-child(even){direction:ltr}
}

.still .chap,.still #veil,.still header.top,.still .rail,.still .note{display:none!important}
.still{background:#fbfaf7}


.ans{display:flex;align-items:center;gap:10px;font-weight:600;font-size:13px;line-height:1.25}
.ans .bolt{font-style:normal;width:30px;height:30px;border-radius:50%;background:#fff3c4;display:grid;place-items:center;font-size:17px;flex:none;box-shadow:0 2px 8px rgba(232,163,61,.4)}
.ans b{font-weight:800}
.card.apv{padding:6px;border-top:0;border-radius:999px;background:transparent;box-shadow:none}
.apb{display:inline-block;background:var(--ink);color:#fff;font-weight:700;font-size:14px;letter-spacing:.02em;padding:9px 22px;border-radius:999px;box-shadow:0 8px 20px rgba(29,36,51,.3);transition:background .2s}
.apb.done{background:#2e9e68}
@media (max-width:760px){.brand{font-size:1.9rem;gap:10px}.brand i{width:34px;height:34px;border-radius:10px}.brand i::after{left:7px;right:7px;bottom:7px;height:9px}.chap.center{top:auto;bottom:14px}}

.right{display:flex;align-items:center;gap:12px;pointer-events:auto}
.lang{display:flex;background:#fff;border:1px solid var(--line);border-radius:999px;padding:3px;box-shadow:0 6px 20px rgba(40,50,80,.1)}
.lang button{font:700 .82rem/1 var(--sans);letter-spacing:.06em;border:0;background:transparent;color:var(--mute);padding:8px 13px;border-radius:999px;cursor:pointer}
.lang button.on{background:var(--brand);color:#fff}
@media (hover:hover) and (pointer:fine){.lang button:not(.on):hover{color:var(--ink);background:#f3f1ea}}
.src{display:flex;gap:6px;margin-top:8px}
.src i{width:26px;height:26px;border-radius:50%;display:grid;place-items:center;color:#fff;background:var(--c);font-style:normal}
.src svg{width:15px;height:15px}
.src i.k{border-radius:8px}
.src .sep{width:1px;margin:3px 3px;background:#d9d6cc}
.still #cards{display:none}
@media (max-width:760px){.right{gap:6px}.lang button{padding:7px 10px}}

/* Affiche immédiate : l'image du premier temps s'affiche dès l'ouverture, la 3D la remplace en fondu quand elle est prête. */
#poster{position:absolute;inset:0;background:#fbfaf7 url(temps-1.jpg) center/cover no-repeat;transition:opacity .7s ease;pointer-events:none}
#gl{opacity:0;transition:opacity .7s ease}
.gl-on #gl{opacity:1}
.gl-on #poster{opacity:0}

/* SOUS LE HERO : refonte lumineuse ( */
:root{--ok:#2e9e68;--no:#c8483b;--hair:#e7eaf3;--hair2:#d6dbe9;--ink2:#2e374c;--ease:cubic-bezier(.23,1,.32,1)}
::selection{background:#cddcff;color:#1d2433}
html{scrollbar-color:#bfc8de #fff}
main.rest,footer{--line:var(--hair);--line2:var(--hair2);--mute:#566078}
main.rest [style*="--c:"],.bx{--ct:color-mix(in srgb,var(--c,#2f4b9c) 48%,#1d2433);--cs:color-mix(in srgb,var(--c,#2f4b9c) 14%,#fff);--cm:color-mix(in srgb,var(--c,#2f4b9c) 30%,#fff)}
main.rest{background:#fff;border-radius:32px 32px 0 0;margin-top:-32px;font-size:1.0625rem;overflow-x:clip}
main.rest::before{content:"";position:absolute;left:0;right:0;top:-30px;height:30px;border-radius:32px 32px 0 0;background:linear-gradient(transparent,rgba(40,50,80,.07));pointer-events:none}
main.rest p{text-wrap:pretty}

/* barre du haut */
header.top{transition:background-color .25s,box-shadow .25s}
header.top.solid{background:rgba(255,255,255,.95);box-shadow:0 1px 0 var(--hair);padding-top:10px;padding-bottom:10px}
.brand{transform-origin:left center;transition:transform .3s var(--ease)}
header.top.solid .brand{transform:scale(.76)}
header.top.solid nav.main{background:#f4f6fc;border-color:transparent;box-shadow:none;backdrop-filter:none;-webkit-backdrop-filter:none}
nav.main a{transition:color .15s,background-color .15s,transform .15s var(--ease)}
@media (hover:hover) and (pointer:fine){nav.main a:hover{background:#eef1f9}}
nav.main a[aria-current]{color:var(--brand);background:var(--brand-soft)}
nav.main a.cta:active{transform:scale(.96)}
@media (hover:hover) and (pointer:fine){nav.main a.cta:hover{background:var(--brand);color:#fff}}

/* ===== SOUS LE FILM : accueil resserré, cinq sections (2026-10-10) ===== */
:root{--ease-io:cubic-bezier(.77,0,.175,1)}

/* Apparitions : tout est visible par défaut. L'état caché n'existe que sous .anim (IntersectionObserver présent). transform et opacité seulement. */
.rv{transition:opacity .8s var(--ease) var(--d,0ms),transform .8s var(--ease) var(--d,0ms)}
.anim .rv:not(.in){opacity:0;transform:translateY(24px)}
.stg>*{transition:opacity .7s var(--ease) calc(var(--i,0)*80ms + var(--d,0ms)),transform .7s var(--ease) calc(var(--i,0)*80ms + var(--d,0ms))}
.anim .stg:not(.in)>*{opacity:0;transform:translateY(20px)}

/* Titres : chaque mot sort d'un masque. Les marges négatives compensent le masque (accents, queues de lettres). */
[data-split] .w{display:inline-block;overflow:hidden;vertical-align:top;padding:.14em .06em .2em 0;margin:-.14em -.06em -.2em 0}
[data-split] .wi{display:inline-block;transition:transform .95s var(--ease) calc(var(--wi,0)*55ms + var(--d,0ms))}
.anim [data-split]:not(.in) .wi{transform:translateY(115%)}

/* Gabarit des sections */
:where(.bx) p,:where(.bx) h3,:where(.bx) dl,:where(.bx) dd{margin:0}
#why{--w:#f2f6ff;--c:#4A8CF2}#how{--c:#E8A33D}#cases{--w:#fff7ee;--c:#F26D5B}#faq{--c:#8B6BEA}#start{--c:#3FB27F}
.bx{--p:clamp(48px,6vw,88px);padding:clamp(56px,6.4vw,92px) 0;scroll-margin-top:72px;position:relative;
 background:linear-gradient(180deg,#fff 0,var(--w,#fff) var(--p),var(--w,#fff) calc(100% - var(--p)),#fff 100%)}
.wrap.wide{max-width:1200px;padding:0 24px}
.bx h3{font-family:var(--sans);font-weight:600;line-height:1.25;letter-spacing:-.01em}
h2.sec{font-family:var(--serif);font-weight:600}
.bx h2.sec{font-size:clamp(2.1rem,4.7vw,3.75rem);line-height:1.04;letter-spacing:-.03em;max-width:19ch;margin:0 0 18px;text-wrap:balance}
.bx .sub{font-size:clamp(1.05rem,1.5vw,1.25rem);line-height:1.55;max-width:56ch;color:var(--mute);margin:0 0 clamp(32px,4vw,52px);text-wrap:balance}
main.rest .btn{padding:14px 26px;font-size:1rem;transition:transform .18s var(--ease),background-color .18s,box-shadow .18s,color .18s}
main.rest .btn:active{transform:scale(.97)}
@media (hover:hover) and (pointer:fine){main.rest .btn:hover{transform:translateY(-2px);box-shadow:0 10px 24px rgba(40,50,80,.14)}main.rest .btn.primary:hover{background:var(--brand);border-color:var(--brand)}main.rest .btn:active{transform:scale(.97)}}
.bx a:not(.btn){text-underline-offset:4px;text-decoration-thickness:1px}

/* Coches : vert = une personne a validé */
.ck{flex:none;position:relative;display:block;width:24px;height:24px;border-radius:50%;background:var(--ok)}
.ck::after{content:"";position:absolute;inset:7px;background:#fff;clip-path:polygon(0 52%,14% 38%,38% 62%,86% 10%,100% 24%,38% 92%)}

/* 1. Pourquoi ça change tout */
.vs{display:grid;grid-template-columns:1fr 1fr;gap:clamp(14px,2vw,26px);margin:0 0 clamp(44px,6vw,80px)}
.vp{position:relative;display:flex;flex-direction:column;min-width:0;border-radius:32px;padding:clamp(18px,2.2vw,28px) clamp(20px,2.6vw,34px) clamp(24px,2.8vw,36px);transition:opacity .9s var(--ease) var(--vd,0s),transform .9s var(--ease) var(--vd,0s)}
.vp-a{background:#f4f5f8;border:1px solid var(--hair2)}
.vp-b{--vd:.12s;background:#fff;border:1.5px solid #b9c7ee;box-shadow:0 28px 64px rgba(47,75,156,.14)}
.anim .vs:not(.in) .vp{opacity:0;transform:translateY(32px)}
.vsvg{display:block;width:100%;height:auto;overflow:visible}
.vsvg text{font-family:var(--sans)}
.vai{font-size:13px;font-weight:700;fill:#fff}
.vtw{font-size:12.5px;font-weight:600;fill:#2f4b9c}
.vp h3{font-size:.98rem;font-weight:600;color:var(--mute);margin:14px 0 4px}
.vp-t{font-family:var(--serif);font-weight:600;font-size:clamp(1.45rem,2.3vw,1.95rem);line-height:1.12;letter-spacing:-.02em;margin:0 0 18px}
.vp-b .vp-t{color:var(--brand)}
@media (min-width:861px){.vp-t{min-height:2.3em}}
.vp-l{list-style:none;margin:0;padding:0;display:grid;gap:12px}
.vp-l li{position:relative;padding-left:36px;line-height:1.5;font-size:1.02rem;color:var(--ink2);transition:opacity .7s var(--ease) calc(.5s + var(--i)*.09s),transform .7s var(--ease) calc(.5s + var(--i)*.09s)}
.vp-l li::before{content:"";position:absolute;left:0;top:1px;width:24px;height:24px;border-radius:50%}
.vp-l li::after{content:"";position:absolute;left:6px;top:7px;width:12px;height:12px}
.vp-a .vp-l li::before{background:#fbe6e2}
.vp-a .vp-l li::after{background:linear-gradient(45deg,transparent 42%,var(--no) 42% 58%,transparent 58%),linear-gradient(-45deg,transparent 42%,var(--no) 42% 58%,transparent 58%)}
.vp-b .vp-l li::before{background:var(--ok)}
.vp-b .vp-l li::after{background:#fff;clip-path:polygon(0 52%,14% 38%,38% 62%,86% 10%,100% 24%,38% 92%)}
.anim .vs:not(.in) .vp-l li{opacity:0;transform:translateX(-10px)}
.pull{font-family:var(--serif);font-weight:600;font-size:clamp(1.9rem,4.4vw,3.5rem);line-height:1.12;letter-spacing:-.028em;max-width:22ch;margin:0 auto;text-align:center;text-wrap:balance}
.pull em{font-style:italic;font-weight:500;color:var(--brand)}
/* comparatif : à gauche tout s'agite, à droite tout s'organise */
.tl,.tr{transform-box:fill-box;transform-origin:center}
.tl{transform:rotate(var(--r,0deg))}
.vs .tl{transition:none}
@keyframes wob{0%,100%{transform:rotate(var(--r)) translate(0,0)}50%{transform:rotate(calc(var(--r) + 7deg)) translate(2.5px,-3.5px)}}
@keyframes march{to{stroke-dashoffset:-20}}
.vs.live .vp-a .tl{animation:wob 4.6s ease-in-out calc(var(--k)*-.7s) infinite}
.vs.live .cl{animation:march 2.2s linear infinite}
.vs.live .cl:nth-child(odd){animation-direction:reverse}
.tr{transition:transform 1.05s var(--ease) calc(.3s + var(--k)*.07s)}
.anim .vs:not(.in) .tr{transform:translate(var(--dx),var(--dy)) rotate(var(--r))}
.aib,.vp-b .vai,.twb{transform-box:fill-box;transform-origin:center;transition:opacity .6s var(--ease) .15s,transform .7s var(--ease) .15s}
.anim .vs:not(.in) :is(.aib,.vp-b .vai,.twb){opacity:0;transform:scale(.92)}
.okb{transform-box:fill-box;transform-origin:center;transition:opacity .3s ease var(--ot,1.7s),transform .5s var(--ease) var(--ot,1.7s)}
.anim :is(.vs,.s3):not(.in) .okb{opacity:0;transform:scale(.4)}

/* tracés qui se dessinent */
.ln,.dl{--tt:calc(var(--sd,0s) + var(--t0,.5s) + var(--k,0)*.07s);stroke-dasharray:1;stroke-dashoffset:0;transition:stroke-dashoffset .7s var(--ease) var(--tt),opacity .01s linear var(--tt)}
.anim :is(.vs,.s3):not(.in) :is(.ln,.dl){stroke-dashoffset:1;opacity:0}
.dl{--t0:1.05s}
.dl.up{--t0:.25s}
.okb .dl{--t0:calc(var(--ot,1.7s) - var(--sd,0s) + .15s)}

/* 2. Comment ça marche */
.steps3{--g:clamp(20px,3vw,44px);list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--g)}
.s3{--sd:calc(var(--i)*.16s);min-width:0}
.s3:nth-child(1){--nx:#3FB27F}.s3:nth-child(2){--nx:#4A8CF2}
.s3-fig{aspect-ratio:320/220;padding:10px;border-radius:30px;overflow:hidden;background:radial-gradient(120% 100% at 18% 0%,var(--cs) 0%,#fff 72%);border:1px solid var(--hair);transition:opacity .8s var(--ease) var(--sd),transform .8s var(--ease) var(--sd),box-shadow .35s}
.il{display:block;width:100%;height:100%}
.il text{font-family:var(--sans)}
.il .wm{font-family:var(--serif);font-weight:600;font-size:19px;fill:#fff;letter-spacing:.01em}
.il .apt{font-size:13px;font-weight:600;fill:#fff}
.s3-row{display:flex;align-items:center;margin:22px 0 14px}
.s3-n{flex:none;display:grid;place-items:center;width:44px;height:44px;border-radius:50%;background:var(--ink);color:#fff;font-family:var(--serif);font-weight:600;font-size:1.3rem;line-height:1;transition:opacity .4s ease calc(var(--sd) + .35s),transform .6s var(--ease) calc(var(--sd) + .35s)}
.s3-row::after{content:"";flex:1;height:2px;margin:0 calc(12px - var(--g)) 0 12px;border-radius:2px;background:linear-gradient(90deg,var(--c),var(--nx,var(--c)));transform-origin:left;transition:transform 1s var(--ease) calc(var(--sd) + .7s)}
.s3:last-child .s3-row::after{display:none}
.s3 h3{font-size:1.3rem;margin:0 0 8px}
.s3 p{color:var(--ink2);line-height:1.55;max-width:34ch}
.s3 h3,.s3 p{transition:opacity .7s var(--ease) calc(var(--sd) + .45s),transform .7s var(--ease) calc(var(--sd) + .45s)}
.anim .s3:not(.in) .s3-fig{opacity:0;transform:translateY(28px)}
.anim .s3:not(.in) .s3-n{opacity:0;transform:scale(.6)}
.anim .s3:not(.in) .s3-row::after{transform:scaleX(0)}
.anim .s3:not(.in) :is(h3,p){opacity:0;transform:translateY(14px)}
@media (hover:hover) and (pointer:fine){.s3:hover .s3-fig{transform:translateY(-4px);box-shadow:0 24px 46px rgba(40,50,80,.12);transition-delay:0s}}
/* étape 1 : les outils, puis des traits qui tombent sur le socle */
.il .tl{transition:transform .7s var(--ease) calc(var(--sd) + .1s + var(--k)*.06s),opacity .5s ease calc(var(--sd) + .1s + var(--k)*.06s)}
.anim .s3:not(.in) .il1 .tl{transform:translateY(-16px);opacity:0}
.il1 .ln{--t0:.55s}
.il1 .slab{transform-box:fill-box;transform-origin:center;transition:opacity .6s var(--ease) calc(var(--sd) + .15s),transform .8s var(--ease) calc(var(--sd) + .15s)}
.anim .s3:not(.in) .il1 .slab{opacity:0;transform:translateY(12px)}
.nds circle{transform-box:fill-box;transform-origin:center;transition:opacity .3s ease calc(var(--sd) + 1.1s + var(--k)*.05s),transform .5s var(--ease) calc(var(--sd) + 1.1s + var(--k)*.05s)}
.anim .s3:not(.in) .nds circle{opacity:0;transform:scale(.4)}
@keyframes flow{to{stroke-dashoffset:-24}}
.flow{transition:opacity .6s ease calc(var(--sd) + 1.3s)}
.anim .s3:not(.in) .flow{opacity:0}
.s3.live .flow path{animation:flow 1.5s linear infinite}
/* étape 2 : les fiches se relient au cœur du jumeau, une personne valide */
.il2 .ln{--t0:.55s}
.nd rect,.core{transform-box:fill-box;transform-origin:center;transition:opacity .4s ease calc(var(--sd) + .2s + var(--k,0)*.07s),transform .6s var(--ease) calc(var(--sd) + .2s + var(--k,0)*.07s)}
.core{--k:0}
.anim .s3:not(.in) :is(.nd rect,.core){opacity:0;transform:scale(.5)}
.il2 .okb{--ot:calc(var(--sd) + 1.55s)}
.pulse{transform-box:fill-box;transform-origin:center;opacity:0}
@keyframes pulse{0%{transform:scale(1);opacity:.5}100%{transform:scale(2);opacity:0}}
.s3.live .pulse{animation:pulse 2.8s var(--ease) 2s infinite}
/* étape 3 : les agents s'allument, une personne approuve */
.il3 .ln{--t0:.4s}
.il3 .dl.l2{--t0:1.25s}
.twchip,.apill{transform-box:fill-box;transform-origin:center;transition:opacity .6s var(--ease) calc(var(--sd) + .15s),transform .7s var(--ease) calc(var(--sd) + .15s)}
.apill{transition-delay:calc(var(--sd) + 1.35s)}
.anim .s3:not(.in) .twchip{opacity:0;transform:translateY(-8px)}
.anim .s3:not(.in) .apill{opacity:0;transform:translateY(14px)}
.bot{transform-box:fill-box;transform-origin:50% 100%;transition:opacity .4s ease calc(var(--sd) + .6s + var(--k)*.1s),transform .6s var(--ease) calc(var(--sd) + .6s + var(--k)*.1s)}
.anim .s3:not(.in) .bot{opacity:0;transform:scale(.7)}
.eo{fill:#24315c}
.eye{fill:#fff;transition:opacity .4s ease calc(var(--sd) + 1.05s)}
.anim .s3:not(.in) .eye{opacity:0}
.il3 .okb{--ot:calc(var(--sd) + 2s)}

/* 3. Pour qui : une bande de métiers, un exemple concret en trois temps */
.cs{--g:clamp(24px,3vw,44px);transition:opacity .9s var(--ease),transform .9s var(--ease)}
.anim .cs:not(.in){opacity:0;transform:translateY(28px)}
.cs-bar{position:relative;width:fit-content;max-width:100%;margin:0 0 22px;padding:6px;border-radius:999px;background:#fff;border:1px solid var(--hair);overflow-x:auto;scrollbar-width:none;scroll-snap-type:x proximity}
.cs-bar::-webkit-scrollbar{display:none}
.cs-tabs{position:relative;z-index:1;display:flex;gap:4px}
.cs-ind{position:absolute;left:0;top:0;z-index:0;width:var(--iw,0px);height:var(--ih,0px);border-radius:999px;background:var(--ink);transform:translate(var(--ix,0px),var(--iy,0px));pointer-events:none;box-shadow:0 8px 18px rgba(29,36,51,.2)}
.cs.ready .cs-ind{transition:transform .42s var(--ease-io)}
.cs-tab{flex:none;scroll-snap-align:center;display:inline-flex;align-items:center;gap:10px;min-height:46px;padding:12px 20px 12px 18px;font:600 .98rem/1.2 var(--sans);color:var(--ink);white-space:nowrap;border:0;border-radius:999px;background:transparent;cursor:pointer;transition:color .25s ease,background-color .2s ease,transform .16s var(--ease)}
.cs-tab:active{transform:scale(.97)}
.cs-tab .dot{width:10px;height:10px;border-radius:50%;background:var(--c);transition:transform .3s var(--ease)}
.cs-tab[aria-selected="true"]{color:#fff}
.cs-tab[aria-selected="true"] .dot{transform:scale(1.25)}
@media (hover:hover) and (pointer:fine){.cs-tab[aria-selected="false"]:hover{background:color-mix(in srgb,var(--c) 11%,#fff)}}
.cs-panel{position:relative;border-radius:32px;overflow:hidden;background:#fff;border:1px solid var(--hair);box-shadow:0 18px 44px rgba(40,50,80,.08)}
.cs-p{display:flex;flex-direction:column;gap:clamp(20px,2.4vw,30px);padding:clamp(22px,3vw,40px);background:radial-gradient(80% 90% at 100% 0%,color-mix(in srgb,var(--c) 14%,#fff) 0%,transparent 70%)}
.cs-p[hidden]{display:none}
.cs-top{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px 24px}
.cs-s{color:var(--mute);font-size:1rem}
.cs-src{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.cs-src em{font-style:normal;font-size:.84rem;font-weight:600;color:var(--mute);margin-right:4px}
.cs-src span{font-size:.84rem;font-weight:600;padding:5px 13px;border-radius:999px;background:var(--cs);color:var(--ct)}
.cs-flow{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.3fr) minmax(0,1fr);gap:var(--g);align-items:stretch}
.cs-b{position:relative;border-radius:22px;padding:20px 22px 22px}
.cs-b dt{position:relative;font-size:.86rem;font-weight:700;line-height:1.4;margin:0 0 8px}
.cs-b dd{font-size:1.02rem;line-height:1.5}
.b1{background:#f5f6f9}
.b1 dt{color:var(--no)}
.b2{background:#fff;border:1px solid var(--hair2);box-shadow:0 12px 28px rgba(40,50,80,.08)}
.b2 dt{color:var(--brand)}
.b2 dd{font-family:var(--serif);font-weight:600;font-size:clamp(1.2rem,1.7vw,1.45rem);line-height:1.25;letter-spacing:-.01em}
.b3{background:#eaf6ef;color:#1c3d2e}
.b3 dt{color:#217a52;padding-left:28px}
.b3 dt::before{content:"";position:absolute;left:0;top:0;width:20px;height:20px;border-radius:50%;background:var(--ok)}
.b3 dt::after{content:"";position:absolute;left:5px;top:5px;width:10px;height:10px;background:#fff;clip-path:polygon(0 52%,14% 38%,38% 62%,86% 10%,100% 24%,38% 92%)}
.cs-b+.cs-b::before{content:"";position:absolute;right:100%;top:50%;width:var(--g);height:2px;margin-top:-1px;background:linear-gradient(90deg,transparent,var(--c));transform-origin:left;animation:csLine .7s var(--ease) .3s backwards}
.cs-top,.cs-b{animation:csIn .6s var(--ease) backwards}
.b1{animation-delay:.08s}.b2{animation-delay:.18s}.b3{animation-delay:.28s}
.anim .cs:not(.in) :is(.cs-top,.cs-b){animation:none}
.anim .cs:not(.in) .cs-b+.cs-b::before{animation:none}
@keyframes csIn{from{opacity:0;transform:translateY(14px)}}
@keyframes csLine{from{transform:scaleX(0)}}
@keyframes csLineY{from{transform:scaleY(0)}}
@keyframes csFade{from{opacity:0}}

/* 4. Questions */
.faq-w{display:grid;grid-template-columns:.8fr 1.4fr;gap:clamp(32px,6vw,88px);align-items:start}
.faq-l{position:sticky;top:112px}
.faq-l h2.sec{max-width:none;font-size:clamp(2rem,3.6vw,3rem)}
.faq-l .sub{margin-bottom:0}
.faq-r{min-width:0}
.faq-r details{background:#fff;border:1px solid var(--hair2);border-radius:22px;margin-bottom:12px;transition:box-shadow .3s var(--ease),border-color .3s,opacity .7s var(--ease) calc(var(--i,0)*80ms + var(--d,0ms)),transform .7s var(--ease) calc(var(--i,0)*80ms + var(--d,0ms))}
.faq-r details[open]{border-color:color-mix(in srgb,var(--brand) 30%,#fff);box-shadow:0 14px 30px rgba(47,75,156,.1)}
.faq-r summary{cursor:pointer;list-style:none;padding:22px 68px 22px 26px;font-weight:600;font-size:1.08rem;position:relative;line-height:1.4;border-radius:22px;transition:background-color .2s}
.faq-r summary::-webkit-details-marker{display:none}
.faq-r summary::after{content:"+";content:"+" / "";position:absolute;right:20px;top:50%;margin-top:-16px;width:32px;height:32px;border-radius:50%;background:var(--brand-soft);color:var(--brand);display:grid;place-items:center;font-size:1.4rem;font-weight:500;line-height:1;transition:transform .35s var(--ease),background-color .2s,color .2s}
.faq-r summary:active::after{transform:scale(.9)}
.faq-r details[open] summary::after{transform:rotate(45deg);background:var(--brand);color:#fff}
@media (hover:hover) and (pointer:fine){.faq-r summary:hover{background:#f6f8fe}.faq-r summary:hover::after{background:#d9e2fa}.faq-r details[open] summary:hover::after{background:var(--brand)}}
.faq-r details[open] p{animation:fadeUp .35s var(--ease)}
@keyframes fadeUp{from{opacity:0;transform:translateY(-6px)}}
.faq-r details p{padding:0 26px 24px;color:var(--ink2);line-height:1.65;font-size:1.02rem}

/* 5. Pour démarrer */
#start{padding-top:clamp(24px,4vw,56px)}
.go{position:relative;background:radial-gradient(520px 340px at 4% 0%,#ffe3b8 0%,transparent 70%),radial-gradient(480px 320px at 100% 8%,#ffd3e6 0%,transparent 70%),radial-gradient(560px 360px at 92% 100%,#cfe0ff 0%,transparent 70%),radial-gradient(480px 320px at 0% 100%,#cdeedd 0%,transparent 70%),#f6f4ff;border-radius:44px;padding:clamp(48px,7vw,92px) clamp(22px,5vw,72px) clamp(36px,5vw,64px);text-align:center}
.go h2{font-family:var(--serif);font-weight:600;font-size:clamp(2.4rem,6.2vw,4.8rem);line-height:1.02;margin:0 auto 18px;letter-spacing:-.035em;max-width:14ch;text-wrap:balance}
.go .go-p{max-width:46ch;margin:0 auto;font-size:clamp(1.1rem,1.6vw,1.3rem);color:var(--ink2);line-height:1.5}
.go .links{justify-content:center;margin-top:30px}
.mag{display:inline-block;transform:translate(var(--mx,0px),var(--my,0px));transition:transform .5s var(--ease)}
.go .btn.primary{padding:16px 32px;font-size:1.05rem}
.arr{display:inline-block;position:relative;width:16px;height:2px;margin-left:12px;vertical-align:middle;background:currentColor;border-radius:2px;transition:transform .28s var(--ease)}
.arr::after{content:"";position:absolute;right:0;top:50%;width:8px;height:8px;border-top:2px solid currentColor;border-right:2px solid currentColor;transform:translateY(-50%) rotate(45deg)}
@media (hover:hover) and (pointer:fine){.btn:hover .arr{transform:translateX(5px)}}
.go-g{list-style:none;margin:clamp(36px,5vw,56px) auto 0;padding:0;display:grid;grid-template-columns:repeat(3,1fr);max-width:1040px;text-align:left}
.go-g li{display:grid;grid-template-columns:24px 1fr;gap:4px 12px;align-content:start;padding:2px clamp(14px,2.2vw,28px);transition:opacity .7s var(--ease) calc(.5s + var(--i)*.12s),transform .7s var(--ease) calc(.5s + var(--i)*.12s)}
.go-g li+li{border-left:1px solid rgba(29,36,51,.14)}
.go-g .ck{grid-row:1/3;margin-top:1px;transition:transform .5s var(--ease) calc(.7s + var(--i)*.12s)}
.go-g b{font-size:1.02rem;font-weight:700;line-height:1.3;align-self:center}
.go-g span{grid-column:2;font-size:.97rem;line-height:1.45;color:var(--ink2)}
.anim .go:not(.in) .go-g li{opacity:0;transform:translateY(16px)}
.anim .go:not(.in) .go-g .ck{transform:scale(.4)}

/* pied de page */
footer{border-top:0;padding:28px 0 64px;color:var(--mute);font-size:.92rem;background:#fff;position:relative;z-index:2}
footer p{margin-bottom:10px;max-width:70ch}

@media (max-width:1000px){
  .faq-w{grid-template-columns:1fr;gap:32px}.faq-l{position:static}
}
@media (max-width:860px){
  .cs{--g:24px}
  .cs-flow{grid-template-columns:1fr}
  .cs-b+.cs-b::before{right:auto;left:34px;top:auto;bottom:100%;width:2px;height:var(--g);margin:0;background:linear-gradient(180deg,transparent,var(--c));transform-origin:top;animation-name:csLineY}
  .cs-ind{box-shadow:none}
  .vs{grid-template-columns:1fr}
  .vp-fig{max-width:440px;margin:0 auto;width:100%}
  .steps3{grid-template-columns:1fr;gap:40px}
  .s3{display:grid;grid-template-columns:minmax(0,.95fr) minmax(0,1fr);grid-template-rows:1fr repeat(3,auto) 1fr;column-gap:clamp(20px,4vw,36px);align-items:start}
  .s3-fig{grid-row:1/6}
  .s3-row,.s3 h3,.s3 p{grid-column:2}
  .s3-row{grid-row:2;margin:0 0 12px}
  .s3 h3{grid-row:3}
  .s3 p{grid-row:4}
  .s3-row::after{display:none}
  .s3 p{max-width:none}
  .go-g{grid-template-columns:1fr;gap:18px}
  .go-g li+li{border-left:0;border-top:1px solid rgba(29,36,51,.14);padding-top:18px}
  .go-g li{padding:2px 4px}
}
@media (max-width:600px){
  .s3{display:block}
  .s3-row{margin:22px 0 14px}
}
@media (max-width:760px){
  .bx{padding:56px 0}
  .bx .sub{margin-bottom:30px}
  .go{padding:44px 20px 32px;border-radius:32px}
  .cs-p{padding:24px 20px}
  .faq-r summary{padding:18px 62px 18px 20px}
  .faq-r details p{padding:0 20px 20px}
  header.top.solid .brand{transform:scale(.8)}
}

/* Mouvement réduit : versions apaisées. Des fondus courts, aucun déplacement, aucune boucle. */
@media (prefers-reduced-motion:reduce){
  .rv,.stg>*,.faq-r details,.vp,.vp-l li,.s3-fig,.s3 h3,.s3 p,.s3-n,.cs,.go-g li,.go-g .ck{transition-property:opacity;transition-duration:.35s;transition-delay:0s}
  .anim .rv:not(.in),.anim .stg:not(.in)>*,.anim .vs:not(.in) .vp,.anim .vs:not(.in) .vp-l li,.anim .s3:not(.in) :is(.s3-fig,.s3-n,h3,p),.anim .cs:not(.in),.anim .go:not(.in) :is(.go-g li,.go-g .ck){transform:none}
  [data-split] .wi{transition:opacity .5s ease;transform:none!important}
  .anim [data-split]:not(.in) .wi{opacity:0}
  .vs .tr,.il .tl,.nds circle,.nd rect,.core,.bot,.twchip,.apill,.okb,.il1 .slab,.aib,.twb,.vp-b .vai,.eye{transition-duration:.4s;transition-delay:0s}
  .anim .vs:not(.in) :is(.tr,.okb,.aib,.vp-b .vai,.twb),.anim .s3:not(.in) :is(.il .tl,.il1 .slab,.twchip,.apill,.nds circle,.nd rect,.core,.bot,.okb){transform:none}
  .ln,.dl{transition-duration:.01s;transition-delay:0s}
  .anim :is(.vs,.s3):not(.in) :is(.ln,.dl){stroke-dashoffset:0;opacity:0}
  .s3-row::after{transition:opacity .4s ease;transform:none!important}
  .anim .s3:not(.in) .s3-row::after{opacity:0}
  .vs.live .vp-a .tl,.vs.live .cl,.s3.live .flow path,.s3.live .pulse{animation:none}
  .cs-top,.cs-b{animation:csFade .3s ease backwards}
  .cs-b+.cs-b::before{animation:none}
  .cs.ready .cs-ind{transition:none}
  .faq-r details[open] p{animation:csFade .25s ease}
  .s3:hover .s3-fig,main.rest .btn:hover,.btn:hover .arr{transform:none}
  .mag{transform:none!important;transition:none}
  .faq-r summary::after,.cs-tab,.cs-tab .dot,.arr,.brand,header.top,main.rest .btn,nav.main a,.s3-fig{transition-duration:.01ms}
}

/* ===== FILM : la 3D se joue toute seule, comme une vidéo (2026-10-10) ===== */
#story{height:auto}
#stage{position:relative;height:100vh;height:100svh;min-height:600px}
#gl,#cards{opacity:calc(1 - var(--cut,0));transition:none}
html:not(.gl-on) #gl{opacity:0}
.chap.cap{left:50%;right:auto;top:auto;bottom:112px;width:min(820px,92vw);text-align:center;margin:0;pointer-events:none}
.chap.cap h2{font-size:clamp(1.6rem,2.6vw,2.4rem);margin:0 0 6px;text-wrap:balance}
.chap.cap p{margin:0;font-size:clamp(1rem,1.2vw,1.15rem);color:#4a5163}
.chap.cap h2,.chap.cap p{text-shadow:0 0 18px #fbfaf7,0 0 34px #fbfaf7}
.film{position:absolute;z-index:7;left:50%;bottom:40px;transform:translateX(-50%);display:flex;align-items:center;gap:14px;padding:8px 14px 8px 8px;background:rgba(255,255,255,.82);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border:1px solid rgba(20,30,60,.08);border-radius:999px;box-shadow:0 10px 30px rgba(40,50,80,.10)}
.fplay{width:34px;height:34px;border-radius:50%;border:0;background:var(--ink);cursor:pointer;display:grid;place-items:center;transition:transform .16s cubic-bezier(.23,1,.32,1)}
.fplay:active{transform:scale(.94)}
.fplay span{width:10px;height:12px;border-left:3.5px solid #fff;border-right:3.5px solid #fff;box-sizing:border-box}
.fplay.paused span{border:0;width:11px;height:14px;background:#fff;clip-path:polygon(0 0,100% 50%,0 100%);margin-left:3px}
.film .rail{position:static;transform:none;flex-direction:row;gap:6px}
.film .rail i{width:46px;height:5px;border-radius:99px;background:#dde1ea;position:relative;overflow:hidden;cursor:pointer;transform:none!important}
.film .rail i::after{content:"";position:absolute;inset:0;background:var(--ink);transform-origin:left;transform:scaleX(var(--f,0))}
.film .rail i.done::after{transform:scaleX(1)}
.film .rail i:focus-visible,.fplay:focus-visible{outline:2px solid var(--brand);outline-offset:3px}
@media (hover:hover){.film .rail i:hover{background:#c9cfdc}}
#hint{display:none!important}
@media (max-width:759px){
  #stage{min-height:560px}
  .chap#top{top:84px;bottom:auto;left:16px;right:16px;width:auto;background:none;border:0;box-shadow:none;padding:0;transform:none!important}
  .chap#top p:not(.pill){display:none}
  .chap#top .links{margin-top:6px}
  .chap.cap{bottom:84px;width:calc(100vw - 32px);background:none;border:0;box-shadow:none;padding:0}
  .chap.cap h2{font-size:1.3rem}
  .chap.cap p{font-size:.9rem}
  .film{bottom:22px;gap:10px;padding:6px 10px 6px 6px}
  .film .rail i{width:30px}
  .film .rail{display:flex!important}
}
/* Sous-titres du film : colonne de gauche sous le titre (ordinateur), en bas au centre (téléphone) */
.chap#top{top:calc(50% - 40px);transform:translateY(-50%)!important}
.chap.cap{left:max(28px,5vw);bottom:auto;top:calc(50% + 150px);width:min(430px,33vw);text-align:left;transform:translate(0,var(--ty,0))}
.chap.cap h2{font-size:clamp(1.35rem,1.9vw,1.85rem);color:var(--ink)}
.chap.cap::before{content:"";display:block;width:34px;height:3px;border-radius:3px;background:var(--brand);margin:0 0 14px}
@media (max-width:759px){
  .chap#top{top:84px;transform:none!important}
  .chap.cap{left:50%;top:auto;bottom:84px;width:calc(100vw - 32px);text-align:center;transform:translate(-50%,var(--ty,0))}
  .chap.cap::before{display:none}
}

.layer{white-space:normal;width:max-content;max-width:230px;text-align:center;padding:9px 13px 8px;border-width:1.5px}
.layer b{display:block;font-family:var(--serif);font-size:15px;font-weight:600;color:var(--c)}
.layer span{display:block;font-size:12px;font-weight:500;color:var(--mute);margin-top:2px}
@media (max-width:759px){.layer{max-width:170px;padding:7px 10px 6px}.layer b{font-size:13px}.layer span{font-size:11px}}
#film-video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block;pointer-events:none}
.vid #poster{display:none}
.vid #gl{display:none}
/* trajectoire : aujourd'hui sur mesure, 2027 plug and play */
.road{display:grid;grid-template-columns:1fr 72px 1fr;align-items:stretch;margin-top:clamp(48px,6vw,80px)}
.rd{border-radius:18px;padding:22px 24px 20px;border:1px solid #e6e2d8;background:#fff}
.rd.next{background:linear-gradient(135deg,#f3f5ff,#eef7ff);border-color:#cfd8f6}
.rd-k{display:inline-block;font-size:11px;letter-spacing:.1em;text-transform:uppercase;font-weight:700;color:var(--mute);margin-bottom:8px}
.rd.next .rd-k{color:#fff;background:#2f4b9c;border-radius:999px;padding:3px 10px;letter-spacing:.06em}
.rd h3{margin:0 0 6px;font-family:var(--serif);font-size:22px;font-weight:600}
.rd p{margin:0;color:var(--mute);font-size:15px;line-height:1.5}
.rd-ar{position:relative}
.rd-ar i{position:absolute;left:12px;right:12px;top:50%;height:2px;background:repeating-linear-gradient(90deg,#2f4b9c 0 6px,transparent 6px 12px);background-size:24px 2px;animation:rdflow 1.2s linear infinite}
.rd-ar i::after{content:"";position:absolute;right:-2px;top:-5px;border:6px solid transparent;border-left:9px solid #2f4b9c;border-right:0}
@keyframes rdflow{to{background-position:24px 0}}
@media (max-width:759px){.road{grid-template-columns:1fr;grid-template-rows:auto 44px auto}.rd-ar i{left:50%;right:auto;top:8px;bottom:8px;width:2px;height:auto;background:repeating-linear-gradient(180deg,#2f4b9c 0 6px,transparent 6px 12px);background-size:2px 24px;animation-name:rdflowv}.rd-ar i::after{right:auto;top:auto;bottom:-4px;left:-5px;border:6px solid transparent;border-top:9px solid #2f4b9c;border-bottom:0}}
@keyframes rdflowv{to{background-position:0 24px}}
@media (prefers-reduced-motion:reduce){.rd-ar i{animation:none}}
/* bannière fixe + menu à trois lignes */
header.top.solid{background:rgba(251,250,247,.86);backdrop-filter:blur(14px) saturate(1.2);-webkit-backdrop-filter:blur(14px) saturate(1.2);box-shadow:0 1px 0 var(--hair)}
header.top.solid .brand{transform:scale(.84)}
.hd-cta{font:600 .9rem/1 var(--sans);color:#fff;background:var(--ink);text-decoration:none;padding:11px 18px;border-radius:999px;transition:background-color .15s,transform .15s var(--ease)}
.hd-cta:active{transform:scale(.96)}
@media (hover:hover) and (pointer:fine){.hd-cta:hover{background:var(--brand)}}
.burger{width:44px;height:44px;border-radius:999px;border:1px solid var(--line);background:#fff;display:grid;place-content:center;gap:5px;cursor:pointer;box-shadow:0 4px 14px rgba(40,50,80,.08);padding:0}
.burger span{display:block;width:18px;height:2px;border-radius:2px;background:var(--ink);transition:transform .25s var(--ease),opacity .2s}
header.top.open .burger span:nth-child(1){transform:translateY(7px) rotate(45deg)}
header.top.open .burger span:nth-child(2){opacity:0}
header.top.open .burger span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
.menu{position:absolute;top:100%;right:20px;min-width:250px;background:#fff;border:1px solid var(--line);border-radius:18px;box-shadow:0 18px 40px rgba(40,50,80,.16);padding:10px;display:flex;flex-direction:column;gap:10px;
 opacity:0;transform:translateY(-8px) scale(.98);transform-origin:top right;pointer-events:none;visibility:hidden;transition:opacity .2s var(--ease),transform .2s var(--ease),visibility 0s .2s}
header.top.open .menu{opacity:1;transform:none;pointer-events:auto;visibility:visible;transition:opacity .2s var(--ease),transform .2s var(--ease)}
.menu nav.main{flex-direction:column;gap:2px;background:none;border:0;box-shadow:none;padding:0;backdrop-filter:none;-webkit-backdrop-filter:none}
header.top.solid .menu nav.main{background:none}
.menu nav.main a,.menu nav.main a:not(.cta){display:block;font-size:1rem;color:var(--ink);padding:12px 14px;border-radius:12px}
.menu nav.main a.cta{margin-top:4px;text-align:center;color:#fff}
.menu .lang{align-self:flex-start;box-shadow:none;margin:2px 4px 4px}
@media (max-width:760px){.menu{left:12px;right:12px;min-width:0}.hd-cta{padding:10px 15px;font-size:.85rem}.burger{width:40px;height:40px}}

/* ===== SOUS LE CAPOT : trois schemas animes (2026-10-10) =====
   Chaque schema (.fx) est une sequence : home.js pose s1, s2, s3... au fil du temps (cumulatif) tant que le bloc est a l'ecran.
   Un element declare son etat avec deux variables : --h (cache jusqu'a l'etape n : --h:var(--h2)) et --g (parti apres l'etape n : --g:var(--g3)).
   Sans .seq (mouvement reduit, sans IntersectionObserver) : l'etat final s'affiche, immobile. transform, opacite et stroke-dashoffset seulement. */
#twin{--w:#f4f7ff;--c:#2f4b9c}
.vol{display:grid;grid-template-columns:minmax(0,.78fr) minmax(0,1.22fr);gap:clamp(28px,5vw,80px);align-items:center;margin:0 0 clamp(64px,8vw,120px)}
.vol:last-child{margin-bottom:0}
.vol.rev{grid-template-columns:minmax(0,1.22fr) minmax(0,.78fr)}
.vol.rev .vol-t{order:2}
.vol-t{min-width:0}
.vol-k{display:flex;align-items:center;gap:12px;font-size:.8rem;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:var(--brand);margin:0 0 14px}
.vol-k b{flex:none;display:grid;place-items:center;width:34px;height:34px;border-radius:50%;background:var(--ink);color:#fff;font:600 1.1rem/1 var(--serif);letter-spacing:0}
.bx .vol-t h3{font-family:var(--serif);font-weight:600;font-size:clamp(1.65rem,2.7vw,2.4rem);line-height:1.1;letter-spacing:-.024em;margin:0 0 16px;text-wrap:balance}
.vol-t p{color:var(--ink2);line-height:1.62;max-width:46ch}
.vol-f{list-style:none;margin:22px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:8px}
.vol-f li{font-size:.84rem;font-weight:600;line-height:1.2;padding:7px 14px;border-radius:999px;background:#fff;border:1px solid #d3dcf4;color:var(--brand)}
.vol-n{display:flex;align-items:flex-start;gap:10px;margin:22px 0 0;padding:14px 16px;border-radius:16px;background:linear-gradient(135deg,#f3f5ff,#eef7ff);border:1px solid #cfd8f6;font-size:.94rem;line-height:1.5}
.vol-n>span:last-child{color:var(--ink2)}
.vol-nk{flex:none;margin-top:1px;font-size:11px;font-weight:700;letter-spacing:.06em;color:#fff;background:var(--brand);border-radius:999px;padding:3px 10px}
.vol-fig{position:relative;min-width:0;overflow:hidden;border-radius:32px;padding:clamp(16px,2.2vw,28px);background:radial-gradient(110% 90% at 10% 0%,#f0f4ff 0%,#fff 60%),#fff;border:1px solid var(--hair);box-shadow:0 24px 54px rgba(40,50,80,.09)}
.vol-fig::before{content:"";position:absolute;inset:0;background-image:radial-gradient(#d3dbef 1.1px,transparent 1.3px);background-size:22px 22px;opacity:.6;-webkit-mask-image:radial-gradient(85% 85% at 50% 45%,#000,transparent 100%);mask-image:radial-gradient(85% 85% at 50% 45%,#000,transparent 100%);pointer-events:none}
.vol-fig .fx{position:relative;max-width:560px;margin:0 auto}

/* vocabulaire des schemas */
.fxs{display:block;width:100%;height:auto;overflow:visible;fill:#1d2433}
.fxs text{font-family:var(--sans)}
.fxs .tx{font-size:13.5px;font-weight:600}
.fxs .tx2{font-size:13px;font-weight:600}
.fxs .tx3{font-size:12.5px;font-weight:600}
.fxs .ts{font-size:11.5px;font-weight:600;fill:#5d6a86}
.fxs .tv{font-size:10.5px;font-weight:700}
.fxs .tb{font-size:12.5px;font-weight:700;fill:#fff}
.fxs .tb2{font-size:12px;font-weight:700}
.fxs .tp{font-size:11.5px;font-weight:700;letter-spacing:.02em;fill:#2f4b9c}
.fxs .tp.mp{fill:#5d6a8c}
.fxs .kt{font-size:11px;font-weight:700}
.fxs .tm{fill:#2f4b9c}
.fxs .fans{fill:#2f4b9c;font-weight:700}
.fxs .lb{font-size:11px;paint-order:stroke;stroke:#fff;stroke-width:4px;stroke-linejoin:round}
@media (min-width:900px){.fxs .chip{filter:drop-shadow(0 5px 9px rgba(40,50,80,.10))}}

/* etapes : --h = pas encore (1) / deja (0) ; --g = pas encore parti (0) / parti (1). Par defaut : etat final. */
.fx{--g1:1;--g2:1;--g3:1;--g4:1;--g5:1;--g6:1;--g7:1}
.fx.seq{--h1:1;--h2:1;--h3:1;--h4:1;--h5:1;--h6:1;--h7:1;--g1:0;--g2:0;--g3:0;--g4:0;--g5:0;--g6:0;--g7:0}
.fx.seq.s1{--h1:0;--g1:1}.fx.seq.s2{--h2:0;--g2:1}.fx.seq.s3{--h3:0;--g3:1}.fx.seq.s4{--h4:0;--g4:1}.fx.seq.s5{--h5:0;--g5:1}.fx.seq.s6{--h6:0;--g6:1}.fx.seq.s7{--h7:0;--g7:1}
.fxs .ax,.fxs .mv,.fxs .bob,.fxs .prs,.fxs .ring,.fxs .clk,.fxs .pr,.fxs .eyb,.fxs .ant{transform-box:fill-box;transform-origin:center}
.fxs .ax{--h:0;--g:0;--ox:0px;--oy:0px;--os:0;--gx:0px;--gy:0px;--gs:0;
  opacity:calc(1 - var(--h,0) - var(--g,0));
  transform:translate(calc(var(--h,0)*var(--ox) + var(--g,0)*var(--gx)),calc(var(--h,0)*var(--oy) + var(--g,0)*var(--gy))) scale(calc(1 - var(--h,0)*var(--os) - var(--g,0)*var(--gs)));
  transition:opacity .5s ease var(--dl,0s),transform .75s var(--ease) var(--dl,0s)}
.fxs .dw{--h:0;stroke-dasharray:1;stroke-dashoffset:var(--h,0);opacity:calc(1 - var(--h,0));transition:stroke-dashoffset .85s var(--ease) var(--dl,0s),opacity .01s linear var(--dl,0s)}
.fxs .mv{--m:0;--mx:0px;--my:0px;transform:translate(calc(var(--m,0)*var(--mx)),calc(var(--m,0)*var(--my)));transition:transform 1s var(--ease) .15s}
.fx.rst .ax,.fx.rst .dw,.fx.rst .mv{transition-duration:.35s!important;transition-delay:0s!important}

/* micro-mouvements : seulement quand le schema est a l'ecran */
@keyframes fxflow{to{stroke-dashoffset:calc(var(--per,12.5px)*-1)}}
@keyframes fxbob{0%,100%{transform:translateY(0)}50%{transform:translateY(-2.6px)}}
@keyframes fxblink{0%,91%,100%{transform:scaleY(1)}94.5%{transform:scaleY(.12)}}
@keyframes fxant{0%,100%{transform:scale(1)}50%{transform:scale(1.5)}}
@keyframes fxring{0%,100%{stroke-opacity:1}50%{stroke-opacity:.35}}
@keyframes fxpulse{0%{transform:scale(1);opacity:.55}100%{transform:scale(2.6);opacity:0}}
@keyframes fxclick{0%{opacity:.55;transform:scale(.4)}100%{opacity:0;transform:scale(4.2)}}
@keyframes fxpress{40%{transform:scale(.93)}}
.fx.live .flw path{--per:12.5px;animation:fxflow 1.5s linear infinite}
.fx.live .flb{--per:8.5px;animation:fxflow 1s linear infinite}
.fx.live .rq,.fx.live .rt{--per:11.5px;animation:fxflow 1.3s linear infinite}
.fx.live .cand path{--per:9px;animation:fxflow 1.8s linear infinite}
.fx.live .bob{animation:fxbob 5.2s ease-in-out var(--b,0s) infinite}
.fx.live .eyb{animation:fxblink 4.6s ease-in-out infinite}
.fx.live .ant{animation:fxant 2.4s ease-in-out infinite}
.fx.live .ring{animation:fxring 2.2s ease-in-out infinite}
.fx.live .wring{animation:fxring 1.4s ease-in-out infinite}
.fx.live .pr{animation:fxpulse 2.4s ease-out infinite}
.fx.s4 .clk{animation:fxclick .8s ease-out 1.2s forwards}
.fx.s4 .prs{animation:fxpress .5s var(--ease) 1.2s}

@media (max-width:900px){
  .vol,.vol.rev{grid-template-columns:minmax(0,1fr);gap:26px}
  .vol.rev .vol-t{order:0}
  .vol-t p{max-width:60ch}
  .vol-fig .fx{max-width:520px}
}
@media (max-width:560px){
  .vol-fig{margin:0 -14px;border-radius:24px;padding:12px 8px}
  .fxs .ts{font-size:12.2px}
  .fxs .kt{font-size:11px}
  .fxs .srt{font-size:11.3px}
}
@media (prefers-reduced-motion:reduce){
  .fx *{animation:none!important}
  .vol-t.stg>*,.vol-fig{transition-duration:.35s}
}

/* ===== ILLUSTRATIONS EXISTANTES, ENRICHIES (2026-10-10) =====
   Pourquoi : à gauche tout s'agite (points d'interrogation, liens cassés, trois écritures du même client), à droite tout circule.
   Comment : des flux qui entrent dans le socle, une orbite d'entités, des agents qui clignent, un curseur qui valide.
   Pour qui : trois mini-schémas par métier. Tout ne tourne que pendant que le bloc est à l'écran (.live). */
@keyframes e-fl{to{stroke-dashoffset:calc(var(--per,10.5px)*-1)}}
@keyframes e-bob{0%,100%{transform:translateY(0)}50%{transform:translateY(-3px)}}
@keyframes e-spin{to{transform:rotate(360deg)}}
@keyframes e-sheen{0%{transform:translateX(0)}58%,100%{transform:translateX(440px)}}
@keyframes e-nf{0%,100%{transform:scale(1)}8%{transform:scale(1.8)}16%{transform:scale(1)}}
@keyframes e-blink{0%,90%,100%{transform:scaleY(1)}94%{transform:scaleY(.1)}}
@keyframes e-ant{0%,100%{transform:scale(1)}50%{transform:scale(1.6)}}
@keyframes e-rg{0%{opacity:.5;transform:scale(1)}70%,100%{opacity:0;transform:scale(1.9)}}
@keyframes e-qpop{0%,100%{opacity:0;transform:scale(.5) translateY(5px)}10%,34%{opacity:1;transform:none}46%{opacity:0;transform:scale(.8) translateY(-3px)}}
@keyframes e-xp{0%,100%{opacity:.4;transform:scale(.85)}50%{opacity:1;transform:scale(1.1)}}
@keyframes e-nm{0%,100%{opacity:.5}50%{opacity:1}}
@keyframes e-hal{0%,100%{opacity:0;transform:scale(1)}18%{opacity:.35}42%{opacity:0;transform:scale(1.55)}}
@keyframes e-cn{0%,100%{opacity:.35;transform:scale(1)}40%{opacity:1;transform:scale(1.7)}}
@keyframes e-cur{0%,8%{opacity:0;transform:translate(42px,30px)}18%{opacity:1}44%{opacity:1;transform:translate(0,0)}48%{transform:translate(0,1px) scale(.9)}54%,80%{opacity:1;transform:translate(0,0) scale(1)}92%,100%{opacity:0;transform:translate(42px,30px)}}
@keyframes e-prs{0%,44%,56%,100%{transform:scale(1)}49%{transform:scale(.95)}}
@keyframes e-rpl{0%,46%{opacity:0;transform:scale(.3)}49%{opacity:.4}74%,100%{opacity:0;transform:scale(3.4)}}

/* pourquoi, à gauche */
.e-x .xm,.e-q .qm,.e-halo,.e-ring,.e-cn circle,.e-cur,.e-rpl,.e-prs,.e-ant,.e-orb,.eye{transform-box:fill-box;transform-origin:center}
.e-nm text{font-family:var(--sans);font-size:11px;font-weight:600;fill:#6f788f;paint-order:stroke;stroke:#f4f5f8;stroke-width:3.5px;stroke-linejoin:round}
.e-halo{opacity:0}
.vs.live .e-q .qm{animation:e-qpop 6.6s ease-in-out calc(var(--k)*-2.2s) infinite}
.vs.live .e-x .xm{animation:e-xp 2.8s ease-in-out calc(var(--k)*-.9s) infinite}
.vs.live .e-nm text{animation:e-nm 3.8s ease-in-out calc(var(--k)*-1.3s) infinite}
.vs.live .e-halo{animation:e-hal 3.8s ease-in-out infinite}
/* pourquoi, à droite */
.e-ring{opacity:0}
.vs.live .e-ring{animation:e-rg 3.2s ease-out 2s infinite}
.e-fl,.e-flw{transition:opacity .6s ease 1.7s}
.anim :is(.vs,.s3):not(.in) :is(.e-fl,.e-flw,.e-orb,.e-ro){opacity:0}
.vs.live .e-flw path{--per:10.5px;animation:e-fl 1.3s linear infinite reverse}
.vs.live .e-up{--per:8.5px;animation:e-fl .8s linear infinite}
.vs.live .e-cn circle{animation:e-cn 3.4s ease-in-out calc(var(--k)*.38s) infinite}

/* comment, étape 1 : les outils flottent, une lumière balaie le socle, chaque nœud s'allume à l'arrivée */
.s3.live .e-bob{animation:e-bob 4.8s ease-in-out calc(var(--k)*-.7s) infinite}
.il1 .e-sheen{transform-box:view-box}
.s3.live .e-sheen{animation:e-sheen 5.2s ease-in-out 1.4s infinite}
.s3.live .il1 .nds circle{animation:e-nf 3.6s ease-in-out calc(1.6s + var(--k)*.2s) infinite}
.e-ro{transform-box:fill-box;transform-origin:center;transition:opacity .6s ease calc(var(--sd) + 1.5s),transform .7s var(--ease) calc(var(--sd) + 1.5s)}
.anim .s3:not(.in) .e-ro{transform:translateY(8px)}
/* étape 2 : les fiches entrent, des entités tournent autour du jumeau */
.nd use{transform-box:fill-box;transform-origin:center;transition:opacity .4s ease calc(var(--sd) + .2s + var(--k,0)*.07s),transform .6s var(--ease) calc(var(--sd) + .2s + var(--k,0)*.07s)}
.anim .s3:not(.in) .nd use{opacity:0;transform:scale(.5)}
.e-orb{transform-box:view-box;transform-origin:160px 112px;transition:opacity .6s ease calc(var(--sd) + 1s)}
.s3.live .e-orb{animation:e-spin 18s linear infinite}
.s3.live .e-in path{--per:9.5px;animation:e-fl 1.2s linear infinite}
/* étape 3 : les agents clignent, travaillent vers la validation, une personne clique */
.s3.live .e-lp path,.s3.live .e-lp2 path{--per:10.5px;animation:e-fl 1.3s linear infinite}
.s3.live .il3 .eye{animation:e-blink 4.6s ease-in-out calc(var(--k)*-1.1s) infinite}
.s3.live .il3 .e-ant{animation:e-ant 2.2s ease-in-out calc(var(--k)*-.6s) infinite}
.e-rpl{opacity:0}
.s3.live .e-cur{animation:e-cur 6s ease-in-out 2.6s infinite backwards}
.s3.live .e-prs{animation:e-prs 6s ease-in-out 2.6s infinite}
.s3.live .e-rpl{animation:e-rpl 6s ease-out 2.6s infinite backwards}

/* pour qui : trois mini-schémas par métier */
.cfs{display:block;width:100%;height:auto;max-height:124px;margin:0 0 16px;overflow:visible}
.cfs *{transform-box:fill-box;transform-origin:center}
.cfs text{font-family:var(--sans)}
.b2 .cfs{max-height:136px}
.cft{transform:rotate(var(--r,0deg))}
.cfm,.cfbang{opacity:0}
.cfh{opacity:1}
.cfrp,.cfr{opacity:0}
.cf6d{transform:translateX(54px)}
@keyframes cf-wob{0%,100%{transform:rotate(var(--r)) translate(0,0)}50%{transform:rotate(calc(var(--r) + 8deg)) translate(2px,-3px)}}
@keyframes cf-bob{0%,100%{transform:translateY(0)}50%{transform:translateY(-2.5px)}}
@keyframes cf-x{0%,100%{opacity:.4;transform:scale(.85)}50%{opacity:1;transform:scale(1.12)}}
@keyframes cf-fl{to{stroke-dashoffset:calc(var(--per,9.5px)*-1)}}
@keyframes cf-ring{0%{opacity:.5;transform:scale(1)}70%,100%{opacity:0;transform:scale(1.9)}}
@keyframes cf-merge{0%{opacity:0;transform:translate(0,0)}7%,24%{opacity:1;transform:translate(0,0)}40%,100%{opacity:0;transform:translate(46px,0) scale(.35)}}
@keyframes cf-tile{0%,40%{opacity:0;transform:scale(.4)}48%{opacity:1;transform:scale(1.14)}54%,90%{opacity:1;transform:scale(1)}98%,100%{opacity:0;transform:scale(.8)}}
@keyframes cf-marg{0%,56%{transform:scaleX(0)}74%,90%{transform:scaleX(1)}98%,100%{transform:scaleX(0)}}
@keyframes cf6-dot{0%,6%{transform:translateX(0)}38%,90%{transform:translateX(54px)}98%,100%{transform:translateX(0)}}
@keyframes cf6-path{0%,6%{transform:scaleX(0)}38%,90%{transform:scaleX(1)}98%,100%{transform:scaleX(0)}}
@keyframes cf6-warn{0%,40%{opacity:0;transform:scale(.3)}48%{opacity:1;transform:scale(1.15)}54%,90%{opacity:1;transform:scale(1)}98%,100%{opacity:0;transform:scale(.8)}}
@keyframes cf6-msg{0%,56%{opacity:0;transform:translateY(8px)}66%,90%{opacity:1;transform:none}98%,100%{opacity:0;transform:translateY(8px)}}
@keyframes cf3-cur{0%,10%{opacity:0;transform:translate(34px,22px)}22%{opacity:1}46%{opacity:1;transform:translate(0,0)}50%{transform:translate(0,1px) scale(.9)}56%,86%{opacity:1;transform:translate(0,0) scale(1)}96%,100%{opacity:0;transform:translate(34px,22px)}}
@keyframes cf3-prs{0%,46%,58%,100%{transform:scale(1)}51%{transform:scale(.94)}}
@keyframes cf3-rp{0%,48%{opacity:0;transform:scale(.3)}51%{opacity:.4}74%,100%{opacity:0;transform:scale(3.4)}}
@keyframes cf3-hl{0%,4%{opacity:0}12%,48%{opacity:1}56%,100%{opacity:.4}}
@keyframes cf3-bang{0%,50%{opacity:1;transform:scale(1)}54%,100%{opacity:0;transform:scale(.4)}}
@keyframes cf3-ok{0%,52%{opacity:0;transform:scale(.3)}60%{opacity:1;transform:scale(1.18)}66%,90%{opacity:1;transform:scale(1)}98%,100%{opacity:0;transform:scale(.8)}}
.cs.live .cft{animation:cf-wob 4.6s ease-in-out calc(var(--d)*1s) infinite}
.cs.live .cft2{animation:cf-bob 4.4s ease-in-out calc(var(--d)*1s) infinite}
.cs.live .cfx{animation:cf-x 2.6s ease-in-out calc(var(--d)*1s) infinite}
.cs.live .cfl path{--per:8px;animation:cf-fl 2s linear infinite}
.cs.live .cff{animation:cf-fl 1.3s linear infinite}
.cs.live .cfr{animation:cf-ring 2.6s ease-out infinite}
.cs.live .cfp{animation:cfp0 6s var(--ease) infinite}
.cs.live .cfg{transform-origin:left center;animation:cfg0 6s var(--ease) infinite}
.cs.live .cfg.cfv{transform-origin:center bottom;animation-name:cfv0}
.cs.live .cfm{animation:cf-merge 6s ease-in-out infinite}
.cs.live .cfq{animation:cf-tile 6s var(--ease) infinite}
.cfg5{transform-origin:left center}
.cs.live .cfg5{animation:cf-marg 6s var(--ease) infinite}
.cf6p{transform-origin:left center}
.cs.live .cf6d{animation:cf6-dot 6s var(--ease) infinite}
.cs.live .cf6p{animation:cf6-path 6s var(--ease) infinite}
.cs.live .cf6w{animation:cf6-warn 6s var(--ease) infinite}
.cs.live .cf6m{animation:cf6-msg 6s var(--ease) infinite}
.cs.live .cfcur{animation:cf3-cur 6s ease-in-out infinite backwards}
.cs.live .cfprs{animation:cf3-prs 6s ease-in-out infinite}
.cs.live .cfrp{animation:cf3-rp 6s ease-out infinite backwards}
.cs.live .cfh{animation:cf3-hl 6s ease-in-out infinite}
.cs.live .cfbang{animation:cf3-bang 6s ease-in-out infinite}
.cs.live .cfok{animation:cf3-ok 6s var(--ease) infinite backwards}

@media (max-width:760px){.cfs{max-height:112px;margin-bottom:12px}.b2 .cfs{max-height:120px}.e-nm text{font-size:13.5px}}
@media (prefers-reduced-motion:reduce){
  .vs *,.s3 *,.cs .cfs *{animation:none!important}
  .e-ro{transition:opacity .35s ease}
  .anim .s3:not(.in) .e-ro{transform:none}
  .e-fl,.e-flw,.e-orb{transition:opacity .35s ease}
  .nd use{transition-duration:.4s;transition-delay:0s}
  .anim .s3:not(.in) .nd use{transform:none}
}
/* mini-schemas de « Pour qui » : formes seules, cycle de 6 s */
@keyframes cfp0{0%,0.0%{opacity:0;transform:scale(.3)}6.67%{opacity:1;transform:scale(1.15)}10.0%,88.33%{opacity:1;transform:scale(1)}96.67%,100%{opacity:0;transform:scale(.8)}}
@keyframes cfg0{0%,0.0%{transform:scaleX(0)}18.33%,88.33%{transform:scaleX(1)}96.67%,100%{transform:scaleX(0)}}
@keyframes cfv0{0%,0.0%{transform:scaleY(0)}18.33%,88.33%{transform:scaleY(1)}96.67%,100%{transform:scaleY(0)}}
@keyframes cfp1{0%,6.67%{opacity:0;transform:scale(.3)}13.33%{opacity:1;transform:scale(1.15)}16.67%,88.33%{opacity:1;transform:scale(1)}96.67%,100%{opacity:0;transform:scale(.8)}}
@keyframes cfg1{0%,6.67%{transform:scaleX(0)}25.0%,88.33%{transform:scaleX(1)}96.67%,100%{transform:scaleX(0)}}
@keyframes cfv1{0%,6.67%{transform:scaleY(0)}25.0%,88.33%{transform:scaleY(1)}96.67%,100%{transform:scaleY(0)}}
@keyframes cfp2{0%,13.33%{opacity:0;transform:scale(.3)}20.0%{opacity:1;transform:scale(1.15)}23.33%,88.33%{opacity:1;transform:scale(1)}96.67%,100%{opacity:0;transform:scale(.8)}}
@keyframes cfg2{0%,13.33%{transform:scaleX(0)}31.67%,88.33%{transform:scaleX(1)}96.67%,100%{transform:scaleX(0)}}
@keyframes cfv2{0%,13.33%{transform:scaleY(0)}31.67%,88.33%{transform:scaleY(1)}96.67%,100%{transform:scaleY(0)}}
@keyframes cfp3{0%,20.0%{opacity:0;transform:scale(.3)}26.67%{opacity:1;transform:scale(1.15)}30.0%,88.33%{opacity:1;transform:scale(1)}96.67%,100%{opacity:0;transform:scale(.8)}}
@keyframes cfg3{0%,20.0%{transform:scaleX(0)}38.33%,88.33%{transform:scaleX(1)}96.67%,100%{transform:scaleX(0)}}
@keyframes cfv3{0%,20.0%{transform:scaleY(0)}38.33%,88.33%{transform:scaleY(1)}96.67%,100%{transform:scaleY(0)}}
@keyframes cfp4{0%,26.67%{opacity:0;transform:scale(.3)}33.33%{opacity:1;transform:scale(1.15)}36.67%,88.33%{opacity:1;transform:scale(1)}96.67%,100%{opacity:0;transform:scale(.8)}}
@keyframes cfg4{0%,26.67%{transform:scaleX(0)}45.0%,88.33%{transform:scaleX(1)}96.67%,100%{transform:scaleX(0)}}
@keyframes cfv4{0%,26.67%{transform:scaleY(0)}45.0%,88.33%{transform:scaleY(1)}96.67%,100%{transform:scaleY(0)}}
@keyframes cfp5{0%,33.33%{opacity:0;transform:scale(.3)}40.0%{opacity:1;transform:scale(1.15)}43.33%,88.33%{opacity:1;transform:scale(1)}96.67%,100%{opacity:0;transform:scale(.8)}}
@keyframes cfg5{0%,33.33%{transform:scaleX(0)}51.67%,88.33%{transform:scaleX(1)}96.67%,100%{transform:scaleX(0)}}
@keyframes cfv5{0%,33.33%{transform:scaleY(0)}51.67%,88.33%{transform:scaleY(1)}96.67%,100%{transform:scaleY(0)}}
@keyframes cfp6{0%,40.0%{opacity:0;transform:scale(.3)}46.67%{opacity:1;transform:scale(1.15)}50.0%,88.33%{opacity:1;transform:scale(1)}96.67%,100%{opacity:0;transform:scale(.8)}}
@keyframes cfg6{0%,40.0%{transform:scaleX(0)}58.33%,88.33%{transform:scaleX(1)}96.67%,100%{transform:scaleX(0)}}
@keyframes cfv6{0%,40.0%{transform:scaleY(0)}58.33%,88.33%{transform:scaleY(1)}96.67%,100%{transform:scaleY(0)}}
@keyframes cfp7{0%,46.67%{opacity:0;transform:scale(.3)}53.33%{opacity:1;transform:scale(1.15)}56.67%,88.33%{opacity:1;transform:scale(1)}96.67%,100%{opacity:0;transform:scale(.8)}}
@keyframes cfg7{0%,46.67%{transform:scaleX(0)}65.0%,88.33%{transform:scaleX(1)}96.67%,100%{transform:scaleX(0)}}
@keyframes cfv7{0%,46.67%{transform:scaleY(0)}65.0%,88.33%{transform:scaleY(1)}96.67%,100%{transform:scaleY(0)}}
.cs.live .cfp.o0{animation-name:cfp0}.cs.live .cfg.o0{animation-name:cfg0}.cs.live .cfg.cfv.o0{animation-name:cfv0}
.cs.live .cfp.o1{animation-name:cfp1}.cs.live .cfg.o1{animation-name:cfg1}.cs.live .cfg.cfv.o1{animation-name:cfv1}
.cs.live .cfp.o2{animation-name:cfp2}.cs.live .cfg.o2{animation-name:cfg2}.cs.live .cfg.cfv.o2{animation-name:cfv2}
.cs.live .cfp.o3{animation-name:cfp3}.cs.live .cfg.o3{animation-name:cfg3}.cs.live .cfg.cfv.o3{animation-name:cfv3}
.cs.live .cfp.o4{animation-name:cfp4}.cs.live .cfg.o4{animation-name:cfg4}.cs.live .cfg.cfv.o4{animation-name:cfv4}
.cs.live .cfp.o5{animation-name:cfp5}.cs.live .cfg.o5{animation-name:cfg5}.cs.live .cfg.cfv.o5{animation-name:cfv5}
.cs.live .cfp.o6{animation-name:cfp6}.cs.live .cfg.o6{animation-name:cfg6}.cs.live .cfg.cfv.o6{animation-name:cfv6}
.cs.live .cfp.o7{animation-name:cfp7}.cs.live .cfg.o7{animation-name:cfg7}.cs.live .cfg.cfv.o7{animation-name:cfv7}

.tw-ex{margin:28px 0 0;font-size:12px;color:var(--mute);text-align:right}

/* ===== SOBRIETE (2026-10-12) : en-tete = logo + menu a trois lignes, rien d'autre ne flotte sur le film ===== */
.faq-l{position:static}
.chap.cap{bottom:56px}
.chap#top{padding-bottom:0}
@media (max-width:759px){
  header.top{background:rgba(251,250,247,.97);box-shadow:0 1px 0 var(--hair)}
  #story{padding-top:60px}
  #stage{height:calc(100svh - 60px);min-height:0}
  .chap#top{top:22px}
  .chap.cap{bottom:28px}
}
footer p{text-wrap:pretty}
