/* DM Timing — production */
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:#fff;color:#0C2A4E;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI','IBM Plex Sans',sans-serif;-webkit-font-smoothing:antialiased}
img{display:block}
a{color:#1E6FC2;text-decoration:none}
a:hover{color:#0C2A4E;text-decoration:underline}
a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,button:focus-visible{outline:2px solid #1E6FC2;outline-offset:2px}
.mono{font-family:'IBM Plex Mono',monospace}
.overline{font-family:'IBM Plex Mono',monospace;font-size:12px;letter-spacing:.24em;color:#1E6FC2}
.overline.cyan{color:#3FA9E8}
.container{max-width:1200px;margin:0 auto;padding-left:clamp(20px,5vw,64px);padding-right:clamp(20px,5vw,64px)}
@keyframes pulse{0%,100%{opacity:1}50%{opacity:.3}}
@keyframes fadeIn{from{opacity:0}}
@keyframes riseIn{from{opacity:0;transform:translateY(26px)}}
/* reveals (gated on body.js so no-JS shows everything) */
body.js [data-reveal]{transition:opacity .8s cubic-bezier(.2,.8,.2,1),transform .8s cubic-bezier(.2,.8,.2,1)}
body.js [data-reveal]:not(.rv-in){opacity:0;transform:translateY(24px)}
.rv-in{opacity:1;transform:none}
/* pin / no-pin variants */
.pin-only{display:none}
body.pin .pin-only{display:block}
body.pin .nopin-only{display:none}
/* nav */
.navwrap{position:sticky;top:16px;z-index:50;padding:0 16px}
#topnav{display:flex;align-items:center;justify-content:space-between;gap:32px;padding:13px 30px;width:min(100%,1240px);margin:0 auto;border-radius:26px;background:rgba(255,255,255,.9);backdrop-filter:blur(10px) saturate(1.2);-webkit-backdrop-filter:blur(10px) saturate(1.2);border:1px solid rgba(255,255,255,.6);box-shadow:0 6px 24px rgba(12,42,78,.06);transition:background .4s,border-color .4s,box-shadow .4s}
#topnav.nav-solid{background:rgba(255,255,255,.96);border-color:rgba(12,42,78,.05);box-shadow:0 10px 32px rgba(12,42,78,.09)}
#topnav .links{display:flex;gap:28px;align-items:center;font-size:14px;font-weight:500;flex-wrap:nowrap}
#topnav .links a{color:#0C2A4E;white-space:nowrap}
#topnav .links a.btn-nav{color:#fff}
#topnav .links a.btn-nav:hover{color:#fff}
#topnav img{height:44px;width:auto;object-fit:contain}
#nav-links{display:flex;gap:28px;align-items:center}
@media (max-width:1080px){#nav-links{display:none}}
.btn{display:inline-block;white-space:nowrap;font-weight:600;border-radius:980px;text-decoration:none;cursor:pointer;transition:background .15s,transform .15s,color .15s;border:none;font-family:inherit}
.btn:hover{text-decoration:none;transform:translateY(-1px)}
.btn-nav{background:#0C2A4E;color:#fff;padding:12px 24px;font-size:13.5px}
.btn-nav:hover{background:#1E6FC2;color:#fff}
.btn-cyan{background:#3FA9E8;color:#081D36;padding:16px 36px;font-size:16px}
.btn-cyan:hover{background:#fff;color:#081D36}
.btn-dark{background:#0C2A4E;color:#fff;padding:17px 44px;font-size:16px}
.btn-dark:hover{background:#1E6FC2;color:#fff}
/* image slots */
.imgbox{position:absolute;inset:0;background:linear-gradient(160deg,#0C2A4E,#081D36);overflow:hidden}
.imgbox img{width:100%;height:100%;object-fit:cover}
#hero-img img{object-position:66% 45%}
@media (max-width:820px){#hero-img img{object-position:60% 45%}}
#jourj .bg img,#jourj-m .bg img{object-position:center 58%}
.ev img{object-position:center 30%}
.ev.w2 img{object-position:center 55%}
.ev.w3 img{object-position:center 45%}
#cta .bg img{object-position:center 26%}
#technologie .photo img{object-position:center center}
.imgbox.light{background:linear-gradient(160deg,#DCE8F4,#C6D8EA)}
/* hero */
#hero{position:relative;height:max(100vh,640px);background:#081D36;margin-top:-86px;overflow:hidden}
#hero-img{position:absolute;inset:0;animation:fadeIn 1.8s both}
#hero .veil{position:absolute;inset:0;background:linear-gradient(180deg,rgba(8,29,54,.3) 0%,rgba(8,29,54,.1) 40%,rgba(8,29,54,.85) 100%);pointer-events:none}
#hero-copy{position:absolute;left:clamp(20px,5vw,72px);right:clamp(20px,5vw,72px);bottom:96px;max-width:calc(100% - 144px - 300px);pointer-events:none}
#hero-copy .ol{margin-bottom:20px;animation:riseIn .8s .6s both}
#hero-copy h1{font-family:'Barlow Condensed',sans-serif;font-style:italic;font-weight:700;font-size:clamp(48px,6.8vw,100px);line-height:.95;color:#fff;margin:0 0 26px;text-transform:uppercase}
#hero-copy h1 span{display:block}
#hero-copy h1 .l1{animation:riseIn .8s .9s both}
#hero-copy h1 .l2{animation:riseIn .8s 1.15s both}
#hero-copy h1 .l3{color:#3FA9E8;animation:riseIn .8s 1.45s both}
#hero-copy p{font-size:19px;color:#E3EDF6;max-width:520px;margin:0 0 36px;line-height:1.6;animation:riseIn .8s 2.4s both}
#hero-copy .ctas{display:flex;gap:16px;align-items:center;flex-wrap:wrap;pointer-events:auto;animation:riseIn .8s 2.65s both}
#hero-copy .ghost{color:#fff;padding:16px 10px;font-weight:500;font-size:16px}
#hero-copy .ghost:hover{color:#3FA9E8;text-decoration:none}
#chrono-chip{position:absolute;right:clamp(20px,5vw,72px);bottom:96px;text-align:right;pointer-events:none;animation:fadeIn 1s 1.9s both}
#chrono-chip .bar{width:100%;height:1px;background:linear-gradient(90deg,transparent,rgba(63,169,232,.7));margin-bottom:12px}
#chrono-chip .lbl{display:flex;align-items:center;justify-content:flex-end;gap:8px;font-family:'IBM Plex Mono',monospace;font-size:10.5px;letter-spacing:.22em;color:rgba(159,212,245,.85)}
#chrono-chip .dot{width:5px;height:5px;border-radius:50%;background:#3FA9E8;animation:pulse 1.6s infinite}
#chrono-chip .val{font-family:'IBM Plex Mono',monospace;font-size:28px;font-weight:500;color:rgba(255,255,255,.92);font-variant-numeric:tabular-nums;margin-top:6px;white-space:nowrap}
@media (max-width:820px){#chrono-chip{display:none}#hero-copy{max-width:100%}}
@media (max-height:760px){#hero-copy h1{font-size:clamp(38px,5.5vw,64px)}#hero-copy{bottom:56px}#chrono-chip{bottom:56px}}
/* complexité pinned */
#complexite{height:210vh;position:relative}
#complexite .stage{position:sticky;top:0;height:100vh;min-height:620px;display:flex;align-items:center;justify-content:center;overflow:hidden;background:linear-gradient(180deg,#fff,#F7FAFD)}
#complexite .scene{position:relative;width:min(1000px,94vw);height:520px;display:flex;align-items:center;justify-content:center;text-align:center}
#cx-e0{position:absolute;left:0;right:0;font-size:clamp(56px,8vw,124px);font-weight:700;letter-spacing:-.03em;line-height:1}
#cx-sub{position:absolute;top:24px;left:0;right:0;font-size:clamp(19px,2.2vw,26px);font-weight:600;letter-spacing:-.01em;color:#43536B;opacity:0}
#cx-line{position:absolute;left:12%;right:12%;top:50%;height:2px;background:linear-gradient(90deg,rgba(63,169,232,.1),#3FA9E8,rgba(63,169,232,.1));transform:scaleX(0);opacity:0}
.cx-w{position:absolute;left:50%;top:50%;font-family:'IBM Plex Mono',monospace;font-size:clamp(15px,2vw,22px);letter-spacing:.1em;color:#43536B;white-space:nowrap;opacity:0}
.cx-p{position:absolute;left:0;right:0;font-size:clamp(44px,6vw,84px);font-weight:700;letter-spacing:-.03em;line-height:1.05;opacity:0}
#cx-p3{position:absolute;left:0;right:0;opacity:0}
#cx-p3 img{height:clamp(52px,7vw,84px);width:auto;margin:0 auto}
#cx-p3 div{font-size:clamp(18px,2.1vw,23px);color:#43536B;margin-top:28px;font-weight:500}
/* complexité mobile */
#complexite-m{padding:150px clamp(20px,5vw,64px);text-align:center;background:linear-gradient(180deg,#fff,#F7FAFD)}
#complexite-m .big{font-size:clamp(48px,11vw,92px);font-weight:700;letter-spacing:-.03em;line-height:1;margin:0}
#complexite-m .sub{font-size:clamp(18px,4.5vw,24px);font-weight:600;color:#43536B;margin:28px 0 0}
#complexite-m .words{display:flex;justify-content:center;gap:12px 24px;flex-wrap:wrap;font-family:'IBM Plex Mono',monospace;font-size:15px;letter-spacing:.1em;color:#5B6B7C;max-width:640px;margin:48px auto 0}
#complexite-m .chain{font-size:clamp(34px,8vw,56px);font-weight:700;letter-spacing:-.03em;line-height:1.1;margin:90px auto 0;max-width:560px}
#complexite-m .logo{margin-top:56px}
#complexite-m .logo img{height:52px;width:auto;margin:0 auto}
#complexite-m .logo div{font-size:17.5px;color:#43536B;margin-top:20px;font-weight:500}
/* à propos */
#apropos{padding:170px clamp(20px,5vw,64px) 150px;text-align:center;background:#F7FAFD}
#apropos .phrase{font-size:clamp(34px,4.4vw,58px);line-height:1.12;max-width:820px;margin:0 auto;font-weight:700;letter-spacing:-.03em}
#apropos .phrase span{color:#1E6FC2}
#apropos .vals{display:flex;justify-content:center;gap:clamp(40px,7vw,110px);margin-top:110px;flex-wrap:wrap}
#apropos .val{text-align:center;max-width:220px}
#apropos .val .tick{width:26px;height:2px;background:#3FA9E8;margin:0 auto 20px}
#apropos .val h3{font-size:21px;font-weight:700;margin:0;letter-spacing:-.015em}
#apropos .val p{font-size:15px;color:#5B6B7C;margin:10px 0 0;line-height:1.6}
/* services pinned */
#services{height:300vh;position:relative;background:linear-gradient(180deg,#F7FAFD,#EFF5FB)}
#services .stage{position:sticky;top:0;height:100vh;min-height:660px;display:flex;align-items:center;overflow:hidden}
#sv-scene{max-width:1180px;margin:0 auto;padding:60px clamp(20px,5vw,72px);width:100%;position:relative}
#sv-scene .grid{display:grid;grid-template-columns:1.3fr 1fr;gap:clamp(40px,6vw,100px);align-items:center;margin-top:24px}
#sv-num{position:absolute;top:-30px;left:-14px;font-size:clamp(140px,16vw,220px);font-weight:700;letter-spacing:-.04em;color:rgba(30,111,194,.07);line-height:1;pointer-events:none}
#sv-left{position:relative;min-height:380px;display:flex;flex-direction:column;justify-content:center}
#sv-title{font-size:clamp(46px,6vw,86px);font-weight:700;letter-spacing:-.03em;line-height:1.02}
#sv-desc{font-size:clamp(18px,2vw,23px);line-height:1.55;color:#5B6B7C;margin-top:26px;max-width:460px}
#sv-iconwrap{display:flex;align-items:center;justify-content:center}
#sv-iconwrap svg{width:clamp(150px,16vw,220px);height:clamp(150px,16vw,220px);opacity:.55}
#sv-rail{position:absolute;left:clamp(20px,5vw,72px);right:clamp(20px,5vw,72px);bottom:-40px;height:2px;background:rgba(30,111,194,.12);border-radius:2px;overflow:hidden}
#sv-railfill{height:100%;background:linear-gradient(90deg,#3FA9E8,#1E6FC2);width:0}
#sv-final{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;text-align:center;opacity:0;pointer-events:none;font-size:clamp(38px,5.4vw,78px);font-weight:700;letter-spacing:-.03em;line-height:1.1;padding:0 clamp(20px,5vw,64px)}
#sv-final span,#services-m .final span{color:#1E6FC2}
/* services mobile */
#services-m{background:linear-gradient(180deg,#F7FAFD,#EFF5FB);padding:130px clamp(20px,5vw,64px)}
#services-m .inner{max-width:720px;margin:0 auto}
#services-m h2{font-size:clamp(34px,8vw,52px);letter-spacing:-.03em;margin:0;font-weight:700;line-height:1.08}
#services-m .list{display:flex;flex-direction:column;gap:72px;margin-top:80px}
#services-m .count{font-family:'IBM Plex Mono',monospace;font-size:13px;letter-spacing:.16em;color:#8AA2BC}
#services-m .item h3{font-size:clamp(32px,7.5vw,46px);font-weight:700;margin:10px 0 0;letter-spacing:-.025em;line-height:1.05}
#services-m .item p{font-size:16.5px;line-height:1.6;color:#5B6B7C;margin:12px 0 0;max-width:480px}
#services-m .final{text-align:center;margin:110px auto 0;font-size:clamp(30px,7vw,44px);font-weight:700;letter-spacing:-.03em;line-height:1.12;max-width:520px}
/* approche */
#approche{background:linear-gradient(180deg,#EFF5FB,#fff 30%,#fff);padding:170px clamp(20px,5vw,64px) 150px}
#approche .inner{max-width:880px;margin:0 auto}
#approche .head{text-align:center;margin-bottom:100px}
#approche .sig{width:2px;height:64px;background:linear-gradient(180deg,rgba(63,169,232,0),#3FA9E8);margin:0 auto 32px}
#approche h2{font-size:clamp(36px,5vw,64px);letter-spacing:-.03em;margin:0;font-weight:700;line-height:1.08}
#approche .lead{font-size:16.5px;color:#5B6B7C;margin:18px auto 0;max-width:520px;line-height:1.65}
.tl{display:flex;flex-direction:column;position:relative}
.tl-track{position:absolute;left:27px;top:28px;bottom:28px;width:2px;background:#E8F0F8;border-radius:2px;overflow:hidden}
#tl-fill{width:100%;background:linear-gradient(180deg,#3FA9E8,#1E6FC2);border-radius:2px;height:0}
.tl-step{display:flex;gap:36px;align-items:flex-start;padding:30px 0;position:relative}
.tl-step .n{width:56px;height:56px;border-radius:50%;background:#fff;box-shadow:0 2px 12px rgba(12,42,78,.08);color:#1E6FC2;font-family:'IBM Plex Mono',monospace;font-size:15px;font-weight:600;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:background .4s,color .4s,box-shadow .4s}
.tl-step .tx{padding-top:6px;opacity:.5;transition:opacity .4s}
.tl-step.on .n{background:#1E6FC2;color:#fff;box-shadow:0 6px 20px rgba(30,111,194,.35)}
.tl-step.on .tx{opacity:1}
.tl-step h3{font-size:clamp(22px,2.6vw,28px);font-weight:700;margin:0;letter-spacing:-.02em}
.tl-step p{font-size:15.5px;color:#5B6B7C;margin:8px 0 0;line-height:1.6;max-width:580px}
.bridge-down{height:220px;background:linear-gradient(180deg,#fff,#0A1626)}
.bridge-up{height:220px;background:linear-gradient(180deg,#0A1626,#fff)}
/* jour J pinned */
#jourj{height:340vh;position:relative;background:#0A1626}
#jourj .stage{position:sticky;top:0;height:100vh;min-height:680px;overflow:hidden}
#jourj .bg{position:absolute;inset:0;opacity:.3}
#jourj .veil{position:absolute;inset:0;background:linear-gradient(180deg,rgba(10,22,38,.94),rgba(10,22,38,.7) 50%,rgba(10,22,38,.94));pointer-events:none}
#jj-intro{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;text-align:center}
#jj-intro .big{font-size:clamp(60px,9vw,132px);font-weight:700;letter-spacing:-.03em;color:#fff;line-height:1}
#jj-intro .ol{margin-bottom:26px;font-size:13px;letter-spacing:.26em}
#jj-scene{position:relative;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:0 clamp(20px,5vw,64px);pointer-events:none;opacity:0}
.jj-track{position:relative;width:min(940px,88vw);height:210px}
.jj-base{position:absolute;left:0;right:0;top:110px;height:1px;background:rgba(63,169,232,.16)}
#jj-linefill{position:absolute;left:0;top:110px;height:1px;background:linear-gradient(90deg,#1E6FC2,#3FA9E8);width:4%}
.jj-mat{position:absolute;top:98px;width:26px;height:26px;margin-left:-13px;border-radius:50%;border:1.5px solid rgba(63,169,232,.3)}
#jj-mat1{left:30%}#jj-mat2{left:84%}
.jj-ring{position:absolute;inset:-2px;border-radius:50%;border:1.5px solid #3FA9E8;opacity:0}
#jj-runner{position:absolute;top:104px;left:4%;width:14px;height:14px;margin-left:-7px;border-radius:50%;background:#3FA9E8;box-shadow:0 0 0 6px rgba(63,169,232,.18),0 0 26px rgba(63,169,232,.6);opacity:0}
#jj-timewrap{position:absolute;left:4%;top:36px;transform:translateX(-50%);text-align:center;opacity:0}
#jj-timewrap .lbl{font-family:'IBM Plex Mono',monospace;font-size:11px;letter-spacing:.18em;color:rgba(159,212,245,.8)}
#jj-timewrap .val{font-family:'IBM Plex Mono',monospace;font-size:28px;font-weight:500;color:#fff;font-variant-numeric:tabular-nums;white-space:nowrap}
.jj-steps{position:absolute;left:0;right:0;top:164px;display:flex;justify-content:space-between}
.jj-step{text-align:center;opacity:.3;width:120px}
.jj-step .n{font-family:'IBM Plex Mono',monospace;font-size:10.5px;letter-spacing:.2em;color:rgba(159,212,245,.6)}
.jj-step .t{font-size:15px;font-weight:600;color:#fff;margin-top:6px}
.jj-out{height:120px;margin-top:32px;position:relative;width:min(560px,86vw)}
#jj-row{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;opacity:0}
#jj-row .card{background:rgba(13,31,58,.85);border:1px solid rgba(63,169,232,.25);border-radius:16px;padding:18px 28px;display:flex;align-items:center;gap:20px;width:100%}
#jj-row .r{font-family:'IBM Plex Mono',monospace;font-size:16px;font-weight:600;color:#3FA9E8;opacity:0}
#jj-row .nm{font-size:15.5px;color:#fff;flex:1;font-weight:500;opacity:0}
#jj-row .nm small{font-family:'IBM Plex Mono',monospace;font-size:12px;color:#5F7FA0}
#jj-row .tm{font-family:'IBM Plex Mono',monospace;font-size:16px;color:#D7E4F0;opacity:0}
#jj-msg{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;text-align:center;opacity:0;font-size:clamp(19px,2.4vw,28px);font-weight:700;letter-spacing:-.015em;color:#fff;line-height:1.5}
#jj-msg span,#jourj-m .msg span{color:#3FA9E8}
/* jour J mobile */
#jourj-m{position:relative;background:#0A1626;padding:140px clamp(20px,5vw,64px);overflow:hidden}
#jourj-m .bg{position:absolute;inset:0;opacity:.35}
#jourj-m .veil{position:absolute;inset:0;background:linear-gradient(180deg,rgba(10,22,38,.92),rgba(10,22,38,.65) 50%,rgba(10,22,38,.92));pointer-events:none}
#jourj-m .inner{position:relative;max-width:640px;margin:0 auto}
#jourj-m h2{font-size:clamp(52px,12vw,84px);font-weight:700;letter-spacing:-.03em;color:#fff;margin:0;line-height:1;text-align:center}
#jourj-m .head{text-align:center;margin-bottom:90px}
#jourj-m .head .ol{margin-bottom:20px;font-size:12px;letter-spacing:.26em}
.jjm{display:flex;flex-direction:column;position:relative;padding-left:32px}
.jjm-track{position:absolute;left:5px;top:10px;bottom:10px;width:1.5px;background:#12325A;border-radius:2px;overflow:hidden}
#jjm-fill{width:100%;background:linear-gradient(180deg,#3FA9E8,#1E6FC2);height:0}
.jjm-step{position:relative;padding:20px 0;opacity:.3;transition:opacity .3s}
.jjm-step.on{opacity:1}
.jjm-step .dot{position:absolute;left:-32px;top:26px;width:11px;height:11px;border-radius:50%;background:#3FA9E8;box-shadow:0 0 0 5px rgba(63,169,232,.16)}
.jjm-step .n{font-family:'IBM Plex Mono',monospace;font-size:10.5px;letter-spacing:.2em;color:rgba(159,212,245,.6)}
.jjm-step h3{font-size:20px;font-weight:700;color:#fff;margin:5px 0 0}
.jjm-step p{font-size:14.5px;color:#A8BDD3;margin:5px 0 0;line-height:1.55}
#jourj-m .msg{text-align:center;margin-top:80px;font-size:clamp(20px,5vw,26px);font-weight:700;letter-spacing:-.015em;color:#fff;line-height:1.5}
/* technologie */
#technologie{background:#0A1626;padding:150px clamp(20px,5vw,64px)}
#technologie .grid{max-width:1200px;margin:0 auto;display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:clamp(40px,5vw,90px);align-items:center}
#technologie .photo{height:min(680px,80vh);min-height:440px;border-radius:32px;overflow:hidden;position:relative}
#technologie .photo .tint{position:absolute;inset:0;background:rgba(10,22,38,.2);pointer-events:none}
#technologie h2{font-size:clamp(34px,4.4vw,56px);letter-spacing:-.03em;color:#fff;margin:0 0 22px;font-weight:700;line-height:1.05}
#technologie .lead{font-size:17px;line-height:1.65;color:#8AA2BC;margin:0 0 64px;max-width:400px}
.tc{display:flex;flex-direction:column;position:relative;padding-left:30px}
.tc-track{position:absolute;left:5px;top:12px;bottom:12px;width:1.5px;background:rgba(63,169,232,.15);border-radius:2px;overflow:hidden}
#tc-fill{width:100%;background:linear-gradient(180deg,#3FA9E8,#1E6FC2);height:0}
#tc-dot{position:absolute;left:0;width:11px;height:11px;border-radius:50%;background:#3FA9E8;box-shadow:0 0 16px rgba(63,169,232,.8);top:12px;opacity:0}
.tc-step{padding:22px 0;opacity:.3;position:relative}
.tc-step.on{opacity:1}
.tc-step .dot{position:absolute;left:-30px;top:31px;width:11px;height:11px;border-radius:50%;background:#3FA9E8;box-shadow:0 0 0 4px rgba(63,169,232,.12)}
.tc-step .lb{font-family:'IBM Plex Mono',monospace;font-size:13px;letter-spacing:.24em;color:#3FA9E8}
.tc-step p{font-size:15px;color:#8AA2BC;margin:6px 0 0;line-height:1.55;max-width:380px}
#technologie .punch{font-size:clamp(20px,2.4vw,27px);font-weight:700;color:#fff;margin:64px 0 0;line-height:1.45;letter-spacing:-.015em}
#technologie .punch span{color:#3FA9E8}
/* live results */
#resultats{position:relative;background:#0A1626}
body.pin #resultats{height:200vh}
#lr-stage{display:flex;align-items:center;overflow:hidden;padding:100px 0}
body.pin #lr-stage{position:sticky;top:0;height:100vh;min-height:700px}
@media (max-height:820px){#lr-stage{padding:48px 0}#lr-inner .head{margin-bottom:32px}#lr-inner h2{font-size:clamp(26px,3.4vw,38px)}#lr-final{margin-top:32px}body.pin #lr-stage{min-height:640px}}
@media (max-height:700px){body.pin #resultats{height:auto !important}body.pin #lr-stage{position:static;height:auto;min-height:0;padding:80px 0}}
#lr-inner{max-width:860px;margin:0 auto;padding:0 clamp(20px,5vw,64px);width:100%;position:relative}
#lr-inner .head{text-align:center;margin-bottom:56px}
#lr-inner h2{font-size:clamp(30px,4vw,50px);letter-spacing:-.03em;color:#fff;margin:0;font-weight:700;line-height:1.1}
#lr-panel{background:linear-gradient(180deg,#0F2440,#0A1830);border-radius:32px;overflow:hidden;box-shadow:0 60px 130px rgba(0,0,0,.5),0 0 0 1px rgba(63,169,232,.18)}
#lr-panel .bar{display:flex;align-items:center;justify-content:space-between;padding:20px 32px;border-bottom:1px solid rgba(63,169,232,.12);gap:12px;flex-wrap:wrap}
#lr-panel .race{font-family:'IBM Plex Mono',monospace;font-size:12px;letter-spacing:.18em;color:#8AA2BC}
#lr-panel .demo{font-family:'IBM Plex Mono',monospace;font-size:10px;letter-spacing:.16em;color:#5F7FA0}
.badge{display:inline-flex;align-items:center;gap:8px;font-family:'IBM Plex Mono',monospace;font-size:11.5px;letter-spacing:.16em;padding:6px 14px;border-radius:980px}
#lr-wait{color:#5F7FA0;border:1px solid rgba(95,127,160,.35)}
#lr-wait .d{width:7px;height:7px;border-radius:50%;background:#5F7FA0}
#lr-live{position:absolute;inset:0;justify-content:center;color:#3FA9E8;border:1px solid rgba(63,169,232,.4);opacity:0}
#lr-live .d{width:7px;height:7px;border-radius:50%;background:#3FA9E8;animation:pulse 1.6s infinite}
#lr-panel .cols{display:flex;gap:20px;padding:13px 32px;border-bottom:1px solid rgba(63,169,232,.08);font-family:'IBM Plex Mono',monospace;font-size:10.5px;letter-spacing:.18em;color:#5F7FA0}
.lr-row{display:flex;align-items:center;gap:20px;padding:18px 32px;border-bottom:1px solid rgba(63,169,232,.06);opacity:0}
.lr-row .r{font-family:'IBM Plex Mono',monospace;font-size:16px;font-weight:600;color:#3FA9E8;width:30px}
.lr-row .nm{font-size:15.5px;color:#fff;flex:1;display:flex;align-items:baseline;gap:12px;flex-wrap:wrap;font-weight:500}
.lr-row .nm small{font-family:'IBM Plex Mono',monospace;font-size:12px;color:#5F7FA0;font-weight:400}
.lr-row .tm{font-family:'IBM Plex Mono',monospace;font-size:16px;color:#D7E4F0;font-variant-numeric:tabular-nums}
#lr-phone{position:absolute;right:-52px;bottom:-10px;width:216px;background:linear-gradient(180deg,#101F38,#0B1a30);border-radius:30px;box-shadow:0 40px 90px rgba(0,0,0,.5),0 0 0 1px rgba(63,169,232,.2);padding:18px;opacity:0;transform:rotate(3deg)}
#lr-phone .notch{width:44px;height:5px;border-radius:3px;background:rgba(95,127,160,.4);margin:0 auto 14px}
#lr-phone .hd{font-family:'IBM Plex Mono',monospace;font-size:9px;letter-spacing:.16em;color:#3FA9E8;text-align:center;margin-bottom:12px}
#lr-phone .row{display:flex;align-items:center;gap:10px;padding:8px 6px;border-bottom:1px solid rgba(63,169,232,.08)}
#lr-phone .row .r{font-family:'IBM Plex Mono',monospace;font-size:11px;color:#3FA9E8;width:14px}
#lr-phone .row .nm{font-size:11.5px;color:#fff;flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
#lr-phone .row .tm{font-family:'IBM Plex Mono',monospace;font-size:11px;color:#D7E4F0}
#lr-phone .ft{font-family:'IBM Plex Mono',monospace;font-size:8.5px;letter-spacing:.14em;color:#5F7FA0;text-align:center;margin-top:12px}
@media (max-width:1180px){#lr-phone{display:none}}
#lr-final{text-align:center;margin-top:52px;opacity:0}
#lr-final .msg{font-size:clamp(19px,2.3vw,26px);font-weight:700;letter-spacing:-.015em;color:#fff;line-height:1.5}
#lr-final .msg span{color:#3FA9E8}
#lr-final .btn{margin-top:28px;pointer-events:auto}
/* transition + événements + engagements */
#transition{padding:80px clamp(20px,5vw,64px) 150px;text-align:center;background:#fff}
#transition p{font-size:clamp(34px,4.6vw,64px);font-weight:700;letter-spacing:-.03em;line-height:1.15;margin:0 auto;max-width:820px}
#transition span{color:#1E6FC2}
#evenements{padding:0 clamp(20px,5vw,64px) 150px;max-width:1240px;margin:0 auto}
#evenements h2{font-size:clamp(34px,4.4vw,56px);letter-spacing:-.03em;margin:0;font-weight:700}
#evenements .gal{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:64px}
.ev{position:relative;overflow:hidden;border-radius:26px;height:340px}
.ev.tall{height:440px}
.ev.w2{grid-column:span 2}
.ev.w3{grid-column:span 3}
.ev .tint{position:absolute;inset:0;background:rgba(12,42,78,.08);pointer-events:none}
.ev .lbl{position:absolute;left:0;right:0;bottom:0;padding:26px;background:linear-gradient(transparent,rgba(8,29,54,.7));pointer-events:none;font-size:14px;font-weight:600;letter-spacing:.14em;color:#fff;font-family:'IBM Plex Mono',monospace}
@media (max-width:760px){#evenements .gal{grid-template-columns:1fr}.ev.w2,.ev.w3{grid-column:auto}.ev,.ev.tall{height:300px}}
#engagements{background:linear-gradient(180deg,#fff,#F7FAFD);padding:100px clamp(20px,5vw,64px) 170px}
#engagements .inner{max-width:880px;margin:0 auto}
#engagements .head{text-align:center;margin-bottom:110px}
#engagements h2{font-size:clamp(34px,4.4vw,56px);letter-spacing:-.03em;margin:0;font-weight:700;line-height:1.1}
#engagements .lead{font-size:18px;color:#5B6B7C;margin:20px auto 0;max-width:480px;line-height:1.6}
#engagements .list{display:flex;flex-direction:column;gap:100px}
#engagements .item{display:flex;gap:clamp(28px,5vw,64px);align-items:flex-start}
#engagements .num{font-family:'IBM Plex Mono',monospace;font-size:clamp(15px,1.8vw,18px);color:#3FA9E8;padding-top:clamp(10px,1.5vw,20px);flex-shrink:0}
#engagements h3{font-size:clamp(32px,4.4vw,54px);font-weight:700;margin:0;letter-spacing:-.03em;line-height:1.05}
#engagements .item p{font-size:clamp(17px,2vw,20px);color:#5B6B7C;margin:16px 0 0;line-height:1.6;max-width:560px}
/* CTA final */
#cta{position:relative;background:#081D36;padding:180px clamp(20px,5vw,64px);text-align:center;overflow:hidden}
#cta .bg{position:absolute;inset:0;opacity:.35}
#cta .veil{position:absolute;inset:0;background:linear-gradient(180deg,rgba(8,29,54,.9),rgba(8,29,54,.6) 50%,rgba(8,29,54,.9));pointer-events:none}
#cta .inner{position:relative;pointer-events:none}
#cta .montee{display:flex;flex-direction:column;gap:9px;margin-bottom:56px;font-family:'IBM Plex Mono',monospace;font-size:clamp(12px,1.4vw,14px);letter-spacing:.18em;color:#7FB8E0}
#cta h2{font-family:'Barlow Condensed',sans-serif;font-style:italic;font-weight:700;font-size:clamp(48px,6.5vw,92px);color:#fff;margin:0 0 28px;text-transform:uppercase;line-height:.98}
#cta .sub{font-size:19px;color:#D7E4F0;max-width:560px;margin:0 auto 48px;line-height:1.6;font-weight:500}
#cta .btn{pointer-events:auto}
.coords{margin-top:36px;font-family:'IBM Plex Mono',monospace;font-size:13.5px;display:flex;gap:8px 24px;justify-content:center;flex-wrap:wrap;pointer-events:auto}
.coords a{color:#7FB8E0}
/* contact */
#contact{background:#fff;padding:150px clamp(20px,5vw,64px)}
#contact .inner{max-width:760px;margin:0 auto}
#contact .head{text-align:center;margin-bottom:64px}
#contact h2{font-size:clamp(34px,4.4vw,56px);letter-spacing:-.03em;margin:0;font-weight:700}
#contact .lead{font-size:17px;color:#5B6B7C;margin:20px auto 0;max-width:520px;line-height:1.65}
#contact form{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:24px}
.field{display:flex;flex-direction:column;gap:8px}
.field.full{grid-column:1/-1}
.field label{font-size:13px;font-weight:600}
.field label .req{color:#1E6FC2}
.field label .opt{font-weight:400;color:#8095AB}
.field input,.field select,.field textarea{border:none;background:#F5F8FB;border-radius:14px;padding:16px 18px;font-size:15px;font-family:inherit;color:#0C2A4E}
.field textarea{resize:vertical}
.consent{display:flex;gap:12px;align-items:flex-start;grid-column:1/-1}
.consent input{margin-top:3px;width:16px;height:16px;accent-color:#1E6FC2}
.consent label{font-size:13.5px;color:#5B6B7C;line-height:1.55}
#form-note{font-size:12.5px;color:#8095AB;margin:0;line-height:1.55}
#form-status{display:none;background:#F5F8FB;border-radius:18px;padding:22px 26px;grid-column:1/-1;font-size:15px;line-height:1.6;color:#0C2A4E}
#form-status.show{display:block}
/* footer */
footer{background:#081D36;padding:64px clamp(20px,5vw,64px);display:flex;align-items:flex-start;justify-content:space-between;flex-wrap:wrap;gap:28px}
footer .brand img{height:28px;width:auto}
footer .slogan{font-family:'IBM Plex Mono',monospace;font-size:11px;letter-spacing:.2em;color:#5F7FA0;margin-top:12px}
footer .col{display:flex;flex-direction:column;gap:10px;font-size:13.5px;font-family:'IBM Plex Mono',monospace}
footer a{color:#8AA2BC}
footer .legal{display:flex;gap:28px;font-size:13.5px}
/* reduced motion */
/* Protection secondaire contre tout débordement résiduel (les causes primaires sont corrigées ci-dessus) */
html,body{overflow-x:clip}
/* Navigation mobile : capsule compacte, logo réduit, CTA toujours accessible, zéro débordement 320–600px */
@media (max-width:600px){
  .navwrap{top:10px;padding:0 12px}
  #topnav{flex-wrap:wrap;justify-content:center;gap:8px 14px;padding:10px 14px;border-radius:20px}
  #topnav img{height:30px;width:auto;max-width:68vw}
  #topnav .links{flex:0 1 auto;justify-content:center}
  #topnav .links a.btn-nav{padding:10px 18px;font-size:12.5px}
}
@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto}
  *{animation:none !important;transition:none !important}
  body.js [data-reveal]:not(.rv-in){opacity:1;transform:none}
}

/* derniers résultats */
#derniers-resultats{background:#fff;padding:clamp(96px,13vh,160px) clamp(20px,5vw,64px)}
#derniers-resultats .inner{max-width:1200px;margin:0 auto;display:grid;grid-template-columns:1.1fr 1fr;gap:clamp(44px,6vw,96px);align-items:center}
#derniers-resultats h2{font-size:clamp(36px,4.8vw,60px);letter-spacing:-.025em;line-height:1.02;color:#081D36;margin:0 0 18px;font-weight:700}
#derniers-resultats .meta{font-size:12.5px;letter-spacing:.18em;color:#1E6FC2;margin-bottom:24px}
#derniers-resultats .lead{font-size:17.5px;line-height:1.65;color:#41556B;max-width:480px;margin:0 0 36px}
#derniers-resultats .ctas{display:flex;gap:26px;align-items:center;flex-wrap:wrap}
#derniers-resultats .more{font-weight:600;color:#1E6FC2}
#dr-panel{background:#F7FAFD;border:1px solid #E2EAF2;border-radius:24px;padding:28px 30px;box-shadow:0 18px 50px rgba(8,29,54,.07)}
#dr-panel .bar{display:flex;justify-content:space-between;font-family:'IBM Plex Mono',monospace;font-size:10.5px;letter-spacing:.2em;color:#5B6B7C;padding-bottom:16px;border-bottom:2px solid #0C2A4E}
#dr-panel .row{display:flex;align-items:baseline;gap:16px;padding:16px 2px;border-bottom:1px solid #E7EEF5}
#dr-panel .row .r{font-family:'IBM Plex Mono',monospace;font-weight:600;font-size:15px;color:#1E6FC2;width:20px}
#dr-panel .row .nm{flex:1;font-weight:600;color:#081D36;font-size:16.5px;overflow-wrap:anywhere}
#dr-panel .row .tm{font-family:'IBM Plex Mono',monospace;font-size:16px;color:#0C2A4E;white-space:nowrap}
#dr-panel .all{display:block;padding-top:18px;font-weight:600;font-size:14.5px;color:#1E6FC2}
@media (max-width:960px){#derniers-resultats .inner{grid-template-columns:1fr;gap:44px}}
