/*!
 * Font Awesome 子集 —— 自托管，替代 bootcdn 上的 FA 6.4.0 完整包和本地 FA 4.7.0 完整字体。
 *
 * 字体 252,232 -> 10,788 字节（4.3%%）：
 *   FA6 solid   26 个图标  150,124 ->  2,836
 *   FA6 regular  3 个图标   24,948 ->    852
 *   FA4         74 个图标   77,160 ->  7,100
 *
 * 生成方式：扫描 templates/ 与 static/js/ 里所有 class="fa|fas|far ... fa-xxx"，
 * 从两套官方 CSS 各自取码点，用 fonttools 的 Subsetter 裁到只剩用到的字形。
 * 注意要用官方的 .ttf 作源——FA6 regular 的 woff2 在 fontTools 下解 glyf 表会报
 * "not enough 'glyf' table data"（浏览器能读，工具不能）。
 *
 * 页面上两套写法同时存在且都在用，实测无一 tofu：
 *   class="fa fa-xxx"        -> FA 4.7.0 的 FontAwesome 字体（244 处）
 *   class="fas|far fa-xxx"   -> FA 6.4.0 的 Font Awesome 6 Free（103 处）
 *
 * content 规则刻意写成 .fa.fa-xxx / .fas.fa-xxx 这种带上下文的形式：
 * 同一个图标名在 FA4 与 FA6 里码点未必相同，不限定上下文会串味。
 *
 * 新增图标后必须重新生成；FontAwesomeSubsetContractTest 会在漏掉时失败。
 */
@font-face{font-family:"FontAwesome";font-style:normal;font-weight:400;font-display:block;src:url(/fonts/fontawesome/fa4.woff2) format("woff2")}
@font-face{font-family:"Font Awesome 6 Free";font-style:normal;font-weight:900;font-display:block;src:url(/fonts/fontawesome/fa6-solid.woff2) format("woff2")}
@font-face{font-family:"Font Awesome 6 Free";font-style:normal;font-weight:400;font-display:block;src:url(/fonts/fontawesome/fa6-regular.woff2) format("woff2")}
.fa,.fas,.far,.fa-solid,.fa-regular{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;display:inline-block;font-style:normal;font-variant:normal;text-rendering:auto;line-height:1}
.fa{font-family:"FontAwesome";font-weight:400}
.fas,.fa-solid{font-family:"Font Awesome 6 Free";font-weight:900}
.far,.fa-regular{font-family:"Font Awesome 6 Free";font-weight:400}
.fa-fw{text-align:center;width:1.28571429em}
.fa-lg{font-size:1.33333333em;line-height:.75em;vertical-align:-15%%}
.fa-2x{font-size:2em}.fa-3x{font-size:3em}
.fa-spin{-webkit-animation:fa-spin 2s linear infinite;animation:fa-spin 2s linear infinite}
.fa-pulse{-webkit-animation:fa-spin 1s steps(8) infinite;animation:fa-spin 1s steps(8) infinite}
@-webkit-keyframes fa-spin{0%%{-webkit-transform:rotate(0)}100%%{-webkit-transform:rotate(359deg)}}
@keyframes fa-spin{0%%{transform:rotate(0)}100%%{transform:rotate(359deg)}}
.fa.fa-angle-down:before{content:"\f107"}.fa.fa-angle-left:before{content:"\f104"}.fa.fa-angle-right:before{content:"\f105"}.fa.fa-angle-up:before{content:"\f106"}.fa.fa-arrow-left:before{content:"\f060"}.fa.fa-arrow-right:before{content:"\f061"}.fa.fa-arrow-up:before{content:"\f062"}.fa.fa-ban:before{content:"\f05e"}.fa.fa-bars:before{content:"\f0c9"}.fa.fa-bolt:before{content:"\f0e7"}.fa.fa-book:before{content:"\f02d"}.fa.fa-calendar:before{content:"\f073"}.fa.fa-calendar-o:before{content:"\f133"}.fa.fa-check:before{content:"\f00c"}.fa.fa-check-circle:before{content:"\f058"}.fa.fa-chevron-left:before{content:"\f053"}.fa.fa-chevron-right:before{content:"\f054"}.fa.fa-chevron-up:before{content:"\f077"}.fa.fa-circle-o:before{content:"\f10c"}.fa.fa-clock-o:before{content:"\f017"}.fa.fa-code:before{content:"\f121"}.fa.fa-cog:before{content:"\f013"}.fa.fa-comment-o:before{content:"\f0e5"}.fa.fa-commenting:before{content:"\f27a"}.fa.fa-comments:before{content:"\f086"}.fa.fa-dashboard:before{content:"\f0e4"}.fa.fa-diamond:before{content:"\f219"}.fa.fa-edit:before{content:"\f044"}.fa.fa-envelope:before{content:"\f0e0"}.fa.fa-exclamation-circle:before{content:"\f06a"}.fa.fa-external-link:before{content:"\f08e"}.fa.fa-eye:before{content:"\f06e"}.fa.fa-file-image-o:before{content:"\f1c5"}.fa.fa-file-text-o:before{content:"\f0f6"}.fa.fa-fire:before{content:"\f06d"}.fa.fa-folder-open-o:before{content:"\f115"}.fa.fa-handshake-o:before{content:"\f2b5"}.fa.fa-heart:before{content:"\f004"}.fa.fa-heart-o:before{content:"\f08a"}.fa.fa-home:before{content:"\f015"}.fa.fa-id-card-o:before{content:"\f2c3"}.fa.fa-link:before{content:"\f0c1"}.fa.fa-linkedin:before{content:"\f0e1"}.fa.fa-list-ul:before{content:"\f0ca"}.fa.fa-minus:before{content:"\f068"}.fa.fa-moon-o:before{content:"\f186"}.fa.fa-paint-brush:before{content:"\f1fc"}.fa.fa-pencil:before{content:"\f040"}.fa.fa-play:before{content:"\f04b"}.fa.fa-plus:before{content:"\f067"}.fa.fa-qq:before{content:"\f1d6"}.fa.fa-qrcode:before{content:"\f029"}.fa.fa-question-circle:before{content:"\f059"}.fa.fa-refresh:before{content:"\f021"}.fa.fa-repeat:before{content:"\f01e"}.fa.fa-road:before{content:"\f018"}.fa.fa-save:before{content:"\f0c7"}.fa.fa-search:before{content:"\f002"}.fa.fa-search-minus:before{content:"\f010"}.fa.fa-search-plus:before{content:"\f00e"}.fa.fa-share-alt:before{content:"\f1e0"}.fa.fa-sign-out:before{content:"\f08b"}.fa.fa-sort-numeric-asc:before{content:"\f162"}.fa.fa-spinner:before{content:"\f110"}.fa.fa-star:before{content:"\f005"}.fa.fa-star-o:before{content:"\f006"}.fa.fa-tags:before{content:"\f02c"}.fa.fa-times:before{content:"\f00d"}.fa.fa-times-circle:before{content:"\f057"}.fa.fa-trash:before{content:"\f1f8"}.fa.fa-upload:before{content:"\f093"}.fa.fa-user:before{content:"\f007"}.fa.fa-user-circle:before{content:"\f2bd"}.fa.fa-user-o:before{content:"\f2c0"}
.fas.fa-bolt:before{content:"\f0e7"}.fas.fa-check:before{content:"\f00c"}.fas.fa-chevron-down:before{content:"\f078"}.fas.fa-chevron-up:before{content:"\f077"}.fas.fa-circle-notch:before{content:"\f1ce"}.fas.fa-cloud:before{content:"\f0c2"}.fas.fa-cloud-rain:before{content:"\f73d"}.fas.fa-cloud-showers-heavy:before{content:"\f740"}.fas.fa-cloud-sun:before{content:"\f6c4"}.fas.fa-download:before{content:"\f019"}.fas.fa-heart:before{content:"\f004"}.fas.fa-lightbulb:before{content:"\f0eb"}.fas.fa-link:before{content:"\f0c1"}.fas.fa-paper-plane:before{content:"\f1d8"}.fas.fa-pause:before{content:"\f04c"}.fas.fa-play:before{content:"\f04b"}.fas.fa-qrcode:before{content:"\f029"}.fas.fa-reply:before{content:"\f3e5"}.fas.fa-rotate-right:before{content:"\f2f9"}.fas.fa-search:before{content:"\f002"}.fas.fa-smog:before{content:"\f75f"}.fas.fa-snowflake:before{content:"\f2dc"}.fas.fa-sun:before{content:"\f185"}.fas.fa-thumbtack:before{content:"\f08d"}.fas.fa-times:before{content:"\f00d"}.fas.fa-trash-alt:before{content:"\f2ed"}.fa-solid.fa-bolt:before{content:"\f0e7"}.fa-solid.fa-check:before{content:"\f00c"}.fa-solid.fa-chevron-down:before{content:"\f078"}.fa-solid.fa-chevron-up:before{content:"\f077"}.fa-solid.fa-circle-notch:before{content:"\f1ce"}.fa-solid.fa-cloud:before{content:"\f0c2"}.fa-solid.fa-cloud-rain:before{content:"\f73d"}.fa-solid.fa-cloud-showers-heavy:before{content:"\f740"}.fa-solid.fa-cloud-sun:before{content:"\f6c4"}.fa-solid.fa-download:before{content:"\f019"}.fa-solid.fa-heart:before{content:"\f004"}.fa-solid.fa-lightbulb:before{content:"\f0eb"}.fa-solid.fa-link:before{content:"\f0c1"}.fa-solid.fa-paper-plane:before{content:"\f1d8"}.fa-solid.fa-pause:before{content:"\f04c"}.fa-solid.fa-play:before{content:"\f04b"}.fa-solid.fa-qrcode:before{content:"\f029"}.fa-solid.fa-reply:before{content:"\f3e5"}.fa-solid.fa-rotate-right:before{content:"\f2f9"}.fa-solid.fa-search:before{content:"\f002"}.fa-solid.fa-smog:before{content:"\f75f"}.fa-solid.fa-snowflake:before{content:"\f2dc"}.fa-solid.fa-sun:before{content:"\f185"}.fa-solid.fa-thumbtack:before{content:"\f08d"}.fa-solid.fa-times:before{content:"\f00d"}.fa-solid.fa-trash-alt:before{content:"\f2ed"}
.far.fa-clone:before{content:"\f24d"}.far.fa-images:before{content:"\f302"}.far.fa-smile:before{content:"\f118"}.fa-regular.fa-clone:before{content:"\f24d"}.fa-regular.fa-images:before{content:"\f302"}.fa-regular.fa-smile:before{content:"\f118"}
