/* ===================================================================
   FONT AWESOME — ЛОКАЛЬНО И ТОЛЬКО НУЖНОЕ

   ⚠️ ЗАЧЕМ. Раньше FA грузился с cdnjs.cloudflare.com на 33 страницах.
   В школах CDN блокируют — и тогда пропадали ВСЕ значки интерфейса.
   Ту же дыру для меню закрыл icons.js; здесь причина та же, но механизм
   другой: FA это ШРИФТ, значки рисуются через ::before.

   ⚠️ ФАЙЛ СОБИРАЕТСЯ СКРИПТОМ, руками не правится:
       python .claude/dev/gen-fa.py
   Появился новый значок в разметке — перегенерировать, иначе он просто
   не отрисуется. Проверка fav.js ловит имя, которого здесь нет.

   ⚠️ Версия 6.4.0 — та же, что была на CDN.
   =================================================================== */

@font-face {
    font-family: "Font Awesome 6 Free";
    font-style: normal;
    font-weight: 900;
    font-display: block;
    src: url("assets/fa/fa-solid-900.woff2") format("woff2");
}
.fa-solid, .fas {
    -moz-osx-font-smoothing: grayscale;
    -webkit-font-smoothing: antialiased;
    display: var(--fa-display, inline-block);
    font-style: normal;
    font-variant: normal;
    line-height: 1;
    text-rendering: auto;
    font-family: "Font Awesome 6 Free";
    font-weight: 900;
}

@font-face {
    font-family: "Font Awesome 6 Free";
    font-style: normal;
    font-weight: 400;
    font-display: block;
    src: url("assets/fa/fa-regular-400.woff2") format("woff2");
}
.fa-regular, .far {
    -moz-osx-font-smoothing: grayscale;
    -webkit-font-smoothing: antialiased;
    display: var(--fa-display, inline-block);
    font-style: normal;
    font-variant: normal;
    line-height: 1;
    text-rendering: auto;
    font-family: "Font Awesome 6 Free";
    font-weight: 400;
}

@font-face {
    font-family: "Font Awesome 6 Brands";
    font-style: normal;
    font-weight: 400;
    font-display: block;
    src: url("assets/fa/fa-brands-400.woff2") format("woff2");
}
.fa-brands, .fab {
    -moz-osx-font-smoothing: grayscale;
    -webkit-font-smoothing: antialiased;
    display: var(--fa-display, inline-block);
    font-style: normal;
    font-variant: normal;
    line-height: 1;
    text-rendering: auto;
    font-family: "Font Awesome 6 Brands";
    font-weight: 400;
}

/* ---------- Значки (250) ---------- */
.fa-plus::before { content: "\2b"; }
.fa-faucet::before { content: "\e005"; }
.fa-hand-sparkles::before { content: "\e05d"; }
.fa-clapperboard::before { content: "\e131"; }
.fa-display::before { content: "\e163"; }
.fa-hands-clapping::before { content: "\e1a8"; }
.fa-stairs::before { content: "\e289"; }
.fa-timeline::before { content: "\e29c"; }
.fa-wand-magic-sparkles::before { content: "\e2ca"; }
.fa-house-chimney::before { content: "\e3af"; }
.fa-chart-simple::before { content: "\e473"; }
.fa-arrows-turn-right::before { content: "\e4c0"; }
.fa-cubes-stacked::before { content: "\e4e6"; }
.fa-flask-vial::before { content: "\e4f3"; }
.fa-jar::before { content: "\e516"; }
.fa-mound::before { content: "\e52d"; }
.fa-child-reaching::before { content: "\e59d"; }
.fa-music::before { content: "\f001"; }
.fa-magnifying-glass::before { content: "\f002"; }
.fa-heart::before { content: "\f004"; }
.fa-star::before { content: "\f005"; }
.fa-user::before { content: "\f007"; }
.fa-film::before { content: "\f008"; }
.fa-table-cells::before { content: "\f00a"; }
.fa-table-list::before { content: "\f00b"; }
.fa-check::before { content: "\f00c"; }
.fa-xmark::before { content: "\f00d"; }
.fa-magnifying-glass-plus::before { content: "\f00e"; }
.fa-house::before { content: "\f015"; }
.fa-clock::before { content: "\f017"; }
.fa-download::before { content: "\f019"; }
.fa-inbox::before { content: "\f01c"; }
.fa-arrows-rotate::before { content: "\f021"; }
.fa-rectangle-list::before { content: "\f022"; }
.fa-lock::before { content: "\f023"; }
.fa-flag::before { content: "\f024"; }
.fa-volume-high::before { content: "\f028"; }
.fa-qrcode::before { content: "\f029"; }
.fa-tags::before { content: "\f02c"; }
.fa-book::before { content: "\f02d"; }
.fa-bookmark::before { content: "\f02e"; }
.fa-print::before { content: "\f02f"; }
.fa-camera::before { content: "\f030"; }
.fa-font::before { content: "\f031"; }
.fa-align-left::before { content: "\f036"; }
.fa-video::before { content: "\f03d"; }
.fa-image::before { content: "\f03e"; }
.fa-circle-half-stroke::before { content: "\f042"; }
.fa-droplet::before { content: "\f043"; }
.fa-pen-to-square::before { content: "\f044"; }
.fa-play::before { content: "\f04b"; }
.fa-pause::before { content: "\f04c"; }
.fa-stop::before { content: "\f04d"; }
.fa-forward-step::before { content: "\f051"; }
.fa-chevron-left::before { content: "\f053"; }
.fa-chevron-right::before { content: "\f054"; }
.fa-circle-plus::before { content: "\f055"; }
.fa-circle-minus::before { content: "\f056"; }
.fa-circle-xmark::before { content: "\f057"; }
.fa-circle-check::before { content: "\f058"; }
.fa-circle-question::before { content: "\f059"; }
.fa-circle-info::before { content: "\f05a"; }
.fa-ban::before { content: "\f05e"; }
.fa-arrow-left::before { content: "\f060"; }
.fa-arrow-right::before { content: "\f061"; }
.fa-arrow-up::before { content: "\f062"; }
.fa-arrow-down::before { content: "\f063"; }
.fa-expand::before { content: "\f065"; }
.fa-compress::before { content: "\f066"; }
.fa-minus::before { content: "\f068"; }
.fa-circle-exclamation::before { content: "\f06a"; }
.fa-gift::before { content: "\f06b"; }
.fa-leaf::before { content: "\f06c"; }
.fa-fire::before { content: "\f06d"; }
.fa-eye::before { content: "\f06e"; }
.fa-eye-slash::before { content: "\f070"; }
.fa-triangle-exclamation::before { content: "\f071"; }
.fa-calendar-days::before { content: "\f073"; }
.fa-shuffle::before { content: "\f074"; }
.fa-comment::before { content: "\f075"; }
.fa-magnet::before { content: "\f076"; }
.fa-chevron-down::before { content: "\f078"; }
.fa-cart-shopping::before { content: "\f07a"; }
.fa-folder-open::before { content: "\f07c"; }
.fa-arrows-up-down::before { content: "\f07d"; }
.fa-arrows-left-right::before { content: "\f07e"; }
.fa-key::before { content: "\f084"; }
.fa-comments::before { content: "\f086"; }
.fa-arrow-up-right-from-square::before { content: "\f08e"; }
.fa-arrow-right-to-bracket::before { content: "\f090"; }
.fa-trophy::before { content: "\f091"; }
.fa-upload::before { content: "\f093"; }
.fa-phone::before { content: "\f095"; }
.fa-certificate::before { content: "\f0a3"; }
.fa-globe::before { content: "\f0ac"; }
.fa-list-check::before { content: "\f0ae"; }
.fa-filter::before { content: "\f0b0"; }
.fa-users::before { content: "\f0c0"; }
.fa-link::before { content: "\f0c1"; }
.fa-flask::before { content: "\f0c3"; }
.fa-scissors::before { content: "\f0c4"; }
.fa-copy::before { content: "\f0c5"; }
.fa-floppy-disk::before { content: "\f0c7"; }
.fa-square::before { content: "\f0c8"; }
.fa-list-ul::before { content: "\f0ca"; }
.fa-list-ol::before { content: "\f0cb"; }
.fa-table::before { content: "\f0ce"; }
.fa-caret-left::before { content: "\f0d9"; }
.fa-table-columns::before { content: "\f0db"; }
.fa-arrow-rotate-left::before { content: "\f0e2"; }
.fa-gavel::before { content: "\f0e3"; }
.fa-bolt::before { content: "\f0e7"; }
.fa-lightbulb::before { content: "\f0eb"; }
.fa-cloud-arrow-up::before { content: "\f0ee"; }
.fa-laptop::before { content: "\f109"; }
.fa-quote-left::before { content: "\f10d"; }
.fa-spinner::before { content: "\f110"; }
.fa-circle::before { content: "\f111"; }
.fa-face-smile::before { content: "\f118"; }
.fa-gamepad::before { content: "\f11b"; }
.fa-keyboard::before { content: "\f11c"; }
.fa-flag-checkered::before { content: "\f11e"; }
.fa-eraser::before { content: "\f12d"; }
.fa-puzzle-piece::before { content: "\f12e"; }
.fa-microphone::before { content: "\f130"; }
.fa-calendar::before { content: "\f133"; }
.fa-rocket::before { content: "\f135"; }
.fa-bullseye::before { content: "\f140"; }
.fa-circle-play::before { content: "\f144"; }
.fa-square-check::before { content: "\f14a"; }
.fa-file::before { content: "\f15b"; }
.fa-file-lines::before { content: "\f15c"; }
.fa-youtube::before { content: "\f167"; }
.fa-instagram::before { content: "\f16d"; }
.fa-arrow-right-long::before { content: "\f178"; }
.fa-person-dress::before { content: "\f182"; }
.fa-person::before { content: "\f183"; }
.fa-sun::before { content: "\f185"; }
.fa-moon::before { content: "\f186"; }
.fa-box-archive::before { content: "\f187"; }
.fa-circle-dot::before { content: "\f192"; }
.fa-building-columns::before { content: "\f19c"; }
.fa-graduation-cap::before { content: "\f19d"; }
.fa-language::before { content: "\f1ab"; }
.fa-cube::before { content: "\f1b2"; }
.fa-file-pdf::before { content: "\f1c1"; }
.fa-file-word::before { content: "\f1c2"; }
.fa-file-powerpoint::before { content: "\f1c4"; }
.fa-circle-notch::before { content: "\f1ce"; }
.fa-paper-plane::before { content: "\f1d8"; }
.fa-clock-rotate-left::before { content: "\f1da"; }
.fa-heading::before { content: "\f1dc"; }
.fa-sliders::before { content: "\f1de"; }
.fa-plug::before { content: "\f1e6"; }
.fa-newspaper::before { content: "\f1ea"; }
.fa-wifi::before { content: "\f1eb"; }
.fa-calculator::before { content: "\f1ec"; }
.fa-trash::before { content: "\f1f8"; }
.fa-eye-dropper::before { content: "\f1fb"; }
.fa-chart-pie::before { content: "\f200"; }
.fa-whatsapp::before { content: "\f232"; }
.fa-user-plus::before { content: "\f234"; }
.fa-note-sticky::before { content: "\f249"; }
.fa-scale-balanced::before { content: "\f24e"; }
.fa-hourglass-half::before { content: "\f252"; }
.fa-hand::before { content: "\f256"; }
.fa-calendar-check::before { content: "\f274"; }
.fa-map::before { content: "\f279"; }
.fa-message::before { content: "\f27a"; }
.fa-braille::before { content: "\f2a1"; }
.fa-circle-user::before { content: "\f2bd"; }
.fa-telegram::before { content: "\f2c6"; }
.fa-temperature-half::before { content: "\f2c9"; }
.fa-shower::before { content: "\f2cc"; }
.fa-microchip::before { content: "\f2db"; }
.fa-snowflake::before { content: "\f2dc"; }
.fa-spoon::before { content: "\f2e5"; }
.fa-rotate-left::before { content: "\f2ea"; }
.fa-trash-can::before { content: "\f2ed"; }
.fa-stopwatch::before { content: "\f2f2"; }
.fa-rotate-right::before { content: "\f2f9"; }
.fa-images::before { content: "\f302"; }
.fa-pen::before { content: "\f304"; }
.fa-right-long::before { content: "\f30b"; }
.fa-file-pen::before { content: "\f31c"; }
.fa-left-right::before { content: "\f337"; }
.fa-up-right-from-square::before { content: "\f35d"; }
.fa-right-left::before { content: "\f362"; }
.fa-gem::before { content: "\f3a5"; }
.fa-location-dot::before { content: "\f3c5"; }
.fa-mobile-screen::before { content: "\f3cf"; }
.fa-shield-halved::before { content: "\f3ed"; }
.fa-chess-knight::before { content: "\f441"; }
.fa-box::before { content: "\f466"; }
.fa-clipboard-check::before { content: "\f46c"; }
.fa-clipboard-list::before { content: "\f46d"; }
.fa-dna::before { content: "\f471"; }
.fa-vial::before { content: "\f492"; }
.fa-box-open::before { content: "\f49e"; }
.fa-comment-dots::before { content: "\f4ad"; }
.fa-seedling::before { content: "\f4d8"; }
.fa-video-slash::before { content: "\f4e2"; }
.fa-user-check::before { content: "\f4fc"; }
.fa-user-group::before { content: "\f500"; }
.fa-user-graduate::before { content: "\f501"; }
.fa-user-lock::before { content: "\f502"; }
.fa-user-tie::before { content: "\f508"; }
.fa-users-gear::before { content: "\f509"; }
.fa-book-open::before { content: "\f518"; }
.fa-coins::before { content: "\f51e"; }
.fa-crown::before { content: "\f521"; }
.fa-dice::before { content: "\f522"; }
.fa-dice-five::before { content: "\f523"; }
.fa-divide::before { content: "\f529"; }
.fa-door-open::before { content: "\f52b"; }
.fa-feather::before { content: "\f52d"; }
.fa-palette::before { content: "\f53f"; }
.fa-diagram-project::before { content: "\f542"; }
.fa-robot::before { content: "\f544"; }
.fa-ruler-vertical::before { content: "\f548"; }
.fa-school::before { content: "\f549"; }
.fa-toolbox::before { content: "\f552"; }
.fa-check-double::before { content: "\f560"; }
.fa-crop-simple::before { content: "\f565"; }
.fa-feather-pointed::before { content: "\f56b"; }
.fa-file-import::before { content: "\f56f"; }
.fa-file-signature::before { content: "\f573"; }
.fa-fill-drip::before { content: "\f576"; }
.fa-earth-asia::before { content: "\f57e"; }
.fa-grip-vertical::before { content: "\f58e"; }
.fa-mortar-pestle::before { content: "\f5a7"; }
.fa-pen-ruler::before { content: "\f5ae"; }
.fa-spray-can::before { content: "\f5bd"; }
.fa-atom::before { content: "\f5d2"; }
.fa-layer-group::before { content: "\f5fd"; }
.fa-microscope::before { content: "\f610"; }
.fa-shapes::before { content: "\f61f"; }
.fa-gauge-high::before { content: "\f625"; }
.fa-masks-theater::before { content: "\f630"; }
.fa-dharmachakra::before { content: "\f655"; }
.fa-landmark::before { content: "\f66f"; }
.fa-square-root-variable::before { content: "\f698"; }
.fa-volume-xmark::before { content: "\f6a9"; }
.fa-hand-fist::before { content: "\f6de"; }
.fa-horse::before { content: "\f6f0"; }
.fa-person-running::before { content: "\f70c"; }
.fa-scroll::before { content: "\f70e"; }
.fa-wind::before { content: "\f72e"; }
.fa-screwdriver-wrench::before { content: "\f7d9"; }
.fa-fire-flame-curved::before { content: "\f7e4"; }

/* ---------- Модификаторы ---------- */
.fa-fw { text-align: center; width: 1.25em; }
.fa-spin { animation: fa-spin 2s linear infinite; }
.fa-pulse, .fa-spin-pulse { animation: fa-spin 1s steps(8) infinite; }
@keyframes fa-spin { from { transform: rotate(0deg); } to { transform: rotate(360deg); } }
/* ⚠️ Точечно: общий запрет анимаций сломал бы логику, ждущую animationend */
@media (prefers-reduced-motion: reduce) {
    .fa-spin, .fa-pulse, .fa-spin-pulse { animation-duration: 6s; }
}
