Files
html/wevia-em-big4.html
opus d5edaa769c
Some checks failed
WEVAL NonReg / nonreg (push) Has been cancelled
auto-sync via WEVIA git_sync_all intent 2026-04-21T14:56:43+02:00
2026-04-21 14:56:43 +02:00

219 lines
19 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!DOCTYPE html>
<html lang="fr">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width,initial-scale=1.0">
<title>WEVIA Enterprise Model</title>
<link href="https://fonts.googleapis.com/css2?family=Outfit:wght@300;400;500;600;700;800;900&family=IBM+Plex+Mono:wght@400;500;600;700&display=swap" rel="stylesheet">
<style>
:root{--bg:#080a10;--sf:rgba(255,255,255,.03);--bd:rgba(255,255,255,.06);--tx:#eef0f4;--t2:rgba(255,255,255,.5);--t3:rgba(255,255,255,.22);--ac:#4f7df9;--cy:#22d3ee;--gr:#10b981;--or:#f59e0b;--pu:#a78bfa;--pk:#f472b6}
*{margin:0;padding:0;box-sizing:border-box}
html,body{height:100%;overflow:hidden;font-family:'Outfit',system-ui;background:var(--bg);color:var(--tx)}
.dk{position:relative;width:100vw;height:100vh}
.sl{position:absolute;inset:0;opacity:0;pointer-events:none;transition:opacity .7s cubic-bezier(.4,0,.2,1);display:flex;flex-direction:column;overflow:hidden}
.sl.on{opacity:1;pointer-events:all}
.gl{background:var(--sf);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border:1px solid var(--bd);border-radius:14px}
.gl2{background:var(--sf);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border:1px solid var(--bd);border-radius:8px}
.nv{position:fixed;bottom:10px;left:50%;transform:translateX(-50%);z-index:200;display:flex;align-items:center;gap:5px;background:rgba(8,10,16,.9);backdrop-filter:blur(20px);border:1px solid var(--bd);border-radius:100px;padding:4px 12px}
.dot{width:7px;height:7px;border-radius:50%;background:rgba(255,255,255,.1);border:none;cursor:pointer;transition:.3s}
.dot.on{background:var(--cy);box-shadow:0 0 10px rgba(34,211,238,.5)}
.abtn{background:none;border:1px solid var(--bd);color:var(--t3);border-radius:50%;width:22px;height:22px;display:flex;align-items:center;justify-content:center;cursor:pointer;font-size:10px;transition:.3s}
.abtn:hover{border-color:var(--cy);color:var(--cy)}
@keyframes pu{0%,100%{opacity:1}50%{opacity:.3}}
@keyframes cntUp{0%{opacity:0;transform:scale(.6) translateY(30px)}60%{transform:scale(1.02) translateY(-4px)}100%{opacity:1;transform:scale(1) translateY(0)}}
@keyframes fUp{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}
@keyframes glw{0%,100%{box-shadow:0 0 15px rgba(34,211,238,.15)}50%{box-shadow:0 0 25px rgba(34,211,238,.3)}}
.s1{background:var(--bg);justify-content:center;align-items:center;text-align:center;padding:20px;position:relative}
.s1::before{content:'';position:absolute;inset:0;background:radial-gradient(ellipse 50% 42% at 50% 40%,rgba(79,125,249,.09),transparent),radial-gradient(ellipse 30% 22% at 72% 72%,rgba(34,211,238,.06),transparent)}
.s1-g{position:absolute;inset:0;background-image:linear-gradient(rgba(79,125,249,.025) 1px,transparent 1px),linear-gradient(90deg,rgba(79,125,249,.025) 1px,transparent 1px);background-size:28px 28px;mask-image:radial-gradient(ellipse 42% 42% at 50% 50%,#000,transparent)}
.s1-hd{position:absolute;top:12px;left:14px;right:14px;display:flex;align-items:center;gap:7px;z-index:3}
.s1-av{width:38px;height:38px;border-radius:10px;object-fit:cover;border:1.5px solid var(--bd)}
.s1-br b{font-size:11px;font-weight:800}.s1-br small{font-size:6.5px;letter-spacing:1.8px;color:var(--cy);font-weight:600;display:block}
.s1-lv{margin-left:auto;display:flex;align-items:center;gap:3px;font-size:7.5px;font-weight:700;color:var(--gr);padding:2px 9px;border-radius:100px;border:1px solid rgba(16,185,129,.15);background:rgba(16,185,129,.06)}
.s1-lv::before{content:'';width:4px;height:4px;border-radius:50%;background:var(--gr);animation:pu 2s infinite}
.s1-n{font-family:'IBM Plex Mono';font-size:clamp(4.5rem,13vw,8.5rem);font-weight:700;background:linear-gradient(155deg,var(--ac),var(--cy));-webkit-background-clip:text;-webkit-text-fill-color:transparent;line-height:.85;z-index:1;animation:cntUp 1.1s cubic-bezier(.16,1,.3,1) both}
.s1-lb{font-size:clamp(.7rem,1.8vw,1rem);font-weight:500;color:var(--t2);letter-spacing:3px;text-transform:uppercase;margin-top:3px;z-index:1;animation:fUp .7s .3s both}
.s1-tt{font-size:clamp(.9rem,2.5vw,1.5rem);font-weight:700;margin-top:14px;line-height:1.25;max-width:400px;z-index:1;animation:fUp .7s .5s both}
.s1-tt em{font-style:normal;color:var(--cy)}
.s1-tg{display:flex;gap:5px;flex-wrap:wrap;justify-content:center;margin-top:14px;z-index:1;animation:fUp .7s .7s both}
.s1-t{padding:4px 10px;font-size:9.5px;font-weight:600;font-family:'IBM Plex Mono'}
.s1-t b{color:var(--cy)}.s1-t span{color:var(--t3)}
.s2{background:var(--bg);padding:14px;justify-content:center;align-items:center;position:relative}
.s2::before{content:'';position:absolute;inset:0;background:radial-gradient(ellipse 40% 30% at 50% 50%,rgba(79,125,249,.04),transparent)}
.s2-h{font-size:clamp(.7rem,1.6vw,.9rem);font-weight:800;text-align:center;margin-bottom:3px;z-index:1}
.s2-p{font-size:.5rem;color:var(--t3);text-align:center;margin-bottom:8px;z-index:1}
.s2-sk{display:flex;flex-direction:column;gap:4px;max-width:420px;width:100%;z-index:1}
.s2-r{display:flex;align-items:center;gap:7px;padding:7px 10px;transition:.35s}
.s2-r:hover{transform:translateX(3px);border-color:rgba(255,255,255,.1)}
.s2-i{font-size:15px;width:26px;text-align:center;flex-shrink:0}
.s2-nm{font-size:10.5px;font-weight:700}.s2-ds{font-size:7.5px;color:var(--t3);margin-top:1px}
.s2-k{font-family:'IBM Plex Mono';font-size:10px;font-weight:600;flex-shrink:0}
.s2-gv{position:absolute;right:6px;top:50%;transform:translateY(-50%);writing-mode:vertical-rl;font-size:6.5px;font-weight:700;letter-spacing:3px;color:var(--pu);opacity:.25;z-index:1}
.s3{background:var(--bg);overflow:hidden;position:relative}
.s3::before{content:'';position:absolute;inset:0;background-image:radial-gradient(rgba(79,125,249,.03) 1px,transparent 1px);background-size:12px 12px}
.s3-hu{position:absolute;top:0;left:0;right:0;z-index:5;display:flex;align-items:center;gap:5px;padding:4px 9px;background:rgba(8,10,16,.9);backdrop-filter:blur(16px);border-bottom:1px solid var(--bd)}
.s3-hu b{font-size:.6rem}.s3-hu small{font-size:.32rem;letter-spacing:1.3px;color:var(--cy);display:block;font-weight:600}
.s3-l{display:flex;align-items:center;gap:3px;font-size:.38rem;font-weight:700;color:var(--gr);padding:1px 6px;border-radius:100px;background:rgba(16,185,129,.07);border:1px solid rgba(16,185,129,.1)}
.s3-l::before{content:'';width:3px;height:3px;border-radius:50%;background:var(--gr);animation:pu 2s infinite}
.s3-st{font-family:'IBM Plex Mono';font-size:.38rem;color:var(--t3);margin-left:auto}
.s3-st em{font-style:normal;color:var(--ac);font-weight:600}
#cv{display:block;width:100%;flex:1;min-height:0}
.s4{background:var(--bg);justify-content:center;align-items:center;text-align:center;padding:20px;position:relative}
.s4::before{content:'';position:absolute;inset:0;background:radial-gradient(ellipse 40% 30% at 50% 36%,rgba(34,211,238,.05),transparent)}
.s4-h{font-size:clamp(.9rem,2.5vw,1.4rem);font-weight:800;line-height:1.2;margin-bottom:5px;z-index:1}
.s4-h em{font-style:normal;color:var(--cy)}
.s4-p{font-size:.62rem;color:var(--t2);max-width:340px;margin:0 auto 12px;line-height:1.45;z-index:1}
.s4-gr{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;max-width:380px;width:100%;z-index:1;margin-bottom:10px}
.s4-c{padding:10px 7px;text-align:center;transition:.3s}.s4-c:hover{transform:translateY(-2px);border-color:rgba(255,255,255,.1)}
.s4-c .ic{font-size:18px;margin-bottom:4px}.s4-c h3{font-size:9px;font-weight:800;margin-bottom:2px}.s4-c p{font-size:7.5px;color:var(--t3);line-height:1.35}
.s4-q{max-width:370px;padding:8px 12px;z-index:1;margin-bottom:12px;border-left:2px solid var(--cy);text-align:left}
.s4-q p{font-size:.55rem;color:var(--t2);line-height:1.5;font-style:italic}.s4-q b{color:var(--cy);font-style:normal}
.s4-bt{display:inline-flex;align-items:center;gap:6px;background:linear-gradient(135deg,var(--ac),var(--cy));color:#fff;border:none;border-radius:100px;padding:9px 26px;font-family:'Outfit';font-size:12px;font-weight:700;cursor:pointer;transition:.3s;box-shadow:0 6px 22px rgba(79,125,249,.3);z-index:1;text-decoration:none;animation:glw 3s infinite}
.s4-bt:hover{transform:translateY(-2px)}.s4-ft{margin-top:8px;font-size:.42rem;color:var(--t3);z-index:1}
</style>
</head>
<body>
<div class="dk">
<!-- S1 -->
<div class="sl s1 on" data-i="0">
<div class="s1-g"></div>
<div class="s1-hd">
<div class="s1-av" style="background:linear-gradient(135deg,var(--ac),var(--cy));display:flex;align-items:center;justify-content:center;font-size:18px;font-weight:900;color:#fff;border-radius:10px">W</div>
<div class="s1-br"><b>WEVIA EM</b><small>ENTERPRISE MODEL</small></div>
<div class="s1-lv">LIVE</div>
</div>
<div class="s1-n" id="ctr">0</div>
<div class="s1-lb">Agents IA Autonomes</div>
<h1 class="s1-tt">La workforce IA la plus compl&#232;te.<br><em>17 d&#233;partements. Un seul cerveau.</em></h1>
<div class="s1-tg"><div class="s1-t gl2"><b>17</b> <span>Depts</span></div><div class="s1-t gl2"><b>93</b> <span>Crons</span></div><div class="s1-t gl2"><b>12</b> <span>LLMs</span></div><div class="s1-t gl2"><b>0&#8364;</b> <span>Lock-in</span></div></div>
</div>
<!-- S2 -->
<div class="sl s2" data-i="1">
<h2 class="s2-h">Architecture SOA - 6 Couches</h2>
<p class="s2-p">Chaque couche pilotee par des agents specialises</p>
<div class="s2-sk"><div class="s2-r gl" style="border-left:3px solid var(--cy)"><div class="s2-i">&#128421;</div><div><div class="s2-nm">Presentation</div><div class="s2-ds">Dashboards - Portails - Chat</div></div><div class="s2-k" style="color:var(--cy)">9 apps</div></div><div class="s2-r gl" style="border-left:3px solid var(--or)"><div class="s2-i">&#127919;</div><div><div class="s2-nm">Orchestration</div><div class="s2-ds">WEVIA Master - BPMN - 17 Orchestrators</div></div><div class="s2-k" style="color:var(--or)">17 flux</div></div><div class="s2-r gl" style="border-left:3px solid var(--gr)"><div class="s2-i">&#129302;</div><div><div class="s2-nm">Agents IA</div><div class="s2-ds">Finance - RH - Marketing - Commerce - Supply - Prod</div></div><div class="s2-k" style="color:var(--gr)">669</div></div><div class="s2-r gl" style="border-left:3px solid var(--ac)"><div class="s2-i">&#129504;</div><div><div class="s2-nm">Intelligence</div><div class="s2-ds">LLM Souverain 0EUR - RAG - KB 2490</div></div><div class="s2-k" style="color:var(--ac)">12 LLMs</div></div><div class="s2-r gl" style="border-left:3px solid var(--t2)"><div class="s2-i">&#128268;</div><div><div class="s2-nm">Data et Integration</div><div class="s2-ds">API Gateway - ETL - 6.6M contacts</div></div><div class="s2-k" style="color:var(--t2)">302 APIs</div></div><div class="s2-r gl" style="border-left:3px solid var(--pu)"><div class="s2-i">&#128737;</div><div><div class="s2-nm">Gouvernance</div><div class="s2-ds">Securite - Compliance - NonReg 152/152</div></div><div class="s2-k" style="color:var(--pu)">100%</div></div></div>
<div class="s2-gv">GOVERNANCE - SECURITY - COMPLIANCE</div>
</div>
<!-- S3 -->
<div class="sl s3" data-i="2">
<div class="s3-hu">
<span style="font-size:13px">🧠</span>
<div><b>WEVIA EM</b><small>VALUE STREAM MAPPING</small></div>
<div class="s3-l">LIVE</div>
<div class="s3-st"><em id="hA">0</em> agents · <em id="hD">0</em> depts</div>
</div>
<canvas id="cv"></canvas>
</div>
<!-- S4 -->
<div class="sl s4" data-i="3">
<h2 class="s4-h">Demarrez par un <em>POC gratuit</em></h2>
<p class="s4-p">Choisissez un process métier. Nous deployons nos agents. Vous mesurez impact.</p>
<div class="s4-gr"><div class="s4-c gl"><div class="ic">&#127919;</div><h3>POC Gratuit</h3><p>1 process, resultats en 2 semaines</p></div><div class="s4-c gl"><div class="ic">&#128640;</div><h3>MVP - 1 Mois</h3><p>3-5 process, ROI documenté</p></div><div class="s4-c gl"><div class="ic">&#127970;</div><h3>Full Enterprise</h3><p>17 depts, 669 agents, 3 mois</p></div></div>
<div class="s4-q gl"><p>Les autres offrent une plateforme pour <b>construire</b> des agents.<br>WEVIA livre une <b>workforce autonome complete</b> - 669 agents prets.</p></div>
<button class="s4-bt" onclick="window.open('https://weval-consulting.com','_blank')">Demander un POC gratuit</button>
<div class="s4-ft">WEVAL Consulting - Casablanca - weval-consulting.com</div>
</div>
<!-- NAV -->
<div class="nv">
<button class="abtn" onclick="go(-1)"></button>
<button class="dot on" onclick="show(0)"></button>
<button class="dot" onclick="show(1)"></button>
<button class="dot" onclick="show(2)"></button>
<button class="dot" onclick="show(3)"></button>
<button class="abtn" onclick="go(1)"></button>
</div>
</div>
<script>
let c=0;const T=4;
function show(i){c=i;document.querySelectorAll('.sl').forEach((s,j)=>s.classList.toggle('on',j===i));document.querySelectorAll('.dot').forEach((d,j)=>d.classList.toggle('on',j===i));if(i===2&&!cvOn)startCV()}
function go(d){show((c+d+T)%T)}
document.addEventListener('keydown',e=>{if(e.key==='ArrowRight')go(1);if(e.key==='ArrowLeft')go(-1)});
let sx=0;document.addEventListener('touchstart',e=>{sx=e.touches[0].clientX});
document.addEventListener('touchend',e=>{const d=e.changedTouches[0].clientX-sx;if(Math.abs(d)>50)d<0?go(1):go(-1)});
(function(){const el=document.getElementById('ctr');let v=0;const tgt=669,dur=1400,st=Date.now();function t(){const p=Math.min((Date.now()-st)/dur,1),e=1-Math.pow(1-p,3);v=Math.round(tgt*e);el.textContent=v;if(p<1)requestAnimationFrame(t)};t()})();
let cvOn=false;
function startCV(){
cvOn=true;const cv=document.getElementById('cv'),cx=cv.getContext('2d');
function rs(){var w=cv.parentElement.offsetWidth||1080;var h=cv.parentElement.offsetHeight||1080;cv.width=w*2;cv.height=h*2;cv.style.width=w+'px';cv.style.height=h+'px';cx.scale(2,2)};setTimeout(rs,100);setTimeout(rs,500);window.addEventListener('resize',rs);
const W=()=>cv.width/2,H=()=>cv.height/2;
const D=[{n:'Finance',c:'#4f7df9',y:.06},{n:'RH',c:'#22d3ee',y:.18},{n:'Marketing',c:'#f59e0b',y:.30},{n:'Commerce',c:'#10b981',y:.42},{n:'Supply Chain',c:'#ef4444',y:.54},{n:'Production',c:'#a78bfa',y:.66},{n:'SI & Data',c:'#4f7df9',y:.78},{n:'QA & Cyber',c:'#f472b6',y:.90}];
const A=[];D.forEach((d,i)=>{for(let j=0;j<4+Math.floor(Math.random()*3);j++){A.push({x:.1+Math.random()*.78,tx:.1+Math.random()*.78,y:d.y+(Math.random()-.5)*.03,di:i,ph:Math.random()*6.28,sz:3+Math.random()*2})}});
function fr(t){cx.clearRect(0,0,W(),H());const g=cx.createRadialGradient(W()/2,H()/2,0,W()/2,H()/2,W()*.45);g.addColorStop(0,'rgba(79,125,249,.02)');g.addColorStop(1,'transparent');cx.fillStyle=g;cx.fillRect(0,0,W(),H());
D.forEach((d,i)=>{const y=28+d.y*(H()-36);cx.strokeStyle=d.c+'15';cx.lineWidth=.5;cx.setLineDash([2,3]);cx.beginPath();cx.moveTo(W()*.07,y);cx.lineTo(W()*.93,y);cx.stroke();cx.setLineDash([]);cx.fillStyle=d.c+'70';cx.font='600 7.5px Outfit';cx.textAlign='left';cx.fillText(d.n,W()*.015,y+3);for(let j=0;j<6;j++){const fx=(.16+j*.13)*W(),dot=Math.sin(t*.0018+j*.7+i*.5)*.5+.5;cx.fillStyle=d.c+(Math.floor(dot*50+15).toString(16).padStart(2,'0'));cx.beginPath();cx.arc(fx,y,1.2+dot*1.8,0,Math.PI*2);cx.fill();if(j<5){cx.strokeStyle=d.c+'08';cx.lineWidth=.4;cx.beginPath();cx.moveTo(fx+3,y);cx.lineTo((.16+(j+1)*.13)*W()-3,y);cx.stroke()}}const gx=.94*W();cx.fillStyle=d.c+'1a';cx.save();cx.translate(gx,y);cx.rotate(Math.PI/4);cx.fillRect(-3,-3,6,6);cx.restore()});
A.forEach(a=>{a.x+=(a.tx-a.x)*.015;if(Math.abs(a.tx-a.x)<.006)a.tx=.1+Math.random()*.78;const d=D[a.di],px=a.x*W(),py=28+a.y*(H()-36),b=Math.sin(t*.003+a.ph)*1.2,w=Math.sin(t*.006+a.ph);cx.fillStyle=d.c+'08';cx.beginPath();cx.arc(px,py+b,a.sz*2.2,0,Math.PI*2);cx.fill();cx.fillStyle=d.c+'b0';cx.beginPath();cx.arc(px,py+b,a.sz,0,Math.PI*2);cx.fill();cx.fillStyle=d.c+'d0';cx.beginPath();cx.arc(px,py-a.sz*.9+b,a.sz*.55,0,Math.PI*2);cx.fill();cx.strokeStyle=d.c+'70';cx.lineWidth=.8;cx.beginPath();cx.moveTo(px-1.2,py+a.sz+b);cx.lineTo(px-1.2+w*2,py+a.sz+3.5+b);cx.stroke();cx.beginPath();cx.moveTo(px+1.2,py+a.sz+b);cx.lineTo(px+1.2-w*2,py+a.sz+3.5+b);cx.stroke()});
document.getElementById('hA').textContent=A.length;document.getElementById('hD').textContent=D.length;requestAnimationFrame(fr)};fr(0)}
</script>
<!-- CARTO_REMOVED -->
<!-- === OPUS UNIVERSAL DRILL-DOWN v1 19avr — append-only, doctrine #14 === -->
<script>
(function(){
if (window.__opusUniversalDrill) return; window.__opusUniversalDrill = true;
var d = document;
var m = d.createElement('div');
m.id = 'opus-udrill';
m.style.cssText = 'position:fixed;inset:0;background:rgba(0,0,0,0.82);backdrop-filter:blur(6px);display:none;align-items:center;justify-content:center;z-index:99995;padding:20px;cursor:pointer';
var inner = d.createElement('div');
inner.id = 'opus-udrill-in';
inner.style.cssText = 'max-width:900px;width:100%;max-height:90vh;overflow:auto;background:#0b0d15;border:1px solid rgba(99,102,241,0.35);border-radius:14px;padding:28px;cursor:default;box-shadow:0 20px 60px rgba(0,0,0,0.6);color:#e2e8f0;font:14px/1.55 Inter,system-ui,sans-serif';
inner.addEventListener('click', function(e){ e.stopPropagation(); });
m.appendChild(inner);
m.addEventListener('click', function(){ m.style.display='none'; });
d.addEventListener('keydown', function(e){ if(e.key==='Escape') m.style.display='none'; });
(d.body || d.documentElement).appendChild(m);
function openCard(card) {
// Clone card content + show close btn + increase font-size
var html = '<div style="display:flex;justify-content:flex-end;margin-bottom:14px"><button id="opus-udrill-close" style="padding:6px 14px;background:#171b2a;border:1px solid rgba(99,102,241,0.25);color:#e2e8f0;border-radius:8px;cursor:pointer;font-size:12px">✕ Fermer (Esc)</button></div>';
html += '<div style="transform-origin:top left;font-size:1.05em">' + card.outerHTML + '</div>';
inner.innerHTML = html;
d.getElementById('opus-udrill-close').onclick = function(){ m.style.display='none'; };
m.style.display = 'flex';
}
function wire(root) {
var sels = '.card,[class*="card"],.kpi,[class*="kpi"],.stat,[class*="stat"],.tile,[class*="tile"],.metric,[class*="metric"],.widget,[class*="widget"]';
var cards = root.querySelectorAll(sels);
for (var i = 0; i < cards.length; i++) {
var c = cards[i];
if (c.__opusWired) continue;
if (c.closest('button, a, input, select, textarea, #opus-udrill')) continue;
var r = c.getBoundingClientRect();
if (r.width < 60 || r.height < 40) continue;
c.__opusWired = true;
c.style.cursor = 'pointer';
c.setAttribute('role','button');
c.setAttribute('tabindex','0');
c.addEventListener('click', function(ev){
// If a more-specific drill is already active (e.g. pp-card custom), let it handle
if (ev.target.closest('[data-pp-id]') && window.__opusDrillInit) return;
if (ev.target.closest('a,button,input,select')) return;
ev.preventDefault(); ev.stopPropagation();
openCard(this);
});
c.addEventListener('keydown', function(ev){ if(ev.key==='Enter'||ev.key===' '){ev.preventDefault();openCard(this);} });
}
}
// Initial + mutation observer
var initRun = function(){ wire(d.body || d.documentElement); };
if (d.readyState === 'loading') d.addEventListener('DOMContentLoaded', initRun);
else initRun();
var mo = new MutationObserver(function(muts){
var newCard = false;
for (var i=0;i<muts.length;i++) if (muts[i].addedNodes.length) { newCard = true; break; }
if (newCard) initRun();
});
mo.observe(d.body || d.documentElement, {childList:true, subtree:true});
})();
</script>
<!-- === OPUS UNIVERSAL DRILL-DOWN END === -->
<script src="/api/archi-meta-badge.js" defer></script>
<script src="/api/a11y-auto-enhancer.js" defer></script>
<!-- WTP_UDOCK_V1 (Opus 21-avr t33b6) --><script src="/wtp-unified-dock.js" defer></script>
<script src="/opus-antioverlap-doctrine.js?v=1776776094" defer></script>
</body>
</html>