/* Page-scoped design CSS, served from /public and <link>ed by PageShell for the
   ACTIVE LOCALE ONLY.

   HAND-MAINTAINED. Edit THIS file: there is no generator and no pipeline to
   re-run. The banner this replaces said "GENERATED from
   src/styles/vega-design/pages/<name>.css -- edit that, not this", and both
   halves were false. Nothing imported that copy (app/globals.css imports only
   the five shared sheets), its bytes had already diverged from the ones the
   browser gets, and the regeneration it named -- tools/slice_pages.py plus
   tools/emit_components.py -- predates every change made on import and would
   flatten them. It has been deleted. See
   docs/frontend/VEGA_DESIGN_INTEGRATION.md.

   Living under /public puts these sheets OUTSIDE the bundler, on purpose. They
   are copied to the response byte for byte: unhashed, unminified, and NOT
   fingerprinted, so an edit ships under the URL the previous version already
   holds and you must bust the cache yourself when a change has to land now.
   That is a standing, deliberate exception rather than an oversight -- the
   sheet is chosen per locale at request time by a <link>, which a static
   `import` compiled into a JS chunk cannot do.

   These sheets cannot both be loaded: about.css and about-en.css share 32 of
   their selectors and give them different values (FAQs.html sets
   line-height:1.28!important on .faqpage__h1, FAQs-en.html deliberately omits
   it). Whichever loaded second would win for BOTH languages. Upstream this is
   why the design ships two root layouts; this app serves one URL per page, so
   PageShell links exactly one sheet instead.

   The @layer statement below is repeated verbatim from app/globals.css, and it
   has to be -- as does the `@layer vega-design { ... }` wrapper around every
   rule in this file. Tailwind 4 emits its utilities into a REAL `@layer
   utilities`, and unlayered CSS outranks every layer no matter where it sits in
   the document; unwrapping these rules would therefore not reorder the cascade,
   it would invert the one the design was built against, with each page rule
   beating every Tailwind utility on the page. The statement is the other half:
   layer PRIORITY is fixed by where a layer name is first seen in the document,
   and React hoists a <link rel=stylesheet> without guaranteeing it lands after
   the global sheet. If this file were parsed first and said only
   `@layer vega-design {}`, vega-design would be declared before `theme` and
   `base` and would therefore lose to Tailwind's preflight -- the page would load
   its own CSS and be visibly restyled by the reset. Naming the full order here
   makes the file self-anchoring: whichever sheet the browser sees first
   establishes the same order, and the second is a no-op. */
@layer theme, base, vega-design, components, utilities;

@layer vega-design {
  /* Originally lifted from the inline <style> block of Lyra.html, hand-maintained
     since. The "Regenerate: python tools/slice_pages.py && python
     tools/emit_components.py" line that used to sit here is retired -- see the
     header above.

     These rules live in the page, not in css/style.css, on purpose:
     the shared sheet is loaded by index.html and index-en.html, so an
     addition there risks both. */

  /* ---- ترويسة صفحة الميزة -------------------------------------------
       ليست هيرو. صفحة الميزة لا تعيد افتتاح الموقع من أوّله: سطر تعريف،
       ثم وعدٌ واحد، ثم المنتج نفسه فوق الطيّة. ولذلك لا نجم ولا مدار ولا
       عمود صورة ولا زرّان، وحشوٌ علويّ يكفي لتجاوز الشريط المثبّت. */
    /* كتل العناوين موسّطة: الصفحة كلّها تفتح أقسامها بعنوان في الوسط،
       والمتن داخل البطاقات والقوائم يبقى من جهة البدء لأنه يُقرأ سطرًا
       بعد سطر (المعايير §٣: التوسيط للعناوين وكتل الهيرو، لا للمتن). */
    .lp-head{ max-width:60ch; margin-inline:auto; text-align:center; }
    .lp-h1{
      font-family:var(--font-head);
      font-size:clamp(30px, 4.6vw, 44px);
      font-weight:900;
      line-height:1.28 !important;
      letter-spacing:normal;
      color:var(--ink);
      text-wrap:balance;
      margin-top:18px;
    }
    .lp-h2{
      font-family:var(--font-head);
      font-size:clamp(25px, 4.2vw, 36px);
      font-weight:900;
      line-height:1.32 !important;
      letter-spacing:normal;
      color:var(--ink);
    }
    /* أدوات ‎text-*‎ في تيلويند تحمل ارتفاع سطر لاتينيًّا يقصّ العربية
       (المعايير §٣)، فعناوين هذه الصفحة لا تُكتب بها أصلًا. */
    .lp-lede{
      margin-top:14px;
      font-size:clamp(16px, 2.4vw, 18px);
      line-height:1.85;
      color:var(--ink-2);
    }
    .lp-sec{ max-width:56ch; margin-inline:auto; margin-bottom:34px; text-align:center; }

    /* رابط داخل فقرة: مسطّر لا ملوّن وحسب، اللون وحده لا يحمل المعنى
       (المعايير §٩)، ومن لا يميّز البنفسجي عن الحبر يحتاج الخطّ ليعرف
       أنه رابط. */
    .lp-inline{
      color:var(--purple); font-weight:700;
      text-decoration:underline; text-underline-offset:3px;
      text-decoration-thickness:1.5px;
      transition:color .18s ease;
    }
    .lp-inline:hover{ color:var(--ink); }
    [data-theme="dark"] .lp-inline{ color:var(--purple-2); }
    [data-theme="dark"] .lp-inline:hover{ color:var(--ink); }

    /* ---- شريط الأرقام تحت الترويسة -------------------------------------
       أربعة أرقام لا ثلاثة، فلا يصلح شريط ‎.lyra__stats‎ المنقول عن الرئيسية
       (شبكته ثلاثية). وهي حقائق منتج تُختبر، لا أرقام أثر مُدّعاة. */
    .lp-stats{
      display:flex; flex-wrap:wrap; justify-content:center; gap:10px 26px;
      margin-top:26px; padding:15px 20px; border-radius:16px;
      background:color-mix(in srgb, var(--purple) 7%, transparent);
      border:1px solid color-mix(in srgb, var(--purple) 20%, transparent);
    }
    .lp-stats span{
      font-family:var(--font-head); font-size:14px; font-weight:800;
      color:color-mix(in srgb, var(--purple) 58%, var(--twilight));
      line-height:1.5;
    }
    [data-theme="dark"] .lp-stats span{ color:color-mix(in srgb, var(--purple) 58%, #FFFFFF); }

    /* فقرة مسؤولية الاستخدام: لوح واحد لا شبكة، النصّ حجّة متّصلة. */
    .lp-note{
      max-width:66ch; margin-inline:auto; text-align:start;
      padding:26px 24px; border-radius:20px;
      border:1.5px solid transparent;
      background:linear-gradient(180deg,var(--surface),var(--surface)) padding-box,
                 linear-gradient(150deg, rgba(135,65,249,.26), var(--line-2)) border-box;
    }
    .lp-note p{ font-size:15px; line-height:1.9; color:var(--ink-2); }
    .lp-note p + p{ margin-top:12px; }

    /* صيغ التصدير */
    .lp-formats{
      display:flex; flex-wrap:wrap; justify-content:center; gap:10px; margin-top:18px;
    }
    .lp-formats span{
      padding:9px 16px; border-radius:999px;
      font-family:var(--font-head); font-size:14px; font-weight:800;
      color:color-mix(in srgb, var(--purple) 58%, var(--twilight));
      background:color-mix(in srgb, var(--purple) 9%, transparent);
      border:1px solid color-mix(in srgb, var(--purple) 22%, transparent);
    }
    [data-theme="dark"] .lp-formats span{ color:color-mix(in srgb, var(--purple) 58%, #FFFFFF); }

    /* جدار الآراء هنا ثلاث بطاقات لا ستّ، وأحدها ثلاثة أضعاف أخويه طولًا.
       ومع تمدّد الشبكة الافتراضي تُشدّ القصيرتان إلى ارتفاع الطويلة فيبقى
       تحتهما نحو ١٩٠بك فراغًا. فتُترك كلٌّ على مقاسها، وإزاحاتُ الجدار
       المتدرّجة تجعل التفاوت يُقرأ ترتيبًا لا نقصًا. */
    .vwall__grid{ align-items:start; }

    /* سطر البرهان: رقمٌ واحد يُقرأ وحده لا يزاحمه غيره، فوق شريط الأرقام
       مباشرة. أيقونة المكتبة من مجموعة البراند، وهو العنصر الوحيد ذو
       الأيقونة في سطره فلا يقع خلط. */
    .lp-proof{
      display:inline-flex; align-items:center; gap:10px;
      margin-top:22px; padding:11px 20px; border-radius:999px;
      background:color-mix(in srgb, var(--purple) 10%, transparent);
      border:1px solid color-mix(in srgb, var(--purple) 24%, transparent);
      font-family:var(--font-head); font-size:15px; font-weight:800;
      line-height:1.5;
      color:color-mix(in srgb, var(--purple) 55%, var(--twilight));
    }
    [data-theme="dark"] .lp-proof{ color:color-mix(in srgb, var(--purple) 55%, #FFFFFF); }
    .lp-proof img{ flex:none; width:26px; height:26px; object-fit:contain; display:block; }

    .lp-step__d p + p{ margin-top:10px; }

    /* =====================================================================
       سبعة أقسام كانت تشترك في مستطيل واحد: أيقونة، فعنوان، ففقرة رمادية،
       ثلاثة في صفّ. تكرارُه سبعًا يقرأ حشوًا مولَّدًا مهما جاد نصّه. فلكل
       قسم هنا الشكل الذي يطلبه محتواه، لا الشكل الذي يسهل تكراره.
       بقيت منها أربعة: ثلاثة انطوت في رصّة القدرات، ولوحُ «الفرق عن
       المحادثة» حُذف لأنه كان يعيد قول الرصّة بأربعة عناوين أخرى.
       ===================================================================== */

    /* ١ · رصّة القدرات، والمكوّن كلّه مشترك.
       الشكل والحركة في ‎css/style.css‎ و‎js/script.js‎ (‎.tstack/.ttabs/.tcx‎،
       ومعرّف ‎#toolStack‎)، فلا يُنسخ منهما حرف هنا. وما تحته ثلاثة أشياء
       لا يعرفها الملفّ المشترك: بلاطة أيقونة البراند داخل البطاقة، وفقرتان
       بدل فقرة، ومحاكاات هذه الصفحة الستّ.

       كلّ لون هنا مخلوط من ‎--tone‎ الذي تحمله البطاقة نفسها، فلا يتكرّر
       لونٌ مكتوبٌ بيده ستّ مرّات ولا تنفصل المحاكاة عن بطاقتها. */

    /* البلاطة: قائمة ‎.is-art‎ في ‎css/style.css‎ تعدّ أصنافها بالاسم واحدًا
       واحدًا، وهذا صنف لا تعرفه، فالوصفة معادة هنا بدل تعديل ملفٍّ
       تتقاسمه أربع صفحات لأجل صفحة واحدة. */
    .lp-tcx__ico{
      width:46px; height:46px; flex:none; padding:6px; margin-bottom:12px;
      border-radius:15px; display:grid; place-items:center;
      background:color-mix(in srgb, var(--accent, #8741F9) 13%, var(--surface));
    }
    .lp-tcx__ico img{ width:100%; height:100%; object-fit:contain; display:block; }
    /* التلوين يحمل وزنًا أكبر متى صار وجه البطاقة داكنًا، كقاعدة
       ‎.is-art‎ الداكنة نفسها في الملفّ المشترك. */
    [data-theme="dark"] .lp-tcx__ico{
      background:color-mix(in srgb, var(--accent, #8741F9) 26%, transparent);
    }

    /* ‎.tcx__body‎ عمودٌ مرن، و‎.tcx__p‎ تحمل ‎margin-bottom:auto‎ لتدفع الزرّ
       إلى قاع البطاقة. فقرتان بالقاعدة نفسها تدفع الثانية وحدها إلى القاع
       وتفتح ثقبًا بين الأختين، فالدفع ينتقل إلى الغلاف مرّة واحدة. */
    .lp-tcx__txt{ width:100%; margin-bottom:auto; }
    /* البطاقة ‎٤٤٠بك‎ ثابتة في الملفّ المشترك، فداخلها ميزانية لا اقتراح:
       ‎٣٧٦بك‎ بعد الحشو، يأخذ منها الكروم ‎٢٤٥‎ ويبقى للنصّ أربعة أسطر.
       الهوامش الثلاثة تحتها مقصوصة لتردّ ‎١٥بك‎ قِيست فائضة. */
    .lp-tcx__ico + .tcx__eye{ margin-bottom:10px; }
    .lp-tcx__txt .tcx__h,
    .tcx__h{ margin-bottom:12px; }
    .tcx__cta{ margin-top:18px; }
    .lp-tcx__txt .tcx__p{ margin-bottom:0; }
    .lp-tcx__txt .tcx__p + .tcx__p{ margin-top:10px; }

    /* سطر «توضيحية»: تحت الرصّة لا داخل بطاقة، فهو وصفٌ للستّ جميعًا
       ويبقى مقروءًا أيًّا كانت البطاقة الأمامية. */
    .lp-mocknote{
      margin-top:26px; text-align:center;
      font-size:13px; color:var(--ink-3);
    }

    /* ---- المحاكاات ----
       كلّها تجلس في ‎.tmock‎ المشترك (وجهٌ وحدٌّ من لون الأداة وظلّ)، وما
       تحته وصف صفوفها وحدها. */
    .tmock--lp{ font-size:12.5px; }
    /* السطر الأخير: رقمٌ يثبت ما قالته الفقرة. ‎margin-top:auto‎ يثبّته في
       القاع فتتساوى ذيول المحاكاات مهما اختلفت أطوالها. */
    .lpm-foot{
      margin-top:auto; padding-top:9px; font-size:11.5px; font-weight:700;
      color:var(--ink-3);
      border-top:1px solid color-mix(in srgb, var(--tone) 16%, transparent);
    }

    /* المخطط */
    .lpm-out__hd{ display:flex; align-items:center; justify-content:space-between; gap:10px; }
    .lpm-out__ttl{ font-size:13.5px; font-weight:800; color:var(--ink); }
    .lpm-out__type{
      font-size:11px; font-weight:700; padding:3px 9px; border-radius:99px;
      background:color-mix(in srgb, var(--tone) 14%, transparent);
      color:color-mix(in srgb, var(--tone) 45%, var(--twilight));
    }
    .lpm-out__q{ font-size:12px; line-height:1.7; color:var(--ink-2); }
    .lpm-out__list{ list-style:none; margin:0; padding:0; display:grid; gap:6px; }
    .lpm-out__list li{
      display:flex; align-items:center; gap:8px; padding:7px 10px; border-radius:11px;
      font-size:12px; font-weight:600; color:var(--ink);
      background:color-mix(in srgb, var(--tone) 7%, transparent);
      border:1px solid color-mix(in srgb, var(--tone) 13%, transparent);
    }
    .lpm-out__n{
      width:18px; height:18px; flex:none; border-radius:6px;
      display:grid; place-items:center;
      font-size:10.5px; font-weight:800; color:#fff;
      background:color-mix(in srgb, var(--tone) 62%, var(--twilight));
    }

    /* الكتابة والتحرير */
    .lpm-ed__p{ font-size:12.5px; line-height:1.9; color:var(--ink-2); }
    /* التحديد هو بطل اللقطة: بدونه يطفو شريط الأدوات بلا سبب. */
    .lpm-ed__sel{
      background:color-mix(in srgb, var(--tone) 22%, transparent);
      color:var(--ink); border-radius:5px; padding:1px 3px;
    }
    .lpm-ed__bar{
      display:flex; flex-wrap:wrap; gap:5px; padding:7px; border-radius:13px;
      background:color-mix(in srgb, var(--tone) 8%, transparent);
      border:1px solid color-mix(in srgb, var(--tone) 14%, transparent);
    }
    .lpm-ed__act{
      font-size:11px; font-weight:700; padding:5px 10px; border-radius:9px;
      color:var(--ink-2); background:var(--surface);
    }
    .lpm-ed__act.is-on{ color:#fff; background:color-mix(in srgb, var(--tone) 60%, var(--twilight)); }
    .lpm-ed__out{
      font-size:12px; line-height:1.8; color:var(--ink);
      padding-inline-start:10px;
      border-inline-start:2px solid color-mix(in srgb, var(--tone) 45%, transparent);
    }

    /* البحث عن المصادر */
    .lpm-src__field{
      display:flex; align-items:center; gap:8px; padding:8px 11px; border-radius:11px;
      font-size:12px; font-weight:600; color:var(--ink);
      background:color-mix(in srgb, var(--tone) 6%, transparent);
      border:1px solid color-mix(in srgb, var(--tone) 20%, transparent);
    }
    .lpm-src__field svg{ flex:none; color:color-mix(in srgb, var(--tone) 55%, var(--twilight)); }
    .lpm-src__hit{
      display:flex; flex-direction:column; gap:6px; padding:11px; border-radius:13px;
      background:color-mix(in srgb, var(--tone) 8%, transparent);
      border:1px solid color-mix(in srgb, var(--tone) 14%, transparent);
    }
    .lpm-src__t{ font-size:12.5px; font-weight:800; line-height:1.6; color:var(--ink); }
    .lpm-src__meta{ font-size:11px; color:var(--ink-3); }
    .lpm-src__tags{ display:flex; flex-wrap:wrap; gap:6px; }
    .lpm-src__tags span{
      font-size:10.5px; font-weight:700; padding:3px 8px; border-radius:99px;
      background:var(--surface); color:var(--ink-2);
    }
    .lpm-src__add{
      align-self:flex-start; margin-top:2px;
      font-size:11px; font-weight:800; padding:6px 12px; border-radius:9px;
      color:#fff; background:color-mix(in srgb, var(--tone) 60%, var(--twilight));
    }

    /* سؤال المصادر */
    .lpm-ask__q{
      font-size:12px; font-weight:700; line-height:1.7; color:var(--ink);
      padding:9px 11px; border-radius:13px;
      background:color-mix(in srgb, var(--tone) 13%, transparent);
    }
    .lpm-ask__a{
      display:flex; flex-direction:column; gap:8px;
      padding:10px 11px; border-radius:13px; background:var(--surface);
      border:1px solid color-mix(in srgb, var(--tone) 16%, transparent);
    }
    .lpm-ask__a p{ margin:0; font-size:12px; line-height:1.85; color:var(--ink-2); }
    /* رقم الورقة قبل اسمها: الجواب يشير إلى مصدرٍ في المكتبة لا إلى معرفةٍ
       عامّة، وهذا هو الفرق كلّه. */
    .lpm-ask__cites{ display:flex; flex-wrap:wrap; gap:6px; }
    .lpm-ask__cites span{
      font-size:10.5px; font-weight:700; padding:3px 8px; border-radius:99px;
      color:color-mix(in srgb, var(--tone) 45%, var(--twilight));
      background:color-mix(in srgb, var(--tone) 12%, transparent);
    }

    /* الاستشهاد وقائمة المراجع */
    .lpm-cite__p{ font-size:12.5px; line-height:1.9; color:var(--ink-2); }
    .lpm-cite__pill{
      font-weight:700; padding:1px 6px; border-radius:7px;
      color:color-mix(in srgb, var(--tone) 42%, var(--twilight));
      background:color-mix(in srgb, var(--tone) 16%, transparent);
    }
    .lpm-cite__rule{
      display:flex; align-items:center; justify-content:space-between; gap:10px;
      padding-top:9px; font-size:11.5px; font-weight:800; color:var(--ink);
      border-top:1px solid color-mix(in srgb, var(--tone) 18%, transparent);
    }
    .lpm-cite__rule em{
      display:inline-flex; align-items:center; gap:4px; font-style:normal;
      font-size:10.5px; font-weight:700;
      color:color-mix(in srgb, var(--tone) 45%, var(--twilight));
    }
    .lpm-cite__refs{ list-style:none; margin:0; padding:0; display:grid; gap:7px; }
    .lpm-cite__refs li{
      font-size:11px; line-height:1.7; color:var(--ink-2);
      padding-inline-start:9px;
      border-inline-start:2px solid color-mix(in srgb, var(--tone) 30%, transparent);
    }

    /* أنماط التوثيق */
    .lpm-sty__pills{ display:flex; flex-wrap:wrap; gap:5px; }
    .lpm-sty__pills span{
      font-size:10.5px; font-weight:700; padding:4px 9px; border-radius:99px;
      background:color-mix(in srgb, var(--tone) 9%, transparent); color:var(--ink-2);
    }
    .lpm-sty__pills .is-on{ color:#fff; background:color-mix(in srgb, var(--tone) 60%, var(--twilight)); }
    .lpm-sty__lbl{ font-size:11.5px; font-weight:700; color:var(--ink); }
    .lpm-sty__ref{
      font-size:11.5px; line-height:1.8; color:var(--ink-2);
      padding:10px; border-radius:11px;
      background:color-mix(in srgb, var(--tone) 7%, transparent);
      border:1px solid color-mix(in srgb, var(--tone) 14%, transparent);
    }

    /* ---- البطاقة الغسقية ----
       ‎--tone‎ فيها ‎#020855‎، وهو لون الخلفية الداكنة نفسه: فوجه البطاقة
       يذوب في الصفحة ليلًا (قِيس ‎١٫٠٦:١‎) وعينها تنزل إلى ‎٣٫٧٦:١‎، تحت AA.
       فتنقلب الوصفة لهذه البطاقة وحدها: الوجه يُرفع بالأبيض لا باللون،
       والعين تأخذ لون المتن. نهارًا لا شيء يتغيّر، فالغسق على الأبيض أعلى
       تباينًا من الألوان الخمسة كلّها.

       المِشبك ‎[style*="020855"]‎ لا صنف جديد: اللون يصل من ‎style‎ مضمّن
       يكتبه المولّد، فالقاعدة تتبع اللون أينما وُضع ولا تحتاج إلى مزامنة
       صنفٍ ثانٍ مع بيانات ‎DECK‎. */
    [data-theme="dark"] .tcx[style*="020855"]{
      background:linear-gradient(160deg,
        color-mix(in srgb, #FFFFFF 9%, var(--surface)),
        color-mix(in srgb, #FFFFFF 4%, var(--surface)));
      border-color:rgba(255,255,255,.22);
    }
    [data-theme="dark"] .tcx[style*="020855"] .tcx__eye{ color:var(--ink-2); }
    /* حلقة التركيز على اللسان الغسقي كانت ‎١٫٠٢:١‎ على الشريط الداكن */
    [data-theme="dark"] .ttab[style*="020855"]:focus-visible{
      outline-color:color-mix(in srgb, var(--tone) 45%, #FFFFFF);
    }
    /* الحبّة المختارة: نصّها الأبيض ‎١٧٫٩٧:١‎، لكن شكلها بلا حدّ يذوب في
       الوجه المرفوع (‎١٫٢٧:١‎) فلا يُعرف أيّ نمطٍ هو المختار. */
    [data-theme="dark"] .tcx[style*="020855"] .lpm-sty__pills .is-on{
      border:1px solid rgba(255,255,255,.22);
    }

    /* الجلد الداكن: كلّ نصٍّ مخلوطٍ نحو ‎--twilight‎ أعلاه يصير داكنًا على
       داكن، فيُخلط نحو الأبيض بدلًا منه، القاعدة نفسها التي يتبعها
       ‎.tcx__eye‎ في الملفّ المشترك. */
    [data-theme="dark"] .lpm-out__type,
    [data-theme="dark"] .lpm-ask__cites span,
    [data-theme="dark"] .lpm-cite__pill,
    [data-theme="dark"] .lpm-cite__rule em,
    [data-theme="dark"] .lpm-src__field svg{
      color:color-mix(in srgb, var(--tone) 58%, #FFFFFF);
    }

    /* على الجوال تنقلب البطاقة من عمودين إلى صفّين فلا يبقى للمحاكاة إلا
       ~‎٢٧٠بك‎. يُطوى أقلّ الصفوف معلومةً فقط، سؤال البحث، ومخرَج إعادة
       الصياغة، وبيانات المجلة، والمرجع المنسَّق، والمرجع الثاني، ويبقى في
       كلّ لقطة ما يجعلها تُعرف. */
    @media (max-width:767px){
      /* البطاقة على الجوال صفّان لا عمودان، والفقرتان اللتان تقرآن سطرين
         على الواسع تصيران خمسة، فتفيض البطاقة ‎٥٦٠بك‎ المشتركة. القياس
         أعطى أعمق فيض ‎١٠٤بك‎ عند ‎٤٤٠‎ عرضًا ثم ‎٢١‎ باقية عند ‎٣٧٥‎، فترتفع
         البطاقة هنا وحدها إلى ‎٦٦٥‎. والرصّة تتبعها: قِيس صندوق أعمق بطاقة
         ‎٦٨٧بك‎ (الميل ‎-٥٫٨د‎ يمدّه) نازلًا ‎٦٠‎، فقاعه ‎٧٤١‎ عند ‎٣٧٥‎ عرضًا و‎٧٥٣‎ عند ‎٦٠٠‎، والرصّة ‎٧٦٠‎،
         لا ‎٧٠٠‎ المشتركة التي حُسبت لبطاقة ‎٥٦٠‎. واليد تُنسب إلى ارتفاع
         البطاقة الجديد لا القديم، وإلّا وقفت في ثلثها. */
      #capabilities .tcx{ height:665px; }
      #capabilities .tstack__deck{ height:760px; }
      #capabilities .tsdrag{ top:550px; }

      .tmock--lp{ gap:7px; padding:13px 13px 12px; }
      .lpm-out__q,
      .lpm-ed__out,
      .lpm-src__meta,
      .lpm-sty__ref,
      .lpm-cite__refs li:last-child{ display:none; }
      .lpm-out__list{ gap:5px; }
      .lpm-out__list li{ padding:6px 9px; }
      /* عنوان الورقة الإنجليزي يبلغ أربعة أسطر في عمود ‎٣٢٧بك‎ فيفيض
         البطاقة ‎١٠بك‎. يُقصّ إلى سطرين بثلاث نقاط، وهو ما تفعله شاشة
         «مكتبة المراجع» في الرئيسية بالعنوان نفسه. */
      .lpm-src__t{
        display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical;
        overflow:hidden;
      }
    }

    /* ٢ · صفوف مواصفات: اسم الأداة في عمود والوصف في آخر، يفصلهما خيط لا
       إطار. المراجعات الثلاث لها أسماء إنجليزية ثابتة، وهذه هيئة ورقة
       المواصفات لا هيئة بطاقة تسويق. */
    .lp-rows{ list-style:none; padding:0; margin:0; }
    .lp-rows li{
      display:grid; grid-template-columns:minmax(min(190px, 100%), .85fr) 2fr; gap:6px 30px;
      padding:24px 4px; border-top:1px solid var(--line);
    }
    .lp-rows li:last-child{ border-bottom:1px solid var(--line); }
    .lp-rows__t{
      font-family:var(--font-head); font-size:19px; font-weight:800;
      line-height:1.4 !important; color:var(--ink);
    }
    .lp-rows__d{ font-size:14.5px; line-height:1.85; color:var(--ink-2); }
    .lp-rows__d p + p{ margin-top:10px; }
    @media (max-width:720px){ .lp-rows li{ grid-template-columns:1fr; gap:8px; } }

    /* ٣ · قائمة علامات: بلا إطار ولا أرضية، علامةٌ صغيرة ثم نصّ. القسم
       حجّة متّصلة عن العربية، وأربع بطاقات كانت تقطعها أربع قطع. */
    .lp-checks{
      list-style:none; padding:0; margin:0; display:grid; gap:24px 44px;
      /* عمودان صراحةً لا ‎auto-fit‎.
         كان عدد الأعمدة يُشتقّ من حسابٍ بالبكسل (‎minmax(300px)‎) داخل حاوية
         مقيسة بالـ‎rem‎ (‎max-w-4xl‎ = ‎٥٦rem‎). فإن كبّر القارئ خطّ المتصفّح
         اتّسعت الحاوية ولم يتّسع الحدّ الأدنى، فتنقلب الشبكة إلى ثلاثة أعمدة
         وتنزل البطاقة الرابعة وحدها: قِيس عند جذر ‎٢٠بك‎ صفوفٌ ‎[٣، ١]‎ بينما
         هي ‎[٢، ٢]‎ عند ‎١٦بك‎، عطلٌ كامنٌ لا يظهر في المقاس الافتراضي.
         والبنود أربعة، والأربعة على عمودين تملأ صفّيها مهما كان مقاس الخط. */
      grid-template-columns:1fr;
    }
    @media (min-width:768px){ .lp-checks{ grid-template-columns:repeat(2, 1fr); } }

    /* =====================================================================
       جدار الآراء على هذه الصفحة، إلغاء الإزاحة المتدرّجة

       ‎css/style.css:3446-3448‎ تزيح البطاقات ‎٢٢/٠/٥٨بك‎ بالتناوب. تلك
       الإزاحة مضبوطة على *الرئيسية*: هناك تُسحب ستٌّ من أربع عشرة بطاقة
       بالقرعة، ونصوصها قصيرة متقاربة الطول، فتقرأ الإزاحة إيقاعًا.
       وهنا النصوص تتراوح بين ‎١١٤‎ و‎٣٧٩‎ حرفًا وارتفاعاتها المقيسة
       ‎٢٧١ · ٢٧١ · ٣٧٤ · ٣٧٤ · ٤٠٠ · ٤٣٦‎، فإزاحةٌ فوق تفاوتٍ أصلًا
       تقرأ تبعثرًا لا إيقاعًا.

       ‎!important‎ ضرورة لا تهاون: قاعدة المصدر ‎.vwall__grid > .vcard
       :not(.vcard--pinned):nth-child(3n)‎ أعلى تخصيصًا من أي محدِّد معقول
       نكتبه هنا، والملفّ المشترك يُحمَّل قبل هذه الكتلة.

       ومع ذهاب الإزاحة يعود ‎stretch‎ إلى عمله: بطاقات الصفّ الواحد
       تتساوى ارتفاعًا لأن لا هامشًا علويًّا يقتطع من نصيبها. */
    .vwall__grid > .vcard,
    .vwall__grid > .vcard:not(.vcard--pinned):nth-child(3n),
    .vwall__grid > .vcard:not(.vcard--pinned):nth-child(3n+1),
    .vwall__grid > .vcard:not(.vcard--pinned):nth-child(3n+2){
      margin-top:0 !important;
    }
    /* ‎align-items‎ يبقى ‎start‎ كما أُعلن أعلاه، ولا يُحوَّل إلى ‎stretch‎:
       مع ‎stretch‎ تُمطّ البطاقة القصيرة إلى ارتفاع أطول جيرانها ويبقى نصّها
       في أعلاها، قِيس ‎١٦٥بك‎ من الفراغ الميت تحت اقتباسَي «غلا» و«هيا»
       داخل بطاقتين بارتفاع ‎٤٣٥بك‎. والحافّة السفلى المتفاوتة أهون من ثلث
       بطاقةٍ فارغ. والتوازن يُصنع بالترتيب لا بالمطّ، انظر ‎WALL_ORDER‎. */
    .lp-checks li{ position:relative; padding-inline-start:38px; }
    .lp-checks__m{
      position:absolute; inset-inline-start:0; top:2px;
      display:grid; place-items:center; width:26px; height:26px; border-radius:9px;
      /* ‎--purple‎ خامًا على أرضيته يقف عند ‎٤٫٢٧:١‎، يجتاز حدّ الرسوم (٣:١)
         ولا يبلغ حدّ النصّ. يُمزج نحو الحبر كما في رقم الخطوة، والجلد الداكن
         نحو الأبيض لا نحو ‎--twilight‎. */
      color:color-mix(in srgb, var(--purple) 55%, var(--twilight));
      background:color-mix(in srgb, var(--purple) 12%, var(--mix));
    }
    [data-theme="dark"] .lp-checks__m{ color:color-mix(in srgb, var(--purple) 55%, #FFFFFF); }
    .lp-checks__t{
      font-family:var(--font-head); font-size:17px; font-weight:800;
      line-height:1.45 !important; color:var(--ink); margin-bottom:6px;
    }
    .lp-checks__d{ font-size:14.5px; line-height:1.85; color:var(--ink-2); }

    /* ٤ · فهرس مرقّم: حالات الاستخدام أنواعُ مستندات، والفهرس أقرب إلى
       طبيعتها من البطاقة، رقم، فاسم، فسطر واحد. عمود واحد يُمسح سريعًا. */
    .lp-index{ list-style:none; padding:0; margin:0; }
    .lp-index li{
      display:grid; grid-template-columns:auto 1fr; gap:4px 18px; align-items:baseline;
      padding:19px 4px; border-top:1px solid var(--line);
    }
    .lp-index li:last-child{ border-bottom:1px solid var(--line); }
    .lp-index__n{
      font-family:var(--font-head); font-size:13.5px; font-weight:800;
      font-variant-numeric:tabular-nums;
      color:color-mix(in srgb, var(--purple) 55%, var(--twilight));
    }
    [data-theme="dark"] .lp-index__n{ color:color-mix(in srgb, var(--purple) 55%, #FFFFFF); }
    .lp-index__t{
      font-family:var(--font-head); font-size:18px; font-weight:800;
      line-height:1.4 !important; color:var(--ink);
    }
    .lp-index__d{ grid-column:2; font-size:14.5px; line-height:1.85; color:var(--ink-2); }

    /* ---- ثلاث خطوات ---------------------------------------------------
       ثلاث لا ستّ: صفحات المنافسين كلّها تختصر الرحلة في ثلاث محطّات،
       وستّ بطاقات تجعل الرحلة تبدو أطول ممّا هي. */
    .lp-steps{
      display:grid; gap:16px;
      /* ثلاث بطاقات: إمّا عمودٌ واحد وإمّا ثلاثة، والعمودان يتركان الثالثة
         وحدها. ‎auto-fit‎ كانت تعطي عمودين عند ‎٧٦٨بك‎ (قِيس: صفوفٌ ‎[٢، ١]‎)،
         فيُصرّح بالعدد بدل أن يُشتقّ من حسابٍ بالبكسل. */
      grid-template-columns:1fr;
      list-style:none; padding:0; margin:0;
    }
    /* لا بدّ أن تلي هذه القاعدةُ قاعدةَ الأساس أعلاه لا أن تسبقها: الملفّ
       يعلن ‎.lp-steps‎ هنا بعد كتلة ‎٨٨٠بك‎ المشتركة، والمتأخّر يغلب عند
       تساوي التخصيص، فاستعلامٌ موضوعٌ قبلها لا يعمل. قِيس: عمودٌ واحد عند
       ‎٨٨٠بك‎ بينما ‎.lp-bento‎ ثلاثة. */
    @media (min-width:880px){
      .lp-steps{ grid-template-columns:repeat(3, 1fr); }
    }
    .lp-step{
      position:relative; overflow:hidden;
      padding:26px 22px 22px; border-radius:20px;
      background:var(--surface);
      border:1px solid var(--line);
      transition:transform .3s cubic-bezier(.2,.7,.2,1), box-shadow .3s ease, border-color .3s ease;
    }
    .lp-step:hover{
      transform:translateY(-5px);
      border-color:color-mix(in srgb, var(--purple) 35%, transparent);
      box-shadow:0 22px 44px -26px color-mix(in srgb, var(--purple) 55%, var(--ink-3));
    }
    /* رقم يُقرأ لا زخرفة باهتة: الرقم الضخم خلف البطاقة (على هيئة ‎.pcard__num‎)
       يقع عند ‎١٫١:١‎ من التباين، أي لا يكاد يُرى، وهو هنا الدليل الوحيد على
       ترتيب الخطوة. فصار بلاطةً على مقاس ‎.faq__ico‎ وبألوانها، وهي نسبة
       مقيسة تتجاوز ‎٤٫٥:١‎ في الجلدين. */
    .lp-step__n{
      display:inline-grid; place-items:center;
      width:34px; height:34px; border-radius:11px;
      margin-bottom:16px;
      font-family:var(--font-head);
      font-size:13.5px; font-weight:800; line-height:1;
      letter-spacing:normal;
      font-variant-numeric:tabular-nums;
      background:var(--tint);
      /* ‎--purple‎ خامًا على ‎--tint‎ يقف عند ‎٤٫٤٢:١‎، تحت حدّ AA بقليل عند
         هذا المقاس. فيُمزج نحو الحبر كما تفعل ‎--label-ink‎ في الملف المشترك
         مع كل تسمية صغيرة. والجلد الداكن يمزج نحو الأبيض لا نحو ‎--twilight‎،
         وإلّا اختفى الرقم في أرضيته. */
      color:color-mix(in srgb, var(--purple) 55%, var(--twilight));
    }
    [data-theme="dark"] .lp-step__n{
      color:color-mix(in srgb, var(--purple) 55%, #FFFFFF);
    }
    .lp-step__t{
      font-family:var(--font-head); font-size:19.5px; font-weight:800;
      line-height:1.4 !important; color:var(--ink); margin-bottom:8px;
    }
    .lp-step__d{ font-size:14.5px; line-height:1.8; color:var(--ink-2); }

    /* ---- لمن ليرا ----------------------------------------------------
       صفوف لا بطاقات: ستّ فقرات قصيرة متجاورة تُقرأ قائمةً واحدة، وستّ
       بطاقات كانت ستنافس بطاقات القدرات فوقها على الانتباه. */
    .lp-whos{ list-style:none; padding:0; margin:0; display:grid; gap:2px; }
    .lp-who{
      display:flex; flex-wrap:wrap; align-items:baseline; gap:6px 12px;
      padding:15px 4px;
      border-bottom:1px solid var(--line);
    }
    .lp-who:last-child{ border-bottom:0; }
    .lp-who__i{
      align-self:center; flex:none;
      display:grid; place-items:center; width:32px; height:32px;
      border-radius:10px; color:var(--sky);
      background:color-mix(in srgb, var(--sky) 11%, var(--mix));
    }
    .lp-who__s{
      font-family:var(--font-head); font-size:16px; font-weight:800;
      color:var(--ink); min-width:11ch;
    }
    .lp-who__n{ flex:1 1 260px; font-size:14.5px; line-height:1.8; color:var(--ink-2); }

    /* شريط الأرقام يصعد إلى الترويسة، فيقرأ سندًا للوعد قبل أن يُعرض
       المنتج. وعلى ‎375بك‎ ثلاثة أعمدة تخنق أرقامها، فتنزل عمودًا واحدًا. */
    .lp-head .lyra__stats{ margin-top:26px; }
    @media (max-width:560px){
      .lp-head .lyra__stats{ grid-template-columns:1fr; gap:12px; text-align:start; }
    }

    @media (prefers-reduced-motion: reduce){
      .lp-step{ transition:none; }
      .lp-step:hover{ transform:none; }
    }
}
