diff --git a/play.html b/play.html
index 6bde3cd..f1d81be 100644
--- a/play.html
+++ b/play.html
@@ -363,10 +363,28 @@ var TPL = {"classic":"\u003c!doctype html>\n\u003chtml lang=\"ro\">\n\u003che
}
var runEl=document.getElementById('run');
if(!runEl){document.getElementById('intro-title').textContent='Eroare internă: motor lipsă.';return;}
- var s=document.createElement('script');
- s.textContent=runEl.textContent;
- try { document.body.appendChild(s); }
- catch(e) { document.getElementById('intro-title').textContent='Eroare browser: '+e.message; }
+ var runCode=runEl.textContent;
+ var injected=false;
+ /* Blob URL: compatibil Brave/Firefox strict fără CSP unsafe-inline */
+ try {
+ var blob=new Blob([runCode],{type:'text/javascript'});
+ var burl=URL.createObjectURL(blob);
+ var s=document.createElement('script');
+ s.src=burl;
+ await new Promise(function(res,rej){s.onload=res;s.onerror=rej;document.body.appendChild(s);});
+ URL.revokeObjectURL(burl);
+ injected=true;
+ } catch(e1) {
+ /* fallback: injectare directă (Chrome/Edge clasic) */
+ try {
+ var s2=document.createElement('script');
+ s2.textContent=runCode;
+ document.body.appendChild(s2);
+ injected=true;
+ } catch(e2) {
+ document.getElementById('intro-title').textContent='Eroare browser: '+e2.message;
+ }
+ }
})();