/* ═══════════════════════════════════════════════════════════════════
   فونت‌های محلی — جایگزین fonts.googleapis.com
   ═══════════════════════════════════════════════════════════════════

   چرا محلی:
   ⚠⚠ هر بارگذاری صفحه سه رفت‌وبرگشت زنجیره‌ای به گوگل داشت:
        ۱. fonts.googleapis.com/css2   (خودش یک CSS است)
        ۲. fonts.gstatic.com/...woff2  (تازه بعد از رسیدن CSS شروع می‌شد)
        ۳. material symbols woff2
      این‌ها **سریالی**اند، نه موازی: تا فایل CSS نیاید، مرورگر اصلاً
      نمی‌داند کدام فونت را بگیرد. روی شبکهٔ ایران هر کدام می‌تواند
      ثانیه‌ها طول بکشد یا اصلاً نرسد — و تا آن موقع متن نامرئی است.

   ⚠ هر دو فونت از قبل روی همین سرور بودند
     (public/experiences/sanglaj/) و فقط استفاده نمی‌شدند.

   حجم:
     ۵ وزن وزیرمتن  ~۳۵KB هرکدام  (subset به کاراکترهای فارسی/لاتین)
     آیکون‌ها       ۳.۹MB → ۳۷۴KB (فقط وزن ثابت، **بدون** حذف آیکون)

   ⚠⚠⚠ چرا آیکون‌ها subset نشده‌اند — یک اشتباه که مرتکب شدیم:
      اول فقط ۵۵ آیکونی که با grep پیدا شده بود نگه داشته شد (۲۳۹KB).
      نتیجه: دکمه‌های ناوبار «homeاقامت»، «trainقطار» شدند — چون
      کامپوننت‌ها آیکون را با <Icon name="home" /> صدا می‌زنند و آن
      الگو در استخراج نیامده بود. آیکونی که در فونت نباشد، **نامش
      به‌صورت متن** رندر می‌شود.

      استخراج کامل‌تر ۱۱۸ آیکون داد، یعنی بیش از نصفشان جا افتاده بود.

      اختلاف کل فونت با subset فقط ۱۳۵KB است. این ۱۳۵KB بیمهٔ ارزانی
      است در برابر اینکه هر آیکون تازه بی‌صدا به متن تبدیل شود. حجم
      اصلی از حذف **دادهٔ فونت متغیر** آمد (۳.۹MB → ۳۷۴KB)، نه از حذف
      آیکون‌ها.

   ⚠ پس اگر آیکون تازه‌ای اضافه کردید، **کاری لازم نیست**.
   ═══════════════════════════════════════════════════════════════════ */

/* ⚠ font-display:swap — متن بلافاصله با فونت سیستمی دیده می‌شود و بعد
   عوض می‌شود. بدون آن، متن تا رسیدن فونت **نامرئی** است (FOIT). */

@font-face {
  font-family: 'Vazirmatn';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('/fonts/vazirmatn-400.woff2') format('woff2');
}
@font-face {
  font-family: 'Vazirmatn';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url('/fonts/vazirmatn-500.woff2') format('woff2');
}
@font-face {
  font-family: 'Vazirmatn';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url('/fonts/vazirmatn-600.woff2') format('woff2');
}
@font-face {
  font-family: 'Vazirmatn';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url('/fonts/vazirmatn-700.woff2') format('woff2');
}
/* ⚠ ۸۰۰ و ۹۰۰ هر دو به همین فایل می‌روند. وزن ۹۰۰ جدا ساخته نشده چون
   تفاوتش با ۸۰۰ در عمل دیده نمی‌شود و یک فایل ۳۵ کیلوبایتی می‌ارزد. */
@font-face {
  font-family: 'Vazirmatn';
  font-style: normal;
  font-weight: 800 900;
  font-display: swap;
  src: url('/fonts/vazirmatn-800.woff2') format('woff2');
}

/* ── آیکون‌ها ─────────────────────────────────────────────────────── */
@font-face {
  font-family: 'Material Symbols Outlined';
  font-style: normal;
  font-weight: 400;
  font-display: block;   /* ⚠ آیکون باید نامرئی بماند تا برسد، وگرنه
                            نامِ آیکون («flight_takeoff») به‌عنوان متن
                            دیده می‌شود — بدتر از جای خالی. */
  src: url('/fonts/material-symbols.woff2') format('woff2');
}

.material-symbols-outlined {
  font-family: 'Material Symbols Outlined';
  font-weight: normal;
  font-style: normal;
  font-size: 24px;
  line-height: 1;
  letter-spacing: normal;
  text-transform: none;
  display: inline-block;
  white-space: nowrap;
  word-wrap: normal;
  direction: ltr;
  -webkit-font-feature-settings: 'liga';
  font-feature-settings: 'liga';
  -webkit-font-smoothing: antialiased;
}

/* ═══════════════════════════════════════════════════════════════════
   ساخت دوباره (بعد از افزودن آیکون تازه یا به‌روزرسانی فونت):

     pip install fonttools brotli

     # وزیرمتن
     for p in Regular:400 Medium:500 SemiBold:600 Bold:700 ExtraBold:800; do
       n=${p%%:*}; w=${p##*:}
       pyftsubset public/experiences/sanglaj/fonts/Vazirmatn-$n.ttf \
         --output-file=public/fonts/vazirmatn-$w.woff2 --flavor=woff2 \
         --layout-features='*' \
         --unicodes="U+0000-00FF,U+0600-06FF,U+200C-200D,U+2010-2027,U+FB8A,U+067E,U+0686,U+06AF,U+06CC,U+06A9,U+FD3E-FD3F,U+FDFC,U+20AC,U+2212"
     done

     # آیکون‌ها — فقط تبدیل فونت متغیر به یک وزن ثابت. بدون subset.
     # ⚠ همین یک قدم ۳.۹MB را به ۳۷۴KB می‌رساند، چون بیشتر حجم مال
     #   جدول‌های gvar/HVAR فونت متغیر است نه خودِ آیکون‌ها.
     python3 -c "
     from fontTools.ttLib import TTFont
     from fontTools.varLib import instancer
     f = TTFont('public/experiences/sanglaj/libs/material-symbols-outlined.woff2')
     instancer.instantiateVariableFont(f, {'FILL':0,'GRAD':0,'opsz':24,'wght':400}, inplace=True)
     f.flavor = 'woff2'
     f.save('public/fonts/material-symbols.woff2')"
   ═══════════════════════════════════════════════════════════════════ */
