:root{
  --bg:#040B18;
  --bg2:#081A33;
  --panel:rgba(12,32,62,.55);
  --line:rgba(79,179,236,.18);
  --text:#E6F0FA;
  --muted:#8FA6C2;
  --blue:#1B8FD2;
  --cyan:#4FB3EC;
  --glow:#8AD8FF;
  --violet:#7C6CFF;
  --ok:#3DDC97;
  --r:20px;
  --max:1180px;
  --head:"Unbounded", system-ui, sans-serif;
  --body:"Manrope", system-ui, sans-serif;
  --mono:"JetBrains Mono", ui-monospace, monospace;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;overflow-x:clip}
body{margin:0;background:var(--bg);color:var(--text);font:400 1.05rem/1.65 var(--body);-webkit-font-smoothing:antialiased;overflow-x:hidden}
img{display:block;max-width:100%}
a{color:inherit}
p{margin:0}
h1,h2,h3{font-family:var(--head);margin:0;line-height:1.12;letter-spacing:-.01em}
h1{font-size:clamp(2.1rem,4.6vw,3.7rem);font-weight:700}
h2{font-size:clamp(1.6rem,3vw,2.4rem);font-weight:700}
h3{font-size:1.1rem;font-weight:500}
.wrap{max-width:var(--max);margin:0 auto;padding:0 24px}
section{padding:110px 0;position:relative}
.lead{font-size:1.15rem;color:var(--muted);max-width:62ch}
.grad{background:linear-gradient(100deg,#fff 10%,var(--glow) 45%,var(--violet) 95%);-webkit-background-clip:text;background-clip:text;color:transparent}
:focus-visible{outline:2px solid var(--glow);outline-offset:3px;border-radius:6px}
.skip{position:fixed;left:8px;top:-60px;background:#fff;color:var(--bg);padding:8px 14px;z-index:99}
.skip:focus{top:8px}

/* Fond : grille + halos */
.bgfx{position:fixed;inset:0;z-index:-1;pointer-events:none}
.bgfx::before{content:"";position:absolute;inset:0;background-image:linear-gradient(var(--line) 1px,transparent 1px),linear-gradient(90deg,var(--line) 1px,transparent 1px);background-size:64px 64px;opacity:.35;-webkit-mask-image:radial-gradient(ellipse 80% 60% at 50% 0%,#000 30%,transparent 75%);mask-image:radial-gradient(ellipse 80% 60% at 50% 0%,#000 30%,transparent 75%)}
.bgfx i{position:absolute;border-radius:50%;filter:blur(90px);opacity:.45}
.bgfx i:nth-child(1){width:520px;height:520px;background:var(--blue);top:-180px;right:-120px;animation:drift 18s ease-in-out infinite alternate}
.bgfx i:nth-child(2){width:420px;height:420px;background:var(--violet);top:40%;left:-200px;opacity:.25;animation:drift 22s ease-in-out infinite alternate-reverse}
@keyframes drift{to{transform:translate(-60px,80px)}}

/* Boutons */
.btn{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:10px;font:700 .98rem var(--body);text-decoration:none;padding:14px 24px;border-radius:999px;cursor:pointer;border:1px solid var(--line);color:var(--text);background:rgba(255,255,255,.03);transition:transform .2s,box-shadow .2s,border-color .2s}
.btn:hover{border-color:var(--cyan);transform:translateY(-1px)}
.btn-primary{border:0;background:linear-gradient(100deg,var(--blue),var(--violet));box-shadow:0 0 0 1px rgba(255,255,255,.08) inset,0 10px 40px -10px rgba(79,179,236,.7)}
.btn-primary:hover{box-shadow:0 0 0 1px rgba(255,255,255,.15) inset,0 14px 50px -8px rgba(124,108,255,.8)}

/* Carte vitrée avec halo qui suit la souris */
.glass{position:relative;background:var(--panel);border:1px solid var(--line);border-radius:var(--r);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);overflow:hidden}
.glass::before{content:"";position:absolute;inset:0;background:radial-gradient(420px circle at var(--mx,50%) var(--my,-30%),rgba(79,179,236,.16),transparent 45%);pointer-events:none;transition:opacity .3s}
.glass::after{content:"";position:absolute;inset:0;border-radius:inherit;padding:1px;background:radial-gradient(300px circle at var(--mx,50%) var(--my,-30%),rgba(138,216,255,.8),transparent 60%);-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude;pointer-events:none}

/* Apparition au défilement */
.js .rv{opacity:0;transform:translateY(28px);transition:opacity .8s cubic-bezier(.2,.7,.2,1),transform .8s cubic-bezier(.2,.7,.2,1)}
.js .rv.in{opacity:1;transform:none}

/* En-tête */
header.top{position:fixed;top:14px;left:0;right:0;z-index:30}
.top .bar{max-width:var(--max);margin:0 auto;padding:0 24px}
.top .inner{display:flex;align-items:center;justify-content:space-between;height:62px;padding:0 10px 0 16px;border-radius:999px;background:rgba(6,18,38,.62);border:1px solid var(--line);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px)}
.logo{display:flex;align-items:center;gap:10px;text-decoration:none}
.logo img{height:38px;width:auto;filter:drop-shadow(0 0 12px rgba(79,179,236,.45))}
.logo span{white-space:nowrap}
.logo b{font:700 1rem var(--head);letter-spacing:.02em;display:block;line-height:1}
.logo small{display:block;font:700 .66rem var(--body);color:var(--cyan);letter-spacing:.14em;margin-top:3px}
nav.main ul{list-style:none;display:flex;gap:24px;margin:0;padding:0;align-items:center}
nav.main a{text-decoration:none;font-weight:500;font-size:.93rem;color:var(--muted);transition:color .2s}
nav.main a:hover{color:#fff}
nav.main .btn{padding:10px 18px;font-size:.9rem;color:#fff}
nav.main a[aria-current="page"]{color:#fff}
.dd{position:relative}
.dd-btn{background:none;border:0;cursor:pointer;font:500 .9rem var(--body);color:var(--muted);padding:0;display:flex;align-items:center;gap:6px}
.dd-btn::after{content:"";width:6px;height:6px;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:rotate(45deg) translateY(-2px)}
.dd-btn:hover,.dd.cur .dd-btn{color:#fff}
nav.main .dd-menu{list-style:none;position:absolute;top:calc(100% + 16px);left:-18px;min-width:250px;margin:0;padding:10px;border-radius:16px;background:rgba(6,18,38,.97);border:1px solid var(--line);box-shadow:0 20px 50px -20px rgba(0,0,0,.8);display:none;flex-direction:column;align-items:stretch;gap:2px}
.dd-menu::before{content:"";position:absolute;left:0;right:0;top:-18px;height:18px}
nav.main .dd:hover .dd-menu,nav.main .dd:focus-within .dd-menu,nav.main .dd.open .dd-menu{display:flex}
nav.main .dd-menu a{display:block;padding:10px 12px;border-radius:10px;white-space:nowrap}
.dd-menu a:hover{background:rgba(79,179,236,.1)}
.lang{display:flex;gap:2px;margin-left:14px;padding:3px;border-radius:999px;border:1px solid var(--line)}
.lang a{font:700 .78rem var(--body);text-decoration:none;color:var(--muted);padding:5px 9px;border-radius:999px}
.lang a[aria-current]{background:rgba(79,179,236,.18);color:#fff}
.lang a:hover{color:#fff}
.menu-btn{display:none;background:none;border:0;color:var(--text);font:700 .95rem var(--body);cursor:pointer;padding:10px 14px}

/* Hero */
.hero{padding:170px 0 90px;min-height:100vh;display:flex;align-items:center}
.hero-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:40px;align-items:center}
.chip{display:inline-flex;align-items:center;gap:10px;font:600 .85rem var(--body);color:var(--glow);padding:7px 14px;border:1px solid var(--line);border-radius:999px;background:rgba(79,179,236,.07);margin-bottom:26px}
.chip .dot{width:8px;height:8px;border-radius:50%;background:var(--ok);box-shadow:0 0 0 0 rgba(61,220,151,.7);animation:ping 2s infinite}
@keyframes ping{70%{box-shadow:0 0 0 10px rgba(61,220,151,0)}100%{box-shadow:0 0 0 0 rgba(61,220,151,0)}}
.hero .lead{margin:26px 0 34px}
.actions{display:flex;flex-wrap:wrap;gap:14px}
.globe-wrap{position:relative;aspect-ratio:1/1;width:100%;max-width:560px;justify-self:center}
#globe{width:100%;height:100%;display:block;-webkit-mask-image:radial-gradient(circle at 50% 50%,#000 58%,transparent 74%);mask-image:radial-gradient(circle at 50% 50%,#000 58%,transparent 74%)}
.globe-legend{position:absolute;bottom:4%;left:50%;transform:translateX(-50%);font-size:.85rem;color:var(--muted);white-space:nowrap}
.globe-legend b{color:var(--glow);font-weight:600}
.globe-legend .lg{display:inline-block;width:9px;height:9px;border-radius:50%;margin:0 6px 0 14px;vertical-align:0}
.globe-legend .lg:first-child{margin-left:0}
.globe-legend .lg.d{background:#8AD8FF;box-shadow:0 0 8px #8AD8FF}
.globe-legend .lg.a{background:#F5B942;box-shadow:0 0 8px #F5B942}
.ant{margin-top:18px;padding:22px 26px}
.ant h3{font-size:1rem;font-weight:700;margin-bottom:4px}
.ant p{color:var(--muted);font-size:.92rem;margin-bottom:14px}
.ant ul{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:8px}
.ant li{display:flex;align-items:center;gap:8px;font-size:.9rem;font-weight:600;padding:6px 12px;border-radius:999px;border:1px solid rgba(245,185,66,.4);background:rgba(245,185,66,.07)}
.ant li::before{content:"";width:7px;height:7px;border-radius:50%;background:#F5B942;box-shadow:0 0 8px #F5B942}
.cur .pn.ex{color:#fff}
.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;margin-top:70px;border-radius:var(--r);overflow:hidden;background:var(--line);border:1px solid var(--line)}
.stats div{background:rgba(6,18,38,.8);padding:24px 22px}
.stats strong{display:block;font:700 2.1rem var(--head);color:#fff}
.stats span{color:var(--muted);font-size:.93rem}

/* Bandeau défilant */
.ticker{border-block:1px solid var(--line);overflow:hidden;padding:18px 0;background:rgba(6,18,38,.5)}
.ticker .track{display:flex;gap:48px;width:max-content;animation:scroll 40s linear infinite;font:500 1rem var(--head);color:var(--muted)}
.ticker .track span::after{content:"";display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--cyan);margin-left:48px;vertical-align:middle;box-shadow:0 0 10px var(--cyan)}
@keyframes scroll{to{transform:translateX(-50%)}}

.sec-head{display:flex;justify-content:space-between;align-items:end;gap:32px;flex-wrap:wrap;margin-bottom:54px}
.kicker{font:600 .9rem var(--mono);color:var(--cyan);margin-bottom:14px;display:block}

/* Démo IA */
.demo{display:grid;grid-template-columns:1fr 1.05fr;gap:28px;align-items:stretch}
.doc{position:relative;background:#F4F7FB;color:#1A2A44;border-radius:14px;padding:28px 28px 24px;font-size:.88rem;line-height:1.5;overflow:hidden;box-shadow:0 30px 80px -30px rgba(79,179,236,.5)}
.doc .dh{display:flex;justify-content:space-between;gap:12px;margin-bottom:18px}
.doc .dt{font:700 1.05rem var(--head);color:#0E2B52}
.doc table{width:100%;border-collapse:collapse;margin:16px 0}
.doc td,.doc th{padding:7px 4px;border-bottom:1px solid #D9E2EE;text-align:left}
.doc th{font-weight:700;color:#4A5B74;font-size:.8rem}
.doc td.n,.doc th.n{text-align:right}
.doc .tot{margin-left:auto;width:62%}
.doc .tot div{display:flex;justify-content:space-between;padding:3px 0}
.doc .tot .ttc{font-weight:700;border-top:2px solid #0E2B52;margin-top:4px;padding-top:6px}
.doc .demo-tag{position:absolute;top:12px;right:-34px;transform:rotate(35deg);background:#0E2B52;color:#fff;font:700 .7rem var(--body);padding:3px 40px}
.f{position:relative;border-radius:4px;transition:background .3s,box-shadow .3s}
.f.hit{background:rgba(27,143,210,.14);box-shadow:0 0 0 2px rgba(27,143,210,.75)}
.scan{position:absolute;left:0;right:0;height:70px;top:-80px;background:linear-gradient(180deg,transparent,rgba(79,179,236,.28) 70%,rgba(138,216,255,.95) 100%);pointer-events:none;opacity:0}
.scan.go{animation:scan 2.6s cubic-bezier(.45,0,.55,1) forwards}
@keyframes scan{0%{top:-80px;opacity:1}90%{opacity:1}100%{top:100%;opacity:0}}
.out{display:flex;flex-direction:column;padding:24px;font:400 .88rem/1.7 var(--mono)}
.out .bar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px;font-family:var(--body)}
.out .state{font-weight:700;font-size:.9rem;color:var(--glow)}
.out .state.done{color:var(--ok)}
.out pre{margin:0;white-space:pre-wrap;color:#CFE3F7;min-height:15.5em}
.out pre .k{color:var(--cyan)}
.out pre .v{color:#fff}
.out pre .c{color:var(--ok)}
.checks{list-style:none;margin:12px 0 0;padding:0;font-family:var(--body);font-size:.95rem}
.checks li{display:flex;gap:10px;padding:6px 0;opacity:0;transform:translateX(-8px);transition:all .4s}
.checks li.on{opacity:1;transform:none}
.checks li::before{content:"✓";color:var(--ok);font-weight:700}
.entry{margin-top:14px;padding:14px 16px;border-radius:12px;border:1px dashed rgba(61,220,151,.5);font-family:var(--body);font-size:.93rem;color:var(--muted);opacity:0;transition:opacity .5s}
.entry.on{opacity:1}
.entry b{color:#fff}
.demo-foot{margin-top:18px;display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap;color:var(--muted);font-size:.93rem}

/* Analyse en direct */
.drop{display:flex;align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap;padding:24px 28px;margin-bottom:24px;border:1px dashed rgba(138,216,255,.55);transition:border-color .2s,background .2s}
.drop.over{border-color:var(--glow);background:rgba(79,179,236,.12)}
.drop h3{font-size:1.15rem;margin-bottom:4px}
.drop p{color:var(--muted);font-size:.95rem}
.drop .acts{display:flex;gap:10px;flex-wrap:wrap;align-items:center}
.drop input{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}
.doczone{position:relative}
.udoc{position:relative;border-radius:14px;overflow:hidden;background:#fff;box-shadow:0 30px 80px -30px rgba(79,179,236,.5)}
.udoc canvas{display:block;width:100%;height:auto}
.udoc .scan.loop{opacity:1;animation:scanloop 2.2s linear infinite}
@keyframes scanloop{0%{top:-80px}100%{top:100%}}
.ubox{position:absolute;border:2px solid rgba(27,143,210,.9);background:rgba(27,143,210,.14);border-radius:4px;opacity:0;transform:scale(.96);transition:opacity .35s,transform .35s;pointer-events:none}
.ubox.on{opacity:1;transform:none}
.checks li.warn::before{content:"!";color:#FFC14D}
.checks li.na::before{content:"–";color:var(--muted)}
.out .meta{font-family:var(--body);font-size:.88rem;color:var(--muted);margin-top:12px}
.out details{font-family:var(--body);margin-top:12px;color:var(--muted);font-size:.9rem}
.out details pre{min-height:0;max-height:220px;overflow:auto;margin-top:8px;padding:12px;border-radius:10px;background:rgba(2,8,20,.6);font:400 .8rem/1.5 var(--mono)}
.out .after{margin-top:16px;display:none}
.out .after.on{display:block}
.progress{height:3px;border-radius:3px;background:rgba(79,179,236,.15);overflow:hidden;margin-bottom:12px}
.progress i{display:block;height:100%;width:0;background:linear-gradient(90deg,var(--cyan),var(--violet));transition:width .25s}

/* Générateur TEIF */
.teif{margin-top:24px;padding:30px}
.teif-head{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;flex-wrap:wrap;margin-bottom:22px}
.teif-head h3{font-size:1.25rem;font-weight:700}
.teif-head p{color:var(--muted);font-size:.95rem;max-width:70ch;margin-top:6px}
.badge{font:600 .78rem var(--mono);padding:5px 10px;border-radius:999px;border:1px solid rgba(61,220,151,.4);color:var(--ok);background:rgba(61,220,151,.08);white-space:nowrap}
.tgrid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
.tgrid .w2{grid-column:span 2}
.teif label{font-size:.85rem}
.teif input,.teif select{padding:10px 12px;font-size:.95rem}
.teif .hint{font-size:.78rem;color:var(--muted);margin-top:4px;display:block}
.teif .bad input,.teif .bad select{border-color:#FF8A80}
.teif .bad .hint{color:#FF8A80}
.tlines{width:100%;border-collapse:collapse;margin:22px 0 8px;font-size:.93rem}
.tlines th{text-align:left;font:600 .78rem var(--mono);color:var(--cyan);padding:0 8px 8px 0}
.tlines td{padding:4px 8px 4px 0;vertical-align:top}
.tlines td:nth-child(1){width:46%}
.tlines .rm{background:none;border:1px solid var(--line);color:var(--muted);border-radius:8px;width:34px;height:40px;cursor:pointer}
.tlines .rm:hover{border-color:#FF8A80;color:#FF8A80}
.ttot{display:flex;flex-wrap:wrap;gap:10px 28px;margin:16px 0;padding:14px 18px;border-radius:12px;background:rgba(2,8,20,.5);border:1px solid var(--line);font-size:.95rem;color:var(--muted)}
.ttot b{color:#fff;font-variant-numeric:tabular-nums}
.ttot .ok{color:var(--ok)}.ttot .ko{color:#FFC14D}
.tact{display:flex;gap:10px;flex-wrap:wrap;align-items:center}
.terr{color:#FF8A80;font-weight:700;font-size:.93rem;margin-top:12px}
.xmlbox{margin-top:18px;display:none}
.xmlbox.on{display:block}
.xmlbox pre{margin:0;max-height:380px;overflow:auto;padding:18px;border-radius:12px;background:rgba(2,8,20,.75);border:1px solid var(--line);font:400 .8rem/1.55 var(--mono);color:#CFE3F7;white-space:pre}
.xmlbox .tg{color:var(--cyan)}.xmlbox .at{color:#C9B9FF}.xmlbox .av{color:var(--ok)}
.xmlbox .warnline{margin-top:12px;font-size:.9rem;color:var(--muted)}
@media (max-width:860px){.tgrid{grid-template-columns:1fr 1fr}.tlines td:nth-child(1){width:auto}}
@media (max-width:560px){.tgrid{grid-template-columns:1fr}.tgrid .w2{grid-column:auto}.teif{padding:20px}}

.flow{list-style:none;display:grid;grid-template-columns:repeat(3,1fr);gap:0;margin:20px 0 4px;padding:0;counter-reset:fl}
.flow li{position:relative;padding:16px 18px 16px 52px;border:1px solid var(--line);background:rgba(2,8,20,.5);font-size:.92rem;color:var(--muted)}
.flow li:first-child{border-radius:12px 0 0 12px}.flow li:last-child{border-radius:0 12px 12px 0}
.flow li+li{border-left:0}
.flow li b{display:block;color:#fff;font-size:.98rem}
.flow li::before{counter-increment:fl;content:counter(fl);position:absolute;left:16px;top:16px;width:24px;height:24px;border-radius:50%;display:grid;place-items:center;font:700 .8rem var(--mono);border:1px solid var(--cyan);color:var(--cyan)}
.flow li.done::before{content:"✓";background:var(--ok);border-color:var(--ok);color:#04101F}
.flow li.done{border-color:rgba(61,220,151,.45)}
@media (max-width:760px){.flow{grid-template-columns:1fr}.flow li,.flow li:first-child,.flow li:last-child{border-radius:0}.flow li:first-child{border-radius:12px 12px 0 0}.flow li:last-child{border-radius:0 0 12px 12px}.flow li+li{border-left:1px solid var(--line);border-top:0}}

/* Capacités IA */
.caps{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.cap{padding:30px 28px}
.cap .ic{width:46px;height:46px;border-radius:12px;display:grid;place-items:center;margin-bottom:20px;background:linear-gradient(135deg,rgba(27,143,210,.3),rgba(124,108,255,.25));border:1px solid var(--line)}
.cap .ic svg{width:24px;height:24px;stroke:var(--glow);fill:none;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.cap h3{margin-bottom:10px}
.cap p{color:var(--muted);font-size:.98rem}
.method{display:grid;grid-template-columns:repeat(4,1fr);gap:0;margin-top:56px;counter-reset:st}
.method li{list-style:none;padding:0 22px 0 0;position:relative}
.method li::before{counter-increment:st;content:"0" counter(st);display:block;font:700 .9rem var(--mono);color:var(--cyan);margin-bottom:12px}
.method li::after{content:"";position:absolute;top:10px;left:40px;right:16px;height:1px;background:linear-gradient(90deg,var(--cyan),transparent)}
.method li:last-child::after{display:none}
.method h3{font-size:1rem;margin-bottom:6px}
.method p{color:var(--muted);font-size:.95rem}
.method-wrap{margin:0;padding:0}

/* Migration */
.mig{position:relative;padding:44px 36px;margin-top:8px}
.mig canvas{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:0}
.mig-grid{position:relative;z-index:1;display:grid;grid-template-columns:1fr 1.1fr 1fr;gap:30px;align-items:center}
.mig-col h3{font:600 .82rem var(--mono);color:var(--cyan);margin-bottom:14px}
.msrc,.mdst{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:12px}
.msrc li,.mdst li{position:relative;padding:12px 16px;border-radius:12px;border:1px solid var(--line);background:rgba(4,11,24,.85);font-weight:700;font-size:.95rem;transition:border-color .3s,box-shadow .3s}
.msrc li small,.mdst li small{display:block;font-weight:400;color:var(--muted);font-size:.84rem}
.msrc li{max-width:240px;color:#C6D3E3}
.msrc li.ping{border-color:rgba(138,216,255,.7);box-shadow:0 0 18px -4px rgba(79,179,236,.7)}
.mdst li{margin-left:auto;max-width:250px;border-color:rgba(61,220,151,.35)}
.mdst li.ping{border-color:var(--ok);box-shadow:0 0 22px -4px rgba(61,220,151,.8)}
.dst-h{text-align:right}
.core-wrap{display:flex;flex-direction:column;align-items:center;gap:22px}
.core{position:relative;width:220px;height:220px;display:grid;place-items:center}
.ring{position:absolute;inset:0;border-radius:50%;border:1px solid var(--line)}
.ring.r1{background:conic-gradient(from 0deg,transparent 0 70%,rgba(138,216,255,.9) 85%,transparent 100%);-webkit-mask:radial-gradient(circle,transparent 66%,#000 67%,#000 70%,transparent 71%);mask:radial-gradient(circle,transparent 66%,#000 67%,#000 70%,transparent 71%);animation:spin 3s linear infinite;border:0}
.ring.r2{inset:18px;border:1px dashed rgba(124,108,255,.6);animation:spin 14s linear infinite reverse}
.ring.r3{inset:38px;background:radial-gradient(circle,rgba(27,143,210,.35),rgba(124,108,255,.12) 60%,transparent 72%);border:1px solid rgba(138,216,255,.35);box-shadow:0 0 50px -6px rgba(79,179,236,.7),inset 0 0 30px rgba(124,108,255,.35);animation:breathe 2.8s ease-in-out infinite}
@keyframes spin{to{transform:rotate(360deg)}}
@keyframes breathe{50%{transform:scale(1.05);box-shadow:0 0 70px -4px rgba(124,108,255,.8),inset 0 0 40px rgba(79,179,236,.45)}}
.core-in{position:relative;text-align:center}
.core-in small{display:block;font:500 .72rem var(--mono);color:var(--muted);letter-spacing:.05em}
.core-in b{display:block;font:700 1.05rem var(--head);color:#fff;margin-top:4px;min-width:130px}
.stages{list-style:none;margin:0;padding:0;display:flex;gap:6px;flex-wrap:wrap;justify-content:center}
.stages li{font:600 .76rem var(--mono);padding:5px 10px;border-radius:999px;border:1px solid var(--line);color:var(--muted);background:rgba(4,11,24,.8);transition:all .3s}
.stages li.on{color:#04101F;background:var(--glow);border-color:var(--glow);box-shadow:0 0 18px rgba(138,216,255,.7)}
.mig-foot{display:grid;grid-template-columns:1.2fr 1fr;gap:22px;margin-top:22px}
.mcount{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);border-radius:var(--r);overflow:hidden;border:1px solid var(--line)}
.mcount div{background:rgba(6,18,38,.85);padding:20px}
.mcount strong{display:block;font:700 1.6rem var(--head);color:#fff;font-variant-numeric:tabular-nums}
.mcount span{font-size:.88rem;color:var(--muted)}
.mcount .sim{grid-column:1/-1;padding:10px 20px;font:400 .78rem var(--mono);color:var(--muted)}
.term{padding:20px 22px;font:400 .84rem/1.6 var(--mono)}
.term .from{color:#9AA9BC;text-decoration:line-through;text-decoration-color:rgba(255,138,128,.6)}
.term .to{color:var(--ok)}
.term .lbl{display:block;font-family:var(--body);font-weight:700;color:#fff;font-size:.9rem;margin-bottom:10px}
.guar{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin-top:22px;list-style:none;padding:0}
.guar li{padding:18px 20px;border-left:2px solid var(--cyan);background:rgba(79,179,236,.05);border-radius:0 12px 12px 0;color:var(--muted);font-size:.95rem}
.guar b{display:block;color:#fff;margin-bottom:2px}

/* Modernisation : avant / après */
.mz-adds{list-style:none;margin:30px 0 0;padding:0;display:grid;grid-template-columns:repeat(4,1fr);gap:18px}
.mz-adds li{color:var(--muted);font-size:.95rem;padding-left:22px;position:relative}
.mz-adds li b{color:#fff;display:block}
.mz-adds .sw{position:absolute;left:0;top:6px;width:12px;height:12px;border-radius:4px}
.mz{position:relative;height:560px;border-radius:var(--r);overflow:hidden;border:1px solid var(--line);box-shadow:0 40px 100px -40px rgba(79,179,236,.55);user-select:none;--x:100%}
.mz-layer{position:absolute;inset:0;overflow:hidden}
.mz-new{clip-path:inset(0 0 0 var(--x))}
.mz-labels{display:flex;justify-content:space-between;gap:12px;margin-bottom:12px}
.mz-tag{font:700 .78rem var(--mono);padding:6px 12px;border-radius:999px}
.mz-tag.l{background:#000080;color:#fff;border:1px solid rgba(255,255,255,.7)}
.mz-tag.r{background:rgba(61,220,151,.12);color:var(--ok);border:1px solid rgba(61,220,151,.5)}
.mz-handle{position:absolute;top:0;bottom:0;left:var(--x);width:0;z-index:6;pointer-events:none}
.mz-handle::before{content:"";position:absolute;top:0;bottom:0;left:-1px;width:2px;background:var(--glow);box-shadow:0 0 18px 4px rgba(138,216,255,.8),0 0 60px 10px rgba(124,108,255,.45)}
.mz-handle span{position:absolute;top:50%;left:-22px;width:44px;height:44px;margin-top:-22px;border-radius:50%;background:#04101F;border:2px solid var(--glow);color:var(--glow);display:grid;place-items:center;font:700 1rem var(--mono);box-shadow:0 0 24px rgba(138,216,255,.7);opacity:0;transition:opacity .4s}
.mz.cmp .mz-handle span{opacity:1}
.mz-range{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:ew-resize;z-index:7;margin:0;display:none}
.mz.cmp .mz-range{display:block}
.mz-hint{position:absolute;bottom:14px;left:50%;transform:translateX(-50%);z-index:5;font:600 .8rem var(--body);color:#fff;background:rgba(4,11,24,.85);border:1px solid var(--line);padding:6px 12px;border-radius:999px;opacity:0;transition:opacity .4s;pointer-events:none;white-space:nowrap}
.mz.cmp .mz-hint{opacity:1}
.mz-bar{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;margin-top:14px;color:var(--muted);font-size:.9rem}

/* ancien écran */
.old{background:#C0C0C0;font:12px/1.35 Tahoma,Verdana,"MS Sans Serif",sans-serif;color:#000;display:flex;flex-direction:column}
.old .tb{background:linear-gradient(90deg,#000080,#1084D0);color:#fff;font-weight:700;padding:4px 6px 4px 8px;display:flex;justify-content:space-between;align-items:center}
.old .tb i{display:inline-block;width:16px;height:14px;margin-left:2px;background:#C0C0C0;border:1px solid;border-color:#fff #404040 #404040 #fff;font:700 9px/12px Tahoma;color:#000;text-align:center;font-style:normal}
.old .mn{padding:3px 6px;display:flex;gap:16px;border-bottom:1px solid #808080}
.old .mn u{text-decoration:underline}
.old .tl{display:flex;gap:4px;padding:5px 6px;border-bottom:1px solid #fff}
.old .bv{border:2px solid;border-color:#fff #808080 #808080 #fff;padding:3px 10px;background:#C0C0C0}
.old .fm{padding:8px 10px;display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.old .in{background:#fff;border:2px solid;border-color:#808080 #fff #fff #808080;padding:2px 6px;font:12px "Courier New",monospace;min-width:110px}
.old .in b{display:inline-block;width:7px;height:13px;background:#000;vertical-align:-2px;animation:blink 1s steps(1) infinite}
.old .grid{margin:0 10px;flex:1;background:#fff;border:2px solid;border-color:#808080 #fff #fff #808080;overflow:hidden}
.old table{width:100%;border-collapse:collapse;font:12px/1.5 "Courier New",monospace}
.old th{background:#C0C0C0;border:1px solid;border-color:#fff #808080 #808080 #fff;text-align:left;padding:2px 6px;font:700 11px Tahoma,sans-serif}
.old td{padding:3px 6px;border-bottom:1px dotted #C0C0C0;white-space:nowrap}
.old tr.sel td{background:#000080;color:#fff}
.old td.n{text-align:right}
.old .st{display:flex;gap:4px;padding:4px 6px}
.old .st span{border:1px solid;border-color:#808080 #fff #fff #808080;padding:1px 8px;flex:1}
.old .st span:first-child{flex:2}

/* nouvel écran */
.nw{background:radial-gradient(ellipse at 80% 0%,#0E2A55,#050F22 60%);color:#E6F0FA;font:13px/1.45 var(--body);display:grid;grid-template-columns:1fr 290px;grid-template-rows:auto 1fr;gap:14px;padding:16px}
.nw .top{grid-column:1/-1;display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.nw .app{font:700 .95rem var(--head);display:flex;align-items:center;gap:8px}
.nw .app::before{content:"";width:10px;height:10px;border-radius:3px;background:linear-gradient(135deg,var(--cyan),var(--violet));box-shadow:0 0 10px var(--cyan)}
.nw .ask{flex:1;min-width:200px;display:flex;align-items:center;gap:8px;padding:9px 14px;border-radius:999px;background:rgba(255,255,255,.05);border:1px solid rgba(124,108,255,.55);box-shadow:0 0 22px -6px rgba(124,108,255,.8);color:#fff}
.nw .ask .sp{color:#B3A9FF;font-weight:700}
.nw .ask .ph{color:var(--muted)}
.nw .chip{font-size:.75rem;font-weight:700;padding:4px 10px;border-radius:999px;border:1px solid rgba(61,220,151,.4);color:var(--ok);background:rgba(61,220,151,.08)}
.nw .main{grid-column:1;grid-row:2;display:flex;flex-direction:column;gap:12px;min-width:0}
.nw .kpis{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.nw .kpi{padding:12px 14px;border-radius:12px;background:rgba(255,255,255,.04);border:1px solid var(--line)}
.nw .kpi small{color:var(--muted);font-size:.75rem;display:block}
.nw .kpi b{font:700 1.15rem var(--head);font-variant-numeric:tabular-nums}
.nw .kpi.alert b{color:#FF8A80}
.nw .kpi svg{display:block;width:100%;height:26px;margin-top:4px}
.nw .tbl{flex:1;border-radius:12px;border:1px solid var(--line);background:rgba(255,255,255,.03);overflow:hidden}
.nw table{width:100%;border-collapse:collapse;font-size:.82rem}
.nw th{text-transform:uppercase;text-align:left;font:600 .7rem var(--mono);color:var(--cyan);padding:9px 10px;border-bottom:1px solid var(--line)}
.nw td{padding:8px 10px;border-bottom:1px solid rgba(79,179,236,.08);white-space:nowrap}
.nw td.n{text-align:right;font-variant-numeric:tabular-nums}
.nw tr.late td{transition:background .4s}
.nw tr.late.flag td{background:rgba(255,138,128,.10)}
.nw .pill{font-size:.7rem;font-weight:700;padding:2px 8px;border-radius:999px;background:rgba(61,220,151,.12);color:var(--ok)}
.nw .pill.bad{background:rgba(255,138,128,.14);color:#FF8A80}
.nw .copilot{grid-column:2;grid-row:2;display:flex;flex-direction:column;gap:10px;padding:14px;border-radius:14px;background:rgba(124,108,255,.08);border:1px solid rgba(124,108,255,.45);min-height:0}
.nw .copilot h4{margin:0;font:700 .85rem var(--head);display:flex;align-items:center;gap:8px}
.nw .copilot h4::before{content:"";width:8px;height:8px;border-radius:50%;background:#B3A9FF;box-shadow:0 0 10px #B3A9FF;animation:ping 2s infinite}
.nw .msg{font-size:.8rem;padding:9px 11px;border-radius:12px;opacity:0;transform:translateY(6px);transition:all .4s}
.nw .msg.on{opacity:1;transform:none}
.nw .msg.me{align-self:flex-end;background:rgba(79,179,236,.15);border:1px solid var(--line);max-width:90%}
.nw .msg.ai{background:rgba(4,11,24,.7);border:1px solid rgba(124,108,255,.35)}
.nw .dots i{display:inline-block;width:5px;height:5px;border-radius:50%;background:#B3A9FF;margin-right:3px;animation:blink 1s infinite}
.nw .dots i:nth-child(2){animation-delay:.2s}.nw .dots i:nth-child(3){animation-delay:.4s}
.nw .acts{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px}
.nw .acts span{font-size:.72rem;font-weight:700;padding:5px 10px;border-radius:999px;background:linear-gradient(100deg,var(--blue),var(--violet))}
.nw .acts span+span{background:none;border:1px solid var(--line)}
.nw .toast{margin-top:auto;font-size:.78rem;font-weight:700;padding:9px 11px;border-radius:10px;background:rgba(61,220,151,.12);border:1px solid rgba(61,220,151,.45);color:var(--ok);opacity:0;transition:opacity .4s}
.nw .toast.on{opacity:1}

@media (max-width:900px){
  .mz{height:820px}
  .nw{grid-template-columns:1fr;grid-template-rows:auto auto auto}
  .nw .main{grid-column:1;grid-row:2}
  .nw .copilot{grid-column:1;grid-row:3;min-height:230px}
  .mz-adds{grid-template-columns:1fr 1fr}
}
@media (max-width:600px){
  .mz{height:860px}
  .old .hide-s,.nw .hide-s{display:none}
  .old .mn{gap:10px;flex-wrap:wrap}
  .old .tl{flex-wrap:wrap}
  .nw .kpis{grid-template-columns:1fr 1fr}
  .nw td,.nw th{padding:7px 5px}
  .nw .pill{font-size:.64rem;padding:2px 6px}
  .nw{padding:12px;gap:10px}
  .nw .kpis .kpi:last-child{grid-column:1/-1}
  .mz-adds{grid-template-columns:1fr}
}

/* Assistant */
.assist{display:grid;grid-template-columns:.9fr 1.1fr;gap:28px}
.ask{padding:28px}
.ask label{display:block;font-weight:700;margin-bottom:10px}
.ask textarea{width:100%;min-height:150px;resize:vertical;background:rgba(2,8,20,.6);border:1px solid var(--line);border-radius:14px;color:var(--text);font:400 1rem var(--body);padding:14px 16px}
.ask textarea:focus{border-color:var(--cyan);outline:none;box-shadow:0 0 0 3px rgba(79,179,236,.2)}
.ideas{display:flex;flex-wrap:wrap;gap:8px;margin:14px 0 18px}
.ideas button{background:rgba(79,179,236,.08);border:1px solid var(--line);color:var(--glow);font:500 .86rem var(--body);padding:7px 12px;border-radius:999px;cursor:pointer}
.ideas button:hover{border-color:var(--cyan)}
.answer{padding:28px;min-height:330px;display:flex;flex-direction:column}
.answer .ph{color:var(--muted);margin:auto 0;text-align:center}
.answer dl{margin:0;display:grid;gap:16px}
.answer dt{font:600 .82rem var(--mono);color:var(--cyan);margin-bottom:2px}
.answer dd{margin:0;color:#fff}
.answer .cursor{display:inline-block;width:8px;height:1.05em;background:var(--glow);vertical-align:-2px;margin-left:2px;animation:blink 1s steps(1) infinite}
@keyframes blink{50%{opacity:0}}
.answer .go{margin-top:auto;padding-top:22px;display:none}
.answer .go.on{display:block}
.note{font-size:.86rem;color:var(--muted);margin-top:12px}

/* Produits */
.prods{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
.steps4{list-style:none;margin:26px 0 0;padding:0;display:grid;grid-template-columns:repeat(4,1fr);gap:14px;counter-reset:st}
.steps4 li{padding:18px 20px;border:1px solid var(--line);border-radius:14px;background:rgba(10,26,51,.5);color:var(--muted);font-size:.93rem;counter-increment:st}
.steps4 li::before{content:counter(st,decimal-leading-zero);display:block;font:600 .8rem var(--mono);color:var(--cyan);margin-bottom:6px}
.steps4 li b{display:block;color:#fff;margin-bottom:2px}
.roles{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:34px}
.roles article{padding:26px}
.roles h3{font-size:1.1rem;font-weight:700;margin:0 0 8px}
.roles p{color:var(--muted);margin:0}
.roles .n{font:600 .8rem var(--mono);color:var(--cyan);display:block;margin-bottom:10px}
.roles.six,.roles.four{margin-top:0}
.roles.four{grid-template-columns:repeat(4,1fr)}
@media (max-width:1000px){.roles.four{grid-template-columns:1fr 1fr}}
@media (max-width:640px){.roles.four{grid-template-columns:1fr}}
.pledge{margin-top:22px;padding:20px 24px;display:flex;flex-direction:column;gap:4px}
.pledge span{color:var(--muted)}
.chips{display:flex;flex-wrap:wrap;gap:10px;margin:26px 0 0;padding:0;list-style:none}
.chips li{padding:8px 14px;border-radius:999px;border:1px solid var(--line);background:rgba(10,26,51,.5);font-size:.9rem}
.vis{position:relative;height:560px;margin-top:6px}
.vis-links{position:absolute;inset:0;width:100%;height:100%}
.vis-links line{stroke:rgba(79,179,236,.45);stroke-width:1.4;vector-effect:non-scaling-stroke;opacity:0;transition:opacity .6s}
.vis-links line.on{opacity:1}
.vis-links line.tw{stroke:rgba(124,108,255,.75)}
.vis-links line.net{stroke:rgba(245,185,66,.55);stroke-dasharray:4 6}
.vis-links line.goal{stroke:rgba(61,220,151,.7);stroke-width:2}
.vis-links line.tw.flow{stroke-dasharray:6 8;animation:visFlow 1s linear infinite}
@keyframes visFlow{to{stroke-dashoffset:-28}}
.vis-node{position:absolute;z-index:2;transform:translate(-50%,-50%) scale(.6);opacity:0;transition:opacity .5s,transform .5s,box-shadow .4s;padding:9px 14px;border-radius:12px;border:1px solid var(--line);background:rgba(6,18,38,.94);text-align:center;white-space:nowrap}
.vis-node.on{opacity:1;transform:translate(-50%,-50%) scale(1)}
.vis-node b{display:block;font-size:.86rem;font-weight:700}
.vis-node small{display:block;font-size:.72rem;color:var(--muted)}
.vis-node.t{border-color:rgba(124,108,255,.55)}
.vis-node.n{border-color:rgba(138,216,255,.6)}
.vis-node.p{border-color:rgba(245,185,66,.6)}
.vis-node.ping{box-shadow:0 0 26px -4px var(--glow)}
.vis-node.hub{padding:16px 22px;border-color:var(--violet);box-shadow:0 0 44px -10px var(--violet);background:linear-gradient(135deg,rgba(27,143,210,.32),rgba(124,108,255,.32)),rgba(6,18,38,.96)}
.vis-node.hub b{font:700 1.05rem var(--head)}
.vis-node.hub.on::after{content:"";position:absolute;inset:-9px;border-radius:18px;border:1px solid var(--violet);animation:visPulse 2.4s ease-out infinite}
@keyframes visPulse{0%{opacity:.8;transform:scale(.96)}100%{opacity:0;transform:scale(1.22)}}
.vis-node.goal{border-color:var(--ok);min-width:150px}
.vis-node.goal.done{box-shadow:0 0 36px -6px var(--ok)}
.vis-node.goal small{color:var(--ok)}
.vis-bar{display:block;height:5px;border-radius:9px;background:rgba(143,166,194,.2);margin-top:8px;overflow:hidden}
.vis-bar i{display:block;height:100%;width:0;background:linear-gradient(90deg,var(--blue),var(--ok));transition:width .4s}
.vis-dot{position:absolute;z-index:1;width:9px;height:9px;border-radius:50%;background:var(--glow);box-shadow:0 0 14px var(--glow);transform:translate(-50%,-50%);pointer-events:none}
.vis-steps{list-style:none;margin:16px 0 0;padding:0;display:grid;grid-template-columns:repeat(4,1fr);gap:12px}
.vis-steps li{padding:14px 16px;border-radius:14px;border:1px solid var(--line);color:var(--muted);font-size:.88rem;opacity:.5;transition:opacity .4s,border-color .4s,background .4s}
.vis-steps li b{display:block;color:#fff;font-size:.95rem;margin-bottom:2px}
.vis-steps li.on{opacity:1;border-color:var(--violet);background:rgba(124,108,255,.12)}
.vis-steps li.done{opacity:1}
.vrefs{padding:22px 24px;margin-top:22px}
.vrefs p{color:var(--muted);margin:0 0 12px}
@media (max-width:1000px){.vis-steps{grid-template-columns:1fr 1fr}}
@media (max-width:640px){.vis{height:660px}.vis-node{padding:7px 9px;white-space:normal;max-width:44%}.vis-node b{font-size:.74rem}.vis-node small{font-size:.62rem}.vis-node.hub{padding:11px 12px}.vis-node.hub b{font-size:.85rem}.vis-node.goal{min-width:120px}.vis-steps{grid-template-columns:1fr}}
.garage{display:grid;grid-template-columns:1fr 1.1fr;gap:22px;margin-top:40px}
.gar-intro{padding:30px}
.gar-intro h3{font-size:1.35rem;font-weight:700;margin:0 0 12px;text-wrap:balance}
.gar-intro p{color:var(--muted);margin:0}
.gar-sheet{padding:10px 0}
.gar-row{display:grid;grid-template-columns:1.1fr 1fr 1fr;gap:12px;padding:11px 22px;border-bottom:1px solid var(--line);font-size:.9rem;align-items:center}
.gar-row:last-child{border-bottom:0}
.gar-head{font:600 .74rem var(--mono);color:var(--cyan);text-transform:uppercase;letter-spacing:.06em}
.gar-row .bad{color:#FF8A80}
.gar-row .good{color:var(--ok);font-weight:700}
.gar-row .bad::before{content:"✕ "}
.gar-row .good::before{content:"✓ "}
@media (max-width:900px){.garage{grid-template-columns:1fr}}
@media (max-width:480px){.gar-row{padding:10px 14px;font-size:.82rem;gap:8px}}
.dv{display:grid;grid-template-columns:1.1fr 1fr;gap:36px;align-items:center}
.pipe{padding:22px 24px}
.pipe-h{display:flex;justify-content:space-between;gap:10px;font:600 .78rem var(--mono);color:var(--muted);margin-bottom:14px}
.pipe-ok{color:var(--ok)}
.pipe ol{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}
.pipe li{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:11px 14px 11px 40px;border-radius:12px;border:1px solid var(--line);background:rgba(4,11,24,.6);position:relative;animation:pipeStep 7.2s infinite}
.pipe li::before{content:"";position:absolute;left:14px;top:50%;width:12px;height:12px;margin-top:-6px;border-radius:50%;border:2px solid var(--muted);animation:pipeDot 7.2s infinite}
.pipe li b{font-size:.92rem}
.pipe li small{font:500 .74rem var(--mono);color:var(--muted)}
.pipe li:nth-child(2),.pipe li:nth-child(2)::before{animation-delay:.9s}
.pipe li:nth-child(3),.pipe li:nth-child(3)::before{animation-delay:1.8s}
.pipe li:nth-child(4),.pipe li:nth-child(4)::before{animation-delay:2.7s}
.pipe li:nth-child(5),.pipe li:nth-child(5)::before{animation-delay:3.6s}
.pipe li:nth-child(6),.pipe li:nth-child(6)::before{animation-delay:4.5s}
@keyframes pipeStep{0%,8%{border-color:var(--line);box-shadow:none}12%,20%{border-color:var(--glow);box-shadow:0 0 18px -6px var(--glow)}26%,100%{border-color:rgba(61,220,151,.35);box-shadow:none}}
@keyframes pipeDot{0%,8%{border-color:var(--muted);background:none}12%,20%{border-color:var(--glow);background:var(--glow)}26%,100%{border-color:var(--ok);background:var(--ok)}}
@media (prefers-reduced-motion:reduce){.pipe li,.pipe li::before{animation:none}.pipe li::before{border-color:var(--ok);background:var(--ok)}}
@media (max-width:900px){.dv{grid-template-columns:1fr}}
.fsite{display:flex;justify-content:space-between;align-items:center;gap:18px;flex-wrap:wrap;padding:20px 24px;margin-bottom:28px}
.fsite b{display:block;color:#fff}
.fsite span{color:var(--muted)}
.xo{padding:30px;display:grid;grid-template-columns:1fr 1.25fr 1fr;gap:24px}
.xo h3{font:600 .8rem var(--mono);color:var(--cyan);margin:0 0 14px;text-transform:uppercase;letter-spacing:.06em}
.xo-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}
.xo-list li{padding:9px 12px;border-radius:10px;border:1px solid var(--line);background:rgba(4,11,24,.6);font-size:.88rem;display:flex;justify-content:space-between;align-items:center;gap:10px;opacity:.25;transition:opacity .4s,border-color .4s,box-shadow .4s,transform .4s}
.xo-list li.on{opacity:1}
.xo-list li.go{border-color:rgba(138,216,255,.7);box-shadow:0 0 18px -6px var(--glow);transform:translateX(6px)}
.xo-list li.gone{opacity:.25;transform:none;box-shadow:none;border-color:var(--line)}
.xo-list li small{color:var(--muted);font:500 .74rem var(--mono);white-space:nowrap}
.xo-list.xo-done li{opacity:1;border-color:rgba(61,220,151,.35);animation:xoIn .45s ease-out}
.xo-list.xo-done li small{color:var(--ok)}
@keyframes xoIn{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}
.xo-core{display:flex;flex-direction:column;gap:16px;min-width:0}
.xo-steps{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.xo-steps span{text-align:center;padding:8px 4px;border-radius:999px;border:1px solid var(--line);font:600 .74rem var(--mono);color:var(--muted);transition:all .4s}
.xo-steps span.on{color:#fff;border-color:var(--violet);background:rgba(124,108,255,.18);box-shadow:0 0 18px -4px var(--violet)}
.xo-steps span.done{color:var(--ok);border-color:rgba(61,220,151,.4)}
.xo-pods{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.pod{border:1px solid var(--line);border-radius:14px;padding:14px;background:rgba(10,26,51,.55);transition:border-color .5s,box-shadow .5s;min-width:0}
.pod.ready{border-color:rgba(138,216,255,.5);box-shadow:0 0 26px -12px var(--glow)}
.pod.busy{border-color:var(--blue);box-shadow:0 0 30px -6px var(--blue)}
.pod b{display:block;font-size:.95rem}
.pod small{color:var(--muted);font-size:.76rem}
.pod ul{list-style:none;margin:12px 0 0;padding:0;display:flex;flex-direction:column;gap:7px}
.pod li{display:flex;align-items:center;gap:8px;font-size:.8rem;color:var(--muted);opacity:.15;transition:opacity .4s}
.pod li.on{opacity:1;color:var(--text)}
.pod li i{width:24px;height:24px;border-radius:50%;flex:none;background:linear-gradient(135deg,var(--blue),var(--violet));display:grid;place-items:center;font:700 .6rem var(--mono);color:#fff;font-style:normal}
.xo-report{font:500 .78rem var(--mono);color:var(--muted);min-height:2.6em;margin:0}
.xo-kpis{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:12px}
.xo-kpis div{padding:10px 12px;border-radius:12px;border:1px solid var(--line);background:rgba(4,11,24,.6)}
.xo-kpis b{display:block;font:700 1.5rem var(--head);color:#fff}
.xo-kpis span{font-size:.76rem;color:var(--muted)}
@media (max-width:1000px){.prods{grid-template-columns:1fr 1fr}.roles{grid-template-columns:1fr 1fr}.steps4{grid-template-columns:1fr 1fr}.xo{grid-template-columns:1fr 1fr}.xo-core{grid-column:1/-1;order:-1}}
@media (max-width:640px){.prods,.roles,.steps4,.xo{grid-template-columns:1fr}.xo{padding:20px}}
.prod{padding:34px;display:flex;flex-direction:column;gap:14px}
.prod .for{font:600 .82rem var(--mono);color:var(--cyan)}
.prod h3{font-size:1.6rem;font-weight:700}
.prod p,.prod ul{color:var(--muted)}
.prod ul{margin:0;padding-left:20px}
.prod .status{align-self:flex-start;font-size:.85rem;font-weight:700;padding:4px 12px;border-radius:999px;background:rgba(61,220,151,.12);color:var(--ok);border:1px solid rgba(61,220,151,.3)}
.prod .link{margin-top:auto;font-weight:700;color:var(--glow);text-decoration:none}
.prod .link:hover{text-decoration:underline}

/* Formation */
.fpartner{display:grid;grid-template-columns:1.2fr .8fr;gap:28px;padding:30px;align-items:center;margin-bottom:46px}
.fpartner h3{font-size:1.35rem;font-weight:700;margin-bottom:8px}
.fpartner .lead{font-size:1.02rem}
.fperks{list-style:none;margin:22px 0 0;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:14px 22px}
.fperks li{color:var(--muted);font-size:.94rem;padding-inline-start:26px;position:relative}
.fperks li::before{content:"✓";position:absolute;inset-inline-start:0;top:0;color:var(--ok);font-weight:700}
.fperks b{color:#fff;display:block}
.cert{position:relative;aspect-ratio:1.42/1;border-radius:14px;padding:22px;background:linear-gradient(160deg,#F7FAFE,#E3ECF7);color:#0E2B52;overflow:hidden;box-shadow:0 30px 70px -30px rgba(79,179,236,.6);transform:rotate(-2deg)}
.cert::after{content:"";position:absolute;inset:0;background:linear-gradient(115deg,transparent 35%,rgba(255,255,255,.75) 48%,rgba(138,216,255,.35) 52%,transparent 65%);transform:translateX(-100%);animation:sheen 4.5s ease-in-out infinite}
@keyframes sheen{55%,100%{transform:translateX(100%)}}
.cert small{font:700 .62rem var(--body);letter-spacing:.12em;color:#4A5B74;display:block}
.cert b{display:block;font:700 1.05rem var(--head);margin:6px 0 2px}
.cert .who{font-size:.8rem;color:#4A5B74}
.cert .seals{position:absolute;bottom:16px;left:22px;right:22px;display:flex;justify-content:space-between;align-items:flex-end}
.seal{width:68px;height:68px;border-radius:50%;display:grid;place-items:center;text-align:center;font:700 .55rem/1.15 var(--body);color:#fff;padding:6px}
.seal.a{background:radial-gradient(circle,#1B8FD2,#0E2B52);box-shadow:0 0 0 3px #fff,0 0 0 5px #1B8FD2}
.seal.b{background:radial-gradient(circle,#7C6CFF,#3A2E9E);box-shadow:0 0 0 3px #fff,0 0 0 5px #7C6CFF}
.cert .sig{font:italic 600 .8rem Georgia,serif;color:#4A5B74;border-top:1px solid #9FB0C6;padding-top:4px;min-width:90px;text-align:center}
.fcats{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:22px}
.fcats button{background:rgba(255,255,255,.03);border:1px solid var(--line);color:var(--muted);font:600 .9rem var(--body);padding:8px 16px;border-radius:999px;cursor:pointer}
.fcats button[aria-pressed="true"]{background:rgba(79,179,236,.16);border-color:var(--cyan);color:#fff}
.fgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.fcard{padding:24px;display:flex;flex-direction:column;gap:10px}
.fcard[hidden]{display:none}
.fcard .ftag{align-self:flex-start;font:600 .74rem var(--mono);padding:3px 10px;border-radius:999px;border:1px solid var(--line);color:var(--cyan)}
.fcard .ftag.ia{color:#C9B9FF;border-color:rgba(179,169,255,.5)}
.fcard .ftag.bi{color:var(--glow)}
.fcard .ftag.dg{color:var(--ok);border-color:rgba(61,220,151,.4)}
.fcard .ftag.dir{color:#FFC14D;border-color:rgba(255,193,77,.45)}
.fcard h3{font-size:1.05rem;font-weight:700;line-height:1.3}
.fcard p{color:var(--muted);font-size:.93rem}
.fmeta{display:flex;flex-wrap:wrap;gap:6px 14px;font-size:.85rem;color:var(--muted);margin-top:auto;padding-top:8px;border-top:1px solid var(--line)}
.fmeta b{color:#fff;font-weight:600}
.fcard .fbtn{background:none;border:0;padding:0;color:var(--glow);font:700 .9rem var(--body);cursor:pointer;text-align:start}
.fcard .fbtn:hover{text-decoration:underline}
.fsub{display:flex;justify-content:space-between;align-items:end;gap:20px;flex-wrap:wrap;margin:64px 0 20px}
.fsub h3{font-size:1.5rem;font-weight:700}
.fsub p{color:var(--muted);font-size:.95rem}
.cal{width:100%;border-collapse:collapse;font-size:.96rem}
.cal th{text-align:start;font:600 .76rem var(--mono);color:var(--cyan);padding:12px 16px;border-bottom:1px solid var(--line)}
.cal td{padding:14px 16px;border-bottom:1px solid rgba(79,179,236,.1);vertical-align:middle}
.cal tr:last-child td{border-bottom:0}
.cal .d{font-weight:700;color:#fff;white-space:nowrap}
.cal .t{font-weight:600;color:#fff}
.cal .m{color:var(--muted);font-size:.9rem}
.cal .fmt{display:inline-block;font-size:.76rem;font-weight:700;padding:2px 9px;border-radius:999px;margin:2px 4px 2px 0;background:rgba(79,179,236,.12);color:var(--glow)}
.cal .fmt.dist{background:rgba(124,108,255,.15);color:#C9B9FF}
.cal .go{white-space:nowrap;text-align:end}
.cal .go button{padding:8px 14px;font-size:.85rem}
.calwrap{overflow-x:auto}
.freg{margin-top:26px;display:grid;grid-template-columns:repeat(3,1fr);gap:16px;padding:30px}
.freg .full{grid-column:1/-1}
.freg .w2{grid-column:span 2}
.freg h3{font-size:1.25rem;font-weight:700}
.fpay{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}
.fpay span{font:700 .78rem var(--mono);padding:4px 10px;border-radius:999px;border:1px solid rgba(61,220,151,.4);color:var(--ok);background:rgba(61,220,151,.07)}
@media (max-width:1000px){.fpartner{grid-template-columns:1fr}.cert{max-width:420px}.fgrid{grid-template-columns:1fr 1fr}}
@media (max-width:700px){.fgrid,.fperks{grid-template-columns:1fr}.freg{grid-template-columns:1fr;padding:22px}.freg .w2{grid-column:auto}
  .cal thead{display:none}.cal tr{display:grid;grid-template-columns:1fr auto;gap:4px 12px;padding:14px 4px;border-bottom:1px solid var(--line)}
  .cal td{border:0;padding:0}.cal td.d{grid-column:1}.cal td.go{grid-column:2;grid-row:1/4;align-self:center}.cal td.t,.cal td.m{grid-column:1}}

/* Nos solutions (accueil) */
.svc{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.svc a{display:flex;flex-direction:column;gap:10px;padding:28px;text-decoration:none;min-height:220px}
.svc a h3{font-size:1.15rem;font-weight:700}
.svc a p{color:var(--muted);font-size:.96rem}
.svc a .go{margin-top:auto;font-weight:700;color:var(--glow)}
.svc a:hover{border-color:rgba(138,216,255,.55)}
.svc .k{font:600 .78rem var(--mono);color:var(--cyan)}
@media (max-width:1000px){.svc{grid-template-columns:1fr 1fr}}
@media (max-width:640px){.svc{grid-template-columns:1fr}}
/* Bandeau d'appel */
.cta-band{padding:40px 0 100px}
.cta-in{padding:44px;display:flex;justify-content:space-between;align-items:center;gap:28px;flex-wrap:wrap;background:radial-gradient(circle at 15% 0%,rgba(124,108,255,.35),transparent 60%),radial-gradient(circle at 90% 100%,rgba(27,143,210,.35),transparent 60%),rgba(6,18,38,.7)}
.cta-in h2{font-size:clamp(1.5rem,2.6vw,2.1rem)}
.cta-in p{color:var(--muted);margin-top:10px;max-width:56ch}
/* En-tête de page intérieure */
.page-hero{padding:150px 0 30px}
.crumbs{list-style:none;display:flex;gap:8px;padding:0;margin:0 0 18px;font-size:.88rem;color:var(--muted)}
.crumbs li+li::before{content:"/";margin-right:8px;opacity:.5}
.crumbs a{text-decoration:none}
.crumbs a:hover{color:#fff}
.page-hero h1{font-size:clamp(2rem,4vw,3.2rem);max-width:22ch}
.page-hero .lead{margin-top:20px}
.page-hero + section{padding-top:60px}

/* Écosystème */
.eco{display:grid;grid-template-columns:1fr 1fr;gap:22px}
.ent{padding:34px;display:flex;flex-direction:column;gap:14px}
.ent .role{font:600 .82rem var(--mono);color:var(--cyan)}
.ent h3{font-size:1.5rem;font-weight:700}
.ent p,.ent ul{color:var(--muted)}
.ent ul{margin:0;padding-left:20px}
.ent .facts{display:flex;gap:30px;flex-wrap:wrap;margin-top:6px}
.ent .facts strong{display:block;font:700 1.8rem var(--head);color:#fff}
.ent .facts span{font-size:.9rem;color:var(--muted)}
.ent .link{margin-top:auto;font-weight:700;color:var(--glow);text-decoration:none}
.also{margin-top:22px;padding:22px 28px;display:flex;flex-wrap:wrap;gap:10px 26px;align-items:center;color:var(--muted)}
.also b{color:#fff;font-weight:700}

/* Réseau */
.net{display:grid;grid-template-columns:.85fr 1.15fr;gap:48px;align-items:start}
.cur{list-style:none;margin:0;padding:8px 28px}
.cur li{display:grid;grid-template-columns:1fr 1.4fr auto;gap:12px;align-items:center;padding:16px 0;border-bottom:1px solid var(--line)}
.cur li:last-child{border-bottom:0}
.cur .c{font-weight:700;color:#fff}
.cur .pn{color:var(--muted)}
.cur .code{font:700 1.05rem var(--mono);color:var(--glow);text-shadow:0 0 14px rgba(79,179,236,.7)}
.become{margin-top:30px;display:flex;gap:16px;align-items:center;flex-wrap:wrap;color:var(--muted)}

/* Fondateur */
.founder-grid{display:grid;grid-template-columns:300px 1fr;gap:56px;align-items:start}
.portrait{aspect-ratio:4/5;display:grid;place-items:center;font:700 4rem var(--head)}
.portrait img{width:100%;height:100%;object-fit:cover}
.portrait span{position:relative}
.timeline{list-style:none;margin:36px 0 0;padding:0;border-left:1px solid var(--line)}
.timeline li{position:relative;padding:0 0 26px 28px}
.timeline li::before{content:"";position:absolute;left:-6px;top:7px;width:11px;height:11px;border-radius:50%;background:var(--bg);border:2px solid var(--cyan);box-shadow:0 0 12px var(--cyan)}
.timeline .yr{font:600 .85rem var(--mono);color:var(--cyan)}
.timeline h3{font-size:1rem;margin:4px 0}
.timeline p{color:var(--muted);font-size:.97rem}
.refs{margin-top:16px;display:flex;flex-wrap:wrap;gap:10px}
.refs span{border:1px solid var(--line);border-radius:999px;padding:6px 14px;font-size:.9rem;color:var(--muted);background:rgba(255,255,255,.02)}
.inline{color:var(--glow);font-weight:700}

/* Contact */
.contact-grid{display:grid;grid-template-columns:.85fr 1.15fr;gap:48px}
.direct{margin-top:28px;display:flex;flex-direction:column;gap:12px}
.direct a{font-weight:700;text-decoration:none;font-size:1.08rem}
.direct a:hover{color:var(--glow)}
form.project{display:grid;grid-template-columns:1fr 1fr;gap:18px;padding:32px}
form.project .full{grid-column:1/-1}
form label{display:block;font-weight:700;font-size:.92rem;margin-bottom:6px}
form input,form select,form textarea{width:100%;font:400 1rem var(--body);color:var(--text);background:rgba(2,8,20,.6);border:1px solid var(--line);border-radius:10px;padding:12px 14px}
form select option{background:#081A33}
form textarea{min-height:130px;resize:vertical}
form input:focus,form select:focus,form textarea:focus{border-color:var(--cyan);outline:none;box-shadow:0 0 0 3px rgba(79,179,236,.2)}
.form-actions{display:flex;gap:12px;flex-wrap:wrap}
.form-note{font-size:.9rem;color:var(--muted)}
.form-error{color:#FF8A80;font-weight:700}
.form-ok{color:#7CE3B4;font-weight:700}
.hp{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}

footer{border-top:1px solid var(--line);padding:34px 0;color:var(--muted);font-size:.93rem}
footer .wrap{display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap;align-items:center}
footer .l{display:flex;align-items:center;gap:14px}
footer img{height:30px;width:auto}
footer a{text-decoration:none;font-weight:700;margin-left:18px}
footer a:hover{color:var(--glow)}

/* Responsive */
@media (max-width:1000px){
  .modern{grid-template-columns:1fr}
  .guar{grid-template-columns:1fr 1fr}
  .mig-foot{grid-template-columns:1fr}
  .hero-grid,.demo,.assist,.net,.contact-grid,.founder-grid{grid-template-columns:1fr}
  .globe-wrap{max-width:440px}
  .caps{grid-template-columns:1fr 1fr}
  .method{grid-template-columns:1fr 1fr;gap:28px}
  .method li::after{display:none}
  .stats{grid-template-columns:1fr 1fr}
  .founder-grid .portrait{max-width:240px}
}
@media (max-width:820px){
  .menu-btn{display:block}
  nav.main{position:absolute;top:70px;left:24px;right:24px;display:none;background:rgba(6,18,38,.96);border:1px solid var(--line);border-radius:20px;backdrop-filter:blur(16px)}
  nav.main.open{display:block;max-height:calc(100vh - 90px);overflow-y:auto}
  nav.main ul{flex-direction:column;align-items:stretch;gap:0;padding:12px 20px 18px}
  nav.main a{display:block;padding:11px 0}
  nav.main .btn{margin-top:8px}
  .dd-btn{display:none}
  nav.main .dd-menu{display:flex!important;position:static;background:none;border:0;box-shadow:none;padding:0;min-width:0}
  nav.main .dd-menu a{padding:11px 0}
}
@media (max-width:860px){
  .mig{padding:28px 18px}
  .mig-grid{grid-template-columns:1fr;gap:36px}
  .msrc{flex-direction:row;flex-wrap:wrap;justify-content:center}
  .msrc li{max-width:none;flex:1 1 140px;text-align:center}
  .mdst{flex-direction:row;flex-wrap:wrap;justify-content:center}
  .mdst li{margin:0;flex:1 1 140px;text-align:center}
  .mig-col h3,.dst-h{text-align:center}
  .core{width:180px;height:180px}
}
@media (max-width:700px){
  section{padding:80px 0}
  .guar{grid-template-columns:1fr}
  .mcount{grid-template-columns:1fr 1fr}
  .mcount div:nth-child(3){grid-column:1/-1}
  .stack-wrap{height:380px}
  .plate{width:190px;height:190px;left:-95px;top:-95px}
  .stack-tags{gap:24px}
  .wrap,.top .bar{padding:0 16px}
  nav.main{left:16px;right:16px}
  .hero{padding-top:130px}
  .caps,.prods,.eco{grid-template-columns:1fr}
  .method{grid-template-columns:1fr}
  form.project{grid-template-columns:1fr;padding:22px}
  .prod,.ent{padding:26px}
  .cur{padding:4px 18px}
  .cur li{grid-template-columns:1fr auto}
  .cur .pn{grid-column:1;grid-row:2;font-size:.92rem;margin-top:-8px}
  .cur .code{grid-row:1/3;grid-column:2}
  footer a{margin:0 18px 0 0}
  .stats strong{font-size:1.7rem}
}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation:none!important;transition:none!important}
  .js .rv{opacity:1;transform:none}
}
/* multi-pages */
.lang a{white-space:nowrap}

.fnav{max-width:var(--max);margin:0 auto 22px;padding:0 24px}
.fnav ul{list-style:none;margin:0;padding:0 0 22px;display:flex;flex-wrap:wrap;gap:10px 22px;border-bottom:1px solid var(--line)}
.fnav a{margin:0!important;font-weight:500!important;color:var(--muted)}
.fnav a:hover{color:#fff}
@media (max-width:700px){.fnav{padding:0 16px}}

/* Archivage physique : apparition progressive des étapes au défilement */
#archives .steps4 li{opacity:0;transform:translateY(18px);transition:opacity .65s ease,transform .65s cubic-bezier(.2,.7,.2,1);}
#archives .steps4.in li{opacity:1;transform:translateY(0);}
#archives .steps4.in li:nth-child(1){transition-delay:.08s}
#archives .steps4.in li:nth-child(2){transition-delay:.20s}
#archives .steps4.in li:nth-child(3){transition-delay:.32s}
#archives .steps4.in li:nth-child(4){transition-delay:.44s}
@media (prefers-reduced-motion:reduce){#archives .steps4 li{opacity:1;transform:none;transition:none}}


/* Pied de page en colonnes */
footer{padding:46px 0 0}
.fcols{display:grid;grid-template-columns:1.3fr 3fr;gap:40px;align-items:start}
.flogo{display:inline-flex;align-items:center;gap:12px;margin:0!important;color:#fff}
.flogo span{font:700 1rem var(--head);line-height:1.1}
.flogo small{display:block;font:600 .7rem var(--mono);color:var(--cyan);letter-spacing:.08em}
.fct{display:flex;flex-direction:column;gap:6px;margin:18px 0 0}
.fct a{margin:0!important;font-weight:500!important;color:var(--muted)}
.fgrp-wrap{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.fgrp h4{margin:0 0 12px;font:600 .74rem var(--mono);color:var(--cyan);text-transform:uppercase;letter-spacing:.08em}
.fgrp ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}
.fgrp a{margin:0!important;font-weight:500!important;color:var(--muted);font-size:.9rem}
.fgrp a:hover,.fct a:hover{color:#fff}
.flegal{display:flex;justify-content:space-between;gap:14px;flex-wrap:wrap;margin-top:34px;padding-top:16px;padding-bottom:20px;border-top:1px solid var(--line);font-size:.78rem;color:var(--muted)}
.flegal .fl{display:flex;gap:16px}
.flegal a{margin:0!important;font-weight:400!important;color:var(--muted);font-size:.78rem}
.flegal a:hover{color:#fff}
@media (max-width:860px){.fcols{grid-template-columns:1fr}.fgrp-wrap{grid-template-columns:1fr 1fr}}
@media (max-width:480px){.fgrp-wrap{grid-template-columns:1fr}}
/* Menu : libellés sur une ligne */
nav.main > ul > li > a, nav.main .dd-btn{white-space:nowrap}
/* Page Équipe : titres des cartes */
.roles article h2{font-size:1.1rem;font-weight:700;margin:0 0 8px;line-height:1.25}

/* ---- Archivage physique : rayonnage indexé ---- */
.arc{display:grid;grid-template-columns:.9fr 1.6fr 1fr;gap:26px;padding:28px;margin-top:30px;align-items:start}
.arc h3{font:600 .8rem var(--mono);color:var(--cyan);margin:0 0 14px;text-transform:uppercase;letter-spacing:.06em}
.arc-pile{position:relative;height:190px}
.bx{position:absolute;width:74px;height:54px;border-radius:6px;border:1px dashed rgba(143,166,194,.6);background:rgba(143,166,194,.08);display:grid;place-items:center;font:700 1.1rem var(--mono);color:var(--muted);transition:transform .5s,opacity .5s}
.bx.b0{left:6px;top:110px;transform:rotate(-6deg)}.bx.b1{left:78px;top:118px;transform:rotate(5deg)}.bx.b2{left:20px;top:58px;transform:rotate(4deg)}
.bx.b3{left:96px;top:64px;transform:rotate(-8deg)}.bx.b4{left:44px;top:8px;transform:rotate(-3deg)}.bx.b5{left:120px;top:12px;transform:rotate(9deg)}
.bx.go{transform:translateX(70px) rotate(0) scale(.8);opacity:0}
.arc-cap{color:var(--muted);font-size:.85rem;margin:8px 0 0}
.arc-stages{list-style:none;margin:0 0 12px;padding:0;display:flex;flex-wrap:wrap;gap:6px}
.arc-stages li{font:600 .74rem var(--mono);padding:5px 10px;border-radius:999px;border:1px solid var(--line);color:var(--muted);background:rgba(4,11,24,.8);transition:all .3s}
.arc-stages li.on{color:#04101F;background:var(--glow);border-color:var(--glow);box-shadow:0 0 16px rgba(138,216,255,.6)}
.arc-shelf{position:relative;display:grid;grid-template-columns:repeat(6,1fr);gap:8px;padding:12px;border-radius:12px;background:repeating-linear-gradient(180deg,transparent 0,transparent 46px,rgba(79,179,236,.25) 46px,rgba(79,179,236,.25) 48px);border:1px solid var(--line);overflow:hidden}
.slot{height:38px;border-radius:5px;border:1px dashed rgba(143,166,194,.25);position:relative;transition:all .35s;display:block}
.slot.on{border:1px solid rgba(138,216,255,.45);background:linear-gradient(180deg,rgba(27,143,210,.28),rgba(27,143,210,.12))}
.slot.on::before{content:"";position:absolute;left:6px;right:6px;top:7px;height:9px;background:repeating-linear-gradient(90deg,#CFE3F7 0 1px,transparent 1px 3px,#CFE3F7 3px 5px,transparent 5px 6px);opacity:.75}
.slot.on::after{content:attr(data-c);position:absolute;left:0;right:0;bottom:3px;text-align:center;font:600 .58rem var(--mono);color:#CFE3F7}
.slot.new{animation:slotIn .5s ease-out}
@keyframes slotIn{from{transform:translateY(-14px);opacity:0}to{transform:none;opacity:1}}
.slot.hit{border-color:var(--glow);box-shadow:0 0 18px var(--glow);background:rgba(138,216,255,.35)}
.slot.exp{border-color:#FF8A80;background:rgba(255,138,128,.25);box-shadow:0 0 14px rgba(255,138,128,.6)}
.arc-shelf .beam{position:absolute;top:0;bottom:0;width:60px;left:-70px;background:linear-gradient(90deg,transparent,rgba(138,216,255,.35),transparent);pointer-events:none;z-index:2}
.arc-shelf.arc-scan .beam{animation:beam 1.1s ease-in-out}
@keyframes beam{from{left:-70px}to{left:100%}}
.arc-q{display:flex;gap:10px;align-items:center;margin-top:12px;padding:10px 14px;border-radius:999px;border:1px solid var(--line);background:rgba(4,11,24,.7);font:500 .84rem var(--mono);min-height:42px}
.arc-q span{color:var(--cyan)}
.arc-q b{color:#fff;font-weight:600}
.arc-card{padding:12px 14px;border-radius:12px;border:1px solid var(--line);background:rgba(4,11,24,.75);margin-bottom:10px;transition:border-color .3s,box-shadow .3s}
.arc-card b{display:block;font-size:.95rem}
.arc-card .st{display:block;color:var(--muted);font-size:.8rem;min-height:2.4em;margin-top:2px}
.arc-card.ged{border-color:rgba(61,220,151,.35)}.arc-card.ged.ping{border-color:var(--ok);box-shadow:0 0 22px -4px rgba(61,220,151,.8)}
.arc-card.destr{border-color:rgba(255,138,128,.3)}.arc-card.destr.ping{border-color:#FF8A80;box-shadow:0 0 22px -4px rgba(255,138,128,.7)}
.arc-k{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.arc-k div{padding:10px 12px;border-radius:12px;border:1px solid var(--line);background:rgba(4,11,24,.6)}
.arc-k strong{display:block;font:700 1.4rem var(--head);color:#fff;font-variant-numeric:tabular-nums}
.arc-k span{font-size:.76rem;color:var(--muted)}
@media (max-width:1000px){.arc{grid-template-columns:1fr 1fr}.arc-mid{grid-column:1/-1;order:-1}}
@media (max-width:640px){.arc{grid-template-columns:1fr;padding:18px}.arc-pile{height:150px}.slot{height:32px}.arc-shelf{gap:5px;padding:8px}}
/* ---- Modernisation : atelier applicatif ---- */
.shop{display:grid;grid-template-columns:1.25fr 1fr;gap:30px;padding:30px;margin-top:30px;align-items:center}
.shop-stage{display:flex;flex-direction:column;align-items:center;gap:14px}
.app{width:min(100%,430px);border-radius:3px;border:2px solid #A0A0A0;background:#D4D0C8;color:#111;font:12px Tahoma,Verdana,sans-serif;box-shadow:4px 4px 0 rgba(0,0,0,.35);transition:all .9s cubic-bezier(.2,.7,.2,1);overflow:hidden}
.app-tb{display:flex;align-items:center;gap:8px;padding:5px 8px;background:linear-gradient(90deg,#0A246A,#A6CAF0);color:#fff;font-weight:700;transition:all .9s}
.app-tb .t-new{display:none}
.app-tb .ctl{margin-left:auto;display:flex;gap:3px}
.app-tb .ctl i{width:14px;height:12px;background:#D4D0C8;border:1px solid #fff;border-right-color:#404040;border-bottom-color:#404040}
.app-body{padding:12px;display:flex;flex-direction:column;gap:8px}
.app .ask{display:none}
.app .row{display:grid;grid-template-columns:110px 1fr;align-items:center;gap:8px}
.app .row i{height:18px;background:#fff;border:1px solid #808080;border-right-color:#fff;border-bottom-color:#fff}
.app .grid{display:grid;grid-template-columns:repeat(3,1fr);gap:2px;margin-top:4px}
.app .grid i{height:16px;background:#fff;border:1px solid #C0C0C0}
.app.new{border:1px solid rgba(138,216,255,.4);border-radius:14px;background:rgba(6,18,38,.95);color:var(--text);font:14px var(--body);box-shadow:0 20px 60px -20px rgba(79,179,236,.6)}
.app.new .app-tb{background:linear-gradient(90deg,rgba(27,143,210,.5),rgba(124,108,255,.5));padding:10px 14px}
.app.new .t-old{display:none}.app.new .t-new{display:inline}
.app.new .ctl i{border:0;width:9px;height:9px;border-radius:50%;background:rgba(255,255,255,.5)}
.app.new .ask{display:block;padding:8px 12px;border-radius:999px;border:1px solid rgba(138,216,255,.4);color:var(--muted);font-size:.85rem}
.app.new .row i{height:20px;background:rgba(79,179,236,.12);border:0;border-radius:6px}
.app.new .grid i{background:rgba(79,179,236,.1);border:0;border-radius:4px;height:18px}
.app.new .grid i:nth-child(2){background:rgba(61,220,151,.25)}.app.new .grid i:nth-child(5){background:rgba(255,138,128,.25)}
.shop .tags{display:flex;flex-wrap:wrap;gap:6px;justify-content:center;max-width:430px}
.shop .tag{font:600 .74rem var(--mono);padding:5px 10px;border-radius:999px;border:1px solid rgba(255,138,128,.55);color:#FFB4AC;background:rgba(255,138,128,.08);transition:all .4s}
.shop .tag.flip{transform:scale(.6);opacity:0}
.shop .tag.ok{border-color:rgba(61,220,151,.6);color:var(--ok);background:rgba(61,220,151,.1)}
.shop .tag.hot{box-shadow:0 0 14px rgba(255,138,128,.7)}
.lift{position:relative;width:min(100%,430px);height:34px}
.lift .plat{position:absolute;left:0;right:0;top:0;height:8px;border-radius:4px;background:linear-gradient(90deg,#3a4b63,#5b708f,#3a4b63)}
.lift .pist{position:absolute;top:8px;width:10px;height:26px;background:linear-gradient(90deg,#2b3a50,#6d84a6,#2b3a50)}
.lift .pist.l{left:20%}.lift .pist.r{right:20%}
.shop-panel h3{font:600 .8rem var(--mono);color:var(--cyan);margin:0 0 12px;text-transform:uppercase;letter-spacing:.06em}
.jobs{list-style:none;margin:0 0 18px;padding:0;display:flex;flex-direction:column;gap:8px}
.jobs li{display:grid;grid-template-columns:1fr 90px 74px;gap:10px;align-items:center;padding:9px 12px;border-radius:10px;border:1px solid var(--line);background:rgba(4,11,24,.6);font-size:.88rem;transition:border-color .3s}
.jobs li.run{border-color:var(--glow)}
.jobs li.ok{border-color:rgba(61,220,151,.4)}
.jobs .bar{height:6px;border-radius:9px;background:rgba(143,166,194,.2);overflow:hidden;display:block}
.jobs .bar b{display:block;height:100%;width:0;background:linear-gradient(90deg,var(--blue),var(--glow))}
.jobs li.ok .bar b{background:var(--ok)}
.jobs em{font:500 .72rem var(--mono);color:var(--muted);font-style:normal;text-align:right}
.jobs li.ok em{color:var(--ok)}
.gauge{position:relative;text-align:center;padding:6px 0 0}
.gauge svg{width:220px;max-width:100%;height:auto}
.g-bg,.g-fg{fill:none;stroke-width:12;stroke-linecap:round}
.g-bg{stroke:rgba(143,166,194,.2)}
.g-fg{stroke:url(#none);stroke:#FF8A80;stroke-dasharray:188.5;stroke-dashoffset:135.7;transition:stroke-dashoffset .8s,stroke .8s}
.g-num{margin-top:-46px;font:700 2rem var(--head);color:#fff}
.g-num span{font:500 .8rem var(--mono);color:var(--muted);margin-left:2px}
.g-l{font-size:.82rem;color:var(--muted);margin-top:4px}
.g-st{font:600 .8rem var(--mono);color:var(--muted);margin-top:6px}
.shop.done .g-st{color:var(--ok)}
@media (max-width:900px){.shop{grid-template-columns:1fr;padding:20px}}
@media (max-width:480px){.jobs li{grid-template-columns:1fr 60px;}.jobs em{grid-column:1/-1;text-align:left}.app .row{grid-template-columns:90px 1fr}}
/* Accueil : bandeau des 4 étapes (texte, pas des chiffres) */
.stats strong{font-size:1.15rem;font-weight:700;margin-bottom:6px}
.stats div{padding:20px 22px}
.nb{white-space:nowrap}

/* ---- IA : réseau de neurones ---- */
.brain{display:grid;grid-template-columns:1fr 1.3fr 1fr;gap:24px;padding:28px;margin:6px 0 34px;align-items:center}
.brain h3{font:600 .8rem var(--mono);color:var(--cyan);margin:0 0 12px;text-transform:uppercase;letter-spacing:.06em}
.br-in,.br-out{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}
.br-in li{padding:10px 14px;border-radius:10px;border:1px solid var(--line);background:rgba(4,11,24,.7);font-size:.88rem;color:#C6D3E3;transition:all .3s}
.br-in li.on{border-color:var(--glow);color:#fff;box-shadow:0 0 18px -4px rgba(138,216,255,.8)}
.br-out{min-height:190px}
.br-out li{padding:10px 14px;border-radius:10px;border:1px solid rgba(61,220,151,.35);background:rgba(61,220,151,.07);font-size:.86rem;color:#D7FBEA;animation:brIn .5s ease-out}
.br-out li:first-child{border-color:var(--ok);box-shadow:0 0 18px -6px rgba(61,220,151,.8)}
.br-out li:nth-child(n+3){opacity:.55}
@keyframes brIn{from{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:none}}
.br-mid{position:relative;height:300px}
.br-mid canvas{position:absolute;inset:0;width:100%;height:100%}
.br-core{position:absolute;left:50%;bottom:-6px;transform:translateX(-50%);white-space:nowrap;font:600 .74rem var(--mono);color:var(--muted);padding:5px 12px;border-radius:999px;border:1px solid rgba(124,108,255,.5);background:rgba(6,18,38,.9)}
.br-k{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin-top:14px}
.br-k div{padding:8px 10px;border-radius:10px;border:1px solid var(--line);background:rgba(4,11,24,.6)}
.br-k strong{display:block;font:700 1.15rem var(--head);color:#fff;font-variant-numeric:tabular-nums}
.br-k span{font-size:.7rem;color:var(--muted)}
.br-sim{font:400 .74rem var(--mono);color:var(--muted);margin:8px 0 0}
@media (max-width:1000px){.brain{grid-template-columns:1fr 1fr}.br-mid{grid-column:1/-1;order:-1;height:220px}}
@media (max-width:640px){.brain{grid-template-columns:1fr;padding:18px}.br-out{min-height:0}}
/* ---- Pages légales : typographie compacte ---- */
.legal-hero{padding:140px 0 10px}
.legal-hero h1{font-size:clamp(1.6rem,3vw,2.2rem)}
.legal-hero .lead{font-size:1rem}
.legal-content{max-width:820px;padding:28px 32px;font-size:.92rem;line-height:1.65}
.legal-content h2{font-size:1.05rem;font-weight:700;margin:22px 0 6px}
.legal-content h2:first-child{margin-top:0}
.legal-content p{margin:0 0 10px;color:var(--muted)}
.legal-content p a{color:var(--glow)}
.legal-content .note{font-size:.82rem;margin-top:16px}
.legal-content .btn{margin-top:14px;font-size:.88rem;padding:10px 18px}
/* ---- À propos : logo ---- */
.about-logo{display:block;width:180px;height:auto;margin:0 0 18px}

.hero h1 .grad[data-scramble]{white-space:pre-line}
.br-k{grid-template-columns:1fr;gap:6px}
.br-k div{display:flex;align-items:baseline;gap:10px;padding:8px 12px}
.br-k strong{font-size:1.05rem;min-width:56px}
