*{box-sizing:border-box;margin:0;padding:0}
:root{
  color-scheme:dark;
  --bg:#080B0A; --raise:#141C19;
  --line:#1E2926; --rule:#2A3A36;
  --fg:#E8EFEC; --muted:#8FA39D; --faint:#657872;
  --teal:#2DD4BF;
}
/* الأرضية على html لا على body: النجوم والشعار طبقتان ثابتتان خلف المحتوى
   (‎z-index −2 و −1‎)، وخلفية body كانت ستحجبهما تمامًا. */
/* ⚠️ لا تضع overflow-x:hidden هنا: يجعل html حاوية تمرير فيتعطّل
   position:sticky لكل ما بداخله — قسم «شوف كيف تشتغل» يمرّ بلا تثبيت.
   مقيس: pinTop = −1260 معه، 0 بدونه. الحماية الأفقية على body تكفي. */
html{background:var(--bg);scroll-behavior:smooth}
body{
  background:transparent; color:var(--fg);
  /* لا direction هنا: يرثه من <html dir> ليتبدّل مع اللغة */
  font-family:"IBM Plex Sans Arabic",system-ui,-apple-system,"Segoe UI",sans-serif;
  line-height:1.75; -webkit-font-smoothing:antialiased; overflow-x:hidden;
}
.mono{font-family:"IBM Plex Mono",ui-monospace,monospace;font-variant-numeric:tabular-nums}
:focus-visible{outline:2px solid var(--teal);outline-offset:3px;border-radius:6px}
.wrap{max-width:1080px;margin:0 auto;padding:0 24px}

/* ── الترويسة ── */
/* رصيف زجاجي عائم — لا شريط حادّ ملتصق بالحافة */
header{position:sticky;top:14px;z-index:50;padding:0 16px;pointer-events:none}
header .wrap{padding:0}
.nav{
  pointer-events:auto;
  /* ثلاثة أعمدة: الشعار في البداية، الرصيف في المنتصف تمامًا، اللغة في النهاية.
     1fr على الطرفين يضمن أن الوسط وسطٌ حقيقي مهما اختلف عرض الطرفين. */
  display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:14px;
  padding:8px 10px 8px 14px;border-radius:999px;
  background:linear-gradient(180deg,#12201cb8,#0b1512cc);
  backdrop-filter:blur(22px) saturate(180%);
  -webkit-backdrop-filter:blur(22px) saturate(180%);
  border:1px solid #2DD4BF26;
  box-shadow:0 10px 34px #0009, inset 0 1px 0 #ffffff12, 0 0 0 1px #00000040;
}
.brand{display:flex;align-items:center;gap:11px;text-decoration:none;color:var(--fg);flex:0 0 auto}
/* الشعار بزاوية — 3D خفيف */
.mark{
  inline-size:38px;block-size:38px;flex:0 0 auto;border-radius:12px;
  display:grid;place-items:center;position:relative;
  background:radial-gradient(circle at 50% 42%,#2DD4BF1f,transparent 70%);
  transition:transform .4s cubic-bezier(.2,.8,.2,1),filter .4s;
  filter:drop-shadow(0 0 10px #2DD4BF66) drop-shadow(0 0 26px #2DD4BF33);
}
.brand:hover .mark{transform:scale(1.08) rotate(-4deg);
  filter:drop-shadow(0 0 14px #2DD4BF99) drop-shadow(0 0 34px #2DD4BF4d)}
.mark img{inline-size:100%;block-size:100%;object-fit:contain;display:block}
.bname{display:flex;flex-direction:column;line-height:1.25}
.bname b{font-size:1.1rem;font-weight:700;letter-spacing:-.02em;white-space:nowrap}
.bname i{font-style:normal;font-size:.7rem;color:var(--faint);letter-spacing:.06em}
/* الكبسولة الزجاجية المنزلقة */
/* وصف يظهر تحت رابط القائمة */
/* ══════ قائمة الجوال ══════
   كانت nav.links تُخفى بلا بديل ⇒ الروابط تختفي تمامًا. الآن زرّ يفتح لوحة. */
.menu-btn{display:none;pointer-events:auto;flex:0 0 auto;inline-size:40px;block-size:40px;
  border-radius:999px;border:1px solid #2DD4BF33;background:#0a1613a6;
  align-items:center;justify-content:center;cursor:pointer;padding:0}
.menu-btn i{display:block;inline-size:17px;block-size:1.5px;background:var(--fg);border-radius:2px;
  position:relative;transition:transform .3s,background .3s}
.menu-btn i::before,.menu-btn i::after{content:"";position:absolute;inset-inline:0;block-size:1.5px;
  background:var(--fg);border-radius:2px;transition:transform .3s,top .3s}
.menu-btn i::before{top:-5.5px}.menu-btn i::after{top:5.5px}
.menu-btn[aria-expanded="true"] i{background:transparent}
.menu-btn[aria-expanded="true"] i::before{top:0;transform:rotate(45deg)}
.menu-btn[aria-expanded="true"] i::after{top:0;transform:rotate(-45deg)}

.menu-panel{
  position:absolute;inset-inline:0;top:calc(100% + 10px);z-index:60;
  display:grid;gap:2px;padding:10px;border-radius:20px;
  background:linear-gradient(180deg,#12201cf2,#0b1512f7);
  backdrop-filter:blur(22px) saturate(180%);-webkit-backdrop-filter:blur(22px) saturate(180%);
  border:1px solid #2DD4BF2e;box-shadow:0 22px 50px #000000a6;
  opacity:0;visibility:hidden;transform:translateY(-8px) scale(.985);
  transition:opacity .26s ease,transform .26s cubic-bezier(.2,.8,.2,1),visibility .26s;
  pointer-events:auto;
}
.menu-panel.open{opacity:1;visibility:visible;transform:none}
.menu-panel a{display:flex;flex-direction:column;gap:2px;padding:13px 16px;border-radius:13px;
  color:var(--fg);text-decoration:none;transition:background .2s}
.menu-panel a:hover,.menu-panel a:focus-visible{background:#2DD4BF17}
.menu-panel a b{font-weight:600;font-size:.97rem}
.menu-panel a span{font-size:.76rem;color:var(--faint)}

@media(max-width:820px){
    .menu-btn{display:flex}
  header{padding:0 12px;top:10px}
  .nav{padding:7px 8px 7px 12px;gap:10px}
  .mark{inline-size:34px;block-size:34px}
  .bname b{font-size:1rem}
  .bname i{font-size:.62rem}
}
@media(max-width:360px){.bname i{display:none}}
@media(min-width:821px){.menu-panel{display:none}}

/* ── البطل مع الخيوط ── */
.logo-slot{inline-size:clamp(230px,29vw,340px);block-size:clamp(370px,47vw,560px);
  margin:0 auto 6px;display:grid;place-items:center;position:relative}
/* بديل فشل WebGL/GLTF — كان معلّقًا على #logo3d.failed قبل نقله */
.logo-slot::after{content:"م";font-size:clamp(90px,15vw,170px);font-weight:800;
  color:#2DD4BF1f;opacity:0;transition:opacity .4s}
.logo-slot.failed::after{opacity:1}
/* الصورة البديلة: تظهر فورًا قبل وصول النموذج ثلاثي الأبعاد (على الجوّال يتأخّر عمدًا
   حتى بعد الرسم الأوّل)، وتتلاشى حين يعلن hero3d الجاهزيّة. */
/* مطلَقة داخل .logo-slot (relative): النسبة المئويّة للارتفاع لا تُحَلّ لعنصر شبكة
   في صفّ auto فتعود إلى ارتفاع الصورة الطبيعي (741px) وتغطّي العنوان. */
.logo-poster{position:absolute;inset:0;inline-size:100%;block-size:100%;object-fit:contain;
  display:block;pointer-events:none;filter:drop-shadow(0 0 34px #2DD4BF66);transition:opacity .7s ease}
.logo3d-ready .logo-poster{opacity:0}
.logo-slot.failed .logo-poster{opacity:1}
#logo3d.static{position:static;inset:auto;display:block}
.hero{position:relative;min-block-size:clamp(620px,90vh,880px);display:grid;place-items:center;overflow:hidden}
/* المُحدِّد بالصنف لا بالمعرّف — الخيوط تتكرر في أكثر من قسم */
.hero-in{position:relative;z-index:2;text-align:center;padding:34px 24px 64px}
/* حاضن الشعار ثلاثي الأبعاد — يجلس بين الخيوط */
#logo3d{position:fixed;inset:0;z-index:-1;display:grid;place-items:center;
  pointer-events:none;contain:layout style;opacity:0;transition:opacity .8s ease}
#logo3d.ready{opacity:1}
#logo3d .stage{position:relative;inline-size:clamp(300px,38vw,520px);
  block-size:clamp(480px,62vw,740px);will-change:transform,opacity}
/* 🔴 إلزامي: renderer.setSize(w,h,false) يضبط سمات القماش فقط لا أنماطه. */
#logo3d .stage>canvas{display:block;inline-size:100%;block-size:100%}
/* الهالة خلف الشعار — توهج فيروزي يتنفّس */
#logo3d .stage::before{
  content:"";position:absolute;inset:-8% -34%;border-radius:50%;pointer-events:none;
  background:radial-gradient(circle,#2DD4BF4a 0%,#2DD4BF1a 36%,transparent 66%);
  filter:blur(18px);animation:pulse 5.5s ease-in-out infinite;
}
@keyframes pulse{0%,100%{opacity:.72;transform:scale(1)}50%{opacity:1;transform:scale(1.08)}}
/* بديل حين يفشل WebGL أو تحميل النموذج */
#logo3d .stage::after{
  content:"م";position:absolute;z-index:2;font-size:clamp(3rem,7vw,4.6rem);font-weight:800;
  color:var(--teal);opacity:0;transition:opacity .4s;pointer-events:none;
}
#logo3d.failed .stage::after{opacity:1}
@media(prefers-reduced-motion:reduce){#logo3d .stage::before{animation:none}}

/* الشعار الثلاثي الأبعاد — يجلس بين الخيوط */
@keyframes float{0%,100%{transform:translateY(0) rotate(-2deg)}50%{transform:translateY(-13px) rotate(2deg)}}
@media(prefers-reduced-motion:reduce){}
h1{font-size:clamp(2.1rem,5.6vw,3.7rem);font-weight:800;letter-spacing:-.035em;line-height:1.14;margin-bottom:16px;text-wrap:balance}
h1 em{font-style:normal;color:var(--teal)}
.tagline{font-size:clamp(1.05rem,2.3vw,1.35rem);color:var(--teal);font-weight:500;margin-bottom:14px;letter-spacing:-.01em}
.lead{font-size:clamp(1rem,2.1vw,1.2rem);color:var(--muted);max-width:620px;margin:0 auto 30px;text-wrap:balance}
.cta{display:flex;gap:12px;justify-content:center;flex-wrap:wrap}
.btn{display:inline-flex;align-items:center;gap:9px;padding:12px 24px;border-radius:11px;font-size:.95rem;font-weight:600;text-decoration:none;transition:transform .16s,box-shadow .16s;font-family:inherit;border:0;cursor:pointer}
.btn-1{background:var(--teal);color:#04201c;box-shadow:0 8px 26px #2DD4BF33}
.btn-1:hover{transform:translateY(-2px);box-shadow:0 12px 34px #2DD4BF4d}
.btn-2{background:transparent;color:var(--fg);border:1px solid var(--rule)}
.btn-2:hover{border-color:var(--teal);color:var(--teal)}

/* ── الأقسام ── */
section{padding:78px 0;position:relative}   /* بلا border-top: الخلفية متّصلة */
/* قسم بخلفية خيوط خافتة */
.eyebrow{font-size:.74rem;color:var(--teal);letter-spacing:.14em;margin-bottom:11px;
  text-shadow:0 0 18px #2DD4BF66}

/* ══════ العناوين: موسّطة ومتوهّجة في كل الأقسام ══════ */
section h2,.pin-head h2{
  text-align:center;text-wrap:balance;
  background:linear-gradient(180deg,#FFFFFF 0%,#CFEFE7 62%,#8FD8CC 100%);
  -webkit-background-clip:text;background-clip:text;color:transparent;
  filter:drop-shadow(0 0 26px #2DD4BF3d) drop-shadow(0 0 60px #2DD4BF1f);
}
section .eyebrow,.pin-head .eyebrow{text-align:center}
section .sub,.pin-head .sub{text-align:center;margin-inline:auto}
section .inner>h2+.sub{margin-inline:auto}
h2{font-size:clamp(1.5rem,3.2vw,2.1rem);font-weight:700;letter-spacing:-.025em;margin-bottom:12px;text-wrap:balance}
.sub{color:var(--muted);max-width:640px;margin-bottom:38px}
.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(268px,1fr));gap:18px}
/* ══════ بطاقات القماش ══════
   السطح شبه شفّاف حتى تعبر النجوم من خلفه — لو كان معتمًا لقطع الخلفية
   المتّصلة التي بنيناها. الميلان والوهج يقودهما cloth.js عبر متغيّرات CSS. */
.card{
  --glow:0; --mx:50%; --my:50%;
  position:relative;isolation:isolate;
  background:linear-gradient(158deg,#12201cd9,#0a1613cc);
  border:1px solid var(--line);border-radius:18px;padding:28px;
  transform-style:preserve-3d;will-change:transform;
  box-shadow:0 10px 30px #00000047, inset 0 1px 0 #ffffff0a;
  transition:border-color .35s ease, box-shadow .35s ease;
}
/* الضوء الذي يلتقطه النسيج عند نقطة الضغط */
.card::before{
  content:"";position:absolute;inset:0;border-radius:inherit;z-index:-1;pointer-events:none;
  background:radial-gradient(240px circle at var(--mx) var(--my),
             #2DD4BF2b 0%, #2DD4BF12 34%, transparent 68%);
  opacity:var(--glow);transition:opacity .25s ease;
}
/* خيط ضوء على الحافّة يتبع المؤشّر — يوحي بانحناء السطح لا بإطار مرسوم */
.card::after{
  content:"";position:absolute;inset:0;border-radius:inherit;z-index:-1;pointer-events:none;
  padding:1px;background:radial-gradient(300px circle at var(--mx) var(--my),
          #2DD4BFb3, #2DD4BF2e 42%, transparent 70%);
  -webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);
  -webkit-mask-composite:xor;mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);
  mask-composite:exclude;
  opacity:var(--glow);transition:opacity .25s ease;
}
.card:hover{box-shadow:0 18px 44px #00000059, 0 0 30px #2DD4BF1a, inset 0 1px 0 #ffffff12}
.card>*{position:relative}

@media(prefers-reduced-motion:reduce){
  .card{transform:none!important}
  .card::before,.card::after{opacity:0!important}
  .card:hover{border-color:#2DD4BF4d}
}
@media(hover:none),(pointer:coarse){
  .card::after{opacity:.35;--mx:50%;--my:0%}
}
.card h3{font-size:1.1rem;font-weight:600;margin-bottom:9px;display:flex;align-items:center;gap:9px;flex-wrap:wrap}
.card p{color:var(--muted);font-size:.94rem}
.tag{font-size:.68rem;padding:3px 9px;border-radius:99px;border:1px solid var(--rule);color:var(--faint);font-weight:500}
.tag.soon{color:var(--teal);border-color:#2DD4BF59}
.stat{display:block;font-size:1.85rem;font-weight:700;color:var(--teal);letter-spacing:-.03em;margin-bottom:5px}
.note{background:var(--raise);border:1px solid var(--line);border-inline-start:3px solid var(--teal);border-radius:12px;padding:20px 22px;margin-top:26px}
.note p{color:var(--muted);font-size:.92rem;margin:0}
footer{padding:36px 0;color:var(--faint);font-size:.87rem;display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap}
footer a{color:var(--muted);text-decoration:none;margin-inline-start:20px}
footer a:hover{color:var(--teal)}
a.mail{color:var(--teal);text-decoration:none}
a.mail:hover{text-decoration:underline}

/* ── صفحات المستندات ── */




/* ══════ قسم العرض — مسار أفقي يتحرك مع التمرير ══════ */
/* ارتفاع القسم يحدّد طول الرحلة الأفقية */
.showcase{position:relative;padding:0;block-size:340vh}  /* الارتفاع احتياطي بلا JS */
.pin{position:sticky;top:0;block-size:100vh;block-size:100svh;overflow:hidden;display:flex;flex-direction:column;justify-content:center}
.pin-head{position:relative;z-index:2;padding:0 24px;max-width:1080px;margin:0 auto 34px;inline-size:100%}
.rail{position:relative;z-index:1;overflow:hidden}   /* ‏position هنا لا في قاعدة ثانية */
.track{display:flex;gap:22px;padding-inline:max(24px,calc((100vw - 1080px)/2));
  will-change:transform;backface-visibility:hidden}

.shot{flex:0 0 auto;inline-size:min(62vw,720px)}
.shot.sm{inline-size:min(40vw,430px)}

.frame{
  position:relative;aspect-ratio:16/10;border-radius:16px;overflow:hidden;
  background:linear-gradient(150deg,#12201cf2,#0a1613f2);
  border:1px solid #2DD4BF26;
  box-shadow:0 14px 40px #00000059, inset 0 1px 0 #ffffff0f;
  transition:border-color .3s,box-shadow .4s;
}
.shot:hover .frame{border-color:#2DD4BF73;box-shadow:0 22px 56px #00000073,0 0 38px #2DD4BF26,inset 0 1px 0 #ffffff14}
.frame video,.frame img{position:absolute;inset:0;inline-size:100%;block-size:100%;object-fit:cover;display:block}

.slot{position:absolute;inset:0;display:grid;place-items:center;
  background:radial-gradient(120% 90% at 50% 0%,#2DD4BF14,transparent 62%)}
.slot i{inline-size:56px;block-size:56px;border-radius:50%;display:grid;place-items:center;
  border:1px solid #2DD4BF4d;background:#2DD4BF14;backdrop-filter:blur(6px);transition:transform .3s,background .3s}
.shot:hover .slot i{transform:scale(1.12);background:#2DD4BF29}
.slot i::after{content:"";inline-size:0;block-size:0;margin-inline-start:-3px;
  border-block:9px solid transparent;border-inline-end:13px solid var(--teal)}
.slot b{position:absolute;inset-block-end:16px;font-size:.7rem;color:var(--faint);font-weight:400}

.frame::after{content:"";position:absolute;inset:0;pointer-events:none;
  background:linear-gradient(0deg,#050807e6 0%,#05080773 26%,transparent 52%)}
.cap{position:absolute;inset-inline:0;inset-block-end:0;z-index:2;padding:22px 24px;
  display:flex;align-items:flex-end;justify-content:space-between;gap:14px}
.cap h3{font-size:1.1rem;font-weight:600;margin:0 0 3px;letter-spacing:-.015em}
.cap p{font-size:.83rem;color:var(--muted);margin:0}
.cap .n{font-family:"IBM Plex Mono",monospace;font-size:.74rem;color:var(--teal);opacity:.75;flex:0 0 auto}

/* شريط تقدّم الرحلة */
.rail-bar{position:relative;z-index:2;max-width:1080px;margin:30px auto 0;padding:0 24px;inline-size:100%}
.rail-bar span{display:block;block-size:2px;background:var(--line);border-radius:99px;overflow:hidden}
.rail-bar i{display:block;block-size:100%;inline-size:0;background:var(--teal);border-radius:99px;
  box-shadow:0 0 10px #2DD4BF80}

/* بلا حركة: يرجع شبكة عادية */
@media(prefers-reduced-motion:reduce){
  .showcase{block-size:auto;padding:78px 0}
  .pin{position:static;block-size:auto}
  .rail{overflow:visible}
  .track{flex-wrap:wrap;transform:none!important;justify-content:center}
  .shot,.shot.sm{inline-size:min(90vw,480px)}
  .rail-bar{display:none}
}
@media(max-width:700px){
  .shot{inline-size:86vw}.shot.sm{inline-size:74vw}
  .pin-head{margin-bottom:20px}
  .frame{aspect-ratio:4/3}
  .cap{padding:16px 18px}.cap h3{font-size:1rem}.cap p{font-size:.78rem}
}

/* ══════ العارض ثلاثي الأبعاد ══════
   المسار المبني بـ CSS يبقى كما هو، ويظهر وحده إن فشل WebGL أو طُلب تقليل الحركة. */
.reel3d{position:absolute;inset:0;inline-size:100%;block-size:100%;display:block;
  opacity:0;transition:opacity .6s ease;z-index:2;touch-action:pan-y;cursor:grab}
.reel3d.dragging{cursor:grabbing}
.showcase.gl .reel3d{opacity:1}
/* عند نجاح WebGL نُخفي بطاقات CSS بصريًا مع إبقائها لقارئات الشاشة */
.showcase.gl .track{position:absolute;inline-size:1px;block-size:1px;overflow:hidden;
  clip-path:inset(50%);white-space:nowrap;pointer-events:none}
.showcase.gl .rail{block-size:min(56vh,520px)}

/* عدّاد المشروع النشط */
.counter{direction:ltr;position:absolute;inset-inline-end:24px;inset-block-start:-46px;
  display:none;align-items:baseline;gap:6px;padding:7px 14px;border-radius:99px;
  border:1px solid #2DD4BF33;background:#0a1613a6;backdrop-filter:blur(10px);
  font-family:"IBM Plex Mono",monospace;font-size:.78rem}
.showcase.gl .counter{display:flex}
.counter b{color:var(--teal);font-weight:600;font-variant-numeric:tabular-nums}
.counter em{color:var(--faint);font-style:normal;opacity:.6}
.counter span{color:var(--muted);font-variant-numeric:tabular-nums}

/* مؤشر مغناطيسي — داخل القسم فقط، ويختفي على اللمس */
.cursor{position:fixed;inset-block-start:0;inset-inline-start:0;z-index:60;pointer-events:none;
  inline-size:34px;block-size:34px;margin:-17px 0 0 -17px;opacity:0;
  transition:opacity .25s ease;mix-blend-mode:screen;will-change:transform}
.cursor span{display:block;inline-size:100%;block-size:100%;border-radius:50%;
  border:1px solid #2DD4BF99;box-shadow:0 0 18px #2DD4BF4d, inset 0 0 12px #2DD4BF29;
  transition:transform .22s cubic-bezier(.2,.8,.2,1),background .22s ease}
.cursor.on{opacity:1}
.cursor.grab span{transform:scale(1.55);background:#2DD4BF1f}
@media(hover:none),(pointer:coarse){.cursor{display:none}}
@media(prefers-reduced-motion:reduce){.reel3d,.cursor,.counter{display:none!important}}

/* ══════ النجوم: لوحة واحدة ثابتة خلف الصفحة كلّها ══════
   ثابتة بمقاس الشاشة لا بمقاس المستند، فليس لها حافة داخل الصفحة أصلًا
   ولا موضع يمكن أن يظهر فيه فاصل. */
#stars{position:fixed;inset:0;inline-size:100%;block-size:100%;
  z-index:-2;display:block;pointer-events:none}

/* ══════ لوحة تفاصيل البطاقة — زجاج حقيقي ══════
   لا تعتيم للمحيط: الحاجب شفّاف تمامًا، فما حول اللوحة يبقى كما هو.
   الوضوح يأتي من الزجاج نفسه — backdrop-filter يُشوّش ما خلف اللوحة وحدها،
   فيُقرأ النصّ دون أن تُطفأ الصفحة. */
/* --sh/--ss تُضبطان من JS بلون الفيديو المعروض؛ الافتراضي فيروزي الموقع.
   كل لون في اللوحة مشتقّ منهما، فيتبدّل الثيم كاملًا بتبدّل البطاقة. */
.sheet{--sh:173;--ss:65%;
  position:fixed;inset:0;z-index:80;display:grid;place-items:center;padding:26px}
.sheet .ac      {color:hsl(var(--sh) var(--ss) 62%)}
.sheet[hidden]{display:none}
.sheet-scrim{position:absolute;inset:0;background:transparent}

.sheet-box{
  position:relative;z-index:1;
  inline-size:min(660px,100%);max-block-size:min(88vh,860px);
  display:grid;grid-template-rows:auto minmax(0,1fr);
  overflow:hidden;border-radius:26px;

  /* الزجاج: خلفية خفيفة جدًّا + تشويش قويّ لما خلفها */
  background:linear-gradient(158deg,
    hsl(var(--sh) calc(var(--ss) * .42) 22% / .42),
    hsl(var(--sh) calc(var(--ss) * .3) 8% / .36));
  backdrop-filter:blur(38px) saturate(200%) brightness(1.22);
  -webkit-backdrop-filter:blur(38px) saturate(200%) brightness(1.22);
  border:1px solid hsl(var(--sh) var(--ss) 62% / .46);
  box-shadow:
    0 34px 80px #00000080,
    0 0 52px hsl(var(--sh) var(--ss) 55% / .17),
    inset 0 1px 0 #ffffff2e,
    inset 0 -1px 0 #00000038;

  opacity:0;transform:translateY(16px) scale(.978);
  transition:opacity .34s ease,transform .38s cubic-bezier(.2,.9,.25,1);
}
.sheet.on .sheet-box{opacity:1;transform:none}
/* لمعة علوية رفيعة — حافّة الزجاج حيث يسقط الضوء */
.sheet-box::before{
  content:"";position:absolute;inset-block-start:0;inset-inline:0;block-size:150px;z-index:0;
  background:linear-gradient(180deg,#ffffff26,#ffffff08 46%,transparent 78%);pointer-events:none;
}

.sheet-x{
  position:absolute;inset-block-start:14px;inset-inline-start:14px;z-index:5;
  inline-size:36px;block-size:36px;border-radius:50%;cursor:pointer;font-size:21px;line-height:1;
  color:#F2FFFB;background:#04100d59;border:1px solid #ffffff2e;
  backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);
  transition:color .2s,background .2s,transform .25s,border-color .2s;
}
.sheet-x:hover{background:hsl(var(--sh) var(--ss) 55% / .28);
  border-color:hsl(var(--sh) var(--ss) 62% / .62);transform:rotate(90deg)}

/* ① الفيديو في الأعلى */
.sheet-media{
  position:relative;aspect-ratio:16/9;overflow:hidden;
  background:radial-gradient(120% 100% at 50% 0%,hsl(var(--sh) var(--ss) 55% / .14),transparent 66%);
  border-block-end:1px solid hsl(var(--sh) var(--ss) 55% / .24);
}
.sheet-slot{position:absolute;inset:0;display:grid;place-items:center;align-content:center;gap:14px}
.sheet-slot img,.sheet-slot video{position:absolute;inset:0;inline-size:100%;block-size:100%;
  object-fit:cover;object-position:center;display:block;background:#0a1613}
.sheet-slot i{
  inline-size:60px;block-size:60px;border-radius:50%;display:grid;place-items:center;
  border:1px solid hsl(var(--sh) var(--ss) 62% / .42);
  background:hsl(var(--sh) var(--ss) 55% / .12);
  backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);
  box-shadow:0 0 32px hsl(var(--sh) var(--ss) 55% / .24), inset 0 1px 0 #ffffff29;
  transition:transform .3s cubic-bezier(.2,.8,.2,1),background .3s;
}
.sheet-media:hover .sheet-slot i{transform:scale(1.08);background:hsl(var(--sh) var(--ss) 55% / .2)}
.sheet-slot i::after{content:"";inline-size:0;block-size:0;margin-inline-start:-3px;
  border-block:10px solid transparent;border-inline-end:15px solid hsl(var(--sh) var(--ss) 62%)}
.sheet-slot b{font-size:.78rem;color:#9FB8B2;font-weight:400}

/* ② الوصف تحته */
.sheet-body{
  position:relative;z-index:1;padding:26px 30px 20px;overflow-y:auto;
  display:flex;flex-direction:column;
  scrollbar-width:thin;scrollbar-color:hsl(var(--sh) var(--ss) 55% / .38) transparent;
}
.sheet-body::-webkit-scrollbar{inline-size:6px}
.sheet-body::-webkit-scrollbar-thumb{background:hsl(var(--sh) var(--ss) 55% / .38);border-radius:99px}
.sheet-kicker{display:flex;align-items:center;gap:10px;margin-bottom:9px}
.sheet-kicker span{font-family:"IBM Plex Mono",monospace;font-size:.76rem;
  color:hsl(var(--sh) var(--ss) 66%);opacity:.95}
.sheet-kicker em{font-style:normal;font-size:.72rem;color:#BCD4CE;padding:3px 11px;
  border-radius:99px;border:1px solid #ffffff24;background:#ffffff0f}
.sheet-status{font-size:.7rem;font-weight:500;padding:3px 11px;border-radius:99px;
  color:hsl(var(--sh) var(--ss) 70%);border:1px solid hsl(var(--sh) var(--ss) 60% / .4);
  background:hsl(var(--sh) var(--ss) 55% / .12)}
.sheet-body h3{font-size:clamp(1.3rem,2.4vw,1.7rem);font-weight:700;letter-spacing:-.02em;
  margin-bottom:10px;text-wrap:balance;color:#F2FFFB}
.sheet-lead{color:#DCEAE6;font-size:.96rem;line-height:1.8;margin-bottom:18px}
.sheet-list{list-style:none;display:grid;gap:11px;margin:0 0 18px}
.sheet-list li{position:relative;padding-inline-start:19px;color:#CCDCD7;font-size:.89rem;line-height:1.7}
.sheet-list li::before{content:"";position:absolute;inset-inline-start:0;inset-block-start:.6em;
  inline-size:7px;block-size:7px;border-radius:50%;
  background:hsl(var(--sh) var(--ss) 62%);
  box-shadow:0 0 12px hsl(var(--sh) var(--ss) 60% / .7)}
.sheet-foot{margin-block-start:auto;padding-block-start:14px;border-block-start:1px solid #ffffff1f;
  display:flex;align-items:center;justify-content:space-between;gap:12px}
.sheet-hint{font-size:.72rem;color:#8FA6A0}
.sheet-nav{display:flex;align-items:center;gap:8px}
.sheet-nav button{inline-size:32px;block-size:32px;border-radius:50%;cursor:pointer;font-size:17px;
  color:#CBDCD7;background:#ffffff0f;border:1px solid #ffffff26;transition:all .2s}
.sheet-nav button:hover{color:#0a0f0e;
  background:hsl(var(--sh) var(--ss) 62%);border-color:hsl(var(--sh) var(--ss) 62%)}
.sheet-nav span{font-family:"IBM Plex Mono",monospace;font-size:.74rem;color:#8FA6A0;direction:ltr}

@media(max-width:760px){
  .sheet{padding:12px}
  .sheet-box{inline-size:100%;max-block-size:92vh;border-radius:20px}
  .sheet-body{padding:20px 20px 16px}
  .sheet-foot{flex-direction:column;align-items:stretch;gap:10px}
  .sheet-nav{justify-content:center}
}
/* الشفافية تعتمد على backdrop-filter؛ حين لا يُدعم نُعتّم اللوحة لتبقى مقروءة */
@supports not ((backdrop-filter:blur(1px)) or (-webkit-backdrop-filter:blur(1px))){
  .sheet-box{background:linear-gradient(158deg,#12201cf7,#08110ffa)}
}
@media(prefers-reduced-motion:reduce){
  .sheet-box{transition:none}
  .sheet-x:hover{transform:none}
}

/* ══════ رصيف الأيقونات ══════
   ترتيب مرجعي: أزرار مربّعة داخل حاوية واحدة. اللون لوننا: فيروزي على داكن. */
.dock{
  display:flex;align-items:center;gap:4px;padding:4px;border-radius:14px;
  background:#08110f6b;border:1px solid #2DD4BF1a;
  box-shadow:inset 0 1px 0 #ffffff08;
}
.dock-i{
  position:relative;inline-size:38px;block-size:38px;border-radius:10px;
  display:grid;place-items:center;color:var(--faint);text-decoration:none;
  transition:color .22s ease,background .22s ease,box-shadow .28s ease,transform .22s ease;
}
.dock-i svg{inline-size:19px;block-size:19px;display:block}
.dock-i:hover{color:#EAFFFA;background:#2DD4BF17;transform:translateY(-1px)}
.dock-i:focus-visible{outline:2px solid var(--teal);outline-offset:2px}
/* القسم الظاهر حاليًا — يقابل الزرّ «المضيء» في المرجع */
.dock-i.on{
  color:#04201c;
  background:linear-gradient(180deg,#5FE6D4,#2DD4BF);
  box-shadow:0 4px 16px #2DD4BF4d, inset 0 1px 0 #ffffff59;
}
.dock-i.on:hover{color:#04201c;background:linear-gradient(180deg,#6FEFDD,#33DCC7)}

/* تلميح يظهر تحت الأيقونة */
.dock-tip{
  position:absolute;top:calc(100% + 9px);inset-inline-start:50%;translate:50% 0;
  display:flex;flex-direction:column;gap:1px;white-space:nowrap;text-align:center;
  padding:7px 12px;border-radius:10px;font-size:.78rem;font-weight:500;color:var(--fg);
  background:#0a1613f2;border:1px solid #2DD4BF2e;box-shadow:0 10px 26px #000000a6;
  opacity:0;pointer-events:none;transition:opacity .18s ease,translate .18s ease;
}
.dock-tip em{font-style:normal;font-size:.68rem;color:var(--faint)}
.dock-i:hover .dock-tip,.dock-i:focus-visible .dock-tip{opacity:1;translate:50% 3px}
@media(hover:none){.dock-tip{display:none}}


/* ⚠️ يجب أن تأتي هذه بعد تعريف .dock: القاعدتان بنفس الأولوية،
   ووجودها داخل @media لا يرفعها — اللاحق في الملف هو من يفوز. */
@media(max-width:820px){
  .dock{display:none}
  .menu-btn{display:flex}
}

/* ══════════════ صفحات الوثائق ══════════════ */
.doc{padding-block:118px 84px;max-width:820px}
.doc-head{text-align:center;margin-bottom:42px}
.doc-head .eyebrow{text-align:center}
.doc h1{
  font-size:clamp(1.9rem,4.4vw,2.7rem);font-weight:700;letter-spacing:-.03em;margin-bottom:10px;
  background:linear-gradient(180deg,#FFFFFF 0%,#CFEFE7 62%,#8FD8CC 100%);
  -webkit-background-clip:text;background-clip:text;color:transparent;
  filter:drop-shadow(0 0 26px #2DD4BF3d) drop-shadow(0 0 60px #2DD4BF1f);
}
.doc .upd{color:var(--faint);font-size:.83rem;font-family:"IBM Plex Mono",monospace}
.toc{margin:0 0 40px;padding:20px 22px;border-radius:16px;
  background:linear-gradient(158deg,#12201cbf,#0a1613b3);
  border:1px solid var(--line);box-shadow:inset 0 1px 0 #ffffff0a}
.toc b{display:block;font-size:.76rem;color:var(--teal);letter-spacing:.12em;margin-bottom:12px}
.toc ol{list-style:none;counter-reset:t;display:grid;gap:2px;margin:0;padding:0}
.toc li{counter-increment:t}
.toc a{display:flex;gap:10px;align-items:baseline;padding:8px 11px;border-radius:10px;
  color:var(--muted);text-decoration:none;font-size:.9rem;transition:background .2s,color .2s}
.toc a::before{content:counter(t,decimal-leading-zero);font-family:"IBM Plex Mono",monospace;
  font-size:.72rem;color:var(--teal);opacity:.65;flex:0 0 auto}
.toc a:hover{background:#2DD4BF14;color:#EAFFFA}
.doc section{padding:24px 26px;margin-bottom:14px;border-radius:16px;
  background:linear-gradient(158deg,#12201cab,#0a1613a1);
  border:1px solid var(--line);scroll-margin-top:100px;
  transition:border-color .3s,box-shadow .3s}
.doc section:hover{border-color:#2DD4BF33;box-shadow:0 12px 32px #0000004d}
.doc h2{font-size:1.1rem;font-weight:600;margin:0 0 12px;text-align:start;
  background:none;-webkit-text-fill-color:currentColor;color:var(--fg);filter:none;
  display:flex;align-items:center;gap:10px}
.doc h2::before{content:"";inline-size:6px;block-size:6px;border-radius:50%;flex:0 0 auto;
  background:var(--teal);box-shadow:0 0 12px #2DD4BF99}
.doc p,.doc li{color:#BCCBC6;font-size:.94rem;line-height:1.85;margin-bottom:10px}
.doc p:last-child,.doc li:last-child{margin-bottom:0}
.doc ul{padding-inline-start:20px;margin:8px 0 0}
.doc li{margin-bottom:7px}
.doc a.mail{color:var(--teal);text-decoration:none;border-block-end:1px solid #2DD4BF4d}
.doc a.mail:hover{border-block-end-color:var(--teal)}
.doc-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px;margin:26px 0 34px}
.doc-card{padding:22px;border-radius:16px;text-align:center;
  background:linear-gradient(158deg,#12201cd1,#0a1613c4);border:1px solid var(--line);
  transition:transform .3s cubic-bezier(.2,.8,.2,1),border-color .3s,box-shadow .3s}
.doc-card:hover{transform:translateY(-4px);border-color:#2DD4BF45;
  box-shadow:0 18px 40px #00000059,0 0 26px #2DD4BF14}
.doc-card i{display:grid;place-items:center;inline-size:42px;block-size:42px;margin:0 auto 12px;
  border-radius:12px;background:#2DD4BF14;border:1px solid #2DD4BF33;
  font-style:normal;font-size:19px;filter:drop-shadow(0 0 10px #2DD4BF4d)}
.doc-card b{display:block;font-size:.98rem;margin-bottom:5px}
.doc-card span{display:block;font-size:.84rem;color:var(--muted)}
.doc-card a{color:var(--teal);text-decoration:none;font-size:.9rem}
@media(max-width:700px){
  .doc{padding-block:96px 60px}
  .doc section{padding:20px 18px}
  .toc{padding:16px 16px}
}

/* ══════════════ المنصّات ══════════════ */
.plat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(272px,1fr));gap:18px;margin-top:40px}
.plat{
  position:relative;display:flex;flex-direction:column;
  padding:28px 26px 24px;border-radius:20px;
  background:linear-gradient(158deg,#12201cd9,#0a1613c9);
  border:1px solid var(--line);
  box-shadow:0 10px 30px #00000047, inset 0 1px 0 #ffffff0a;
  transition:transform .35s cubic-bezier(.2,.8,.2,1),border-color .35s,box-shadow .35s;
}
.plat:hover{transform:translateY(-5px);border-color:#2DD4BF4d;
  box-shadow:0 22px 50px #00000066, 0 0 34px #2DD4BF1a, inset 0 1px 0 #ffffff14}

/* شريط الشعار: الشعارات الرسمية عريضة (شوبيفاي 3.5:1، زد 2.6:1، سلة 1.2:1)
   فلا يناسبها مربّع. نوحّد الارتفاع ونترك العرض حرًّا — وهو ما توصي به أدلّة
   العلامات: مساحة خالصة حول الشعار بلا صندوق يحيطه. */
.plat-mark{
  block-size:38px;margin-bottom:20px;display:flex;align-items:center;
  filter:drop-shadow(0 0 18px #2DD4BF1f);
}
.plat-mark img{
  block-size:100%;inline-size:auto;max-inline-size:172px;object-fit:contain;
  display:block;object-position:center right;
}
/* الحرف احتياط: يظهر وحده إن غاب الملفّ أو حذفته */
.plat-mark span{
  display:grid;place-items:center;inline-size:38px;block-size:38px;border-radius:11px;
  font-size:1.3rem;font-weight:700;line-height:1;color:var(--teal);
  background:linear-gradient(150deg,#2DD4BF1f,#2DD4BF08);border:1px solid #2DD4BF33;
}
.plat-mark img + span{display:none}
[dir="ltr"] .plat-mark img{object-position:center left}

.plat-head{display:flex;align-items:baseline;gap:9px;margin-bottom:4px;flex-wrap:wrap}
.plat-head h3{font-size:1.15rem;font-weight:700;letter-spacing:-.015em}
.plat-head em{font-style:normal;font-size:.74rem;color:var(--faint);
  font-family:"IBM Plex Mono",monospace}
.plat-role{font-size:.8rem;color:var(--teal);margin-bottom:12px;opacity:.9}
.plat p{color:var(--muted);font-size:.91rem;line-height:1.8;margin-bottom:18px}
.plat-state{
  margin-block-start:auto;align-self:flex-start;display:inline-flex;align-items:center;gap:7px;
  font-size:.73rem;font-weight:500;padding:5px 12px;border-radius:99px;
  border:1px solid var(--rule);color:var(--faint);
}
.plat-state::before{content:"";inline-size:6px;block-size:6px;border-radius:50%;
  background:currentColor;flex:0 0 auto}
.plat-state.on{color:var(--teal);border-color:#2DD4BF59;background:#2DD4BF12;
  box-shadow:0 0 18px #2DD4BF1f}
.plat-note{margin-top:28px;text-align:center;font-size:.75rem;color:var(--faint)}
@media(max-width:700px){.plat{padding:24px 20px 20px}}

/* ══════════════ مبدّل اللغة ══════════════ */
.lang{
  justify-self:end;display:flex;align-items:center;gap:2px;padding:3px;
  border-radius:999px;background:#08110f6b;border:1px solid #2DD4BF1a;
  box-shadow:inset 0 1px 0 #ffffff08;
}
.lang button{
  min-inline-size:34px;block-size:30px;padding:0 9px;border:0;border-radius:999px;
  background:transparent;color:var(--faint);cursor:pointer;
  font-family:inherit;font-size:.78rem;font-weight:600;line-height:1;
  transition:color .2s,background .2s;
}
.lang button:hover{color:#EAFFFA;background:#2DD4BF17}
.lang button.on{
  color:#04201c;background:linear-gradient(180deg,#5FE6D4,#2DD4BF);
  box-shadow:0 3px 12px #2DD4BF3d, inset 0 1px 0 #ffffff59;
}
.lang button:focus-visible{outline:2px solid var(--teal);outline-offset:2px}
.dock{justify-self:center}
.brand{justify-self:start}
@media(max-width:820px){
  .nav{grid-template-columns:auto 1fr auto}
  .lang{justify-self:center}
  .lang button{min-inline-size:30px;block-size:27px;padding:0 7px;font-size:.72rem}
  .menu-btn{justify-self:end}
}

/* ══════════════════════════════════════════════════════════════════════════
   وضع الجوّال الخفيف — للأجهزة اللمسيّة وحدها.

   التعليق أثناء التمرير لم يكن من التحميل بل من طبقات يُعيد المُركِّب رسمها
   في كلّ إطار على معالج رسوميّات الهاتف:

   ① ‏backdrop-filter على الشريط الملتصق: يُعيد طمس ما خلفه بنصف قطر 22px في
     كلّ إطار تمرير، والشريط ظاهر على الشاشة دائمًا. أغلى بند على الإطلاق،
     ولا علاقة له بثلاثيّ الأبعاد — لذلك بقي التعليق بعد تسريع التحميل.
   ② ‏هالة الشعار: ‎filter:blur(18px)‎ مع ‎animation‎ لا نهائيّة ⇒ إعادة ترشيح
     مستمرّة حتى والصفحة ساكنة. والتدرّج الشعاعي ناعم أصلًا، فالطمس زائد عليه.
   ③ ‏زجاج صغير داخل المسار (العدّاد، أيقونة التشغيل).

   البديل: زجاج معتم بلا ترشيح حيّ. فوق خلفية داكنة الفرق البصري لا يكاد يُرى،
   والفرق في السلاسة كبير.
   ══════════════════════════════════════════════════════════════════════════ */
@media (pointer:coarse), (max-width:820px){
  /* ① الشريط والقائمة */
  .nav,.menu-panel{backdrop-filter:none;-webkit-backdrop-filter:none}
  .nav{background:linear-gradient(180deg,#131f1cfa,#0a1411fd)}
  .menu-panel{background:linear-gradient(180deg,#131f1cfd,#0a1411fe)}

  /* ② الهالة: تدرّج ثابت بلا ترشيح ولا حركة */
  #logo3d .stage::before{filter:none;animation:none;opacity:.9}

  /* ③ الزجاج الصغير */
  .slot i,.counter{backdrop-filter:none;-webkit-backdrop-filter:none}
  .counter{background:#0a1613f2}

  /* الشعار في الترويسة: ظلّان مرشَّحان على عنصر ثابت الظهور — واحد يكفي */
  .mark{filter:drop-shadow(0 0 10px #2DD4BF66)}
}
