/* ── لوحة سيكل — مشتقّة، لا ملصوقة ─────────────────────────
   الخيار ٢: سيكل يبتلع البيت. الأرضية تنتقل من أخضر تَك إلى
   كحل سيكل بدوران صبغة واحد، لا باختيار يدوي لأربعٍ وعشرين لونًا.

     الصبغة  +82.5°   ·  الإشباع ×0.80  ·  **الإضاءة كما هي**
     الذهب   +7.2°  ·  الإشباع ×1.15

   الإضاءة ما تحرّكت ولا خطوة (أقصى فرق ٠٫٠٠٠٠)، فسلّم الارتفاع
   الأصلي — well ← table ← panel ← quiet ← rise ← lift — يبقى
   بالضبط كما عُوير. والدليل إن الدوران صحيح: ‎--s-void‎ ينزل على
   ‎#0A0B12‎ وهو كحل سيكل القانوني نفسه، مشتقًّا لا منسوخًا.

   الورق العظمي والنصّ (6 ألوان) ما انمسّت: الورقة تبقى ورقة.
   ───────────────────────────────────────────────────────── */
/* ============================================================
   تَك — عدّة الطاولة · tokens.css

   هذا الملف هو الحقيقة الحيّة. القيمة اللي هنا هي اللي تُشحن.
   THIS FILE IS THE LIVE TRUTH. Edit values HERE.
   الاتجاه واحد ولا ينعكس: هذا الملف أولًا، ثم يُعاد توليد
   ‎../project-152/kit/tokens.json‎ منه — لا العكس أبدًا.
   وما عاد التوليد يدويًّا: البرنامج هو
       node design/tak/gen-tokens-json.mjs --write
   والفحص يشتغل مع الحارس ويطلع بـ1 على أي حرف يختلف.
   **من غيّر قيمة هنا، يشغّل المولّد قبل ما يسلّم.**
   (كان مكتوبًا هنا «مولَّد من tokens.json — لا تحرّر القيم هنا».
    كانت جملة تُغري بناءً يمسح جولة كاملة، فانصلحت ٢٠٢٦-٠٧-٢٨.
    وفي الجولتين ٣ و٤ كتب الـJSON عن نفسه إنه «أُعيد توليده من
    هذا الملف وكل قيمة فيه مقروءة منه» وهو تسع قيم لونية ورا —
    ولهذا صار التوليد برنامجًا يُشغَّل، لا جملةً تُكتب.)

   THE CAMERA MOVED. You are not standing in front of a wall;
   you are sitting at a table, at night, under one warm lamp.
   Same house, same sun-law, new hour.

   Apply on the app root: <div dir="rtl" lang="ar" class="tak">
   Image slots (--im-*) are bound by the app shell, never here —
   this file has no idea where the assets live.
   ============================================================ */
.tak{

  /* ---- اللونان الخامان اللي يتكرّران بالنظام، بصيغة قنوات ----
     الظلّ صبغة أرض عند S69 L5، والورق نورُه. كانا ينكتبان حرفيًّا
     ٤٤ مرّة بين الملفّين وما لهما رمز، وسبعة ألوان أقلّ تكرارًا
     لها رموز. الترتيب ما يهمّ — الخصائص المخصّصة ما تعرف ترتيبًا. */
  --sh-rgb:4,22,13;                /* الظلّ. NEVER rgba(0,0,0) — انظر §٣ */
  --lit-paper-rgb:255,250,236;     /* نور المصباح على الورق */

  /* ==========================================================
     ١ · سلّم السطوح — الارتفاع ضوء، مو ظل

     الرقم ينقاس على البكسل المركّب، بعدين ينكتب. (٢٠٢٦-٠٧-٢٨)
     MEASURE THE COMPOSITE, THEN WRITE THE NUMBER.
     كل نسبة تحت مقيسة على رندر ٣٩٠×٨٤٤ للردهة الحقيقية
     (app_client/frontend-tak/index.html) على DPR 3، بمسح كل بكسل
     على كل حافّة — مو على زوج عيّنات خام ولا على نقطة مختارة.

     لماذا انهار السلّم قبل: --lamp و--falloff ينزلان على z1/z2،
     تحت الغرفة (z10). فالأرض تنضوي ويرتفع سطوعها ~٣× عند ركن
     المصباح، والأثاث ما ياخذ ولا فوتون. العلاج: --lamp-catch فوق
     كل وجه مرفوع، وسلّم أعرض.

     ---- جدول السلّم يعيش في MOLD.md، هنا ولا رقم ----
     THE RAMP TABLE LIVES IN `MOLD.md` (law 2). IT IS NOT REPEATED HERE.

     كان هنا جدول ثانٍ بستّة صفوف، وكان يخالف MOLD وDECISIONS
     وtokens.json عند نفس الإحداثيات — وأسوأ رقم فيه (١٫١٨٤) يكسر
     قانون ١٫٢٠ اللي فوقه بسطرين. وهذا بالحرف العطب اللي أعلن
     DECISIONS §٢٤٫٢ إنه «راح»: جدول مكرّر داخل الملف المسمّى
     الحقيقة الحيّة، تحت عنوانٍ يقول «قِس المركّب ثم اكتب الرقم».
     انحذف ٢٠٢٦-٠٧-٢٨ · الجولة ٤. قانون واحد، جدول واحد، ملف واحد.

     والطريقة كذلك تعيش هناك مكتوبةً (‎_probe/a-ramp.py‎): رندر
     ٣٩٠×٨٤٤ على DPR 3 للردهة الحقيقية عبر إطار، ومسح كل موضع على
     المحيط، والحزّة مستثناة لأنها ما هي حافّة الجسم.
     LAW: furniture is cut from the TABLE. Paper is reserved for
     the card faces alone.
     ========================================================== */
  --s-void:#0A0B12;

/* ── إشارة الوكيل ─────────────────────────────────────────
   البنفسجي ليس أرضيةً ولا لونَ سطح: هو **غمزة** وحدها، تقال عند
   اللاعب الآلي لا غير — سيكل ١، سيكل ٢. أرضيةٌ بنفسجية تجعل
   الإشارة صوتًا عامًّا، فتفقد معناها. تُستعمل بالنقطة والحدّ
   والوميض الخافت، وما تتجاوز نسبتها بضعة بكسلات في الشاشة. */
  --ai:#5C4CEE;
  --ai-lo:#4536C9;
  --ai-hi:#7E71F4;
  --ai-glow:rgba(92,76,238,.34);                                 /* 0 · العتمة — خارج الطاولة */
  --s-well-lo:#0E0F18;                              /*     قاع البئر — أعلى الحقل، في الظل */
  --s-well:#10111B;                                 /* 1 · البئر — داخل الحقول */
  --s-well-hi:#141622;                              /*     البئر عند التركيز */
  --s-table:#161925;                                /* 2 · الجوخ — الأرض عند قيمتها */
  --s-table-lit:#282D3D;                            /* 3 · الجوخ تحت المصباح — مستوى الطاولة (بوابة الطاولة) */
  --s-panel:#3B4354;                                /* 4 · اللوح — السرير اللي ينحط عليه الأثاث */
  --s-panel-hi:#424A5B;                             /*     طرف اللوح المضيء */
  --s-panel-lo:#363C4D;                             /*     قاع اللوح */
  /* ٤٫٥ · الهادي — وجهه صار سواطًا حقيقيًّا، مو غسلة نور فوق سريره.
     الغسلة (١٣٪→٣٪ أبيض) كانت تخلّي نصفه الأسفل *هو السرير نفسه*
     حرفيًّا، فرقم panel:.tkb-q ينقاس ١٫٠١٣ عند الحافّة السفلى
     ويطلع ١٫٢٩٧ لو انقاس بعيّنة — ثلاث نسخ لرقم واحد.
     القانون الآن: أغمق بكسل بوجه الهادي ≥ ١٫٢٠× أنصع بكسل سرير
     على كل المحيط. أغمقه --s-quiet-lo، وأنصع سرير ملاصق #325646
     (لمعة ٠٫٠٧٩٨) — فأرضية الإضاءة ٠٫١٠٥٨، و--s-quiet-lo عندها
     ٠٫١٠٨٨. المقيس على المركّب: ١٫٢٤٣ مطفيًّا و١٫٢٧٩ كاملًا.
     رقم واحد، لا ثلاثة. */
  --s-quiet-hi:#4A5262;
  --s-quiet:#474F5E;
  --s-quiet-lo:#444C5D;
  /* المرتفع والطايف ارتفعا درجة (٢٠٢٦-٠٧-٢٨ · الجولة ٣): بعد ما
     ارتفع الهادي ليحقّق قانون ١٫٢٠، صار قاع الهادي (#404361،
     ٠٫١٠٨٨) *فوق* قاع المرتفع القديم (#3E415F، ٠٫١٠٤٠) — أي
     السلّم ينقلب عند أسوأ بكسل: الزر الهادي ينفصل عن اللوح أكثر
     من الزر الثانوي. مقيسة قبل: panel:.tkb ١٫٢٠٣ مطفي مقابل
     panel:.tkb-q ١٫٢٧٩. الظلّ كان يستر الانقلاب على الشاشة، وهذا
     بالضبط صنف الأرقام اللي وقعنا فيه قبل. رُفع القاع. */
  --s-rise:#4B5463;                                 /* 5 · المرتفع — جسم الزر الثاني ساكنًا */
  --s-rise-hi:#4F5766;                              /*     طرفه المضيء */
  --s-rise-lo:#48505F;                              /*     قاعه */
  --s-lift:#535B69;                                 /* 6 · الطايف — التحويم، والرقاقة المختارة */
  --s-lift-hi:#565F6D;
  --s-lift-lo:#4F5766;
  --p-back-hi:#EAE3D2; --p-back-lo:#D3C6AA;
  /* وجه شريحة العلامة — **انقلب** في الجولة ٤ (٢٠٢٦-٠٧-٢٨).
     التاريخ: كان #1B3826 (أغمق من الطاولة)، ثم ارتُفع إلى #345B45
     والمكتوب هنا وقتها ١٫٥٤٧:١ على تغبيش ٦px. والمقاس على سطح
     الرندر المصحَّح يقول ١٫٤٩٥:١ مقابل *محيطها هي* — أي أن
     الشريحة تذوب في الطاولة عند موضعها بالضبط.
     ولماذا موضعها هو الأصعب: العلامة تقعد في ركن المصباح، حيث
     الجوخ أنصع ما يكون (محيطها ٠٫٠٣٩٨٦ لمعةً مقابل ٠٫٠٩٠٠٥ حول
     الزرّ الأساسي). فأي رقم يُقاس مقابل «الأرض» عمومًا يجاملها.
     المقيس على الردهة المركّبة قبل الانقلاب: العلامة ٠٫٠٨٤٣٣ لمعةً
     · الزرّ الأساسي ٠٫٣٦٦٨٩ · الرزمة ٠٫٣٦٨٣٢ — يعني **الرزمة
     زينةٌ بأربعة أضعاف ونصف لمعة العلامة**، والعلامة ثالث أعلى
     جسم على شاشتها هي.
     العلاج نفس منطق أيقونة المطلق (صفيحة مضيئة وكلمة غامقة)،
     بس بمادّة الأرض لا باللون المحجوز: النحاس مقيس ٨٫٠٤٪ من
     الشاشة وسقفه ٨٪، وصفيحة نحاسية ١٢٣×٨٨ تزيده ٣٫٣ نقاط —
     وتكسر «النحاس يعني اللي تضغطه». فالصفيحة صارت **مرجًا
     مُضاءً**: نفس عائلة صبغة الطاولة (H150) بكروما واطية
     (S 0.25)، وأفتح سطح بالنظام بعد الورق — والورق محجوز لوجه
     الورقة وحده. المقيس بعد: انظر components.css §٨. */
  --mark-face-hi:#8F94B2; --mark-face:#8488A4; --mark-face-lo:#777A94;
  --p-card:#FCF9F0;                                 /* 6 · وجه الورقة — أفتح قيمة بالعالم */
  --p-card-mid:#F5EFE1;                             /*     وسط الورقة */
  --p-card-lo:#E9E1CD;                              /*     قاعها في الظل — الفرق ٧٫٥ درجة إضاءة،
                                                       ١٫١٥٨:١ مقيسة. هذا انحدارُ مصباح، مو تعتيق:
                                                       التعتيق يصفّر ويوسّخ، والمصباح يعتّم وحده. */

  /* ---- الحبر ---- */
  /* ---- جدول الحبر يعيش في MOLD.md، هنا ولا رقم ----
     THE INK TABLE LIVES IN `MOLD.md`. IT IS NOT REPEATED HERE.

     كان هنا جدول ثانٍ بتسعة أرقام، وكل واحد منها يخالف نظيره في
     MOLD. الاثنان كانا خطأً: الأداة اللي أنتجتهما (‎_probe/a-ink.py‎)
     كانت تختار «البكسل المُشبَع بالحبر» بعتبة واحدة على كل النصّ،
     والفرق عن الرندر الشبح يصغر كل ما نصع السرير — فتنرمى بالضبط
     نوى الحروف اللي فوق أنصع سرير، وهي المطلوبة. مقيس: ٩ بكسلات
     مؤهَّلة من ١٠٨٥ على «ضد». الأداة انصلحت في الجولة ٤ وصار
     قياسها التحليلي: الرمز مركَّبًا بشفافيّته على السرير المقيس،
     وأنصع سرير تحت النصّ هو الموضع.
     يعني الأرقام القديمة ما كانت مخترعة — كانت مقيسة بآلة تقرا
     عاليًا. والقاعدة المستفادة مكتوبة في MOLD: أداة ما انبرهنت
     ما هي أداة.

     الأرضيات اللي تخصّ الرموز هنا وما تنعاد في أي مكان:
       --tx2 و--tx3 سندٌ ≥16px ووزن ٤٠٠ فقط.
       --tx3 على اللوح فما دونه فقط، ولا يقعد على --s-rise/-lift.
       --tx4 للموقوف وحده، وما يحمل معنًى أبدًا. */
  --tx:#F2ECDD;
  --tx-rgb:242,236,221;
  --tx2:rgba(242,236,221,.80);     /* السند ≥16px · وزن ٤٠٠ */
  --tx3:rgba(242,236,221,.78);     /* العناوين الصغيرة والنائب، اللوح فما دونه فقط */
  --tx4:rgba(242,236,221,.46);     /*        الموقوف فقط — ما يحمل معنى أبدًا */
  --ink:#1B140C;                   /* على الورق، وعلى النحاس */
  /* ٢٠٢٦-٠٧-٢٨ · الجولة ٤: ٠٫٧٤ → ٠٫٨٤. كان مكتوبًا «٤٫٧٢ مقيسة»
     ثم «٥٫٥٢»، والمقيس بالطريقة المصحّحة ٤٫١٤ — تحت الأرضية.
     أسوأ سرير تحت هالسطر هو الطرف الغامق من وجه النحاس
     (--a-lo ‎#D1A416‎) لا وسطه، وهناك ٠٫٧٤ تعطي ٤٫٠٢٨ حسابيًّا.
     السلّم عند نفس السرير: ٠٫٧٤→٤٫٠٣ · ٠٫٧٨→٤٫٣٤ · ٠٫٨٠→٤٫٥١ ·
     ٠٫٨٤→٤٫٨٤. انحطّت ٠٫٨٤ لا ٠٫٨٠: الأرضية تنعدّى بهامش، ما
     تنلامس. والحفر (text-shadow) باقٍ — كان يكلّف ٠٫٣٦٦ من النسبة
     وحده، وشيله كان يوصل ٤٫٥١ بالكاد؛ رفع الحبر أصدق من حذف صنعة. */
  --ink2:rgba(27,20,12,.84);       /* السطر السند على النحاس — ٤٫٨٤:١ على أغمق طرف من الوجه */
  --ink-off:rgba(27,20,12,.52);    /* الحبر الموقوف على النحاس المطفي — مو رماديًّا */

  /* ==========================================================
     ٢ · اللون المحجوز — النحاس المجلي
     ONE accent. It appears only on the thing you press.
     Ground held at S 18–36 · accent at S 72–76 = the accent is
     ~3× the saturation of its bed. In the shipped v1 that
     relationship was INVERTED — the wall was the most saturated
     object on screen — which is the mechanical cause of
     «everything reads the same».
     Budget: 3–8% of screen pixels, resting.
     الرقم ما ينكتب بلا طريقته: النسبة تنقاس على ‎_probe/a-shot.html‎
     عند ٣٩٠×٨٤٤ (DPR 3 منزَّلًا إلى بكسل CSS)، ومعيار «نحاس» هو
     صبغة ٢٥–٥٥° وتشبّع ≥٠٫٤٥ وقيمة ≥٠٫٢٥ — وهذا اللي يفصل النحاس
     عن كريم الورق (S ٠٫٢٤) وعن العقيق (H ٩°).
     والرقم يُولَّد ولا يُنسخ:
       msedge --headless=new --force-prefers-reduced-motion \
         --force-device-scale-factor=3 --window-size=420,900 \
         --screenshot=shot.png \
         ".../_probe/a-shot.html?src=/app_client/frontend-tak/index.html&w=390&h=844"
       python _probe/a-accent.py shot.png 390 844 [--dpr N]

     ═══ ولا رقم هنا — والسبب أكبر من الرقم ═══
     (٢٠٢٦-٠٧-٢٩ · الدورة ٣ · الجولة ١.)
     كان مكتوبًا هنا **٧٫٣٩١٪** «المقيس بهذا الأمر»، وقبله ٧٫٦٥٤ و
     ٧٫٥٦٢ و٧٫٦٧٦ و٧٫٩٣٩ و«Measured 5.87%» — خمسة تصحيحات لرقمٍ
     واحد، كلها انقُرئت على أنها سهوُ نسخٍ. **وما كانت.**
     السطر اللي فوق كان يقول ‎<shot cropped to 390×844 @DPR>‎، أي
     إن القصّ كان **شرطًا على المُنادي**، و‎a-accent.py‎ ما كان
     يقصّ: كان يستقبل أي لقطة ويعمل ‎resize‎ لها إلى ٣٩٠×٨٤٤. ولأن
     نافذة الرندر لازم تكون **أوسع من الإطار** وإلا طلع للطفل
     شريط تمرير، فكل لقطة تحمل هامشًا خارج الإطار — والـ‎resize‎
     كان يعصره **داخل** العيّنة. فالميزانية معرَّفة حصّةً من
     **الشاشة** وكانت تُطبع حصّةً من **النافذة**.
     مقيسًا على لقطةٍ واحدة، أمرٌ واحد بينهما:
       النافذة كاملةً (كما كان يُنشر) : ٦٫٨٠٩٪
       مقصوصةً إلى الإطار             : ٧٫٩٠٩٪
     الهامش غامقٌ وما فيه نحاس، فالخطأ **تخفيفٌ في اتجاه واحد**:
     يُنقص دائمًا، بنحو ١٫١ نقطة، وحوالي ١٤٪ من المقام كان بكسلات
     ما هي على الجوّال أصلًا. والاتجاه هو الخطر: ٣–٨٪ نطاقٌ **له
     سقف**، فالتصحيح ينقل النظام من ٦٫٨ المريحة إلى ٧٫٩ — داخل
     القانون بـ٠٫٠٩ لا بـ١٫١٩.
     ما أحدٌ كتب رقمًا كاذبًا: الأداة انسُئلت نسبةً فأعطت نسبةً
     أمينةً **عن المستطيل الغلط** — نفس صنف ‎a-edge.py‎ وهو يمسح
     مستطيلًا فوق سرير لوحٍ ما انرسم ويرجّع «١٫٠٠٠: رقمٌ عن لا شيء»،
     ونفس صنف رِجّ الجولة ٧ اللي قرأ شجرةً ثانية وطبع PASS:
     **الرقم ما كان غلطًا، كان مأخوذًا عن صورةٍ ثانية.**
     والآن ‎frame()‎ يقصّ داخل الأداة، والمقياس **مُعطًى لا مُخمَّن**
     (‎--dpr‎، افتراضه ٣ مثل ‎a-edge.py‎ و‎a-ink.py‎)، ويرفض القياس
     إذا ما وسع الإطار في اللقطة بدل ما يقصقص. مبرهَنًا: نفس
     الصفحة، ثلاث نوافذ، ٤٠٠×٨٦٠ و٤٢٠×٩٠٠ و٤٦٠×٩٨٠ — **جوابٌ
     واحد**، بعد ما كانت تعطي ٧٫٠٩٨ و٧٫٠٩٨ و٥٫١٤٩.
     فالدرس مو «أعد الأمر»: **أداةٌ صحّتها مشروطةٌ بخطوةٍ يسويها
     المُنادي ستُنادى غلطًا يومًا ما**، وكل تصحيحٍ من الخمسة فوق
     كان يعالج العَرَض. الرقم يُقرا من الأداة، وما يُكتب هنا.
     (وقبل حزّة الفعل الأساسي كان ٧٫٦٧٦٪؛ العضّة تشيل نحاسًا فتنزل
     الميزانية. وكان مكتوبًا هنا ٧٫٦٧٩ ومكتوبًا في ترويسة المِسبار
     ٧٫٩٣٩ بينما المِسبار نفسه يطبع ٧٫٦٧٦ — رقمٌ واحد بثلاث قيم،
     إحداها في الأداة اللي تقيسه. وقبلها بجولة «Measured 5.87%»،
     أقلّ من الواقع بالثلث. الحقيقة على سقف نطاقها لا في وسطه.)
     ولاحظ ما اللي *ما* صار: العلامة انقلبت في هالجولة إلى صفيحة
     مضيئة، والحلّ الواضح كان صفيحة نحاسية مثل الأيقونة — ١٢٣×٨٨
     أي ٣٫٣ نقاط زيادة، فتطلع الميزانية فوق ١١٪. فانقلبت بمادّة
     الأرض لا باللون المحجوز. الميزانية اللي تُقاس هي اللي تمنع.

     استثناء واحد، وواحد فقط: العلامة.
     ONE EXEMPTION, AND ONLY ONE: THE WORDMARK. **حدّ شريحة** العلامة
     يلبس النحاس لأن العلامة هي *مصدر* اللون المحجوز — خيط البيت
     مُضاءً — لا لأنه ينضغط. وأيقونة التطبيق ترث الاستثناء
     وتقلبه: صفيحة نحاسية وكلمة غامقة. وما عدا ذلك، كل ما لا
     يُضغط ممنوع عليه النحاس، بأي مقاس وفي أي حالة.
     (هذي الجملة نفسها حرفًا بحرف في MOLD.md قانون ٦ — كان الملفان
      يقولان قانونًا واحدًا بمحتوًى متعاكس، انصلح ٢٠٢٦-٠٧-٢٨.)

     **والكلمة نفسها ما عادت نحاسًا — صارت برونزًا غامقًا**، وهذا
     الملف كان يقول غير المشحون جولتين. (انصلح ٢٠٢٦-٠٧-٢٩.)
     الجولة ٤ قلبت الشريحة: الوجه صار المضيء و«تَك» صارت حبرًا
     محفورًا فيه. و‎components.css‎ عند ‎.tkmark .w‎ يقولها صراحةً
     ويعطي علّتها: على صفيحة مضيئة كفاية عشان تكسب شاشتها، النحاس
     عند ٤٫٥:١ **يصير برونزًا غامقًا، ما يبقى ذهبًا** — فالملء
     ‎--a-shade‎ ممزوجًا في ‎--ink‎ وينتهي عند ‎--ink‎/‎--a-night‎.
     فالاستثناء يخصّ **الحدّ لا الكلمة**. وهذا كمان ليش ما زادت
     الميزانية تحت: الحبر البرونزي ما يعدّه المِسبار نحاسًا.

     والخيط ذهبٌ ثالث، ومحكومٌ بنفس الصرامة:
     THE THREAD (`--kh`) IS THE HOUSE ORNAMENT, AND IT BELONGS TO
     ONE OBJECT — ظهر الورقة — AT ANY SCALE, AND TO NOTHING ELSE.
     ظهر تَك بالرزمة، وهو اليوم بيته الوحيد. (كان معه ظهر ورقة
     الكرسي بالرِّيل — «جسمٌ واحد بمقاسين، مو بيتين» — وانشالت
     ورقة الكرسي كلها بحكم صاحب البيت ٢٠٢٦-٠٧-٢٩، فرجع الخيط
     لجسمٍ واحد. والشرط ما تغيّر بشيلانها: هو **شرطٌ لا مكان**،
     ولهذا ما انكسر لمّا نقص البيت — ولا انكسر لمّا زاد قبلها.)
     وولا ورقة منها تنضغط، فالخيط يبقى مقروءًا **زينة
     مادّة** لا إشارة فعل، وشروطه خمسة لا رابع لها ولا خامس يُزاد:
       ١ · عرضه شعرة (بكسل واحد)، ولو كبر الظهر.
       ٢ · على الظهر وحده — ولا يقع على وجه ورقة أبدًا.
       ٣ · ولا على حدٍّ، ولا على حالة، ولا على نصٍّ تفاعليّ.
       ٤ · ولا يجاور النحاس على نفس الجسم.
       ٥ · ولا يقع على شيء يُضغط.
     لو انكسر واحد منها صار النظام بصبغتين ذهبيّتين — وعندها
     «اللون المحجوز واحد» تسقط بحكم الأمر الواقع، لأن العين ما
     تفرّق نحاسًا عن خيط بلمحة، تفرّق ذهبًا عن غير ذهب.
     والقائمة تُقرا من الملف، ما تُحفظ:
       grep -n -- "--kh" design/tak/components.css

     (وُسّعت ٢٠٢٦-٠٧-٢٨ · الجولة ٥. كانت تقول «يعيش في مكان واحد
      بالضبط: ظهر تَك» — وظهر ورقة الكرسي لبسه في الجولة ٤، فصارت
      الجملة كاذبة على أربعة أجسام. والصح إنها كانت تسمّي **موضعًا**
      وهي تقصد **شرطًا**: مكانٌ يزحف، والشرط ما يزحف. فالمكتوب الآن
      هو الشرط، والعدد يُشتقّ بـgrep. هذي الفقرة نفسها حرفًا بحرف
      في MOLD.md تحت «One accent» — وكل ملف يسمّي الآخر. الجولة ٢
      شحنت قانونًا واحدًا في ملفّين بمحتوًى متعاكس، وهذا الاحتياط
      ضدّ تكراره.)
     ========================================================== */
  --a-hi:#FBD549;                  /* طرف الوجه المضيء + حلقة التركيز */
  --a:#ECC330;                     /* الصبغة */
  --a-lo:#D1A416;                  /* قاع الوجه */
  --a-deep:#B48411;                /* الحدّ الغائر */
  --a-rgb:224,168,60;
  --a-hi-rgb:239,188,85;
  /* النحاس عند التحويم — درجة أرفع من الساكن، نفس الصبغة */
  --a-hov-hi:#FEDC58; --a-hov:#F1C839; --a-hov-lo:#D7AA1A;
  /* النحاس المصقول — حدّ العلامة وحبرها. من شمسه لليله */
  --a-sun:#FFEFC6; --a-pol:#FADA5E; --a-brz:#D0AB13; --a-shade:#524310; --a-night:#191E2D;
  --a-ink-hi:#FFF0C8; --a-ink:#FEE370; --a-ink-lo:#C09317;

  /* ---- الأصباغ المحجوزة ----
     مصروفة في النظام، ما هي في الردهة: الردهة بوابة وحدة، والسلّم
     كامل عشان البوابات الجاية تبني منه بلا ما تخترع قيمًا جديدة.
     اللي كان ميتًا فعلًا انحذف؛ اللي تحت له وظيفة مكتوبة.

     العقيق صِبغة حبر، مو لونًا مميّزًا ثانيًا.
     THE AQEEQ RED IS A SANCTIONED **INK PIGMENT**, NOT A SECOND
     ACCENT. القانون «لون محجوز واحد» يخصّ النحاس (--a) وحده:
     النحاس يقول «هذا اللي تضغطه». العقيق ما يقول ذلك أبدًا —
     هو حبر مرسوم فوق شي مكتوب: الهاص والديمن على وجه الورقة،
     ودايرة القلم حول رقم بالدفتر. ممنوع منعًا باتًّا على أي
     جسم قابل للضغط، أو حدّ، أو حالة، أو خلفية. لو انحطّ على زر
     فقد انكسر قانون اللون المحجوز — لا لأن اللون غلط، بل لأنه
     خرج من كونه حبرًا. */
  --aqeeq:#A03A2A;                 /* أحمر الورق — الهاص والديمن على وجه الورقة */
  --aqeeq-lit:#C4402C;             /* عقيق مرفوع — دايرة الحبر */
  --aqeeq-sun:#DC5B41;             /* طرف الحبر جهة المصباح — الحبر جسم، فياخذ الضوء */
  --aqeeq-dim:#8C2E20;             /* طرفه في الظل */
  --aqeeq-rgb:196,64,44;
  /* الفريقان — محجوزان لبوابة الطاولة؛ الكلمة جنب اللون دايم */
  --palm-lit:#526799;              /* نخل — «لنا» */
  --clay-lit:#CC5F3E;              /* طين — «لهم»؛ مدفوع لـ H14 حتى ما يختلط بالنحاس */
  /* الخيط — زينة الطاولة. في الردهة الزرّ الأساسي هو الخيط نفسه، مُضاءً */
  --kh:#A3741F;
  /* ---- الختم — وجهه وحبره ----
     ٢٠٢٦-٠٧-٣١ · الدورة ٣ · الجولة ٢ · حكم صاحب البيت: ترجع بلاطة
     «تَك» بالفتحة الحمراء. والقيمتان **وسيطُ بكسلات صورته**، تُقرآن
     من مخرَج ‎python design/tak/seal-trace.py‎ (§٤ · الأصباغ) لا من
     العين — ‎seal-geom.json‎ يحمل نفس الرقمين من نفس التشغيلة.
     الفتحة ما لها رمزٌ هنا: هي ‎--aqeeq‎ نفسه، وهذا هو نصّ قانون
     العقيق تحت — حبرٌ مرسومٌ فوق شيءٍ مكتوب، لا صبغةٌ ثانية.

     ⚠ ‎--mark-gold‎ كان في هذا السطر وانشُطب مع جسمه، لا لتنظيف.
     كان ذهب العلامة ذات الورقتين، وتلك تقاعدت بحكم صاحب البيت في
     نفس هذي الجولة. **ومقيسًا قبل تقاعدها، كان يحكم صفر بكسل على
     كل صفحةٍ في السلسلة**: مستهلِكه الوحيد ‎color:‎ على ‎<img>‎،
     والصورة لا ترث لونًا أبدًا — فالرمز كان قانونًا باسمٍ تتجاهله
     الشاشة، وهو أخطر من رمزٍ ميّت لأن grep يلقى له مستهلِكًا.
     الرِّج اللي أثبته وصار يحرسه: ‎node _probe/a-govern.mjs‎. */
  --seal-face:#ECE2CC;             /* وجه البلاطة — وسيط ٤٢٠٥٥٥ بكسلًا من صورته */
  --seal-ink:#352D20;              /* الإطار والكلمة — وسيط ٢١٦١٣ بكسلًا. يدخل الختم بـcurrentColor */
  --kh-d:#744F12; --kh-l:#D2A73E; --kh-sun:#F0DCA8;

  /* ==========================================================
     ٣ · الضوء — مصباح واحد فوق يمين، والظل يروح يسار-تحت
     Shadow colour = the ground hue at S69 L5 → rgba(var(--sh-rgb),α).
     NEVER rgba(0,0,0): measured, black on a coloured ground
     drags the hue from H150 to H127 — it greys the table out.
     Every offset below is PHYSICAL px and every gradient is in
     deg. NOTHING HERE MIRRORS FOR RTL. The sun does not move.
     Each layer: contact (tight, 0 x) + form (-x +y) + ambient.
     ========================================================== */
  /* الدرجة صفر — تماسٌ وبس، ولا طبقة شكل ولا محيط.
     ليش انوجدت (٢٠٢٦-٠٧-٢٨ · الجولة ٥): قانون الضغطة يقول «الجسم
     يغطس صوب ظله: المحيط ينشال ويجي بداله داخلي، واللاتماثل هو
     الأثر كامله». والهادي والرقاقة كانا يسكنان على --sh1 *وينضغطان
     على --sh1* — نفس المحيط بالحالتين، فالضغطة ما كانت غطسًا. والعلّة
     بنيوية مو سهوًا: --sh1 كان أوطى درجة بالسلّم، فأداة هادية ساكنة
     عليه ما عندها شي تنزل له. فانحطّت درجة تحتها.
     والبناء: جسمٌ غاطسٌ ملامسٌ لسريره ما يترك فرجةً تحته ترمي طبقة
     شكل — يبقى منه خطّ التماس وحده، أضيق (تغبيش ١ لا ٢) وأخفّ
     (٠٫٤٢ لا ٠٫٤٥؛ وألفا التماس بالسلّم ترتفع مع الارتفاع:
     ٤٥ · ٤٦ · ٤٨ · ٥٢). وبلا إزاحة أفقية — قانون الشمس. */
  --sh0:0 1px 1px rgba(var(--sh-rgb),.42);
  --sh1:0 1px 2px rgba(var(--sh-rgb),.45),
        -1px 2px 3px -1px rgba(var(--sh-rgb),.38);
  /* الحجب — الطبقة الرابعة، وهي اللي كانت ناقصة وخلّت السلّم يفشل
     عند الحافة اليمنى: جسم مرفوع تحت مصباح ما يرمي ظلًّا يسار-تحت
     وبس — هو يحجب الضوء عن الطاولة حول قاعده كامل. بلا إزاحة،
     بامتداد بسيط، فالجوخ الملاصق ينغمق من كل الجهات ويصير الفرق
     بين السطحين مقروءًا حتى مع إطفاء الحدود.
     هذا يغمّق الأرض؛ ما يفتّح شيئًا — فالقانون المطفي سليم. */
  --sh2:0 1px 2px rgba(var(--sh-rgb),.46),
        0 1px 7px 2px rgba(var(--sh-rgb),.30),
        -2px 4px 8px -3px rgba(var(--sh-rgb),.46),
        -6px 10px 20px -8px rgba(var(--sh-rgb),.38);
  --sh3:0 2px 4px rgba(var(--sh-rgb),.48),
        0 2px 12px 4px rgba(var(--sh-rgb),.36),
        -5px 9px 16px -6px rgba(var(--sh-rgb),.50),
        -14px 24px 40px -14px rgba(var(--sh-rgb),.42);
  --sh4:0 3px 6px rgba(var(--sh-rgb),.52),
        0 3px 18px 6px rgba(var(--sh-rgb),.40),
        -9px 16px 28px -8px rgba(var(--sh-rgb),.54),
        -24px 40px 66px -20px rgba(var(--sh-rgb),.46);
  /* ظلّ الورق — زوج drop-shadow يتكرّر على ظهر تَك وعلى ورقة الوجه
     المدرّجة. كان مكتوبًا حرفيًّا مرّتين بلا رمز. */
  --drop-card:drop-shadow(-2px 3px 4px rgba(var(--sh-rgb),.50))
              drop-shadow(-9px 15px 22px rgba(var(--sh-rgb),.55));

  /* ---- الحافة المضيئة: نور فوق وعلى اليمين (جهة الشمس)، وظل تحت.
          هذي هي الطبقتان اللي تفرّق الجسم المضيء عن المطبوع.
          الإزاحة السالبة تحطّ النور على اليمين — وما تنعكس بالـLTR. ---- */
  /* ---- الضوء المحايد: لون النور نفسه، مرّة وحدة.
          كل نور غير نحاسي بالنظام يطلع من هالقيمتين. النحاس ما
          يلمس شيئًا غير قابل للضغط: الحزّة والدفتر والخط الفاصل
          كانوا يلبسون ذهبًا، وانشالوا للمحايد. ---- */
  --lit-rgb:226,246,231;           /* نور المصباح على سطح بارد */
  --lit-hot-rgb:255,246,222;       /* نوره على النحاس */
  --lit-sweep-rgb:255,247,224;     /* مرّة الشمس — أبيض دايم، ما هو ذهبيًّا */
  /* وقفات الحدّ المتدرّج للأسطح الكبيرة المقصوصة (اللوح المحزوز).
     ---- أُعيد بناؤها ٢٠٢٦-٠٧-٢٨ · الجولة ٤ ----
     كانت ‎.40 → .13 → .05‎ ثم تنتهي عند ‎rgba(var(--sh-rgb),.55)‎:
     نور إلى ظلّ على نفس الحدّ — أي البناء اللي ألغاه قانون الحافّة
     في الجولة ٣ بالضبط، باقيًا حيًّا على **أكبر جسم بالشاشة**،
     وخارج جدول الحوافّ في MOLD أصلًا. مقيسًا بمسح كل بكسل محيط
     (‎_probe/a-edge.py‎): تحت ١٫٠٠٠ · يسار ١٫٠٠٠ · يمين ١٫٠٠١.
     يعني ثلاثة من أربعة حوافّ بلا أي حدّ مقروء، بينما MOLD يقول
     «أدناها في النظام ٣٫٢٥٩».
     الآن نفس قانون ‎--edge‎: تعديل **فوق** ‎--edge-floor‎ ولا ينزل
     تحتها أبدًا. والمدى أضيق من مدى الأدوات الصغيرة بقصد — السطح
     ٤٤٨px طولًا، فتدرّج واسع عليه يُقرا تلوينًا لا إضاءة.
     وظِلّ الجسم انتقل حيث يعيش: شريط داخلي أسفل الوجه، وحدّ تماس
     في كومة ‎drop-shadow‎ — لأن الجلد مقنّع، والقناع يمحو box-shadow. */
  --lit-edge-hi:rgba(226,246,231,.72);
  --lit-edge-mid:rgba(226,246,231,.64);
  --lit-edge-lo:rgba(226,246,231,.58);

  /* الرِّم — وهو اللي صار يحمل الطرف المُظلَّل بعد ما ارتفع الحدّ
     فوق أرضية ثابتة (انظر تحت). النور فوق وعلى اليمين، والظلّ
     تحت وعلى اليسار. كلها فيزيائية وما تنقلب بالـRTL. */
  --rim-hi:inset 0 1px 0 rgba(226,246,231,.14),
           inset -1px 0 0 rgba(226,246,231,.07);
  --rim-lo:inset 0 -1px 0 rgba(var(--sh-rgb),.72),
           inset 1px 0 0 rgba(var(--sh-rgb),.30);   /* sun-ok: الغائر يعكس الإشارة — إزاحة +x على inset ترسم الشريط على الحافّة *اليسرى* الداخلية، أي في الظلّ. مقيسة على المركّب: يسار الزر الثاني #2F5141 غامق ويمينه #4E7662 مضيء */
  --rim:var(--rim-hi), var(--rim-lo);
  --rim-hot:inset 0 1px 0 rgba(255,246,222,.55),
            inset -1px 0 0 rgba(255,246,222,.22),
            inset 0 -1px 0 rgba(84,44,6,.62),
            inset 1px 0 0 rgba(84,44,6,.26);   /* sun-ok: نفس انعكاس الإشارة في الغائر — انظر --rim-lo */
  /* رِم الورق. النور هنا **نور المصباح على الورق** لا أبيض خام:
     كان ‎rgba(255,255,255,.85)‎ بينما ‎--lit-paper-rgb‎ معلَّن فوق
     بالحرف لهذا الغرض. مصباحٌ واحد بلونين على مكوّن واحد.
     انصلح ٢٠٢٦-٠٧-٢٨ · الجولة ٥. (والشاهد اللي كان مكتوبًا هنا —
     «شقيقه ‎.tkseat .av::after‎ يستعمله صحيحًا» — انشال معه:
     المحتجّ به انحذف ٢٠٢٦-٠٧-٢٩، والاستشهاد بميّت أسوأ من
     لا استشهاد. والرمز نفسه حيٌّ، يُقرا من الملف لا من هنا:
       grep -n -- "--rim-paper" design/tak/components.css)
     والطرف السفلي ‎(120,96,48)‎ باقٍ خامًا: ما له رمز في العدّة —
     هو ظلّ الورق على نفسه، مو صبغة أرض ولا صبغة نور، فما ينفع
     يتحوّل لا لـ‎--sh-rgb‎ (صبغة الطاولة) ولا لأي ذهب. مبلَّغ. */
  --rim-paper:inset 0 1px 0 rgba(var(--lit-paper-rgb),.85),
              inset 0 -1px 0 rgba(120,96,48,.20);
  /* البئر — الحقل: ظل عند الشفة العليا، ونور خفيف عند السفلى */
  --well:inset 0 2px 5px rgba(var(--sh-rgb),.55),
         inset 0 -1px 0 rgba(226,246,231,.08);
  /* الغطس — الضغطة: المحيط ينشال ويجي بداله داخلي */
  --sink:inset -1px 2px 7px rgba(var(--sh-rgb),.62), inset 0 1px 0 rgba(var(--sh-rgb),.40);
  --sink-hot:inset -1px 2px 7px rgba(84,44,6,.55), inset 0 1px 0 rgba(84,44,6,.44);

  /* ==========================================================
     الحدّ المتدرّج — أعلى مكسب مفرد في النظام، وقانونه انكتب
     من جديد ٢٠٢٦-٠٧-٢٨.

     البناء ما تغيّر: border:1px solid transparent + خلفيتان،
     تعبئة في padding-box وتدرّج في border-box. وهذا اللي يوقف
     قراءة العنصر كـ«خانة جدول»، والنتيجة إن `border` ما ينحطّ
     لونًا سادًّا على أي عنصر تفاعلي أبدًا.

     اللي تغيّر هو الوقفات. الشكل القديم كان ينزل من نور ٥٠٪
     إلى ظلّ ٦٢٪ على نفس الحدّ، وكان مكتوبًا تحته اعترافٌ صريح
     إن ٣:١ «مستحيلة هندسيًّا» فانستُبدلت بمقياس «تأرجح الحدّ»
     ورقمٍ اسمه «قانون ١٫٢٠». وهذا المقياس ما هو من WCAG، وقانون
     ١٫٢٠ ما له وجود في أي معيار. الصراحة ما هي امتثالًا.

     والحقيقة الهندسية اللي بنينا عليها: على سرير بهذي العتمة
     ما فيه بكسل حدٍّ *غامق* يقدر يوصل ٣:١ مقابل السرير أبدًا —
     لمعة السرير أصلًا واطية، فالنزول تحتها ما يعطي ٣:١ رياضيًّا.
     فأي أرضية ٣:١ لازم تكون *مضيئة بالكامل*.

     ولهذا:
     THE GRADIENT BORDER MODULATES **ABOVE A CONSTANT FLOOR;
     IT NEVER FALLS BELOW IT.** الطرف المُظلَّل من الجسم يحمله
     الرِّم الداخلي (--rim-lo) وظلّ التماس، مو الحدّ.
     والشمس لا تزال تُقرا: الحدّ أنصع ما يكون عند ركن الشمس
     ١٩٦deg ويسكن على الأرضية عند طرف الظل — نور فوق، وما فيه
     نور مضاف تحت.

     الأرضية --edge-floor واحدة لكل الحدود، وتنضبط على أنصع سرير
     ملاصق *عند طرف الظلّ* — لأن هناك وحده ينزل الحدّ لأرضيّته:
     #365B4A تحت الحقل، لمعة ٠٫٠٨٧٦، تبي ألفا ٠٫٥٠٤. انحطّت ٠٫٥٤،
     والمقيس على المركّب عند نفس الموضع ٣٫٢٥٩.
     وأنصع سرير على كل المحيط (#446956، لمعة ٠٫١٢٠) يقع عند ركن
     الشمس، وهناك الحدّ على وقفته العليا لا على أرضيّته.
     (وكانت الوصفة في kit/tokens.json تشتقّ نفس الأرضية من #4E715D
      — سريرٍ ثانٍ وحسابٍ ثانٍ لنفس الرقم. انصلح ٢٠٢٦-٠٧-٢٨ ·
      الجولة ٤، والاشتقاق واحد: هذا.)

     ١٩٦deg = الضوء داخل من فوق-يمين. زاوية ثابتة، ما تنقلب
     بالـRTL — وهي الزاوية الوحيدة المسموحة لكل وجه أو حدّ في
     النظام. الاستثناءان المكتوبان: ٢٧٠/١٨٠deg على الخطوط
     الفاصلة — تلاشي على طول الخط، مو إضاءة؛ و١١٠deg على مرّة
     الشمس — مسار انعكاس متحرّك، مو الشمس نفسها. ولا ثالث.

     جدول الحوافّ يعيش في MOLD.md (قانون الحافّة)، وما ينعاد هنا.
     THE EDGE TABLE LIVES IN `MOLD.md`. IT IS NOT REPEATED HERE.
     وقائمة الأجسام اللي *يجب* أن تُقاس محفورة في
     ‎_probe/a-edge.py‎ (OBJECTS)، لأن الجولة ٣ نسيت أكبر جسم
     بالشاشة — اللوح المحزوز — فبقي رامبًا خامسًا خارج كل جدول،
     مبنيًّا من نور إلى ظلّ، ويقيس ١٫٠٠٠ على ثلاث حوافّ من أربع.
     الأداة الآن تطلع بخطأ لو ناقصها جسم من القائمة.

     والثمن مكتوبًا صراحةً: تأرجح الحدّ (أنصع بكسل : أغمق بكسل
     على حدّ الجسم الواحد) نزل من ٥٫١٦ · ٤٫٩١ · ٣٫٨٩ إلى
       .tkb-1 2.276 · .tkb 1.304 · .tkb-q 1.203 · الحقل 1.490
       واللوح المحزوز 1.821 (كان 4.294، وكان يشتري ذاك التأرجح
       بحافّةٍ تقرا ١٫٠٠٠ — أي بلا حدٍّ أصلًا)
     كسبنا حدًّا يُقرا على كل بكسل، وخسرنا حدًّا يتدرّج من نور
     إلى ظلّ. الظلّ انتقل للرِّم الداخلي ولظلّ التماس.
     ========================================================== */
  /* ٢٠٢٦-٠٧-٢٨ · الجولة ٤: ٠٫٥٤ → ٠٫٦٣، وهذا **اشتقاق من جديد،
     مو رفع للهدف**. تعريف الأرضية مكتوب فوق: «تنضبط على أنصع سرير
     ملاصق عند طرف الظلّ». وقتها كان أنصع سرير ملاصق #365B4A،
     فطلعت ٠٫٥٠٤ وانحطّت ٠٫٥٤. ثم نزل مقاس بلاطة الجوخ ٢٦٠ → ١٩٠
     في نفس الجولة، فكثرت الخيوط الناصعة وصار احتمال وقوع خيط
     ناصع ملاصقًا لأي حافّة أعلى — أي أن *مدخل المعادلة* تغيّر:
     أنصع سرير ملاصق صار #3D5549 تحت الحافّة السفلى للدفتر.
     الأرضية كانت مشتقّة من سرير ما عاد له وجود.
     مقيسة، والتجربة تفصل السبب: الدفتر بالجوخ **٢٫٦٧٥** وبإطفاء
     الجوخ وحده (a-shot?noweave) **٤٫٧٣٧** — فالسرير خيطُ نسيج،
     لا الانحدار ولا الحدّ. ولهذا العلاج في الأرضية لا في النقشة:
     تخشين البلاطة يرجّع التباين ويكسر «نجدي بلا تعتيق» في نفس
     الوقت — والنقشة قانون مثلها مثل الحافّة.
     والثمن مكتوب: التدرّج صار ٠٫٧٢ → ٠٫٦٣ بدل ٠٫٧٢ → ٠٫٥٤،
     أي التأرجح ضاق. الشمس لا تزال تُقرا (أنصع عند ركن المصباح،
     أرضية عند طرف الظلّ)، بس أهدأ ممّا كانت. */
  --edge-floor:rgba(226,246,231,.63);
  /* البناء اتغيّر في الجولة ٤: الأرضية صارت **هضبة نهائية**، مو
     وقفة أخيرة. قبلها كانت الوقفة الوسطى مكتوبة بالرقم (٫٥٨ و٫٥٦
     و٫٦٢) والأخيرة var(--edge-floor) — فلمّا ارتفعت الأرضية إلى
     ٠٫٦٣ صارت الوسطى *تحتها*، والتدرّج ينزل ٠٫٧٢ → ٠٫٥٨ → ٠٫٦٣:
     غير رتيب، وأغمق نقطة فيه ما عادت الأرضية. أي أن الملفّ كان
     يكسر القانون المكتوب فيه بسطرين («يعدّل فوق أرضية ثابتة، وما
     ينزل تحتها أبدًا») لمجرّد أن رقمًا واحدًا تحرّك.
     مقيسة وقتها: الحافّة السفلى للدفتر ٢٫٨٢٧ — رفعُ الأرضية وحده
     ما نفع لأن الغمق كان يجي من الوسطى لا من النهاية.
     الآن: الوقفة الوسطى **هي** الأرضية عند ٥٨٪، ثم أرضية حتى
     النهاية. فالنصف الأسفل من أي جسم يقعد على الأرضية بالضبط،
     ولا وقفة في النظام تقدر تنزل تحتها مهما تحرّكت — القانون
     محفور في البناء، مو متروك لانتباه المحرِّر. */
  --edge:linear-gradient(196deg, rgba(226,246,231,.80), var(--edge-floor) 58%, var(--edge-floor));
  --edge-quiet:linear-gradient(196deg, rgba(226,246,231,.74), var(--edge-floor) 58%, var(--edge-floor));
  /* البئر: نفس الأرضية ونفس الزاوية. المقلوب ما عاد يعيش في الحدّ —
     يعيش في --well وفي وجه شبه أسود. حفرةٌ بحافّة مضيئة، مثل ثقب
     مخروط في معدن تحت مصباح. */
  --edge-well:linear-gradient(196deg, rgba(226,246,231,.84), var(--edge-floor) 58%, var(--edge-floor));
  --edge-hot:linear-gradient(196deg, rgba(255,248,226,.92), rgba(255,236,190,.62) 46%, rgba(255,226,160,.50));

  /* ---- لقطة المصباح — الطبقة اللي كانت ناقصة.
          الأرض تنضوي والأثاث ما ينضوي: هذا هو سبب انهيار السلّم.
          كل وجه مرفوع يلبس هذي فوق تعبئته، فيرتفع طرفه الأعلى
          جهة الشمس مع ارتفاع الأرض تحته — الأثاث يتبع المصباح
          بدل ما يكون قصاصة مسطّحة فوق سطح مضاء.
          مطفيّة تمامًا: ولا وقفة فوق ٢٢٪، ولا لون أبيض صافي. ---- */
  --lamp-catch:radial-gradient(104% 66% at 92% -8%,
                 rgba(255,244,214,.22), rgba(255,244,214,.07) 42%, rgba(255,244,214,0) 76%);
  --lamp-catch-q:radial-gradient(120% 82% at 92% -14%,
                 rgba(255,244,214,.13), rgba(255,244,214,.04) 44%, rgba(255,244,214,0) 78%);

  /* ---- الوجوه ---- */
  --face:linear-gradient(196deg,var(--s-panel-hi),var(--s-panel) 56%,var(--s-panel-lo));
  --face-quiet:linear-gradient(196deg,var(--s-quiet-hi),var(--s-quiet) 56%,var(--s-quiet-lo));
  --face-rise:linear-gradient(196deg,var(--s-rise-hi),var(--s-rise) 56%,var(--s-rise-lo));
  --face-lift:linear-gradient(196deg,var(--s-lift-hi),var(--s-lift) 56%,var(--s-lift-lo));
  --face-hot:linear-gradient(196deg,var(--a-hi),var(--a) 52%,var(--a-lo));
  --face-well:linear-gradient(196deg,var(--s-well-lo),var(--s-well));
  /* النحاس الموقوف — نفس الصبغة بربع تشبّعها، بلا وهج ولا لمعة.
     يبقى نحاسًا عشان ما ينخلط بزر ثانوي شغّال. */
  --face-hot-off:linear-gradient(196deg,#6E6047,#5E5340 52%,#4E4536);

  /* ---- الوهج: الطبقة الوحيدة اللي تخلّي الأداة تُقرا مُشعّة بدل
          مطبوعة. واحد بالشاشة، على الفعل الأساسي فقط.
          بلا إزاحة أفقية — الإشعاع ما يطيع الشمس؛ الاتجاه شغل sh3. ---- */
  --bloom:0 8px 24px -8px rgba(var(--a-rgb),.45);
  --bloom-wide:0 12px 32px -8px rgba(var(--a-rgb),.55);
  --bloom-sunk:0 4px 12px -8px rgba(var(--a-rgb),.30);

  /* ==========================================================
     ٤ · الأرض — سطح واحد مُضاء، مو لون سادّ.
     ثلاث طبقات ثابتة: الجوخ ثم المصباح ثم الانحدار.
     المقاس على ٣٩٠×٨٤٤: من L28.4 عند ركن المصباح إلى L7.5 عند
     الركن المقابل — ٢٠٫٩ درجة عبر سطح واحد. الشمس جسم تشوفه.
     ========================================================== */
  --lamp:
    radial-gradient( 30%  17% at 93%  -5%, rgba(255,236,186,.42), rgba(255,236,186,.12) 48%, rgba(255,236,186,0) 74%),
    radial-gradient( 60%  34% at 88%  -6%, rgba(252,240,200,.17), rgba(252,240,200,.05) 46%, rgba(252,240,200,0) 72%),
    radial-gradient(112%  64% at 80%   2%, rgba(206,238,196,.055), rgba(206,238,196,0) 68%),
    radial-gradient(150%  98% at 62%  18%, rgba(150,212,172,.020), rgba(150,212,172,0) 72%);
  /* الانحدار: ركن غامق عميق، وإفلات أسرع. الشكل القديم كان
     يمسح ٣٢٪ أسود عبر شريط الدفتر كامل فيسوّي سطحين مختلفين
     بنفس القيمة. الآن العمق باقٍ بالركن والشريط يتنفّس.

     ٢٠٢٦-٠٧-٢٨ · الجولة ٣ — الوقفة الخارجية للتدرّج الثاني نزلت
     من ٫١٢/٫٣٠ إلى ٫٠٣/٫٠٩.
     ٢٠٢٦-٠٧-٢٨ · الجولة ٤ — التدرّج الثاني انشال كامله.

     هو كان غشاوة عامّة مركزها ركن المصباح، ووقفتها الخارجية
     (٫٠٩ عند ١٠٠٪) تمرّ من الركن الأسفل-يسار بالضبط — أي إنها
     «الوقفة السفلى-اليسرى» للانحدار. سحبُها للداخل حتى الصفر
     هو أقصى ما تُسحب. المقيس (رندر ٣٩٠×٨٤٤ على DPR 3 ثم تصغير
     إلى بكسل الكسوة — سطح الجوال الحقيقي، انظر تحت):
       الشريط    ١٫٢٥٥ → ١٫٢٨٧      الركن الغامق ١٫٢٣٩ → ١٫٢٦٠
       والركن نفسه *L ١١٫١ → ١١٫٨ من أصل مدًى ٢٩ — أي العمق باقٍ،
       واللي راح غشاوة ما كانت تعمل شيئًا إلا مسح البنية.
     التدرّج الأول — الركن الغامق العميق، وهو التكوين نفسه — ما
     انلمست منه ولا وقفة.

     وصراحةً، وهذي أهمّ جملة هنا: **١٫٤٠ في الركن الغامق غير
     قابلة للوصول أصلًا.** قيسَت السقفُ بإطفاء الانحدار كامله:
     ١٫٣٧٣ على DPR 1 و١٫٣٠٤ على DPR 3. يعني حتى لو حذفنا الركن
     الغامق كله — أي أعدمنا التكوين — ما نوصل ١٫٤٠. الهدف
     مستحيل هندسيًّا على هذي الخامة وبهذي العتمة، والمكتوب
     رقمٌ مقيس لا هدفٌ مرجوّ. القانون ١٫٢٠، وهو محقَّق بفارق
     ٠٫٠٢٥ في أضعف شريط. */
  --falloff:
    radial-gradient( 92%  68% at -22% 122%, rgba(5,17,11,.86), rgba(5,17,11,.26) 34%, rgba(5,17,11,.06) 60%, rgba(5,17,11,0) 78%);
  /* لوح الصبغة: ما تشوفه أبدًا. مزج luminosity يرمي إضاءته ويبقّي
     كرومته (~21)، فيصحّح زيتون الخامة H104 إلى H154 — أخضرنا. */
  --weave-plate:#343748;
  /* ═══ مقاس البلاطة — ١٩٠ لا ٢٦٠ (٢٠٢٦-٠٧-٢٨ · الجولة ٤) ═══
     خطوة الوشم = نصف البلاطة بالضبط. مقيسة بالارتباط الذاتي على
     الأرض المركّبة بعد إزالة الانحدار، وذروة واحدة في المحورين:
       بلاطة ٣٣٠ → ١٦٥   ٢٦٠ → ١٣٠   ٢٠٠ → ١٠٠   ١٩٠ → ٩٥
     يعني على ٢٦٠ كان المعيّن ١٣٠px — ثلاثة معيّنات فقط عبر شاشة
     ٣٩٠. وبهذا المقاس، والأرض تكشف ~٤٥٪ من بكسل الردهة، تُقرا
     النقشة «دمقسًا»: زخرفة كبيرة مفروشة، وهذا وضع التعتيق اللي
     يمنعه قانون البيت. على ١٩٠ يصير المعيّن ٩٥px وأربعة ونصف
     معيّنات عبر ٣٩٠ — النقشة تنزل من زخرفة إلى نسيج.

     ═══ والاكتشاف اللي غيّر الحساب: رقم ٢٦٠ القديم كان طيف رندر
     لا خاصّية مادة ═══
     المسح على DPR 1 (السطح اللي انقاست عليه أرقام الجولة ٣):
       ٢٥٠ ١٫٢٧٦ · ٢٥٥ ١٫٢٧٦ · ٢٦٠ ١٫٣٩٩ · ٢٦٥ ١٫٤٥٩ · ٢٧٠ ١٫٤٣٥
     أي إن تغيير ٥px في البلاطة يقفز بالرقم ٠٫١٢. هذا مستحيل أن
     يكون بنيةً حقيقية. أُعيد المسح على DPR 3 ثم تصغير إلى بكسل
     الكسوة — وهو سطح الجوال الحقيقي (كل جهاز يشحن ٢× أو ٣×) —
     فاختفت القفزة تمامًا وطلع المنحنى ناعمًا:
       ١٩٠ ١٫٢٤٨ · ٢٤٠ ١٫٢٧٧ · ٢٦٠ ١٫٣٠٠ · ٢٨٠ ١٫٢٨٨  (الشريط الأوسط)
     فالـ١٫٣٥٣ المسجّلة للجولة ٣ كانت ذروة تشويش تصغير على DPR 1،
     والخامة على الجهاز تعطي ١٫٢٥–١٫٣٠ هناك. وكلفة النزول من ٢٦٠
     إلى ١٩٠ على السطح اللي يهمّ ٠٫٠٥١ فقط، لا ٠٫١٣.

     ═══ المشحون: ١٩٠ + الانحدار بتدرّج واحد ═══
     كل شريط، الرقمان (DPR 1 · DPR 3←كسوة):
       المصباح  ١٫٢٧٥ · ١٫٢٧٧      الأوسط   ١٫٢٣٩ · ١٫٢٤٨
       الدفتر   ١٫٢٢٥ · ١٫٢٣٦      الركن    ١٫٢٢٣ · ١٫٢٢٥
     الأربعة فوق ١٫٢٠ على السطحين، وأضعف فارق ٠٫٠٢٣.

     ═══ المسح كامله، عشان القرار ينراجع لا ينُصدَّق ═══
     (DPR 3 ← كسوة · بتدرّج واحد · شريط الدفتر · الركن الغامق)
       ٢٦٠ ١٫٢٨٧·١٫٢٦٠   ٢٢٠ ١٫٢٥٧·١٫٢٤٨   ٢٠٠ ١٫٢٤٧·١٫٢٢٤
       ١٩٠ ١٫٢٣٦·١٫٢٢٥   ١٨٠ ١٫٢٣٩·١٫٢٢٠   ١٧٠ ١٫٢١٤·١٫٢١٢
       ١٦٠ ١٫٢١٣·١٫٢٠١   ١٥٠ ١٫٢١١·١٫٢٠٢   ١٤٠ ١٫٢٠٢·١٫١٩٨ ✗
     أصغر بلاطة تعدّي ١٫٢٠ في كل شريط على السطحين هي ١٧٠ — بفارق
     ٠٫٠١٢. وما انشحنت: ٠٫٠١٢ هو بالضبط صنف الهامش اللي هذي
     الجولة قامت عشانه. ١٩٠ تعطي ضعف الهامش ومعيّنًا ٩٥px،
     والفرق بينهما على الشاشة ١٠px في المعيّن.

     وطبقة نسيج ثانية فوق الانحدار (soft-light/overlay) جُرّبت
     بأربع قيم و«حسّنت» الرقم للأسوأ في كلها — انحذفت الفكرة.
     ولا طبقة حبيبات: الحبيبات إشارة تعتيق، ممنوعة.

     ═══ والخامة انبدلت، فالبلاطة انبدلت معها (٢٠٢٦-٠٧-٢٩) ═══
     كل اللي فوق مقيس على ‎weave-najdi.jpg‎ — وتلك كانت **بنيةً
     ثقافيةً غلط**: شبكة معيّنات متجانسة مفروشة في كل الاتجاهات،
     أي **ديابر أوروبي** لا سدو. والسدو النجدي منسوجٌ **بالّلحمة
     وباتجاه**: سجلّات أفقية تختلف نقشةً وارتفاعًا، يفصلها خيطٌ
     سادة، والنقشة تتبدّل من سجلّ لسجلّ. المفردة (المعيّن المدرَّج
     · العين) كانت صحيحة، والترتيب هو الغلط.

     ═══ والاتجاه صار يُقاس بأمر، ما عاد يُوصف بالنثر ═══
     الجملة اللي أسقطت «نجدي» إلى ٧/١٠ كانت «٨١٪ من الطاقة في
     قطرين» — منشورةً بلا أمرٍ خلفها، فما كانت تنعاد لا على
     الخامة اللي أدانتها ولا على اللي بعدها. صار لها ماكينة:
       ‎python _probe/weave-fft.py <بلاطة> [<بلاطة> …]‎
     تحلّل طيف الإضاءة وتوزّعه على اتجاه **متّجه التردّد**:
     ‎٩٠°‎ = تبدّلٌ فوق-تحت أي **أشرطة أفقية** (سدو)، و‎٤٥/١٣٥‎ =
     العائلتان القطريّتان (ديابر). المطبوع على الثلاثة بأمرٍ واحد:
       المتقاعدة ‎weave-najdi-v2-diaper.jpg‎  قطري ٧٧٫٢٪ · مشرَّط  ٧٫٢٪
       ‎weave-najdi-v3-banded.jpg‎             قطري ٣٥٫٤٪ · مشرَّط ٥١٫١٪
       المشحونة ‎weave-najdi-v4.jpg‎           قطري ٢٥٫٢٪ · مشرَّط ٦٥٫٢٪
     فالديابر مقيس ومُدان، والمشحونة اليوم مشرَّطةٌ بضِعف ونصف ما
     هي قطريّة. (والمتقاعدتان تبقيان في الدُّرج لأنهما «قبلُ»
     هذا الأمر: بلا مقارنٍ يُعاد يصير الرقم دعوى.)

     ═══ والبلاطة ٤٨٠ ═══
     مقياس التسليم هو **عدد تكرارات المفردة عبر ٣٩٠**، وصار له أمر
     بعد ما كان يُعدّ بالعين كل ما تحرّكت البلاطة:
       ‎python _probe/weave-fft.py app_client/frontend-tak/assets/weave-najdi-v4.jpg \‎
       ‎       --repeats 480,390‎
     ويطبع **سُلَّمًا لا رقمًا**، وهذا هو الصدق على قماشٍ مشرَّط:
     السجلّات ما تتقاسم دورةً واحدة.
       ٥ دورات/بلاطة → ‎4.06‎ تكرارًا · ١٠٫٧٪ من الطاقة الأفقية (الزقزاق)
       ١٠ → ‎8.12‎ · ٩٫٥٪      ١٥ → ‎12.19‎ · ١٧٫١٪   (سجلّا الصلبان)
       ٢٩ → ‎23.56‎ · ٥٫٧٪   (خيط النسيج نفسه، دون عتبة الرِّج)
     وسجلّ المعيّن الكبير عند ٣ دورات (‎2.44‎ تكرارًا) لكنه ١٫٢٣٪
     فقط من الطاقة — مفردةٌ عريضة متفرّقة، فما توصل عتبة الرِّج.
     فأخشن سجلٍّ *ذي وزن* يعطي ‎4.06‎، أي على حرف قانون ٢–٤ لا داخله
     بهامش. والمقايضة قِيست ولا انفُترضت: بلاطة ٥٢٠ تنزّل الرقم إلى
     ‎3.75‎ وتحسّن البنية، لكنها تنزّل **أوطأ حافّة في حالة السكون
     من ‎3.546‎ إلى ‎3.270‎** لأن خيطًا أنصع يقع تحت حدّ الدفتر.
     ٤٨٠ تشتري ٠٫٢٨ من الحافّة بـ٠٫٣١ من التكرار، وانشحنت.
     (ولاحظ إن هذا يعاكس اتجاه الجولة ٤ — اللي نزلت من ٢٦٠ إلى
      ١٩٠ عشان تكثّر المعيّنات وتهرب من قراءة «الدمقس». والعلّة
      إن الدمقس كان *عرَض* البنية الغلط: شبكة متجانسة كبيرة
      تُقرا زخرفةً مفروشة. أمّا نسيجٌ مشرَّط باتجاه فيُقرا قماشًا
      حتى بمفردة كبيرة، لأن ما يحمله ليس المعيّن وحده بل إيقاع
      الأشرطة بينه. مقيس بالنظر على الرندر، لا بالمبدأ.)

     ═══ والمولَّد ما يُشحن خامًا: يُقصّ على دورته ثم يُطابَق مداه ═══
     ١ · **القصّ.** المولِّد يرسم صورةً لا وحدةَ تكرار، فالبلاطة
     تنعرض بخيطٍ ظاهر كل ٤٨٠px. المقياس ‎weave.py --seam‎: التفاف
     أعلى من خطّ الأساس الداخلي = خيطٌ يُشاف.
       ‎python _probe/weave-tile.py \‎
       ‎  design/project-152/archive/v1-materials/weave-najdi-v4-raw.jpg \‎
       ‎  design/project-152/archive/v1-materials/weave-najdi-v4-tiled.jpg‎
     المطبوع: الالتفاف الرأسي ‎17.944‎ → ‎15.336‎ على خطّ أساس
     ‎14.853‎ → ‎14.140‎ — أي من ١٫٢١ ضعفًا إلى ١٫٠٨. (والمشحونة قبلها
     كانت ‎7.377‎ على ‎6.094‎ = ١٫٢١ ضعفًا، وما أحدٌ شغّل ‎--seam‎ عليها.)

     ⚠ **و‎--seam‎ على البلاطة فحصُ فرزٍ لا فحصُ خيط.** يقيس وين
     يلتقي *الملفّ* بنفسه؛ أمّا هل يوصل الخيطُ العينَ فسؤالٌ عن
     المركّب — بينهما المصباح والانحدار وحدّ العين ‎σ=1.4‎، وأكثر
     الحدّ مغطًّى باللوح أصلًا. فالفحص المركّب:
       ‎python _probe/weave.py <رندر الأرض ٣٩٠×٨٤٤>.png --seamrow 480‎
       ‎python _probe/weave.py <رندر الردهة>.png --seamrow 480 --margin 18‎
     يقيس بقيّة الصفّ-للصفّ **عند** الحدّ مقابل توزيعها على كل صفٍّ
     آخر في نفس الصورة. المطبوع على الأرض وحدها: البقيّة عند
     ‎y=480‎ هي ‎0.492‎ مقابل متوسّطٍ ‎1.560‎ وانحرافٍ ‎1.226‎ —
     ‎-0.87‎ انحراف، **المئين ٥٫٩**، أي أن صفّ الحدّ من *أهدأ*
     صفوف الصورة، لأن حافّتَي البلاطة العليا والسفلى نسيجٌ سادة.
     وعلى شريطَي الهامش في الردهة — وهما وحدهما اللي يبيّن فيهما
     الحدّ، لأن اللوح يغطّي ‎y 204..595‎ — ‎0.636‎ مقابل
     ‎1.526‎/‎1.493‎، أي ‎-0.60‎ انحراف والمئين ٢٤٫١.
     وحدُّ ‎480‎ هو الوحيد على بوابة ٨٤٤ (‎960‎ برّا الشاشة).
     فالالتفاف الخام حقيقيّ وسببه طَور الخيط، وحدُّ العين يمحوه:
     فحصُ الفرز على البلاطة المشحونة يطلع ‎7.153‎ التفافًا رأسيًّا
     على خطّ أساسٍ ‎6.720‎ — أي ١٫٠٦ ضعفًا، فوق الأساس، وهو **علمٌ
     أحمر يرفعه الفرز ويكذّبه المركّب**. والقماش المشرَّط أصعب في
     الالتفاف الرأسي من الديابر لأن طَور الشريط لازم يقفل، وهذا
     هو ثمن «نجدي» المدفوع بعلمه؛ ما انشُري بشيء لأنه ما يوصل
     الزجاج. (المتقاعدة ‎v3‎ تطلع ‎7.377‎ على ‎6.094‎ = ١٫٢١ ضعفًا.)
     ٢ · **المدى.** الأرض تنرسم ‎background-blend-mode:luminosity‎،
     يعني **إضاءة الخامة هي إضاءة الأرض حرفيًّا** واللوح ما يعطي
     إلا الصبغة. فأي خامة تشحن مداها الضوئي تحت كل جسم بالشاشة.
       ‎python _probe/weave-tone.py \‎
       ‎  design/project-152/archive/v1-materials/weave-najdi-v4-tiled.jpg \‎
       ‎  8.01,60.0 \‎
       ‎  app_client/frontend-tak/assets/weave-najdi-v4.jpg‎
     تحويلٌ خطّي على الإضاءة وحدها (كل بكسل بعاملٍ واحد على قنواته
     الثلاث، فالصبغة والتشبّع كما هما). المطبوع: من ‎17.95 · 136.93‎
     إلى ‎7.30 · 60.07‎، كسب ‎0.4370‎.

     ⚠ **والمرجع رقمٌ لا ملفّ، وهذا تصحيحٌ لا تفصيل.** كان مكتوبًا
     إن المدى «يُطابَق على البلاطة المتقاعدة» — فصارت المتقاعدة
     قانونًا وهي ليست قانونًا. مقيسًا على الشجرة الموروثة: المشحونُ
     المطابَقُ على مداها يعطي **الحافّة السفلى للدفتر ٢٫٨٩٩ في حالة
     السكون**، تحت ٣٫٠٠، ومشحونًا هكذا. أي أن المرجع كان يورّث
     العطب. القانون هو قانون الحافّة، والمدى يُختار بالتنصيف عليه:
       ‎p99 76.79‎ → الدفتر ‎3.512‎ سكونًا و‎3.054‎ فتحًا (يعدّي بـ٠٫٠٥)
       ‎p99 67.57‎ → الدفتر ‎3.984‎ سكونًا و‎3.554‎ فتحًا
     فانشُحن ‎67.57‎: عنده ما عاد الجوخ هو القيد على أي حافّة —
     أوطأ حافّة في النظام رجعت لحقل الاسم (‎3.546‎ · ‎3.496‎)، وهو
     اللي كان أوطأها قبل ما تُبدَّل الخامة أصلًا.

     ═══ ثم قال صاحب البيت: «الأرض أرضٌ» — ٢٠٢٦-٠٧-٢٩ · الدورة ٣ ═══
     نظر للمشحون على ‎67.57‎ فقال إن الجديدة أشغلُ وأعلى تباينًا من
     ‎v3‎ وإنها تزاحم اللوح أكثر منها؛ والتشريط باقٍ — هو اللي فكّ
     عقدة «نجدي» — واللي يُطلب صرفه هو **التباين**. وللحكم قانونٌ
     يقيسه لا ذوقٌ وحده: فصلُ المستويات ١٫٢٠ على المركّب، وأدقّ
     جوارٍ في النظام ‎table:ledger‎ — وذاك الجوار كان **ساقطًا**
     قبل الجولة وبعدها: ‎1.029‎ على شجرة ‎a6e364f‎ و‎1.165‎ على
     ‎67.57‎، وكلاهما تحت ١٫٢٠. فالحكم والقانون يشدّان في اتجاهٍ
     واحد، لأن السرير المقيس هناك هو **أنصعُ خيطٍ يقع تحت حدّ
     الصحيفة**، وتهدئةُ القماش تنزّله:
       ‎python _probe/a-ramp.py <رندر الردهة>.png 3 \‎
       ‎  "table:panel|20,203.81,350,391.17|28|58,58" \‎
       ‎  "table:ledger|20,631.06,350,93.45|20|32,32"‎
       ‎p99 67.57‎ → لوح ‎1.438‎ · دفتر ‎1.165‎ ✗ · أشرطة ١٫٥٤٥ ١٫٤٢٩ ١٫٤٥٥ ١٫٣٨٣
       ‎p99 62.00‎ → لوح ‎1.524‎ · دفتر ‎1.281‎ · أشرطة ١٫٤٧٠ ١٫٣٧٨ ١٫٣٨٧ ١٫٣٣٩
       ‎p99 60.07‎ → لوح ‎1.526‎ · دفتر ‎1.301‎ · أشرطة ١٫٤٤٥ ١٫٣٤٨ ١٫٣٦٢ ١٫٣١٧
       ‎p99 58.00‎ → لوح ‎1.567‎ · دفتر ‎1.358‎ · أشرطة ١٫٤٢٦ ١٫٣٣٨ ١٫٣٤٨ ١٫٢٩٠
     قانونان على طرفَي مقبضٍ واحد: أرضيةُ النقشة (كل شريط فوق
     ١٫٢٠) وفصلُ المستويات (‎table:ledger‎ فوق ١٫٢٠). فانشُحن
     ‎60.07‎ لأنه يسوّي الهامشين — ‎+0.117‎ عند أضعف شريط و‎+0.101‎
     عند أدقّ جوار — لا لأنه أهدأ ما يُستطاع. والحافّة كسبت معه:
     اللوح ‎3.947‎ → ‎4.033‎ والدفتر ‎3.984‎ → ‎4.446‎ سكونًا و‎3.460‎
     → ‎3.993‎ فتحًا، وأوطأ حافّة باقيةٌ حقلَ الاسم ‎3.546‎ · ‎3.496‎.
     و«أهدأ من ‎v3‎» مقيسٌ لا منظور: ‎v3‎ المشحونة تقرا ١٫٥٠١ ١٫٤٧٠
     ١٫٤٣٥ ١٫٤٣٣ على نفس الأمر ونفس البلاطة ٤٨٠، والمشحونُ اليوم
     **تحتها في الأشرطة الأربعة**، وترتيبُه باقٍ مشرَّطًا
     (‎weave-fft‎: قطري ٢٥٫٢٪ · مشرَّط ٦٥٫٢٪ — والتحويلُ خطّيٌّ على
     الإضاءة فما ينقل طاقةً من اتجاهٍ لاتجاه).
     والعلاج في **مدى** الخامة لا في ‎--edge-floor‎ ولا في تخشين
     البلاطة: الأولى تكسر رتابة الرامب (الجولة ٤)، والثانية تشتري
     الحافّة وتبيع قانون النقشة، وهما قانونان لا قانون.

     والخامات الثلاث المتقاعدة والخام والمقصوصة كلها في الدُّرج
     ‎design/project-152/archive/v1-materials/‎، لأن قانون العدّة
     صريح: أصلٌ داخل ‎app_client/‎ ما يشير له شي **لا شغّالٌ ولا
     في الدُّرج**. فما بقي في ‎assets/‎ إلا اللي يُشحن.

     والبنية الباقية بعد المصباح والانحدار. ⚠ **والصورة تُسمّى مع
     الأمر، لأن الصورة الغلط تجاوب بثقة**: المدخل رندر
     ‎_probe/ground.html‎ — طبقات الأرض الثلاث وحدها — على ٣٩٠×٨٤٤
     بـDPR 3 ثم تصغير إلى بكسل الكسوة. لو أُعطي رندر *الردهة*
     صارت «الأشرطة» تحوي حوافّ اللوح والأزرار والحبر لا الجوخ،
     فيطبع ٣٫٩ · ٩٫٦ · ٦٫١ · ٥٫٦ — أثاثًا تحت عنوان «قماش».
     والتصغيرُ سطرٌ من الأمر، لا تفصيلٌ فيه:
       ‎msedge --headless=new --force-prefers-reduced-motion \‎
       ‎  --force-device-scale-factor=3 --virtual-time-budget=9000 \‎
       ‎  --window-size=420,900 --screenshot=<ground-dpr3.png> \‎
       ‎  "http://localhost:8452/_probe/a-shot.html?src=/_probe/ground.html&w=390&h=844"‎
       ‎python -c "from PIL import Image; Image.open(r'<ground-dpr3.png>')\‎
       ‎  .convert('RGB').crop((0,0,1170,2532)).resize((390,844),Image.LANCZOS)\‎
       ‎  .save(r'<ground-390.png>')"‎
       ‎python _probe/weave.py <ground-390.png> --bands‎
       المصباح ١٫٤٤٥ · الأوسط ١٫٣٤٨ · الدفتر ١٫٣٦٢ · الركن ١٫٣١٧
     الأربعة فوق ١٫٢٠، وأضعفها بهامش ٠٫١١٧.
     ⚠ **ولو انحُذف سطرُ التصغير جاوب الأمرُ بثقةٍ عن صورةٍ ثانية**:
     نفس الرندر بلا تصغير يطبع ١٫٧٠٩ · ١٫٦١٦ · ١٫٦٤٧ · ١٫٦٤١، لأن
     مربّعات الأشرطة مكتوبةٌ ببكسل الكسوة فتقع في ثلث الصورة
     الأعلى، ولأن حدّ العين ‎σ=1.4‎ ينطبّق حينها على بكسل الجهاز
     فيقيس بنيةً أدقّ ثلاث مرّات ممّا يوصل العين. الفرق عند الركن
     الغامق ٠٫٢٥٨ — أي ضعفا الهامش كلّه، ورقمٌ يقول «فيه سعة»
     وهو يقيس ما لا يُشاف. (وهذي غير فخّ «رندر الردهة» فوق: ذاك
     يبدّل *الصورة*، وهذا يبدّل *سطح* الصورة نفسها.) */
  --weave-tile:480px;

  /* ==========================================================
     ٥ · الشكل — سلّم الأنصاف، متداخل صح (الخارجي = الداخلي + الحشوة)
     نصف قطر ٤–٦px هو أقوى إشارة «نموذج ويب ٢٠١٣» — ممنوع على أي
     أداة. مسموح فقط على المواد اللي أصلها بزوايا قائمة: الورقة.
     ========================================================== */
  --r-pill:999px;
  --r-btn-1:18px;   /* الأساسي  h56 → .32 */
  --r-btn:16px;     /* الثانوي  h50 → .32 */
  --r-btn-sm:13px;  /* الهادي   h44 → .30 */
  --r-field:14px;   /* الحقل    h52 → .27 */
  --r-plate:20px;   /* الصحيفة المسطّحة — الدفتر. أصغر سطح وأقلّه ارتفاعًا
                       فياخذ نصفًا أصغر من اللوح فوقه (٢٨). كان ياخذ
                       --r-modal ٣٢ — أكبر نصف بالنظام على أصغر سطح.
                       انقلاب مقلوب، انصلح ٢٠٢٦-٠٧-٢٨. */
  --r-card:20px;
  --r-panel:22px;
  --r-sheet:28px;   /* اللوح المحزوز صحيفة، مو لوحًا: ٣٥٠×٤٢٠ = أكبر
                       سطح بالردهة، فركنه ٢٨. */
  --r-modal:32px;
  /* الورقة: نصف قطرها ٤٫٥٪ من عرضها — استثناء المادة، ينحسب inline */

  /* الحشوات مشتقّة من السلّم، فحساب التداخل محفور بالـCSS وما يزيغ.
     القاعدة حدّ أدنى، مو مساواة: الحشوة الأوسع مسموحة، والأضيق لا. */
  --pad-rail:calc(var(--r-sheet) - var(--r-btn-1));   /* 10 */
  --pad-panel:calc(var(--r-panel) - var(--r-field));  /*  8 */
  --pad-sheet:calc(var(--r-sheet) - var(--r-card));   /*  8 */
  --pad-card:calc(var(--r-card) - var(--r-btn-sm));   /*  7 */
  --pad-nest:calc(var(--r-sheet) - var(--r-panel));   /*  6 */
  --notch-step:44px;                                  /* عمق درجة الحزّة، وطول رِيل الكراسي */
  --pad-notch:calc(var(--pad-rail) + var(--notch-step)); /* 54 — سقف الرفّ:
                       رِيل الكراسي (٤٤) + حشوة .pin العليا (١٠).
                       ما عاد ينكتب في قاعدة بعد ما نزل الرِّيل في
                       الرفّ — صار اسم المجموع اللي التخطيط مبنيّ
                       عليه، والقالب والغلاف كلاهما يشير له. */

  /* حلقة التركيز — نحاس، وحدة لكل شي. الأزرق تقاعد من التركيز.
     وانفكّت لعرضٍ ولونٍ مسمَّيَين (٢٠٢٦-٠٧-٣١ · الدورة ٣ · الجولة ٢):
     ‎--ring‎ اختصارٌ يمشي مع ‎outline‎، و‎outline‎ يرسم **مستطيلًا
     مدوَّرًا وبس** — فأي جسمٍ شكله غير ذلك تعبر حلقتُه شكلَه.
     والجسم المحزوز يبي الحلقة تتبع الدرجة، وذلك يبي العرض واللون
     مفكوكَين حتى يُقرآن في قاعدةٍ ثانية بلا ما ينكتب رقمٌ مرّتين.
     المجموع ‎--ring‎ ما تغيّرت قيمته المحسوبة ولا حرفًا. */
  --ring-w:2px;
  --ring-c:var(--a-hi);
  --ring:var(--ring-w) solid var(--ring-c);
  --ring-gap:3px;

  /* ==========================================================
     ٦ · الحركة — النزول سريع والرجعة بنبضة. اللاتماثل هو اللي
     يخلّي الضغطة تُحسّ جسمًا.
     ========================================================== */
  --ease-out:cubic-bezier(.2,.7,.3,1);
  --ease-in:cubic-bezier(.4,0,1,1);
  --spring:cubic-bezier(.34,1.56,.64,1);
  --t-down:80ms; --t-up:300ms; --t-tint:200ms; --t-enter:280ms;

  /* ==========================================================
     ٧ · الكسوة — الوزن يعيش في الطرفين. ٥٠٠ و٦٠٠ ممنوعة،
     و٧٠٠ صار وسطًا: التوكيد ٨٠٠/٩٠٠ والسند ٤٠٠.
     زين ٨٠٠ و٩٠٠ محمّلة وجوهًا حقيقية — ما فيه عريض مصنوع.
     ========================================================== */
  --fd:"Amiri","Sakkal Majalla","Traditional Arabic",serif;  /* العلامة والنداء */
  --fu:"Zain","Segoe UI",Tahoma,sans-serif;                  /* الواجهة وكل الأرقام */
  --fr:"Aref Ruqaa","Sakkal Majalla",serif;                  /* يد الدفتر — عنوانه فقط */
  /* رموز اللعب — رقعة رموز، مو إيموجي. الترتيب يبدأ بوجوه النصّ
     الموجودة على ويندوز وماك وأندرويد، وينتهي بأي وجه متاح. */
  --fs:"Segoe UI Symbol","Apple Symbols","Noto Sans Symbols 2","DejaVu Sans",serif;

  /* الأوزان: الحقيقة كاملة، مو نصفها.
     ٥٠٠ و٦٠٠ ممنوعتان في كل الكسوة — هما وسط اللوحة، وهما اللي
     يخلّون الواجهة تُقرا «داشبورد».
     ٧٠٠ ممنوع في زين وحده. زين تنشتغل بـ٤٠٠ للسند و٨٠٠ للأدوات
     و٩٠٠ للأساسي والأرقام، ولا شي بينها.
     ٧٠٠ مطلوب في أميري (كلمة العلامة و«النداء») وفي عرَف رقعة
     (عنوان الدفتر) — هذي وجوه عرض، وزنها الطبيعي عندها ٧٠٠،
     وما فيها ٨٠٠ ولا ٩٠٠ أصلًا. من يمنع ٧٠٠ عمومًا يكسر العلامة. */
  --w-support:400; --w-control:800; --w-lead:900; --w-display:700;

  /* ==========================================================
     الكسوة المسمّاة — والحدّ الحقيقي، مكتوبًا كما يقدر البناء
     أن يحقّقه.

     كان هنا مكتوبًا «**ما ينكتب مقاس نصّي خارج هالملف**».
     مقيسًا بـgrep يوم كُتب: **خمسة عشر** مقاسًا في
     components.css وثلاثة في الكسوة. الجملة كانت تمنع شيئًا
     البناء ما يقدر يتجنّبه — مقاس المكوّن خاصيّة المكوّن،
     والسلّم السائل دالّة طول الشاشة — فانكسرت من يومها. وهذا
     بالضبط العطب اللي انصلح مرّتين في ترويسة
     ‎app_client/frontend-tak/styles/tak.css‎ (اقرأ التصحيحين
     هناك قبل ما تكتب هنا): جملةٌ تمنع ما لا يُمنع تُكسر ثم
     تُعاد كتابتها بنفس الشكل.

     فالمملوك هنا شيئان لا ثالث لهما:
       ١ · **الأدوار المسمّاة** (‎--ty-*‎) — اختصار كامل: وزن
           ومقاس ورصاصة ووجه. ما ينشأ دورٌ مسمًّى خارج هالملف.
       ٢ · **رفعة الجذر** (§٧-ب) — نسبةً على جذر القارئ.

     والشرط اللي يسري على كل مقاس في النظام، وين ما كان:
     **كل مقاس نصّي يُكتب بالـrem، أو يُشتقّ بـcalc من مقاس
     المكوّن نفسه** — عشان الرفعة العربية توصل الزجاج. واستثناءان
     اثنان لا ثالث لهما، وكلاهما على العلامة وكلاهما فيزيائي
     بقصد: ‎.tkmark .w‎ (47px) و‎.tkmark-badge .w‎ (19px) —
     ‎clip-path:path()‎ مطلق بالبكسل وما يتمدّد، فالحرف لازم يبقى
     مثبّتًا على مسارٍ ما ينمطّ.

     والفحص، فما أحد يحتاج يُصدَّق:
       grep -n "font-size" design/tak/components.css \
                           app_client/frontend-tak/styles/tak.css
     كل نتيجة إمّا rem، أو clamp() بالـrem، أو calc عن مقاس
     مكوّن — إلا سطرَي العلامة.
     ========================================================== */
  /* بالـrem لا بالـpx (٢٠٢٦-٠٧-٢٨ · الجولة ٤): §٧-ب يرفع الجذر
     ١١٢٫٥٪ ويقول «الرفعة تُحمل بالـrem في كل مقاس نصّي بالنظام»،
     وهذان الرمزان كانا آخر مقاسين بالـpx في العدّة — فأي سطح
     ياخذهما كما هما (parts.html، وكل بوابة جاية) ياخذ صفر رفعة
     عربية، والقاعدة تبقى صحيحة على الورق وصفرًا على الزجاج.
     القسمة على ١٦ محفوظة: ٢٨ → 1.75rem · ١٨ → 1.125rem. */
  --ty-lede:var(--w-display) 1.75rem/1.55 var(--fd);  /* النداء. ١٫٥٥ عشان شدّة «الصكّة» تسكن داخل السطر */
  --ty-plate:var(--w-display) 1.125rem/1.55 var(--fr); /* عنوان الدفتر */
  --tsh-lede:-4px 6px 10px rgba(var(--sh-rgb),.75);
  /* --hairline انحذف ٢٠٢٦-٠٧-٢٨ (الجولة ٤). كان الخيط الفاصل فوق
     صفّ رمز الغرفة، والصفّ انطوى داخل زرّ هادي فراح مستهلكه الوحيد.
     مسح للأيتام على كل العدّة: ١٢٢ خاصيّة، ستّ منها بلا مستهلك —
     خمسة أصباغ محجوزة لبوابة الطاولة بوظيفة مكتوبة (--aqeeq
     و--aqeeq-rgb و--palm-lit و--clay-lit و--s-table-lit، وهي درجة
     من سلّم الأسطح المعلن)، وهذي وحدها بلا وظيفة مكتوبة. القاعدة:
     محجوزٌ بوظيفة مكتوبة يبقى، وميّتٌ بلا وظيفة ينحذف. */

  color:var(--tx);
  font-family:var(--fu);font-size:1rem;line-height:1.78;

  /* سلك تعثّر، مو علاج: كل الأوزان المستعملة محمّلة وجوهًا حقيقية
     (زين ٤٠٠/٧٠٠/٨٠٠/٩٠٠، أميري ٤٠٠/٧٠٠، عارف رقعة ٤٠٠/٧٠٠).
     لو ضاع وجه يومًا، نبيه يسقط ظاهرًا — لا عريضًا مصنوعًا.
     والعريض المصنوع بالعربي يوسّع الكلمة ويأكل التشكيل. */
  font-synthesis-weight:none;
  font-synthesis-style:none;
}

/* ============================================================
   ٧-ب · رفعة الجذر العربية — القاعدة الوحيدة خارج .tak

   العربي يحتاج ١٠–١٥٪ فوق مقاس اللاتيني عشان يُقرا مثله: حروفه
   متّصلة، وأجسامها أقصر نسبةً لصندوق الخطّ، والتشكيل حبر إضافي
   فوق السطر وتحته. النظام كان يقول هالكلام ويشحن +٦٫٢٥٪ فقط:
   الجذر ١٦px (افتراض المتصفّح اللاتيني) و.tak ١٧px.

   الآن: الجذر ١١٢٫٥٪ — أي ١٨٫٠٠px على متصفّح افتراضه ١٦.
   و«١١٢٫٥٪» لا «18px» بقصد: من كبّر خطّ متصفّحه عمدًا تبقى رفعتنا
   فوق اختياره بدل ما تلغيه.

   ولماذا ارتفع من ١١٠ (٢٠٢٦-٠٧-٢٨ · الجولة ٤): ١١٠٪ = +١٠٫٠٪
   بالضبط، أي أرضية النطاق المكتوب (١٠–١٥٪) على الشعرة. أي كسر
   تقريب، وأي مقاس ينزل خطوة، يطيح تحتها — وقد طاح فعلًا: ثلاثة
   مقاسات في كسوة التطبيق كانت px فتاخذ صفر رفعة. ١١٢٫٥٪ تعطي
   +١٢٫٥٪، وسط النطاق، و١٨٫٠٠px بالضبط لا كسرًا. والرقم مختار
   لأنه يقسم ١٦ قسمةً تامّة، فسلّم الـrem يبقى بأرقام نظيفة.
   والمقيس بعد الرفع: ولا تمرير ولا فيض أفقي على أي بوابة من
   الخمس، بحافّة وبلا حافّة — انظر جدول styles/tak.css.

   والأهمّ: **الرفعة تُحمل بالـrem في كل مقاس نصّي بالنظام.**
   قبل هذي الجولة كانت كل المقاسات مكتوبة px، فرفع الجذر ما كبّر
   ولا حرف على الشاشة — رقم صحيح على الورق وصفر على الزجاج.
   القسمة على ١٦ محفوظة، فالسلّم النسبي ما تغيّر ولا خطوة:
     17px → 1.0625rem · 16 → 1rem · 21 → 1.3125rem ·
     16.5 → 1.03125rem · 15.5 → .96875rem · 27 → 1.6875rem

   الاستثناء الوحيد: كلمة العلامة (47px) وشارتها (19px). الشريحة
   مقصوصة بـclip-path:path() المطلق بالبكسل، فلو كبر الحرف وحده
   خرج من قصّته. الحرف والشكل هنا شي واحد، ومقاسهما فيزيائي.
   ============================================================ */
html{font-size:112.5%}
