@font-face{font-family:"Geist";font-weight:300;font-display:swap;src:url(fonts/geist-latin-300-normal.woff2) format("woff2")}
@font-face{font-family:"Geist";font-weight:400;font-display:swap;src:url(fonts/geist-latin-400-normal.woff2) format("woff2")}
@font-face{font-family:"Geist";font-weight:500;font-display:swap;src:url(fonts/geist-latin-500-normal.woff2) format("woff2")}
@font-face{font-family:"Geist Mono";font-weight:400;font-display:swap;src:url(fonts/geist-mono-latin-400-normal.woff2) format("woff2")}
@font-face{font-family:"Geist Mono";font-weight:500;font-display:swap;src:url(fonts/geist-mono-latin-500-normal.woff2) format("woff2")}

/* Concept : une planche technique sur blanc, aux couleurs du logo. Le moteur en 3/4 raconte le circuit : son trait passe de l acier usé au marine net, et le bleu électrique marque ce qui est neuf ou validé. */
:root{--onyx:#fff;--onyx2:#f3f6fb;--trait:#dbe3ee;--blanc:#0e2341;--gris:#426793;--use:#5a7391;--indigo-c:#426793;--menthe:#1c49fd;--ambre:#426793;
 --sans:Geist,"Helvetica Neue",Arial,sans-serif;--mono:"Geist Mono",ui-monospace,Menlo,monospace;--ease:cubic-bezier(.23,1,.32,1);
 --gx:max(24px,env(safe-area-inset-left,0px));--gxr:max(24px,env(safe-area-inset-right,0px));color-scheme:light;scroll-behavior:smooth}
*{box-sizing:border-box}
body{background:var(--onyx);color:var(--blanc);font:400 17px/1.55 var(--sans);overflow-x:clip}
h1,h2,h3,p,ol,ul,figure{margin:0;padding:0}ol,ul{list-style:none}
h1,h2{font-weight:300;letter-spacing:-.04em;line-height:1.03;text-wrap:balance}
a{color:inherit}:focus-visible{outline:2px solid var(--menthe);outline-offset:3px}
.mono{font:400 12px/1.4 var(--mono);letter-spacing:.05em;color:var(--gris)}
.wrap{max-width:1280px;margin-inline:auto;padding-left:var(--gx);padding-right:var(--gxr)}
.go{display:inline-flex;align-items:center;justify-content:center;min-height:46px;padding:0 20px;border:0;border-radius:999px;background:var(--menthe);color:#fff;font:500 15px/1 var(--sans);text-decoration:none;cursor:pointer;transition:transform 160ms var(--ease),background-color 160ms ease}
.go:active{transform:scale(.97)}
.go2{color:var(--blanc);font-size:15px;text-decoration:none;padding:12px 0;transition:color 160ms ease}
@media(hover:hover) and (pointer:fine){.go:hover{background:#0f37d6}.go2:hover,.nav a:hover{color:var(--menthe)}}
.hdr{position:fixed;inset:0 0 auto;z-index:20;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:24px;height:calc(env(safe-area-inset-top,0px) + 76px);padding:env(safe-area-inset-top,0px) var(--gxr) 0 var(--gx);background:#fff;box-shadow:0 1px 0 var(--trait)}
.logo{display:block;justify-self:start;padding:6px 0}.logo svg{display:block;width:auto;overflow:visible}.logo .lf{height:50px}.logo .lm{display:none;height:28px}
.nav{display:flex;gap:32px;font:400 14px/1 var(--sans);color:#0e2341}
.nav a{position:relative;display:flex;align-items:center;height:44px;text-decoration:none}
.nav a::after{content:"";position:absolute;left:0;right:0;bottom:8px;height:1.5px;background:#1c49fd;transform:scaleX(0);transform-origin:left;transition:transform 200ms var(--ease)}
.nav a.cur::after{transform:scaleX(1)}
.hcta{justify-self:end;display:inline-flex;align-items:center;min-height:40px;padding:0 16px;border-radius:6px;background:#0e2341;color:#fff;font:500 14px/1 var(--sans);text-decoration:none;transition:transform 160ms var(--ease),background-color 160ms ease}
.hcta:active{transform:scale(.97)}
@media(hover:hover) and (pointer:fine){.nav a:hover::after{transform:scaleX(1)}.hcta:hover{background:#1c49fd}}
@media(max-width:760px){.hdr{grid-template-columns:1fr auto;height:calc(env(safe-area-inset-top,0px) + 60px)}.nav{display:none}.logo .lf{display:none}.logo .lm{display:block}}
/* Schéma */
.sch{fill:none;stroke:#0e2341;stroke-width:1.3;stroke-linejoin:round;stroke-linecap:round;color:#0e2341;overflow:visible}.sch *{vector-effect:non-scaling-stroke}#draw{display:block;width:100%;height:auto;overflow:visible;color:#0e2341;fill:none;stroke:currentColor;stroke-width:1.3;stroke-linejoin:round;stroke-linecap:round}
#draw *{vector-effect:non-scaling-stroke}
.sch .b{fill:url(#sh)}.sch .f{fill:#fff}
.sch .w{fill:url(#shw)}.sch .wf{fill:#eef3fb}.sch .wl{stroke:#426793;stroke-opacity:.75}
.sch .t{stroke-opacity:.55}.sch .t2{stroke-opacity:.26}
.sch .pcb{fill:#dfe7f3}
.sch .st{fill:url(#sh);stroke-opacity:.55}.sch .stf{fill:#fff}.sch .ins{fill:#f3f6fb}.sch .bx{fill:#eef2f8}.sch .bx2{fill:#dfe6f0}.sch .bx3{fill:#e7edf5}.sch .tp{fill:#1c49fd;stroke:none;fill-opacity:.85}.sch .lbw{fill:#fff}.sch .gr{fill:#1c49fd;stroke:none}.sch .g1{font:500 26px var(--sans);fill:#fff}.sch .g2{font-size:13px;fill:#dfe7ff}.sch .b1{font:500 25px var(--sans);fill:#0e2341}.sch .b2{font-size:13px;fill:#426793}.sch .bar{fill:#dbe3ee}.sch .cb0{stroke-width:9}.sch .cb1{stroke:#fff;stroke-width:6.6}
.sch .tb{fill:rgba(255,255,255,.42)}.sch .tbf{fill:none;stroke-opacity:.8}.sch .hl{stroke-opacity:.18;stroke-dasharray:none}
.sch .axis{stroke:#426793;stroke-opacity:.8;stroke-dasharray:22 5 3 5}
.sch .wr path{stroke:#426793;stroke-opacity:.5}
.sch .old{stroke:#426793;stroke-dasharray:5 4;fill:#e6ebf2}.sch .oldf{stroke:#426793;stroke-dasharray:5 4;fill:#f1f4f8}
.sch .new{stroke:#1c49fd;fill:url(#shn)}.sch .newf{stroke:#1c49fd;fill:#eef2ff}
#draw *{vector-effect:non-scaling-stroke}
#draw .b{fill:url(#sh)}#draw .f{fill:#fff}
#draw .w{fill:url(#shw)}#draw .wf{fill:#eef3fb}#draw .wl{stroke:#426793;stroke-opacity:.75}
#draw .t{stroke-opacity:.55}#draw .t2{stroke-opacity:.26}
#draw .pcb{fill:#dfe7f3}
#draw .st{fill:url(#sh);stroke-opacity:.55}#draw .stf{fill:#fff}#draw .ins{fill:#f3f6fb}#draw .bx{fill:#eef2f8}#draw .bx2{fill:#dfe6f0}#draw .bx3{fill:#e7edf5}#draw .tp{fill:#1c49fd;stroke:none;fill-opacity:.85}#draw .lbw{fill:#fff}#draw .gr{fill:#1c49fd;stroke:none}#draw .g1{font:500 26px var(--sans);fill:#fff}#draw .g2{font-size:13px;fill:#dfe7ff}#draw .b1{font:500 25px var(--sans);fill:#0e2341}#draw .b2{font-size:13px;fill:#426793}#draw .bar{fill:#dbe3ee}#draw .cb0{stroke-width:9}#draw .cb1{stroke:#fff;stroke-width:6.6}
#draw .tb{fill:rgba(255,255,255,.42)}#draw .tbf{fill:none;stroke-opacity:.8}#draw .hl{stroke-opacity:.18;stroke-dasharray:none}
#draw .axis{stroke:#426793;stroke-opacity:.8;stroke-dasharray:22 5 3 5}
#draw .wr path{stroke:#426793;stroke-opacity:.5}
#draw .old{stroke:#426793;stroke-dasharray:5 4;fill:#e6ebf2}#draw .oldf{stroke:#426793;stroke-dasharray:5 4;fill:#f1f4f8}
#draw .new{stroke:#1c49fd;fill:url(#shn)}#draw .newf{stroke:#1c49fd;fill:#eef2ff}
#capOld text{fill:#426793}#capNew text{fill:#1c49fd}#capNew .t{stroke:#1c49fd}#capOld .t{stroke:#426793}
#draw text{stroke:none;fill:currentColor;font-family:var(--mono)}
#draw .cp{font-size:17px;text-anchor:middle}
#draw .ld{stroke-opacity:.45}#draw .ldo{fill:#0e2341;stroke:none}
#draw .ln{font-size:13px;text-anchor:middle;fill:#426793}
#draw .lt{font-size:20px;font-family:var(--sans);text-anchor:middle;fill:#0e2341}
#scan{fill:#1c49fd;stroke:none;opacity:0}
#tag .ld2{stroke:#1c49fd}#tag .tg{font-size:18px;fill:#1c49fd;font-family:var(--sans)}#tag .tg2{font-size:12px;fill:#426793}
.contact{background:#0e2341;--blanc:#fff;--gris:#b9c8da;--onyx:#0e2341;--onyx2:#16325a;--trait:#2b4a70;color:#fff}
footer{background:#0e2341;color:#b9c8da;border-top:1px solid #2b4a70}
.go2{color:var(--blanc)}
@media(hover:hover) and (pointer:fine){.go2:hover,.nav a:hover{color:#1c49fd}}
/* Base lisible sans animation */
.stage{padding:96px var(--gxr) 40px var(--gx)}
.hero h1{font-size:clamp(46px,7.2vw,112px);max-width:12ch;margin-top:14px}
.hero .side{display:grid;gap:20px;max-width:380px;margin-top:22px;color:var(--gris)}
.cta{display:flex;align-items:center;flex-wrap:wrap;gap:20px}
.draww{margin:48px 0}
.step{margin-top:36px;max-width:560px}.step .mono{color:var(--menthe)}
.step h2{font-size:clamp(30px,3.6vw,54px);margin:10px 0}.step p{color:var(--gris);max-width:44ch}
.bench,.rail{display:none}
.stage{--bw:clamp(270px,28vw,380px)}
.nb .bench{display:none!important}
/* Scène animée */
.anim #story{height:1250vh}
.anim .stage{position:sticky;top:0;height:100vh;height:100svh;padding:0;overflow:hidden}
.anim .draww{position:absolute;left:0;top:0;margin:0;width:var(--dw);transform-origin:0 0;will-change:transform}
.anim .hero{position:absolute}
.anim .hero h1{margin-top:12px}.anim .hero .side{margin:0}
.anim .step{position:absolute;left:var(--gx);bottom:76px;margin:0;width:min(600px,calc(100vw - 48px - var(--bw) - 40px));opacity:0;visibility:hidden;z-index:3}
.anim .bench{display:block;position:absolute;right:var(--gxr);bottom:76px;width:var(--bw);padding:14px 16px;background:var(--onyx2);border:1px solid var(--trait);border-radius:6px;opacity:0;visibility:hidden;z-index:3;font:400 12px/1.5 var(--mono)}
.bench .h{display:flex;justify-content:space-between;color:var(--gris);margin-bottom:8px}
.bench li{display:flex;justify-content:space-between;gap:16px;padding:6px 0;border-top:1px solid var(--trait);opacity:.28;transition:opacity 180ms ease}.bench li.on{opacity:1}
.bench b{font-weight:500}.bench .w{color:var(--ambre)}.bench .g{color:var(--menthe)}
.bench svg{display:block;width:100%;height:42px;margin-bottom:6px}
.anim .rail{display:grid;grid-template-columns:repeat(5,1fr);gap:6px;position:absolute;left:var(--gx);right:var(--gxr);bottom:20px;z-index:3;transition:opacity 200ms ease}
.rail li{font:400 11px/1.4 var(--mono);letter-spacing:.05em;color:var(--use);transition:color 180ms ease}.rail li.on{color:var(--blanc)}
.rail i{display:block;height:2px;background:var(--trait);margin-bottom:8px;overflow:hidden}
.rail b{display:block;height:100%;background:var(--menthe);transform:scaleX(0);transform-origin:left}
@media(max-width:760px){.rail span{display:none}.rail i{margin:0}.anim .step{bottom:44px;width:calc(100vw - 48px)}.anim .step p{font-size:15.5px}.anim .bench{top:var(--bt);bottom:auto;left:var(--gx);right:var(--gxr);width:auto;font-size:10.5px;padding:10px 12px}.bench li{padding:4px 0}.bench svg{height:28px}.anim .hero{bottom:28px}}
/* Sections */
section.s{scroll-margin-top:76px;padding-block:clamp(72px,10vw,136px);border-top:1px solid var(--trait)}
section.s h2{font-size:clamp(36px,4.8vw,72px);margin:14px 0 20px}
.two{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(32px,7vw,96px);align-items:center}
.lead{color:var(--gris);max-width:46ch}
.stat{margin-top:32px;padding-top:18px;border-top:1px solid var(--trait)}
.stat strong{display:block;font-weight:300;font-size:clamp(48px,5.4vw,76px);letter-spacing:-.04em;line-height:1.05;font-variant-numeric:tabular-nums}
.stat small{font-size:14px;color:var(--gris)}
#cz{display:block;width:100%;height:auto}
#cz text{font:400 21px var(--sans);fill:var(--blanc)}#cz .sm{fill:var(--gris);font:400 16px var(--mono)}
.who{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--trait);border-top:1px solid var(--trait)}
.who article{background:var(--onyx);padding-block:clamp(56px,7vw,96px);padding-left:clamp(24px,5vw,72px);padding-right:clamp(24px,5vw,72px);display:flex;flex-direction:column;gap:22px;min-width:0;scroll-margin-top:60px}
.who h2{font-size:clamp(32px,3.6vw,52px)}
.who li{padding:14px 0;border-top:1px solid var(--trait);color:var(--gris)}.who li strong{display:block;color:var(--blanc);font-weight:500}
.who .go{align-self:flex-start;margin-top:auto}
.sheet{border:1px solid var(--trait);border-radius:6px;padding:22px;background:var(--onyx2);font:400 12.5px/1.5 var(--mono);min-width:0}
.sheet header{display:flex;justify-content:space-between;gap:16px;padding-bottom:14px;border-bottom:1px solid var(--trait);color:var(--gris)}
.sheet header strong{display:block;font:400 22px/1.2 var(--sans);letter-spacing:-.02em;color:var(--blanc);margin-bottom:6px}
.sheet .r{display:flex;justify-content:space-between;gap:16px;padding:10px 0;border-bottom:1px solid var(--trait)}.sheet .r span:first-child{color:var(--gris)}.sheet .r span:last-child{text-align:right}.sheet .ok{color:var(--menthe)}
.sheet p{margin-top:12px;color:var(--use);font-size:11px}
.contact form{display:grid;gap:16px;min-width:0}
.seg{display:grid;grid-template-columns:1fr 1fr;gap:3px;border:1px solid var(--trait);border-radius:999px;padding:3px;margin:0}
.seg legend{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}.seg input{position:absolute;opacity:0}
.seg label{display:flex;align-items:center;justify-content:center;min-height:42px;border-radius:999px;font-size:14px;text-align:center;color:var(--gris);cursor:pointer;transition:background-color 160ms ease,color 160ms ease}
.seg input:checked+label{background:var(--blanc);color:var(--onyx)}.seg input:focus-visible+label{outline:2px solid var(--menthe);outline-offset:2px}
.f{display:grid;gap:6px}.f label{font-size:14px;color:var(--gris)}.f input{min-height:48px;width:100%;padding:0 14px;background:var(--onyx2);color:var(--blanc);border:1px solid var(--trait);border-radius:6px;font:400 16px var(--sans)}
.contact .go{justify-self:start}.note{min-height:1.5em;font-size:14px;color:var(--gris)}
footer{border-top:1px solid var(--trait);padding-block:24px;color:var(--use);font-size:13.5px}footer .wrap{display:flex;flex-wrap:wrap;justify-content:space-between;gap:10px 28px}
@media(max-width:860px){.two,.who{grid-template-columns:1fr}}
.mats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1px;background:var(--trait);border:1px solid var(--trait);margin-top:40px}
.mats li{background:#fff;padding:24px;display:flex;flex-direction:column;gap:6px;min-width:0}
.mats svg{display:block;width:100%;height:130px;margin-bottom:14px}
.mats h3{margin:0;font-weight:400;font-size:22px;letter-spacing:-.02em}.mats p{color:var(--gris);font-size:15px}
@media(max-width:860px){.mats{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:480px){.mats li{padding:16px}.mats svg{height:90px}}
.eng .eg{align-items:end;margin-top:14px}
.eng h2{font-size:clamp(38px,5.4vw,80px)!important;margin:0!important}
.egl{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(24px,4vw,56px);margin-top:56px;padding-top:28px;border-top:1px solid var(--trait)}
.egl h3,.egc h3{margin:0 0 8px;font-weight:400;font-size:22px;letter-spacing:-.02em}.egl p{color:var(--gris);font-size:16px}
.egc{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:20px 40px;margin-top:48px;padding:clamp(24px,3vw,36px);background:#0e2341;color:#fff;border-radius:6px}
.egc>div{max-width:62ch;min-width:0}.egc p{color:#b9c8da;font-size:16px}
@media(max-width:860px){.egl{grid-template-columns:1fr}}
.road{border-top:1px solid var(--trait);padding-block:clamp(40px,5vw,64px)}
.road .wrap{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:24px clamp(32px,7vw,96px)}
.rw h2{font-size:clamp(26px,3vw,42px);margin-top:10px}.rw .nx{color:var(--gris)}.road .ok{color:#1c49fd}
@media(max-width:860px){.road .wrap{grid-template-columns:1fr}}
.intro{display:none}
.anim .intro{display:flex;position:absolute;inset:0;z-index:6;background:rgba(14,35,65,.84);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);color:#fff;align-items:center;opacity:0;will-change:opacity;padding:76px var(--gxr) 0 var(--gx)}
.intro .in{width:100%;max-width:1280px;margin-inline:auto}
.intro .mono{color:#9db2ff}.intro h2{font-size:clamp(38px,6.2vw,96px);margin:14px 0 clamp(28px,5vh,56px);max-width:15ch}
.il{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;border-top:1px solid rgba(255,255,255,.28);padding-top:14px;font-size:clamp(14px,1.3vw,18px)}
.il li{opacity:.3;transition:opacity 240ms ease}.il li.on{opacity:1}
.il span{display:block;font:400 12px var(--mono);color:#9db2ff;margin-bottom:6px}
.intro .sc{margin-top:clamp(24px,5vh,48px);color:#c9d6e6;font-size:15px}
@media(max-width:760px){.il{grid-template-columns:1fr;gap:6px;padding-top:10px}.il li{display:flex;gap:12px;align-items:baseline}.il span{margin:0}}
.hv svg{display:block;width:100%;height:100%;overflow:visible}
.hero .sub{color:var(--gris);max-width:40ch;margin:22px 0 26px;font-size:clamp(17px,1.35vw,19px)}
.anim .hero{top:76px;left:0;right:0;bottom:0;background:#fff;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:center;gap:clamp(24px,4vw,64px);padding:0 var(--gxr) 0 max(var(--gx),calc((100vw - 1280px)/2));z-index:5}
.anim .hero .ht{min-width:0}.anim .hero h1{font-size:clamp(46px,6.4vw,104px);max-width:9ch}
.anim .hv{min-width:0;height:min(100%,calc(100svh - 110px));padding-block:18px;margin:0}
.hv #hApron{animation:hUp 2.2s cubic-bezier(.77,0,.175,1) .4s both}
@keyframes hUp{from{transform:translateY(0)}to{transform:translateY(-250px)}}
@media(prefers-reduced-motion:reduce){.hv #hApron{animation:none;transform:translateY(-250px)}}
#hs .t{stroke-opacity:.5}#hs .t2{stroke-opacity:.2}
@media(max-width:760px){.anim .hero{top:60px;grid-template-columns:1fr;grid-template-rows:minmax(0,1fr) auto;gap:8px;padding:0 var(--gxr) 28px var(--gx)}.anim .hv{grid-row:1;height:100%;padding-block:8px}.anim .hero .ht{grid-row:2}.anim .hero h1{font-size:40px;max-width:none}.hero .sub{margin:12px 0 16px;font-size:16px}}
@media(max-height:640px) and (min-width:761px){.anim .hero h1{font-size:52px}}
.fr{display:flex;width:84px;height:3px;margin-top:22px;border-radius:2px;overflow:hidden;box-shadow:0 0 0 .5px var(--trait)}
.fr i{flex:1}.fr i:nth-child(1){background:#0055a4}.fr i:nth-child(2){background:#fff}.fr i:nth-child(3){background:#ef4135}
.anim .bench{background:#0e2341;border-color:#0e2341;color:#fff}.bench .h{color:#b9c8da}.bench li{border-top-color:#2b4a70}.bench .w{color:#b9c8da}.bench .g{color:#9db2ff}.anim #wave{stroke:#9db2ff}

body{margin:0}img{max-width:100%}[hidden]{display:none!important}
.admin-bar .hdr{top:32px}.admin-bar #story .stage{top:32px;height:calc(100svh - 32px)}
@media(max-width:782px){.admin-bar .hdr{top:46px}.admin-bar #story .stage{top:46px;height:calc(100svh - 46px)}}
.legal{max-width:760px;margin-inline:auto;padding:calc(76px + 64px) var(--gxr) 96px var(--gx)}
.legal h1{font-size:clamp(38px,5vw,64px);margin-bottom:12px}.legal h2{font-size:24px;font-weight:400;letter-spacing:-.02em;margin:40px 0 10px;line-height:1.2}
.legal p{margin:0 0 10px;color:#2d4465}.legal dl{display:grid;grid-template-columns:minmax(0,220px) minmax(0,1fr);gap:8px 20px;margin:0}.legal dt{color:var(--gris)}.legal dd{margin:0}
@media(max-width:600px){.legal dl{grid-template-columns:1fr}.legal dd{margin-bottom:8px}}
footer a{color:inherit}
