0
متصل الآن
0
زيارة
المعلم
أحمد العشري
إتقان
12
تعلّم بإتقان.
اختبر بثقة..
تفوّق بجدارة.
ب
البلاغة والنحو
المراجعة النهائية للثانوية العامة
12 درسًا
417 سؤالًا تفاعليًّا
ملفات PDF
ادخل المراجعة
مطابقة للهيكل
١٠٠
ورقي وإلكتروني
الاختبارات التجريبية للصف الثاني عشر
8 اختبارات كاملة
15 نصًّا إثرائيًّا
إجابات نموذجية
ابدأ الاختبارات
إتقان 12 · منصة اللغة العربية للصف الثاني عشر
جارٍ التحميل…
{f.onload=()=>res();f.srcdoc=srcOf(name);apps.appendChild(f)}); loader.hidden=true; } Object.entries(frames).forEach(([k,fr])=>fr.hidden=k!==name); apps.hidden=false;landing.hidden=true;current=name; if(hash){try{f.contentWindow.location.hash=hash}catch(_){}} try{f.contentWindow.focus()}catch(_){} } function showHome(){ Object.values(frames).forEach(fr=>{try{fr.contentDocument.querySelectorAll('audio,video').forEach(m=>m.pause())}catch(_){}}); apps.hidden=true;landing.hidden=false;current=null;start3D(); try{history.replaceState(null,'',location.pathname+location.search)}catch(_){} window.scrollTo(0,0); } document.querySelectorAll('[data-open]').forEach(b=>b.addEventListener('click',()=>openApp(b.dataset.open))); /* 3D tilt on doors */ if(matchMedia('(hover:hover)').matches){document.querySelectorAll('.door').forEach(d=>{ d.addEventListener('pointermove',e=>{const r=d.getBoundingClientRect(),x=(e.clientX-r.left)/r.width-.5,y=(e.clientY-r.top)/r.height-.5;d.style.transform=`rotateY(${x*10}deg) rotateX(${-y*10}deg) translateY(-4px)`;}); d.addEventListener('pointerleave',()=>{d.style.transform=''}); })} /* ===== 3D background ===== */ let R3=null; function init3D(){ if(!window.THREE||R3)return; const cv=$('bg3d'),T=THREE; let renderer;try{renderer=new T.WebGLRenderer({canvas:cv,antialias:true,alpha:true})}catch(_){return} renderer.setPixelRatio(Math.min(devicePixelRatio,2)); const scene=new T.Scene(),cam=new T.PerspectiveCamera(45,1,.1,100);cam.position.set(0,0,16); scene.add(new T.AmbientLight(0xfff3dd,.55)); const k=new T.DirectionalLight(0xffffff,1.1);k.position.set(5,8,10);scene.add(k); const r=new T.PointLight(0xe0731c,1.4,40);r.position.set(-8,-4,6);scene.add(r); const g=new T.PointLight(0x2f8a63,1.2,40);g.position.set(9,3,4);scene.add(g); const M=(c,o={})=>new T.MeshStandardMaterial(Object.assign({color:c,roughness:.32,metalness:.35},o)); const items=[]; const add=(geo,mat,x,y,z,s,spd)=>{const m=new T.Mesh(geo,mat);m.position.set(x,y,z);m.scale.setScalar(s);m.userData={y0:y,spd,ph:Math.random()*6.28};scene.add(m);items.push(m);return m}; add(new T.TorusKnotGeometry(1,.32,140,18),M(0xe0731c),-8.6,3.6,-3,1.05,.5); add(new T.IcosahedronGeometry(1.25,0),M(0x1f6a4a,{flatShading:true}),8.4,4.2,-2,1,.7); add(new T.TorusGeometry(1.15,.38,24,64),M(0x7b1e2e),8.9,-4.2,-4,1.05,.45); add(new T.OctahedronGeometry(1,0),M(0xe9b45a,{flatShading:true,metalness:.6}),-8.2,-4.6,-2,.95,.8); add(new T.SphereGeometry(.55,32,32),M(0xf6efdf,{roughness:.2}),-3.4,-6.8,-4,1,.9); add(new T.SphereGeometry(.4,32,32),M(0xe0731c,{roughness:.25}),4.2,-6.4,-5,1,1); const book=add(new T.BoxGeometry(2.2,.36,1.6),M(0x2f8a63),0,-7.4,-8,1,.4); const pg=new T.Mesh(new T.BoxGeometry(2.05,.28,1.5),M(0xf6efdf,{metalness:0,roughness:.8}));pg.position.y=.04;pg.position.x=.06;book.add(pg); // dust const N=160,pos=new Float32Array(N*3);for(let i=0;i
{mx=e.clientX/innerWidth-.5;my=e.clientY/innerHeight-.5},{passive:true}); function size(){const w=innerWidth,h=innerHeight;renderer.setSize(w,h,false);cam.aspect=w/h; const narrow=w<760;cam.position.z=narrow?24:16;items.forEach(m=>m.visible=!narrow||Math.abs(m.position.y)>3.5);cam.updateProjectionMatrix()} addEventListener('resize',size);size(); const reduce=matchMedia('(prefers-reduced-motion:reduce)').matches; let raf=0,t0=performance.now(); function loop(t){const s=(t-t0)/1000; items.forEach(m=>{const u=m.userData;m.rotation.x+=.003*u.spd;m.rotation.y+=.005*u.spd;m.position.y=u.y0+Math.sin(s*u.spd+u.ph)*.35}); pts.rotation.y=s*.01;cam.position.x+=(mx*1.6-cam.position.x)*.04;cam.position.y+=(-my*1.0-cam.position.y)*.04;cam.lookAt(0,0,0); renderer.render(scene,cam);if(!reduce)raf=requestAnimationFrame(loop)} R3={go(){if(!raf){t0=performance.now()-0;raf=requestAnimationFrame(loop)}},stop(){cancelAnimationFrame(raf);raf=0}}; if(reduce)loop(performance.now());else R3.go(); } function start3D(){if(R3)R3.go();else init3D()} function stop3D(){if(R3)R3.stop()} document.addEventListener('visibilitychange',()=>{if(document.hidden)stop3D();else if(!current)start3D()}); (function waitThree(n){if(window.THREE)init3D();else if(n<80)setTimeout(()=>waitThree(n+1),100)})(0); // deep links (رموز QR في ملفات PDF): #test3 · #poem7 · #guide (function(){const h=(location.hash||'').slice(1);if(/^(test\d+|poem\d+|guide)$/.test(h))openApp('exams',h); else if(/^(tashbih|istiara|kinaya|badi|tibaq|insha|jumla|kana|inna|la|kada|zanna)(-(quiz|lesson))?$/.test(h))openApp('review',h);})(); /* ===== العدّاد (Firebase) ===== */ (function counters(){ if(!ITQAN_FIREBASE)return; const go=()=>{try{ const app=firebase.initializeApp(ITQAN_FIREBASE,'itqan12'),db=firebase.database(app),root=db.ref('itqan12'); let first=false;try{first=!sessionStorage.getItem('itq-v');sessionStorage.setItem('itq-v','1')}catch(_){first=true} if(first)root.child('visits').transaction(n=>(n||0)+1); const me=root.child('online').push(); db.ref('.info/connected').on('value',s=>{if(s.val()){me.onDisconnect().remove();me.set(Date.now())}}); const fmt=n=>Number(n||0).toLocaleString('ar-EG'); root.child('visits').on('value',s=>{$('vis').textContent=fmt(s.val());$('live').hidden=false},()=>{}); root.child('online').on('value',s=>{$('onl').textContent=fmt(s.numChildren());$('live').hidden=false},()=>{}); }catch(_){}}; if(window.firebase&&firebase.database)go(); })();