### Result
{"status":"PASS","sizes":[{"width":390,"height":844,"overflow":false,"cropped":0},{"width":320,"height":640,"overflow":false,"cropped":0},{"width":768,"height":1024,"overflow":false,"cropped":0},{"width":1440,"height":900,"overflow":false,"cropped":0}],"errors":[],"checks":["70 matrix cells","proof and Escape","filters","empty state","shared URL","combined stress","2032 carry","ND resources","regional data","motion switch","fullscreen","mobile limits","reduced motion"]}
### Ran Playwright code
```js
await (async (page) => {
 const errors=[];page.on('pageerror',e=>errors.push(e.message));
 const url='http://127.0.0.1:4197/etudes/benchmark-2026/';
 await page.goto(url);await page.waitForSelector('#comparison article');
 const check=(condition,message)=>{if(!condition)throw new Error(message)};
 await page.setViewportSize({width:1440,height:900});
 check(await page.locator('.matrix-cell').count()===70,'70 matrix cells');
 check(await page.locator('#comparison article').count()===3,'three desktop columns');
 await page.locator('.matrix-cell[data-proof="usfp-sante"]').click();
 check(await page.locator('#proof-dialog').evaluate(e=>e.open),'proof opens');
 check((await page.locator('#proof-content').innerText()).includes('20 %'),'original discrepancy');
 await page.keyboard.press('Escape');check(!(await page.locator('#proof-dialog').evaluate(e=>e.open)),'Escape closes');
 await page.locator('#domain-filter').selectOption('sante');await page.locator('#population-filter').selectOption('rural');
 check(await page.locator('#comparison article').count()===3,'population filter');
 await page.locator('#status-filter').selectOption('non précisé dans le corpus');check(await page.locator('#comparison article').count()===0,'empty state');
 await page.locator('#status-filter').selectOption('all');
 await page.locator('#cost-shock').check();await page.locator('#resource-shock').check();await page.locator('#delay-shock').check();
 const last=await page.locator('#scenario-table tbody tr').last().innerText();check(last.includes('120,75'),'PAM stressed 2032 carry');
 check((await page.locator('#scenario-table tbody tr').first().innerText()).includes('2027'),'first year remains');
 const shared=page.url();await page.goto(shared);await page.waitForSelector('#comparison article');
 check(await page.locator('#domain-filter').inputValue()==='sante','URL domain restored');check(await page.locator('#delay-shock').isChecked(),'URL shock restored');
 await page.locator('#scenario-party').selectOption('uc');check((await page.locator('#scenario-table').innerText()).includes('ND'),'missing resources preserved');
 await page.locator('#sequence-10').scrollIntoViewIfNeeded();await page.screenshot({path:'/Users/youssef/Documents/ChatGPT/IStiklal/benchmark-2026/qa/scenarios-desktop.png'});
 await page.locator('[data-region="5"]').click();check((await page.locator('#region-detail').innerText()).includes('9,8'),'region result');
 await page.locator('#motion').click();check(await page.locator('#benchmark').evaluate(e=>e.classList.contains('no-motion')),'motion switch');
 await page.locator('#fullscreen').click();check(await page.evaluate(()=>Boolean(document.fullscreenElement)),'fullscreen starts');
 check(await page.evaluate(()=>document.documentElement.scrollWidth<=innerWidth),'fullscreen horizontal overflow');
 await page.locator('#fullscreen').click();
 const sizes=[{width:390,height:844},{width:320,height:640},{width:768,height:1024},{width:1440,height:900}];
 const results=[];
 for(const size of sizes){await page.setViewportSize(size);await page.evaluate(()=>scrollTo(0,0));
  const overflow=await page.evaluate(()=>document.documentElement.scrollWidth>innerWidth);check(!overflow,'horizontal overflow at '+size.width);
  const cropped=await page.evaluate(()=>[...document.querySelectorAll('#benchmark h1,#benchmark h2,#benchmark h3,#benchmark p')].filter(e=>e.getClientRects().length&&getComputedStyle(e).overflowY==='hidden'&&e.scrollHeight>e.clientHeight+2).length);check(cropped===0,'text clipped');
  if(size.width===390){check(await page.locator('.party-select input:checked').count()===2,'two mobile selections');await page.screenshot({path:'/Users/youssef/Documents/ChatGPT/IStiklal/benchmark-2026/qa/mobile-hero.png'});await page.locator('#explorer').scrollIntoViewIfNeeded();await page.screenshot({path:'/Users/youssef/Documents/ChatGPT/IStiklal/benchmark-2026/qa/mobile-explorer.png'});await page.locator('#comparison button').first().click();await page.screenshot({path:'/Users/youssef/Documents/ChatGPT/IStiklal/benchmark-2026/qa/mobile-proof.png'});await page.keyboard.press('Escape');}
  results.push({...size,overflow,cropped});
 }
 await page.emulateMedia({reducedMotion:'reduce'});await page.goto(url);await page.waitForSelector('#comparison article');check(await page.locator('#benchmark').evaluate(e=>e.classList.contains('no-motion')),'system reduced motion');
 check(errors.length===0,errors.join(';'));
 return {status:'PASS',sizes:results,errors,checks:['70 matrix cells','proof and Escape','filters','empty state','shared URL','combined stress','2032 carry','ND resources','regional data','motion switch','fullscreen','mobile limits','reduced motion']};
}
)(page);
```
