/* ==========================================================================
   فونت‌های محلی — هیچ ریکوئست خارجی‌ای زده نمی‌شود.
   جایگزین این دو منبع بیرونی:
     - https://fonts.googleapis.com/css2?family=Vazirmatn:...
     - https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.0.0/css/all.min.css
   لایسنس‌ها کنار فایل‌های فونت در assets/fonts/ قرار دارند.
   ========================================================================== */

/* --------------------------------------------------------------------------
   Vazirmatn v33.0.3 — فونت متغیر، پوشش وزن ۱۰۰ تا ۹۰۰ در یک فایل.
   SIL Open Font License 1.1 — assets/fonts/Vazirmatn-OFL.txt
   -------------------------------------------------------------------------- */
@font-face {
    font-family: 'Vazirmatn';
    src: url('fonts/vazirmatn-variable.woff2') format('woff2-variations'),
         url('fonts/vazirmatn-variable.woff2') format('woff2');
    font-weight: 100 900;
    font-style: normal;
    font-display: swap;
}

/* --------------------------------------------------------------------------
   Font Awesome Free 7.3.1 (Solid) — ساب‌ست‌شده به ۱۲ آیکونی که واقعاً
   استفاده می‌شوند (۱۱۹KB -> ۱.۸KB).
   SIL OFL 1.1 برای فونت — assets/fonts/FontAwesome-LICENSE.txt

   آیکون‌های موجود در ساب‌ست:
     fa-arrow-left  fa-arrow-right  fa-brain      fa-chart-line
     fa-check       fa-check-circle fa-exclamation-triangle
     fa-graduation-cap  fa-robot    fa-spinner
     fa-thumbs-down fa-thumbs-up

   اگر آیکون تازه‌ای به صفحه اضافه کردید، باید ساب‌ست را دوباره بسازید،
   وگرنه آن آیکون خالی نمایش داده می‌شود. روش ساخت در README آمده است.
   -------------------------------------------------------------------------- */
@font-face {
    font-family: 'Font Awesome 6 Free';
    src: url('fonts/fa-solid-900.woff2') format('woff2');
    font-weight: 900;
    font-style: normal;
    font-display: block;
}

.fa,
.fas,
.fa-solid {
    font-family: 'Font Awesome 6 Free';
    font-weight: 900;
    font-style: normal;
    font-variant: normal;
    display: inline-block;
    direction: ltr;
    line-height: 1;
    text-rendering: auto;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

.fa-arrow-left::before          { content: "\f060"; }
.fa-arrow-right::before         { content: "\f061"; }
.fa-brain::before               { content: "\f5dc"; }
.fa-chart-line::before          { content: "\f201"; }
.fa-check::before               { content: "\f00c"; }
.fa-check-circle::before        { content: "\f058"; }
.fa-exclamation-triangle::before{ content: "\f071"; }
.fa-graduation-cap::before      { content: "\f19d"; }
.fa-robot::before               { content: "\f544"; }
.fa-spinner::before             { content: "\f110"; }
.fa-thumbs-down::before         { content: "\f165"; }
.fa-thumbs-up::before           { content: "\f164"; }

.fa-spin {
    animation: fa-spin 2s linear infinite;
}

@keyframes fa-spin {
    from { transform: rotate(0deg); }
    to   { transform: rotate(360deg); }
}

@media (prefers-reduced-motion: reduce) {
    .fa-spin {
        animation-duration: 6s;
    }
}
