Squashed commit of the following:

commit 54078a69f8
Author: Ad-closeNN <1709301095@qq.com>
Date:   Thu Aug 7 23:33:17 2025 +0800

    2025/8/7

commit f65632b1e8
Author: Ad-closeNN <1709301095@qq.com>
Date:   Thu Aug 7 18:45:38 2025 +0800

    Finish

commit 7986271c89
Author: Ad-closeNN <1709301095@qq.com>
Date:   Thu Aug 7 17:41:57 2025 +0800

    Delete umami.md

commit fc0208cf4f
Author: Ad-closeNN <1709301095@qq.com>
Date:   Thu Aug 7 17:38:53 2025 +0800

    测试第一篇文章

commit 690d1290e4
Author: Ad-closeNN <1709301095@qq.com>
Date:   Thu Aug 7 11:56:58 2025 +0800

    feat: 博客访问量测试

commit 135830db3c
Author: Ad-closeNN <1709301095@qq.com>
Date:   Thu Aug 7 00:30:57 2025 +0800

    25/8/6
This commit is contained in:
Ad-closeNN
2025-08-07 23:33:48 +08:00
parent b62aa887e7
commit 5fbc350af2
49 changed files with 1073 additions and 734 deletions
View File
+4 -1
View File
@@ -18,5 +18,8 @@
"quickfix.biome": "always", "quickfix.biome": "always",
"source.organizeImports.biome": "always" "source.organizeImports.biome": "always"
}, },
"frontMatter.dashboard.openOnStart": false "frontMatter.dashboard.openOnStart": false,
"[css]": {
"editor.defaultFormatter": "vscode.css-language-features"
}
} }
+1 -1
View File
@@ -26,7 +26,7 @@ import { pluginCustomCopyButton } from "./src/plugins/expressive-code/custom-cop
// https://astro.build/config // https://astro.build/config
export default defineConfig({ export default defineConfig({
site: "https://fuwari.vercel.app/", site: "https://adclosenn.top",
base: "/", base: "/",
trailingSlash: "always", trailingSlash: "always",
integrations: [ integrations: [
-85
View File
@@ -1,85 +0,0 @@
# 🍥Fuwari
Un tema estático para blogs construido con [Astro](https://astro.build).
[**🖥️ Demostración en Vivo (Vercel)**](https://fuwari.vercel.app)
![Imagen de Vista Previa](https://raw.githubusercontent.com/saicaca/resource/main/fuwari/home.png)
## ✨ Características
- [x] Construido con [Astro](https://astro.build) y [Tailwind CSS](https://tailwindcss.com)
- [x] Animaciones suaves y transiciones de página
- [x] Modo claro / oscuro
- [x] Colores del tema y banner personalizables
- [x] Diseño responsivo
- [ ] Comentarios
- [x] Buscador
- [x] TOC (Tabla de Contenidos)
## 👀 requiere
- Node.js <= 22
- pnpm <= 9
## 🚀 Cómo Usar 1
Inicializa el proyecto localmente usando [create-fuwari](https://github.com/L4Ph/create-fuwari).
```sh
# npm
npm create fuwari@latest.
# yarn
yarn create fuwari.
# pnpm
pnpm create fuwari@latest
# bun
bun create fuwari@latest
# deno
deno run -A npm:create-fuwari@latest
```
1. Edita el archivo de configuración `src/config.ts` para personalizar tu blog.
2. Ejecuta `pnpm new-post <nombre-de-archivo>` para crear una nueva entrada y edítala en `src/content/posts/`.
3. Despliega tu blog en Vercel, Netlify, GitHub Pages, etc., siguiendo [las guías](https://docs.astro.build/en/guides/deploy/). Necesitas editar la configuración del sitio en `astro.config.mjs` antes del despliegue.
## 🚀 Cómo Usar 2
1. [Genera un nuevo repositorio](https://github.com/saicaca/fuwari/generate) desde esta plantilla o haz un fork de este repositorio.
2. Para editar tu blog localmente, clona tu repositorio, ejecuta `pnpm install` y `pnpm add sharp` para instalar las dependencias.
- Instala [pnpm](https://pnpm.io) `npm install -g pnpm` si aún no lo tienes.
3. Edita el archivo de configuración `src/config.ts` para personalizar tu blog.
4. Ejecuta `pnpm new-post <nombre-de-archivo>` para crear una nueva entrada y edítala en `src/content/posts/`.
5. Despliega tu blog en Vercel, Netlify, GitHub Pages, etc., siguiendo [las guías](https://docs.astro.build/en/guides/deploy/). Necesitas editar la configuración del sitio en `astro.config.mjs` antes del despliegue.
## ⚙️ Cabecera de las Entradas
```yaml
---
title: Mi Primer Post en el Blog
published: 2023-09-09
description: Esta es la primera entrada de mi nuevo blog con Astro.
image: /images/cover.jpg
tags: [Foo, Bar]
category: Front-end
draft: false
---
```
## 🧞 Comandos
Todos los comandos se ejecutan desde la raíz del proyecto, desde una terminal:
| Comando | Acción |
|:------------------------------------|:--------------------------------------------------|
| `pnpm install` y `pnpm add sharp` | Instala las dependencias |
| `pnpm dev` | Inicia el servidor de desarrollo local en `localhost:4321` |
| `pnpm build` | Compila tu web para producción en `./dist/` |
| `pnpm preview` | Previsualiza la web localmente, antes del despliegue |
| `pnpm new-post <nombre-de-archivo>` | Crea una nueva entrada |
| `pnpm astro ...` | Ejecuta comandos CLI como `astro add`, `astro check` |
| `pnpm astro --help` | Obtén ayuda para usar el CLI de Astro |
-106
View File
@@ -1,106 +0,0 @@
# 🍥 Fuwari
Template blog statis yang dibangun dengan [Astro](https://astro.build).
[**🖥️ Demo Langsung (Vercel)**](https://fuwari.vercel.app)
![Gambar Pratinjau](https://raw.githubusercontent.com/saicaca/resource/main/fuwari/home.png)
🌏 README dalam
[**中文**](https://github.com/saicaca/fuwari/blob/main/docs/README.zh-CN.md) /
[**日本語**](https://github.com/saicaca/fuwari/blob/main/docs/README.ja.md) /
[**한국어**](https://github.com/saicaca/fuwari/blob/main/docs/README.ko.md) /
[**Español**](https://github.com/saicaca/fuwari/blob/main/docs/README.es.md) /
[**ไทย**](https://github.com/saicaca/fuwari/blob/main/docs/README.th.md) /
[**Tiếng Việt**](https://github.com/saicaca/fuwari/blob/main/docs/README.vi.md) /
**Bahasa Indonesia (ini)** (Disediakan oleh komunitas, mungkin tidak selalu paling mutakhir)
## ✨ Fitur
- [x] Dibangun dengan [Astro](https://astro.build) dan [Tailwind CSS](https://tailwindcss.com)
- [x] Animasi dan transisi halaman yang halus
- [x] Mode terang / gelap
- [x] Warna tema & banner yang bisa dikustomisasi
- [x] Desain responsif
- [x] Fitur pencarian dengan [Pagefind](https://pagefind.app/)
- [x] [Fitur markdown tambahan](#-markdown-sintaks-ekstensi)
- [x] Daftar isi (Table of Contents)
- [x] RSS feed
## 🚀 Memulai
1. Buat repositori blog kamu:
- [Generate repositori baru](https://github.com/saicaca/fuwari/generate) dari template ini atau fork repositori ini.
- Atau jalankan salah satu perintah berikut:
```sh
# npm
npm create fuwari@latest.
# yarn
yarn create fuwari.
# pnpm
pnpm create fuwari@latest
# bun
bun create fuwari@latest
# deno
deno run -A npm:create-fuwari@latest
```
2. Untuk mengedit blog secara lokal, klon repositori kamu, jalankan `pnpm install` untuk instalasi dependensi.
- Install [pnpm](https://pnpm.io) `npm install -g pnpm` jika belum punya.
3. Edit file konfigurasi `src/config.ts` untuk menyesuaikan blog.
4. Jalankan `pnpm new-post <nama-file>` untuk membuat postingan baru dan edit di `src/content/posts/`.
5. Deploy blog ke Vercel, Netlify, GitHub Pages, dll. sesuai [panduan](https://docs.astro.build/en/guides/deploy/). Jangan lupa edit konfigurasi situs di `astro.config.mjs` sebelum deploy.
## 📝 Frontmatter Postingan
```yaml
---
title: Judul Postingan Pertama Saya
published: 2023-09-09
description: Ini adalah postingan pertama blog Astro saya.
image: ./cover.jpg
tags: [Foo, Bar]
category: Front-end
draft: false
lang: id # Isi hanya jika bahasa postingan berbeda dari bahasa default di `config.ts`
---
```
## 🧩 Markdown Sintaks Ekstensi
Selain dukungan default Astro untuk [GitHub Flavored Markdown](https://github.github.com/gfm/), terdapat beberapa fitur tambahan:
- Admonisi ([Pratinjau & Cara Pakai](https://fuwari.vercel.app/posts/markdown-extended/#admonitions))
- Kartu repositori GitHub ([Pratinjau & Cara Pakai](https://fuwari.vercel.app/posts/markdown-extended/#github-repository-cards))
- Kode blok ekspresif lewat Expressive Code ([Pratinjau](https://fuwari.vercel.app/posts/expressive-code/) / [Dokumentasi](https://expressive-code.com/))
## ⚡ Perintah
Semua perintah dijalankan dari root proyek, via terminal:
| Perintah | Aksi |
|:-----------------------------|:----------------------------------------------------------|
| `pnpm install` | Instalasi dependensi |
| `pnpm dev` | Menjalankan server dev lokal di `localhost:4321` |
| `pnpm build` | Build untuk produksi ke folder `./dist/` |
| `pnpm preview` | Pratinjau hasil build sebelum deploy |
| `pnpm check` | Cek error atau masalah di kode |
| `pnpm format` | Format kode dengan Biome |
| `pnpm new-post <nama-file>` | Membuat postingan baru |
| `pnpm astro ...` | Jalankan perintah CLI seperti `astro add`, `astro check` |
| `pnpm astro --help` | Bantuan menggunakan Astro CLI |
## ✏️ Kontribusi
Lihat [Panduan Kontribusi](https://github.com/saicaca/fuwari/blob/main/CONTRIBUTING.md) untuk detail tentang cara berkontribusi ke proyek ini.
## 📄 Lisensi
Proyek ini dilisensikan di bawah MIT License.
---
> Dokumentasi ini tersedia dalam Bahasa Indonesia. Untuk bahasa lain, lihat README di direktori docs.
-85
View File
@@ -1,85 +0,0 @@
# 🍥Fuwari
[Astro](https://astro.build) で構築された静的ブログテンプレート
[**🖥️ライブデモ (Vercel)**](https://fuwari.vercel.app)
![Preview Image](https://raw.githubusercontent.com/saicaca/resource/main/fuwari/home.png)
## ✨ 特徴
- [x] [Astro](https://astro.build) 及び [Tailwind CSS](https://tailwindcss.com) で構築
- [x] スムーズなアニメーションとページ遷移
- [x] ライト/ダークテーマ対応
- [x] カスタマイズ可能なテーマカラーとバナー
- [x] レスポンシブデザイン
- [ ] コメント機能
- [x] 検索機能
- [x] 目次
## 👀 以下が必要
- Node.js <= 22
- pnpm <= 9
## 🚀 使用方法 1
[create-fuwari](https://github.com/L4Ph/create-fuwari)を使用して、ローカルにプロジェクトを初期化します。
```sh
# npm
npm create fuwari@latest
# yarn
yarn create fuwari
# pnpm
pnpm create fuwari@latest
# bun
bun create fuwari@latest
# deno
deno run -A npm:create-fuwari@latest
```
1. `src/config.ts` ファイルを編集する事でブログを自分好みにカスタマイズ出来ます。
2. `pnpm new-post <filename>` で新しい記事を作成し、`src/content/posts/`.フォルダ内で編集します。
3. 作成したブログをVercel、Netlify、GitHub Pagesなどにデプロイするには[ガイド](https://docs.astro.build/ja/guides/deploy/)に従って下さい。加えて、別途デプロイを行う前に `astro.config.mjs` を編集してサイト構成を変更する必要があります。
## 🚀 使用方法 2
1. [テンプレート](https://github.com/saicaca/fuwari/generate)から新しいリポジトリを作成するかCloneをします。
2. ブログをローカルで編集するには、リポジトリをクローンした後、`pnpm install``pnpm add sharp` を実行して依存関係をインストールします。
- [pnpm](https://pnpm.io) がインストールされていない場合は `npm install -g pnpm` で導入可能です。
3. `src/config.ts` ファイルを編集する事でブログを自分好みにカスタマイズ出来ます。
4. `pnpm new-post <filename>` で新しい記事を作成し、`src/content/posts/`.フォルダ内で編集します。
5. 作成したブログをVercel、Netlify、GitHub Pagesなどにデプロイするには[ガイド](https://docs.astro.build/ja/guides/deploy/)に従って下さい。加えて、別途デプロイを行う前に `astro.config.mjs` を編集してサイト構成を変更する必要があります。
## ⚙️ 記事のフロントマター
```yaml
---
title: My First Blog Post
published: 2023-09-09
description: This is the first post of my new Astro blog.
image: /images/cover.jpg
tags: [Foo, Bar]
category: Front-end
draft: false
---
```
## 🧞 コマンド
すべてのコマンドは、ターミナルでプロジェクトのルートから実行する必要があります:
| Command | Action |
|:------------------------------------|:--------------------------------------------|
| `pnpm install` AND `pnpm add sharp` | 依存関係のインストール |
| `pnpm dev` | `localhost:4321` で開発用ローカルサーバーを起動 |
| `pnpm build` | `./dist/` にビルド内容を出力 |
| `pnpm preview` | デプロイ前の内容をローカルでプレビュー |
| `pnpm new-post <filename>` | 新しい投稿を作成 |
| `pnpm astro ...` | `astro add`, `astro check` の様なコマンドを実行する際に使用 |
| `pnpm astro --help` | Astro CLIのヘルプを表示 |
-82
View File
@@ -1,82 +0,0 @@
# 🍥Fuwari
[Astro](https://astro.build)로 구축된 정적 블로그 템플릿입니다.
[**🖥️미리보기 (Vercel)**](https://fuwari.vercel.app)
![Preview Image](https://raw.githubusercontent.com/saicaca/resource/main/fuwari/home.png)
## ✨ 특징
- [x] [Astro](https://astro.build) 및 [Tailwind CSS](https://tailwindcss.com)로 구축됨
- [x] 부드러운 애니메이션 및 페이지 전환
- [x] 라이트 모드 / 다크 모드
- [x] 사용자 정의 가능한 테마 색상 및 배너
- [x] 반응형 디자인
- [x] [Pagefind](https://pagefind.app/)를 이용한 검색 기능
- [x] [Markdown 확장 기능](https://github.com/saicaca/fuwari?tab=readme-ov-file#-markdown-extended-syntax)
- [x] 목차
- [x] RSS 피드
## 🚀 시작하기
1. 블로그 저장소를 생성하세요:
- 이 템플릿에서 [새 저장소를 생성](https://github.com/saicaca/fuwari/generate)하거나 이 저장소를 포크하세요.
- 또는 다음 명령어 중 하나를 실행하세요:
```sh
npm create fuwari@latest
yarn create fuwari
pnpm create fuwari@latest
bun create fuwari@latest
deno run -A npm:create-fuwari@latest
```
2. 로컬에서 블로그를 수정하려면, 저장소를 복제하고 `pnpm install`을 실행하여 종속성을 설치하세요.
- [pnpm](https://pnpm.io)이 설치되어 있지 않다면 `npm install -g pnpm`을 실행하여 설치하세요.
3. `src/config.ts`설정 파일을 수정하여 블로그를 커스터마이징하세요.
4. `pnpm new-post <filename>`을 실행하여 새 게시물을 만들고 `src/content/posts/`에서 수정하세요.
5. [가이드](https://docs.astro.build/en/guides/deploy/)에 따라 블로그를 Vercel, Netlify, Github Pages 등에 배포하세요. 배포하기 전에 `astro.config.mjs`에서 사이트 구성을 수정해야 합니다.
## ⚙️ 게시물의 머리말 설정
```yaml
---
title: 내 첫 블로그 게시물
published: 2023-09-09
description: 내 새로운 Astro 블로그의 첫 번째 게시물입니다!
image: ./cover.jpg
tags: [Foo, Bar]
category: Front-end
draft: false
lang: jp # 게시물의 언어가 `config.ts`의 사이트 언어와 다른 경우에만 설정합니다.
---
```
## 🧩 마크다운 확장 구문
Astro의 기본 [GitHub Flavored Markdown](https://github.github.com/gfm/) 지원 외에도 몇 가지 추가적인 마크다운 기능이 포함되어 있습니다.
- Admonitions ([미리보기 및 사용법](https://fuwari.vercel.app/posts/markdown-extended/#admonitions))
- GitHub 저장소 카드 ([미리보기 및 사용법](https://fuwari.vercel.app/posts/markdown-extended/#github-repository-cards))
- Expressive Code를 사용한 향상된 코드 블록 ([미리보기](https://fuwari.vercel.app/posts/expressive-code/) / [문서](https://expressive-code.com/))
## ⚡ 명령어
모든 명령어는 프로젝트 최상단, 터미널에서 실행됩니다:
| Command | Action |
|:------------------------------------|:-------------------------------------------------|
| `pnpm install` | 종속성을 설치합니다. |
| `pnpm dev` | `localhost:4321`에서 로컬 개발 서버를 시작합니다. |
| `pnpm build` | `./dist/`에 프로덕션 사이트를 구축합니다. |
| `pnpm check` | 코드에서 오류를 확인합니다. |
| `pnpm format` | Biome을 사용하여 코드를 포멧합니다. |
| `pnpm preview` | 배포하기 전에 로컬에서 빌드 미리보기 |
| `pnpm new-post <filename>` | 새 게시물 작성 |
| `pnpm astro ...` | `astro add`, `astro check`와 같은 CLI 명령어 실행 |
| `pnpm astro --help` | Astro CLI를 사용하여 도움 받기 |
## ✏️ 기여
이 프로젝트에 기여하는 방법에 대한 자세한 내용은 [기여 가이드](https://github.com/saicaca/fuwari/blob/main/CONTRIBUTING.md)를 확인하세요.
## 📄 라이선스
이 프로젝트는 MIT 라이선스에 따라 라이선스가 부여됩니다.
[![FOSSA Status](https://app.fossa.com/api/projects/git%2Bgithub.com%2Fsaicaca%2Ffuwari.svg?type=large&issueType=license)](https://app.fossa.com/projects/git%2Bgithub.com%2Fsaicaca%2Ffuwari?ref=badge_large&issueType=license)
-84
View File
@@ -1,84 +0,0 @@
# 🍥Fuwari
แม่แบบสำหรับเว็บบล็อกแบบ static สร้างด้วย [Astro](https://astro.build)
[**🖥️ ตัวอย่างการใช้งานจริง (Vercel)**](https://fuwari.vercel.app)
![ภาพตัวอย่าง](https://raw.githubusercontent.com/saicaca/resource/main/fuwari/home.png)
## ✨ คุณสมบัติ
- [x] สร้างด้วย [Astro](https://astro.build) และ [Tailwind CSS](https://tailwindcss.com)
- [x] มีอนิเมชั่นและการเปลี่ยนหน้าอย่างลื่นไหล
- [x] โหมดสว่าง / โหมดมืด
- [x] ปรับแต่งสีธีมและแบนเนอร์ได้
- [x] Responsive design (หน้าตาเว็บปรับเปลี่ยนตามขนาดจอ)
- [x] ฟังก์ชันการค้นหา ขับเคลื่อนด้วย [Pagefind](https://pagefind.app/)
- [x] [คุณสมบัติเพิ่มเติมสำหรับมาร์กดาวน์](https://github.com/saicaca/fuwari/blob/main/docs/README.th.md#-markdown-extended-syntax)
- [x] สารบัญ
- [x] RSS feed
## 🚀 เริ่มต้นใช้งาน
1. สร้าง repository ใหม่สำหรับบล็อกของคุณ:
- [Generate repository ใหม่](https://github.com/saicaca/fuwari/generate) ขึ้นมาจากแม่แบบนี้ หรือจะ fork repository นี้ก็ได้
- หรือจะสร้างโดยการเลือกรันคำสั่งต่อไปนี้ คำสั่งใดคำสั่งหนึ่ง:
```sh
npm create fuwari@latest
yarn create fuwari
pnpm create fuwari@latest
bun create fuwari@latest
deno run -A npm:create-fuwari@latest
```
2. เริ่มแก้ไขบล็อกของคุณแบบ local โดยการ clone repository ของคุณ (จากข้อ 1) ไว้ในเครื่องของคุณ แล้วรันคำสั่ง `pnpm install` เพื่อติดตั้ง dependencies ที่จำเป็น
- ติดตั้ง [pnpm](https://pnpm.io) ด้วยคำสั่ง `npm install -g pnpm` ก่อน ถ้ายังไม่เคยติดตั้ง
3. แก้ไขไฟล์การตั้งค่า `src/config.ts` เพื่อปรับแต่งบล็อกของคุณ
4. รันคำสั่ง `pnpm new-post <filename>` เพื่อสร้างโพสต์ใหม่ใน `src/content/posts/` และแก้ไขไฟล์โพสต์นั้นๆ ให้สมบูรณ์
5. Deploy เว็บบล็อกของคุณไปยัง Vercel, Netlify, GitHub Pages หรือบริการอื่นๆ โดยอ้างอิงวิธีการจาก[คู่มือนี้](https://docs.astro.build/en/guides/deploy/) อย่าลืมแก้ไขการตั้งค่าเว็บไซต์ในไฟล์ `astro.config.mjs` ก่อนที่คุณจะ deploy เว็บ
## 📝 Frontmatter (ส่วนหัวไฟล์) ของโพสต์
```yaml
---
title: โพสต์แรกของฉัน
published: 2023-09-09
description: นี่คือโพสต์แรกของเว็บบล็อก Astro อันใหม่ของฉัน
image: ./cover.jpg
tags: [Foo, Bar]
category: Front-end
draft: false
lang: jp # เขียนค่านี้เมื่อภาษาของโพสต์นั้นๆ แตกต่างจากภาษาของเว็บไซต์ที่ตั้งค่าไว้ใน `config.ts` เท่านั้น
---
```
## 🧩 Markdown Extended Syntax
เดิมที Astro มีการสนับสนุน[ภาษามาร์กดาวน์แบบของ GitHub](https://github.github.com/gfm/) ไว้อยู่แล้ว แต่ Fuwari ได้เพิ่มเติมคุณสมบัติพิเศษอื่นๆ เข้าไปอีก:
- Admonitions หรือ กล่องข้อมูลพิเศษ ([ดูตัวอย่างและการใช้งาน](https://fuwari.vercel.app/posts/markdown-extended/#admonitions))
- การ์ด GitHub Repository ([ดูตัวอย่างและการใช้งาน](https://fuwari.vercel.app/posts/markdown-extended/#github-repository-cards))
- บล็อกโค้ดขั้นสูง ด้วย Expressive Code ([ดูตัวอย่าง](https://fuwari.vercel.app/posts/expressive-code/) / [เอกสารประกอบ](https://expressive-code.com/))
## ⚡ คำสั่ง
คำสั่งที่รันได้ใน terminal จาก root ของโปรเจกต์:
| คำสั่ง | การทำงาน |
|:---------------------------|:-------------------------------------------------------|
| `pnpm install` | ติดตั้ง dependencies |
| `pnpm dev` | เปิดเซิร์ฟเวอร์สำหรับการพัฒนาแบบ local ที่ `localhost:4321` |
| `pnpm build` | Build เว็บไซต์สำหรับใช้งานจริงไปยังโฟลเดอร์ `./dist/` |
| `pnpm preview` | ดูตัวอย่าง build ของคุณแบบ local ก่อนที่จะ deploy จริง |
| `pnpm check` | ดำเนินการตรวจสอบหาข้อผิดพลาดในโค้ดของคุณ |
| `pnpm format` | จัดรูปแบบโค้ดของคุณด้วย Biome |
| `pnpm new-post <filename>` | สร้างโพสต์ใหม่ |
| `pnpm astro ...` | รันคำสั่ง CLI เช่น `astro add`, `astro check` |
| `pnpm astro --help` | แสดงวิธีใช้งาน Astro CLI |
## ✏️ การมีส่วนร่วม
กรุณาอ่าน [แนวทางการมีส่วนร่วม](https://github.com/saicaca/fuwari/blob/main/CONTRIBUTING.md) สำหรับรายละเอียดวิธีการมีส่วนร่วมในโปรเจกต์นี้
## 📄 สัญญาอนุญาต
โปรเจกต์นี้เผยแพร่ภายใต้สัญญาอนุญาตแบบ MIT License
-84
View File
@@ -1,84 +0,0 @@
# 🍥Fuwari
Một mẫu blog tĩnh được xây bằng [Astro](https://astro.build).
[**🖥️ Xem bản dùng thử (Vercel)**](https://fuwari.vercel.app)
![Hình ảnh xem trước](https://raw.githubusercontent.com/saicaca/resource/main/fuwari/home.png)
## ✨ Tính năng
- [x] Được xây dựng bằng [Astro](https://astro.build) và [Tailwind CSS](https://tailwindcss.com)
- [x] Có hoạt ảnh đổi chuyển trang mượt mà
- [x] Chế độ sáng / tối
- [x] Màu sắc và biểu ngữ có thể tùy chỉnh được
- [x] Thiết kế nhanh nhạy
- [x] Có chức năng tìm kiếm với [Pagefind](https://pagefind.app/)
- [x] [Có các tính năng mở rộng của Markdown](https://github.com/saicaca/fuwari?tab=readme-ov-file#-markdown-extended-syntax)
- [x] Có mục lục
- [x] Nguồn cấp dữ liệu RSS
## 🚀 Bắt đầu
1. Tạo kho lưu trữ blog của bạn:
- [Tạo một kho lưu trữ mới](https://github.com/saicaca/fuwari/generate) từ mẫu này hoặc fork kho lưu trữ này.
- Hoặc chạy một trong các lệnh sau:
```sh
npm create fuwari@latest
yarn create fuwari
pnpm create fuwari@latest
bun create fuwari@latest
deno run -A npm:create-fuwari@latest
```
2. Để chỉnh sửa blog của bạn trên máy cục bộ, hãy clone kho lưu trữ của bạn, chạy lệnh `pnpm install` để cài đặt các phụ thuộc..
- Cài đặt [pnpm](https://pnpm.io) `npm install -g pnpm` nếu chưa có.
3. Chỉnh sửa tệp cấu hình `src/config.ts` để tùy chỉnh blog của bạn.
4. Chạy `pnpm new-post <filename>` để tạo một bài viết mới và chỉnh sửa nó trong `src/content/posts/`.
5. Triển khai blog của bạn lên Vercel, Netlify, GitHub Pages, etc. theo [chỉ dẫn](https://docs.astro.build/en/guides/deploy/). Bạn cần chỉnh sửa cấu hình trang web trong `astro.config.mjs` trước khi triển khai.
## 📝 Tiêu đề đầy đủ của bài viết
```yaml
---
title: Blog đầu tiên của mình
published: 2023-09-09
description: Đây là bài viết đầu tiên vủa mình trên trang blog tạo bằng Astro này.
image: ./cover.jpg
tags: [Foo, Bar]
category: Front-end
draft: false
lang: jp # Chỉ đặt nếu ngôn ngữ của bài viết khác với ngôn ngữ của trang web trong `config.ts`
---
```
## 🧩 Cú pháp Markdown mở rộng
Ngoài việc Astro đã có hỗ trợ mặc định cho [Markdown vị Github](https://github.github.com/gfm/), một số tính năng Markdown khác cũng đã được bổ sung:
- Chêm xen ([Xem trước và Cách sử dụng](https://fuwari.vercel.app/posts/markdown-extended/#admonitions))
- Thẻ hiển thị kho lưu trữ GitHub ([Xem trước và Cách sử dụng](https://fuwari.vercel.app/posts/markdown-extended/#github-repository-cards))
- Các khối mã nâng cao với Expressive Code ([Xem trước](https://fuwari.vercel.app/posts/expressive-code/) / [Tài liệu](https://expressive-code.com/))
## ⚡ Lệnh
Tất cả các lệnh được chạy từ thư mục gốc của dự án, từ một bảng điều khiển:
| Lệnh | Mục đích |
|:---------------------------|:----------------------------------------------------|
| `pnpm install` | Cài đặt các phụ thuộc |
| `pnpm dev` | Khởi động máy chủ cục bộ tại `localhost:4321` |
| `pnpm build` | Xây dựng trang web của bạn vào `./dist/` |
| `pnpm preview` | Xem trước bản web cục bộ của bạn, trước khi triển khai |
| `pnpm check` | Chạy kiểm tra lỗi trong mã của bạn |
| `pnpm format` | Định dạng mã của bạn bằng Biome |
| `pnpm new-post <filename>` | Tạo một bài viết mới |
| `pnpm astro ...` | Chạy các lệnh CLI như `astro add`, `astro check` |
| `pnpm astro --help` | Nhận trợ giúp sử dụng Astro CLI |
## ✏️ Đóng góp
Xem [Hướng dẫn đóng góp](https://github.com/saicaca/fuwari/blob/main/CONTRIBUTING.md) để biết thêm chi tiết về cách đóng góp cho dự án này.
## 📄 Giấy phép
Dự án này đã được cấp Giấy phép MIT.
-86
View File
@@ -1,86 +0,0 @@
# 🍥Fuwari
基于 [Astro](https://astro.build) 开发的静态博客模板。
[**🖥️在线预览(Vercel**](https://fuwari.vercel.app)
![Preview Image](https://raw.githubusercontent.com/saicaca/resource/main/fuwari/home.png)
## ✨ 功能特性
- [x] 基于 Astro 和 Tailwind CSS 开发
- [x] 流畅的动画和页面过渡
- [x] 亮色 / 暗色模式
- [x] 自定义主题色和横幅图片
- [x] 响应式设计
- [ ] 评论
- [x] 搜索
- [x] 文内目录
## 👀 要求
- Node.js <= 22
- pnpm <= 9
## 🚀 使用方法 1
使用 [create-fuwari](https://github.com/L4Ph/create-fuwari) 在本地初始化项目。
```sh
# npm
npm create fuwari@latest
# yarn
yarn create fuwari
# pnpm
pnpm create fuwari@latest
# bun
bun create fuwari@latest
# deno
deno run -A npm:create-fuwari@latest
```
1. 通过配置文件 `src/config.ts` 自定义博客
2. 执行 `pnpm new-post <filename>` 创建新文章,并在 `src/content/posts/` 目录中编辑
3. 参考[官方指南](https://docs.astro.build/zh-cn/guides/deploy/)将博客部署至 Vercel, Netlify, GitHub Pages 等;部署前需编辑 `astro.config.mjs` 中的站点设置。
## 🚀 使用方法 2
1. 使用此模板[生成新仓库](https://github.com/saicaca/fuwari/generate)或 Fork 此仓库
2. 进行本地开发,Clone 新的仓库,执行 `pnpm install``pnpm add sharp` 以安装依赖
- 若未安装 [pnpm](https://pnpm.io),执行 `npm install -g pnpm`
3. 通过配置文件 `src/config.ts` 自定义博客
4. 执行 `pnpm new-post <filename>` 创建新文章,并在 `src/content/posts/` 目录中编辑
5. 参考[官方指南](https://docs.astro.build/zh-cn/guides/deploy/)将博客部署至 Vercel, Netlify, GitHub Pages 等;部署前需编辑 `astro.config.mjs` 中的站点设置。
## ⚙️ 文章 Frontmatter
```yaml
---
title: My First Blog Post
published: 2023-09-09
description: This is the first post of my new Astro blog.
image: ./cover.jpg
tags: [Foo, Bar]
category: Front-end
draft: false
lang: jp # 仅当文章语言与 `config.ts` 中的网站语言不同时需要设置
---
```
## 🧞 指令
下列指令均需要在项目根目录执行:
| Command | Action |
|:----------------------------------|:----------------------------------|
| `pnpm install``pnpm add sharp` | 安装依赖 |
| `pnpm dev` | 在 `localhost:4321` 启动本地开发服务器 |
| `pnpm build` | 构建网站至 `./dist/` |
| `pnpm preview` | 本地预览已构建的网站 |
| `pnpm new-post <filename>` | 创建新文章 |
| `pnpm astro ...` | 执行 `astro add`, `astro check` 等指令 |
| `pnpm astro --help` | 显示 Astro CLI 帮助 |
Binary file not shown.

After

Width:  |  Height:  |  Size: 44 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 406 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 877 KiB

+7 -3
View File
@@ -11,11 +11,15 @@ const currentYear = new Date().getFullYear();
<!--<div class="transition bg-[oklch(92%_0.01_var(&#45;&#45;hue))] dark:bg-black rounded-2xl py-8 mt-4 mb-8 flex flex-col items-center justify-center px-6">--> <!--<div class="transition bg-[oklch(92%_0.01_var(&#45;&#45;hue))] dark:bg-black rounded-2xl py-8 mt-4 mb-8 flex flex-col items-center justify-center px-6">-->
<div class="transition border-dashed border-[oklch(85%_0.01_var(--hue))] dark:border-white/15 rounded-2xl mb-12 flex flex-col items-center justify-center px-6"> <div class="transition border-dashed border-[oklch(85%_0.01_var(--hue))] dark:border-white/15 rounded-2xl mb-12 flex flex-col items-center justify-center px-6">
<div class="transition text-50 text-sm text-center"> <div class="transition text-50 text-sm text-center">
&copy; <span id="copyright-year">{currentYear}</span> {profileConfig.name}. All Rights Reserved. / <a href="https://icp.gov.moe/?keyword=20256087" target="_blank">萌ICP备20256087号</a>
<br>
&copy; <span id="copyright-year">{currentYear}</span> {profileConfig.name}. All Rights Reserved.
<br>
<a class="transition link text-[var(--primary)] font-medium" target="_blank" href={url('rss.xml')}>RSS</a> / <a class="transition link text-[var(--primary)] font-medium" target="_blank" href={url('rss.xml')}>RSS</a> /
<a class="transition link text-[var(--primary)] font-medium" target="_blank" href={url('sitemap-index.xml')}>Sitemap</a><br> <a class="transition link text-[var(--primary)] font-medium" target="_blank" href={url('sitemap-index.xml')}>Sitemap</a><br>
Powered by
<a class="transition link text-[var(--primary)] font-medium" target="_blank" href="https://astro.build">Astro</a> & <a class="transition link text-[var(--primary)] font-medium" target="_blank" href="https://astro.build">Astro</a>
<a class="transition link text-[var(--primary)] font-medium" target="_blank" href="https://github.com/saicaca/fuwari">Fuwari</a> <a class="transition link text-[var(--primary)] font-medium" target="_blank" href="https://github.com/saicaca/fuwari">Fuwari</a>
强力驱动
</div> </div>
</div> </div>
+2 -12
View File
@@ -11,8 +11,8 @@ import {
import { onMount } from "svelte"; import { onMount } from "svelte";
import type { LIGHT_DARK_MODE } from "@/types/config.ts"; import type { LIGHT_DARK_MODE } from "@/types/config.ts";
const seq: LIGHT_DARK_MODE[] = [LIGHT_MODE, DARK_MODE, AUTO_MODE]; const seq: LIGHT_DARK_MODE[] = [LIGHT_MODE, DARK_MODE];
let mode: LIGHT_DARK_MODE = $state(AUTO_MODE); let mode: LIGHT_DARK_MODE = LIGHT_MODE;
onMount(() => { onMount(() => {
mode = getStoredTheme(); mode = getStoredTheme();
@@ -66,9 +66,6 @@ function hidePanel() {
<div class="absolute" class:opacity-0={mode !== DARK_MODE}> <div class="absolute" class:opacity-0={mode !== DARK_MODE}>
<Icon icon="material-symbols:dark-mode-outline-rounded" class="text-[1.25rem]"></Icon> <Icon icon="material-symbols:dark-mode-outline-rounded" class="text-[1.25rem]"></Icon>
</div> </div>
<div class="absolute" class:opacity-0={mode !== AUTO_MODE}>
<Icon icon="material-symbols:radio-button-partial-outline" class="text-[1.25rem]"></Icon>
</div>
</button> </button>
<div id="light-dark-panel" class="hidden lg:block absolute transition float-panel-closed top-11 -right-2 pt-5" > <div id="light-dark-panel" class="hidden lg:block absolute transition float-panel-closed top-11 -right-2 pt-5" >
@@ -87,13 +84,6 @@ function hidePanel() {
<Icon icon="material-symbols:dark-mode-outline-rounded" class="text-[1.25rem] mr-3"></Icon> <Icon icon="material-symbols:dark-mode-outline-rounded" class="text-[1.25rem] mr-3"></Icon>
{i18n(I18nKey.darkMode)} {i18n(I18nKey.darkMode)}
</button> </button>
<button class="flex transition whitespace-nowrap items-center !justify-start w-full btn-plain scale-animation rounded-lg h-9 px-3 font-medium active:scale-95"
class:current-theme-btn={mode === AUTO_MODE}
onclick={() => switchScheme(AUTO_MODE)}
>
<Icon icon="material-symbols:radio-button-partial-outline" class="text-[1.25rem] mr-3"></Icon>
{i18n(I18nKey.systemMode)}
</button>
</div> </div>
</div> </div>
</div> </div>
+74 -5
View File
@@ -7,6 +7,7 @@ import { i18n } from "../i18n/translation";
import { getDir } from "../utils/url-utils"; import { getDir } from "../utils/url-utils";
import ImageWrapper from "./misc/ImageWrapper.astro"; import ImageWrapper from "./misc/ImageWrapper.astro";
import PostMetadata from "./PostMeta.astro"; import PostMetadata from "./PostMeta.astro";
import { umamiConfig } from "../config";
interface Props { interface Props {
class?: string; class?: string;
@@ -64,14 +65,15 @@ const { remarkPluginFrontmatter } = await entry.render();
{ description || remarkPluginFrontmatter.excerpt } { description || remarkPluginFrontmatter.excerpt }
</div> </div>
<!-- word count and read time -->
<!-- word count, read time and page views https://github.com/afoim/fuwari/blob/81f22decb17ff7ee1dd480c10773f7ba8f4df296/src/components/PostCard.astro -->
<div class="text-sm text-black/30 dark:text-white/30 flex gap-4 transition"> <div class="text-sm text-black/30 dark:text-white/30 flex gap-4 transition">
<div> <div>{remarkPluginFrontmatter.words} {" " + i18n(I18nKey.wordsCount)}</div>
{remarkPluginFrontmatter.words} {" " + i18n(remarkPluginFrontmatter.words === 1 ? I18nKey.wordCount : I18nKey.wordsCount)} <div>|</div>
</div> <div>{remarkPluginFrontmatter.minutes} {" " + i18n(I18nKey.minutesCount)}</div>
<div>|</div> <div>|</div>
<div> <div>
{remarkPluginFrontmatter.minutes} {" " + i18n(remarkPluginFrontmatter.minutes === 1 ? I18nKey.minuteCount : I18nKey.minutesCount)} <span class="text-50 text-sm font-medium" id={`page-views-${entry.slug}`}>加载中...</span>
</div> </div>
</div> </div>
@@ -106,5 +108,72 @@ const { remarkPluginFrontmatter } = await entry.render();
</div> </div>
<div class="transition border-t-[1px] border-dashed mx-6 border-black/10 dark:border-white/[0.15] last:border-t-0 md:hidden"></div> <div class="transition border-t-[1px] border-dashed mx-6 border-black/10 dark:border-white/[0.15] last:border-t-0 md:hidden"></div>
<!-- https://github.com/afoim/fuwari/blob/81f22decb17ff7ee1dd480c10773f7ba8f4df296/src/components/PostCard.astro -->
<script define:vars={{ entry, umamiConfig }}>
// 获取文章浏览量统计
async function fetchPostCardViews(slug) {
if (!umamiConfig.enable) {
return;
}
try {
// 第一步:获取网站ID和token
const shareResponse = await fetch(`${umamiConfig.baseUrl}/api/share/${umamiConfig.shareId}`);
if (!shareResponse.ok) {
throw new Error('获取分享信息失败');
}
const shareData = await shareResponse.json();
const { websiteId, token } = shareData;
// 第二步:获取统计数据
const currentTimestamp = Date.now();
const statsUrl = `${umamiConfig.baseUrl}/api/websites/${websiteId}/stats?startAt=0&endAt=${currentTimestamp}&unit=hour&timezone=${encodeURIComponent(umamiConfig.timezone)}&url=%2Fposts%2F${slug}%2F&compare=false`;
const statsResponse = await fetch(statsUrl, {
headers: {
'x-umami-share-token': token
}
});
if (!statsResponse.ok) {
throw new Error('获取统计数据失败');
}
const statsData = await statsResponse.json();
const pageViews = statsData.pageviews?.value || 0;
// const visits = statsData.visits?.value || 0;
const displayElement = document.getElementById(`page-views-${slug}`);
if (displayElement) {
displayElement.textContent = `浏览量 ${pageViews}`;
}
} catch (error) {
console.error('Error fetching page views for', slug, ':', error);
const displayElement = document.getElementById(`page-views-${slug}`);
if (displayElement) {
displayElement.textContent = '统计不可用';
}
}
}
// 页面加载完成后获取统计数据
function initPostCardStats() {
const slug = entry.slug;
if (slug) {
fetchPostCardViews(slug);
}
}
if (document.readyState === 'loading') {
document.addEventListener('DOMContentLoaded', initPostCardStats);
} else {
initPostCardStats();
}
</script>
<style define:vars={{coverWidth}}> <style define:vars={{coverWidth}}>
</style> </style>
+76 -3
View File
@@ -1,9 +1,11 @@
--- ---
import path from "node:path";
import { Icon } from "astro-icon/components"; import { Icon } from "astro-icon/components";
import I18nKey from "../i18n/i18nKey"; import I18nKey from "../i18n/i18nKey";
import { i18n } from "../i18n/translation"; import { i18n } from "../i18n/translation";
import { formatDateToYYYYMMDD } from "../utils/date-utils"; import { formatDateToYYYYMMDD } from "../utils/date-utils";
import { getCategoryUrl, getTagUrl } from "../utils/url-utils"; import { getCategoryUrl, getTagUrl, getDir, url } from "../utils/url-utils";
import { umamiConfig } from "../config";
interface Props { interface Props {
class: string; class: string;
@@ -13,6 +15,7 @@ interface Props {
category: string | null; category: string | null;
hideTagsForMobile?: boolean; hideTagsForMobile?: boolean;
hideUpdateDate?: boolean; hideUpdateDate?: boolean;
slug?: string;
} }
const { const {
published, published,
@@ -21,6 +24,7 @@ const {
category, category,
hideTagsForMobile = false, hideTagsForMobile = false,
hideUpdateDate = false, hideUpdateDate = false,
slug,
} = Astro.props; } = Astro.props;
const className = Astro.props.class; const className = Astro.props.class;
--- ---
@@ -35,7 +39,7 @@ const className = Astro.props.class;
<span class="text-50 text-sm font-medium">{formatDateToYYYYMMDD(published)}</span> <span class="text-50 text-sm font-medium">{formatDateToYYYYMMDD(published)}</span>
</div> </div>
<!-- update date --> <!-- update date
{!hideUpdateDate && updated && updated.getTime() !== published.getTime() && ( {!hideUpdateDate && updated && updated.getTime() !== published.getTime() && (
<div class="flex items-center"> <div class="flex items-center">
<div class="meta-icon" <div class="meta-icon"
@@ -45,6 +49,7 @@ const className = Astro.props.class;
<span class="text-50 text-sm font-medium">{formatDateToYYYYMMDD(updated)}</span> <span class="text-50 text-sm font-medium">{formatDateToYYYYMMDD(updated)}</span>
</div> </div>
)} )}
-->
<!-- categories --> <!-- categories -->
<div class="flex items-center"> <div class="flex items-center">
@@ -79,4 +84,72 @@ const className = Astro.props.class;
{!(tags && tags.length > 0) && <div class="transition text-50 text-sm font-medium">{i18n(I18nKey.noTags)}</div>} {!(tags && tags.length > 0) && <div class="transition text-50 text-sm font-medium">{i18n(I18nKey.noTags)}</div>}
</div> </div>
</div> </div>
</div>
{slug && (
<div class="flex items-center">
<div class="meta-icon">
<Icon name="material-symbols:visibility-outline-rounded" class="text-xl"></Icon>
</div>
<span class="text-50 text-sm font-medium" id="page-views-display">加载中...</span>
</div>
)}
</div>
<!-- https://github.com/afoim/fuwari/blob/81f22decb17ff7ee1dd480c10773f7ba8f4df296/src/components/PostMeta.astro -->
{slug && (
<script define:vars={{ slug, umamiConfig }}>
// 获取访问量统计
async function fetchPageViews() {
if (!umamiConfig.enable) {
return;
}
try {
// 第一步:获取网站ID和token
const shareResponse = await fetch(`${umamiConfig.baseUrl}/api/share/${umamiConfig.shareId}`);
if (!shareResponse.ok) {
throw new Error('获取分享信息失败');
}
const shareData = await shareResponse.json();
const { websiteId, token } = shareData;
// 第二步:获取统计数据
const currentTimestamp = Date.now();
const statsUrl = `${umamiConfig.baseUrl}/api/websites/${websiteId}/stats?startAt=0&endAt=${currentTimestamp}&unit=hour&timezone=${encodeURIComponent(umamiConfig.timezone)}&url=%2Fposts%2F${slug}%2F&compare=false`;
const statsResponse = await fetch(statsUrl, {
headers: {
'x-umami-share-token': token
}
});
if (!statsResponse.ok) {
throw new Error('获取统计数据失败');
}
const statsData = await statsResponse.json();
const pageViews = statsData.pageviews?.value || 0;
const visits = statsData.visits?.value || 0;
const displayElement = document.getElementById('page-views-display');
if (displayElement) {
displayElement.textContent = `浏览量 ${pageViews} · 访问数 ${visits}`;
}
} catch (error) {
console.error('Error fetching page views:', error);
const displayElement = document.getElementById('page-views-display');
if (displayElement) {
displayElement.textContent = '统计不可用';
}
}
}
// 页面加载完成后获取统计数据
if (document.readyState === 'loading') {
document.addEventListener('DOMContentLoaded', fetchPageViews);
} else {
fetchPageViews();
}
</script>
)}
+60 -1
View File
@@ -1,6 +1,6 @@
--- ---
import { Icon } from "astro-icon/components"; import { Icon } from "astro-icon/components";
import { profileConfig } from "../../config"; import { profileConfig, umamiConfig } from "../../config";
import { url } from "../../utils/url-utils"; import { url } from "../../utils/url-utils";
import ImageWrapper from "../misc/ImageWrapper.astro"; import ImageWrapper from "../misc/ImageWrapper.astro";
@@ -34,6 +34,65 @@ const config = profileConfig;
{config.links[0].name} {config.links[0].name}
</a>} </a>}
</div> </div>
<!-- 全站访问量统计 https://github.com/afoim/fuwari/blob/81f22decb17ff7ee1dd480c10773f7ba8f4df296/src/components/widget/Profile.astro -->
<div class="text-center text-sm text-neutral-500 dark:text-neutral-400 mt-3 pt-3 border-t border-neutral-200 dark:border-neutral-700">
<div class="flex items-center justify-center gap-1">
<Icon name="material-symbols:visibility-outline" class="text-base"></Icon>
<span id="site-stats">加载中...</span>
</div>
</div>
</div> </div>
</div> </div>
<script define:vars={{ umamiConfig }}>
// 获取全站访问量统计
async function loadSiteStats() {
if (!umamiConfig.enable) {
return;
}
try {
// 第一步:获取网站ID和token
const shareResponse = await fetch(`${umamiConfig.baseUrl}/api/share/${umamiConfig.shareId}`);
if (!shareResponse.ok) {
throw new Error('获取分享信息失败');
}
const shareData = await shareResponse.json();
const { websiteId, token } = shareData;
// 第二步:获取全站统计数据(不指定url参数获取全站数据)
const currentTimestamp = Date.now();
const statsUrl = `${umamiConfig.baseUrl}/api/websites/${websiteId}/stats?startAt=0&endAt=${currentTimestamp}&unit=hour&timezone=${encodeURIComponent(umamiConfig.timezone)}&compare=false`;
const statsResponse = await fetch(statsUrl, {
headers: {
'x-umami-share-token': token
}
});
if (!statsResponse.ok) {
throw new Error('获取统计数据失败');
}
const statsData = await statsResponse.json();
const pageviews = statsData.pageviews?.value || 0;
// const visitors = statsData.visits?.value || 0;
const statsElement = document.getElementById('site-stats');
if (statsElement) {
statsElement.textContent = `浏览量 ${pageviews}`;
}
} catch (error) {
console.error('获取全站统计失败:', error);
const statsElement = document.getElementById('site-stats');
if (statsElement) {
statsElement.textContent = '统计不可用';
}
}
}
// 页面加载完成后获取统计数据
document.addEventListener('DOMContentLoaded', loadSiteStats);
</script>
+36 -13
View File
@@ -4,15 +4,16 @@ import type {
NavBarConfig, NavBarConfig,
ProfileConfig, ProfileConfig,
SiteConfig, SiteConfig,
UmamiConfig,
} from "./types/config"; } from "./types/config";
import { LinkPreset } from "./types/config"; import { LinkPreset } from "./types/config";
export const siteConfig: SiteConfig = { export const siteConfig: SiteConfig = {
title: "Fuwari", title: "Ad_closeNN 的小站",
subtitle: "Demo Site", subtitle: "Ad_closeNN 的小站,时不时会刷新一些野生的文档。",
lang: "en", // Language code, e.g. 'en', 'zh-CN', 'ja', etc. lang: "zh_CN", // Language code, e.g. 'en', 'zh-CN', 'ja', etc.
themeColor: { themeColor: {
hue: 250, // Default hue for the theme color, from 0 to 360. e.g. red: 0, teal: 200, cyan: 250, pink: 345 hue: 360, // Invalid but fun( Default hue for the theme color, from 0 to 360. e.g. red: 0, teal: 200, cyan: 250, pink: 345
fixed: false, // Hide the theme color picker for visitors fixed: false, // Hide the theme color picker for visitors
}, },
banner: { banner: {
@@ -20,16 +21,29 @@ export const siteConfig: SiteConfig = {
src: "assets/images/demo-banner.png", // Relative to the /src directory. Relative to the /public directory if it starts with '/' src: "assets/images/demo-banner.png", // Relative to the /src directory. Relative to the /public directory if it starts with '/'
position: "center", // Equivalent to object-position, only supports 'top', 'center', 'bottom'. 'center' by default position: "center", // Equivalent to object-position, only supports 'top', 'center', 'bottom'. 'center' by default
credit: { credit: {
enable: false, // Display the credit text of the banner image enable: true, // Display the credit text of the banner image
text: "", // Credit text to be displayed text: "a", // Credit text to be displayed
url: "", // (Optional) URL link to the original artwork or artist's page url: "", // (Optional) URL link to the original artwork or artist's page
}, },
}, },
background: {
enable: true, // Enable background image
//src: "https://eo-pic.2x.nz/h", // Background image URL (supports HTTPS)
src: "https://bing.img.run/rand_1366x768.php", // Bing daily theme
position: "center", // Background position: 'top', 'center', 'bottom'
size: "cover", // Background size: 'cover', 'contain', 'auto'
repeat: "no-repeat", // Background repeat: 'no-repeat', 'repeat', 'repeat-x', 'repeat-y'
attachment: "fixed", // Background attachment: 'fixed', 'scroll', 'local'
opacity: 0.5, // Background opacity (0-1)
},
toc: { toc: {
enable: true, // Display the table of contents on the right side of the post enable: true, // Display the table of contents on the right side of the post
depth: 2, // Maximum heading depth to show in the table, from 1 to 3 depth: 2, // Maximum heading depth to show in the table, from 1 to 3
}, },
favicon: [ favicon: [
{
src: '/assets/avatar.jpg',
}
// Leave this array empty to use the default favicon // Leave this array empty to use the default favicon
// { // {
// src: '/favicon/icon.png', // Path of the favicon, relative to the /public directory // src: '/favicon/icon.png', // Path of the favicon, relative to the /public directory
@@ -45,18 +59,19 @@ export const navBarConfig: NavBarConfig = {
LinkPreset.Archive, LinkPreset.Archive,
LinkPreset.About, LinkPreset.About,
{ {
name: "GitHub", name: "统计信息",
url: "https://github.com/saicaca/fuwari", // Internal links should not include the base path, as it is automatically added url: "https://umami.adclosenn.top/share/XMDJoIb1D21UxHdH", // Internal links should not include the base path, as it is automatically added
external: true, // Show an external link icon and will open in a new tab external: true, // Show an external link icon and will open in a new tab
}, },
], ],
}; };
export const profileConfig: ProfileConfig = { export const profileConfig: ProfileConfig = {
avatar: "assets/images/demo-avatar.png", // Relative to the /src directory. Relative to the /public directory if it starts with '/' avatar: "/assets/avatar.jpg", // Relative to the /src directory. Relative to the /public directory if it starts with '/'
name: "Lorem Ipsum", name: "Ad_closeNN",
bio: "Lorem ipsum dolor sit amet, consectetur adipiscing elit.", bio: "永远相信美好的事情即将发生",
links: [ links: [
/*
{ {
name: "Twitter", name: "Twitter",
icon: "fa6-brands:twitter", // Visit https://icones.js.org/ for icon codes icon: "fa6-brands:twitter", // Visit https://icones.js.org/ for icon codes
@@ -64,15 +79,16 @@ export const profileConfig: ProfileConfig = {
// `pnpm add @iconify-json/<icon-set-name>` // `pnpm add @iconify-json/<icon-set-name>`
url: "https://twitter.com", url: "https://twitter.com",
}, },
*/
{ {
name: "Steam", name: "Steam",
icon: "fa6-brands:steam", icon: "fa6-brands:steam",
url: "https://store.steampowered.com", url: "https://steamcommunity.com/id/Ad_closeNN",
}, },
{ {
name: "GitHub", name: "GitHub",
icon: "fa6-brands:github", icon: "fa6-brands:github",
url: "https://github.com/saicaca/fuwari", url: "https://github.com/Ad-closeNN",
}, },
], ],
}; };
@@ -88,3 +104,10 @@ export const expressiveCodeConfig: ExpressiveCodeConfig = {
// Please select a dark theme, as this blog theme currently only supports dark background color // Please select a dark theme, as this blog theme currently only supports dark background color
theme: "github-dark", theme: "github-dark",
}; };
export const umamiConfig: UmamiConfig = {
enable: true,
baseUrl: "https://umami.adclosenn.top",
shareId: "XMDJoIb1D21UxHdH",
timezone: "Asia/Shanghai",
};
Binary file not shown.

After

Width:  |  Height:  |  Size: 121 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 67 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 306 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 190 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 80 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 240 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 33 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 168 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 205 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 141 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 445 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 88 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 73 KiB

-22
View File
@@ -1,22 +0,0 @@
---
title: Draft Example
published: 2022-07-01
tags: [Markdown, Blogging, Demo]
category: Examples
draft: true
---
# This Article is a Draft
This article is currently in a draft state and is not published. Therefore, it will not be visible to the general audience. The content is still a work in progress and may require further editing and review.
When the article is ready for publication, you can update the "draft" field to "false" in the Frontmatter:
```markdown
---
title: Draft Example
published: 2024-01-11T04:40:26.381Z
tags: [Markdown, Blogging, Demo]
category: Examples
draft: false
---
Binary file not shown.

Before

Width:  |  Height:  |  Size: 218 KiB

-51
View File
@@ -1,51 +0,0 @@
---
title: Simple Guides for Fuwari
published: 2024-04-01
description: "How to use this blog template."
image: "./cover.jpeg"
tags: ["Fuwari", "Blogging", "Customization"]
category: Guides
draft: false
---
> Cover image source: [Source](https://image.civitai.com/xG1nkqKTMzGDvpLrqFT7WA/208fc754-890d-4adb-9753-2c963332675d/width=2048/01651-1456859105-(colour_1.5),girl,_Blue,yellow,green,cyan,purple,red,pink,_best,8k,UHD,masterpiece,male%20focus,%201boy,gloves,%20ponytail,%20long%20hair,.jpeg)
This blog template is built with [Astro](https://astro.build/). For the things that are not mentioned in this guide, you may find the answers in the [Astro Docs](https://docs.astro.build/).
## Front-matter of Posts
```yaml
---
title: My First Blog Post
published: 2023-09-09
description: This is the first post of my new Astro blog.
image: ./cover.jpg
tags: [Foo, Bar]
category: Front-end
draft: false
---
```
| Attribute | Description |
|---------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `title` | The title of the post. |
| `published` | The date the post was published. |
| `description` | A short description of the post. Displayed on index page. |
| `image` | The cover image path of the post.<br/>1. Start with `http://` or `https://`: Use web image<br/>2. Start with `/`: For image in `public` dir<br/>3. With none of the prefixes: Relative to the markdown file |
| `tags` | The tags of the post. |
| `category` | The category of the post. |
| `draft` | If this post is still a draft, which won't be displayed. |
## Where to Place the Post Files
Your post files should be placed in `src/content/posts/` directory. You can also create sub-directories to better organize your posts and assets.
```
src/content/posts/
├── post-1.md
└── post-2/
├── cover.png
└── index.md
```
+166
View File
@@ -0,0 +1,166 @@
---
title: 新域名!
published: 2099-12-31
tags: ["域名"]
description: 获得了一个新域名 *这使我充满了决心
image: ../assets/images/domain-inlist-adclosenn.top.png
category: 记录
draft: false
---
# .xyz 域名
:::note
下面讲的都是[阿里云(国内站)](https://wanwang.aliyun.com/domain)。
:::
之前在[*里云](https://wanwang.aliyun.com/domain)买了个8位纯数字的 `.xyz` 域名,现在买了 `.top` 后觉得特亏。一是在阿里云里面买任何域名都需要实名认证(14+),还得填一些实际身份的信息,我了个去,填完这些信息都够我在 Spaceship 买两次域名了,真是够麻烦的。。。
# .top 域名
买域名后直接开始搭博客,真香~如果不出意外的话,这个域名将会一直用下去。~~毕竟`.top`确实便宜~~
付款的时候甚至不用绑国外卡,能直接用支付宝付款,更不用**实名认证**。另外,Spaceship 的 Web UI 做的是真漂亮、简洁。不过毕竟 Spaceship 是一家 **“ICANN认证的注册商,自2022年以来为客户服务”** 的初创公司,没有隔壁像 [Namesilo2009](https://www.namesilo.com)、[Namecheap2001](https://www.namecheap.com) 等那么老牌,这么现代的 UI 也挺对。
## 信息
- 来源:[Spaceship](https://www.spaceship.com) (这是真能省钱)
- 域名:[adclosenn.top](/)
- 首年花费:7.33 人民币(汇率:1.00 USD = 7.23002 CNY ![domain-adclosenn.top-alipay.jpg](../assets/images/domain-adclosenn.top-alipay.jpg)
- 次年花费:29.07 人民币 (¥27.63 域名费+¥1.44 ICANN 费)
- [Whois(阿里云国际站)](https://www.alibabacloud.com/zh/whois):
```
Domain Name: adclosenn.top
Registry Domain ID: D20250806G10001G_53477846-top
Registrar WHOIS Server: whois.spaceship.com
Registrar URL: http://www.spaceship.com
Updated Date: 2025-08-06T05:28:21Z
Creation Date: 2025-08-06T04:49:06Z
Registrar Registration Expiration Date: 2026-08-06T04:49:06Z
Registrar: Spaceship, Inc.
Registrar IANA ID: 3862
Reseller:
Domain Status: clientTransferProhibited https://icann.org/epp#clientTransferProhibited
Domain Status: addPeriod https://icann.org/epp#addPeriod
Registrant State/Province: Capital Region
Registrant Country: IS
Name Server: malavika.ns.cloudflare.com
Name Server: rustam.ns.cloudflare.com
DNSSEC: unsigned
Registrar Abuse Contact Email: abuse@spaceship.com
Registrar Abuse Contact Phone: +1.16027723958
URL of the ICANN WHOIS Data Problem Reporting System: http://wdprs.internic.net/
```
## 优惠码
这次购买使用的是 `SPSR86`,省了**1.66 人民币**(原价¥8.99)。代码来自 [tld-list.com](https://zh-hans.tld-list.com/%E4%BC%98%E6%83%A0%E7%A0%81)。
---
# 新域名的由来
~~便宜!~~
## 2025/8/2 - 引导
2号晚上,跟着[二叉树树](https://space.bilibili.com/325903362)博客搞起了[TG反代](https://2x.nz/posts/proxy-tgweb/)。脑餐的是,我并没有把登录页面放在子路径下,而是直接暴露在公网上了。之前并不知道子域名可以被扫出来,所以也没做好防护。因为搭建好后并没什么问题,所以直接去睡觉了。
## 2025/8/3 - 预告
早上起来一看发现仍然没问题,TG反代也能正常访问。
起床打开电脑,输入 TGWeb 反代地址,Chrome 直接开出了个大红。嗯,确实是大红。 ![domain-19991230.xyz-chromeabuse-page](../assets/images/domain-19991230.xyz-chromeabuse-page.png)
不过仍然没收到来自任何关于**钓鱼**、**滥用**的邮件。
飞到 [Google Safe Browsing 透明度报告](https://transparencyreport.google.com/safe-browsing/search) ,一看检查,发现已经被列入了危险列表。 ![domain-19991230.xyz-googlesafe-unsafe](../assets/images/domain-19991230.xyz-googlesafe-unsafe.png)
不过因为是自用的,也就无视风险接着用了。
## 2025/8/4 - 开始
2025年8月4日早上醒来,发现 [UptimeRobot](https://uptimerobot.com) 给我发了很多封邮件,全都是 DOWN 的(突然 UP 的是因为 DNS 等缓存问题,后续全都是 DOWN) ![domain-serverHold-qqmail](../assets/images/domain-serverHold-qqmail.png)
我立马就意识到不对劲了。用 [itdog](https://www.itdog.cn) 查 NS 记录,发现全都**无解析记录**。后来 Whois 发现域名居然被 XYZ 注册局 **serverHold** 了([注册局暂停解析](https://www.icann.org/resources/pages/epp-status-codes-2014-06-16-en/#serverHold))。
马上找到了阿里云开了个工单。阿里云工程师告诉我要自己去 XYZ 注册局的 [gen.xyz/unsuspend](https://gen.xyz/unsuspend) 解决。
由于解决 suspend 需要提供证据:
-**Please note that domains will only be reviewed and reactivated when requests are filled out completely and domains have been delisted from all blocklists.**
-**请注意,仅当请求完整填写并且域名已从所有阻止列表中删除后,才会审核并重新激活域名。**
所以我在 `2025/8/7 16:29` 的时候提交部分证据和申请信息到了 [xyzabuse@gen.xyz](mailto:xyzabuse@gen.xyz) 。
## 2025/8/5 - 申诉
早上一起来,UptimeRobot 仍未发送 UP 通知。再看昨天发给 gen.xyz 的邮件,也没有回复我。索性去 [gen.xyz/unsuspend](https://gen.xyz/unsuspend) 解决。
解决前,我把几个安全机构的 Support 都发了一遍邮件,让他们重新检查。回头再看 Google Safe Browsing 透明度报告,`19991230.xyz`及其他除`web.`外的域,都已经变为绿色正常。
16:00 点后,来到 gen.xyz,填了填报告,submit了。而这居然还有坑?
:::warning
当时的情况如此,并非等于现在情况。
:::
1. 网站看起来是不用登录就能 Submit 的,因为下面让你填 **名字****邮箱**,实际上没登录时,等你 Submit 后会说你未填写用户名和邮箱地址。注册好 XYZ 账号后,再次 Submit 即可成功提交。(吗?
2. 登录 XYZ 账号后 Submit,会返回 ``500 Internal Server Error``,**但实际上貌似已成功发送了你的请求**,真是奇怪。
## 2025/8/6 - 复活
早上再次查看,发现 UptimeRobot 已经发了很多封 UP 邮件。**好耶,域名复活了!**
```
Tuesday, August 5, 2025 - 20:08 PM
XYZ Anti-Abuse Agent 656322, Staff
Subject: Request for Removal of serverHold Status for Domain 19991230.xyz
Subject / Abuse Type:
Hello Ad_closeNN,
Thank you for your message. This domain has been unsuspended and is now active. This domain was flagged by Spamhaus and has since dropped off due to the site being inactive. Please check Spamhaus DBL after 24 hrs to ensure delisting.
Please note that it will be added to a watch list for any potential violations of our anti-abuse policies, and we will continue to monitor this domain.
Also note, it can take up to 24 hours for the WHOIS information to update.
Please submit a new support ticket at https://gen.xyz/abuse if you have any further evidence or information.
Kind Regards,
XYZ Anti-Abuse Team
xyz_abuse@gen.xyz
M-F 9am-5pm PT
```
译文(Google 翻译 ~~生草机~~
```
2025年8月5日,星期二,晚上8:08
XYZ 反滥用代理 656322,工作人员
主题:请求移除域名 19991230.xyz 的服务器暂停状态
主题/滥用类型:
您好,Ad_closeNN
感谢您的留言。此域名已解除暂停状态,现已恢复正常。此域名曾被 Spamhaus 标记,由于网站处于非活跃状态,现已下架。请在 24 小时后查看 Spamhaus 的 DBL,以确保将其下架。
请注意,我们将把该域名添加到监视列表中,以查找任何可能违反我们反滥用政策的行为,并持续监控该域名。
另请注意,WHOIS 信息更新可能需要最多 24 小时。
如果您有任何进一步的证据或信息,请访问 https://gen.xyz/abuse 提交新的支持工单。
此致,
XYZ 反滥用团队
xyz_abuse@gen.xyz
周一至周五 上午 9 点至下午 5 点(太平洋时间)
```
然后到了中午,看着旧 `.xyz` 域名,因为这个域名被标记过,之后可能也会被持续严格视奸,所以想到了买一个新的域名。于是到 Namesilo、NameCheap、Spaceship 看,发现英文域名+ `.top` 比较便宜。Google 一搜优惠代码,真找到了个能用的。于是就以 ¥7.33 拿下了 `adclosenn.top` 的首年~~~
# 结语
这件事经历了4天(**8/2**~**8/6**),让我体会到了从域名被 `serverHold``active` 的过程。
所以...... 搞反代千万不能把登录等敏感页面直接暴露在公网(推荐自用密码+/xxx) 😡😡😡
血一般的教训 😡😡😡 我都没想过会 `serverHold` 😡😡😡 我真的没想过钓鱼 😡😡😡
---
+60
View File
@@ -0,0 +1,60 @@
---
title: 手把手自托管 Umami
published: 2025-08-07
tags: ["自行部署"]
description: Umami 是一个精美的网站统计分析工具,我们可以自托管它以解除官方限制
image: ../assets/images/umami-screenshot.png
category: 教程
draft: false
---
# 自行托管 Umami
## 什么是 Umami
[Umami](https://umami.is) 是一个[开源的](https://github.com/umami-software/umami)的网站统计工具。与 [Google Analytics](https://developers.google.com/analytics) 类似,但比 Google Analytics 的网页 UI 更简洁、精美。
## 为什么要自托管
[Umami](https://umami.is) 可搭配 [Umami Cloud](https://cloud.umami.is/signup) 托管 Umami App。但是这种方式相比自托管有诸多限制:
- 事件:100,000 次/月
- 被分析的网站:3 个/账号
- 数据保留:6 个月
- 有限的 API 访问
- ...更多可在 [umami/pricing](https://umami.is/pricing) 中查看
## 条件
- 一个托管平台账号(任选其一)。本教程以 [Netlify](https://www.netlify.com) 为托管平台演示。
- [Netlify](https://www.netlify.com)
- [Vercel](https://vercel.com)
- [Cloudflare](https://www.cloudflare.com)
- [Render](https://render.com)
- [Railway](https://railway.app)
- ...等
- 一个 [GitHub](https://github.com) 账号。
- 一个数据库。本教程以 [Neon](https://neon.com) 为数据库演示。
:::warning
Neon 仍有使用限制:[https://neon.com/pricing](https://neon.com/pricing)
- 500 MB 存储空间
:::
## 自托管
1. 来到 [Neon/signup](https://console.neon.tech/signup) 注册一个账号(注册过的直接去到 [console.neon.tech](https://console.neon.tech) )。
2. 注册后来到 [console.neon.tech](https://console.neon.tech)。
3. 点击 **Create Project** 按钮。 ![neon-noproject-create-project](../assets/images/neon-noproject-create-project.png)
4. 取一个项目名字,填到 **Project name**。**Cloud service provider** 和 **Region** 随便选一个即可。然后点击 **Create** 按钮创建项目。 ![neon-create-project-menu](../assets/images/neon-create-project-menu.png)
5. 在项目的 **Dashboard** 内点击右上角的 **Connect** 按钮,在 Connect 页面下方点击 **Show password**,将 `psql '` 后,末尾 `'` 前的内容复制下来。 ![neon-connect-to-your-database](../assets/images/neon-connect-to-your-database.png)
6. 访问 [@umami-software/umami](https://github.com/umami-software/umami/fork) ,将 umami 仓库 fork 到你的账户下。
7. 访问 [Netlify/start](https://app.netlify.com/start),在 **Lets deploy your project with…** 里选择 **GitHub** 并授权到你的 GitHub 账户。
8. 选择刚刚 fork 的 umami 仓库 ![netlify-deploy-menu-umami](../assets/images/netlify-deploy-menu-umami.png)
9. **Project name** 随便填,**Build Command** 请填写 `yarn run build`(而不是系统给的 `pnpm run build-app`)。
10. 往下找到 **Environment variables**,点击 **Add environment variables**,选择 **Add ket/value pairs**`Key` 中填写 `DATABASE_URL``Value` 填写在 [Neon Console](https://console.neon.tech/) (步骤5)中复制的链接。填写完毕后点击 **Deploy umami** 按钮来部署。 ![netlify-create-project-detail](../assets/images/netlify-create-project-detail.png)
11. 如果有自定义域名可以绑定自定义域名,优选等一些列步骤。这里就不多赘述了。
12. 访问部署好的 Umami 网页,第一次进入需要输入**默认**账号和密码。登录 Umami 后台成功后请尽快修改密码。
- **Username**`admin`
- **Password**`umami`
![umami-login-panel](../assets/images/umami-login-panel.png)
13. 登录成功后,可以在右上角切换**显示语言**。 ![umami-language-panel](../assets/images/umami-language-panel.png)
14. 至此,你已成功自托管一个 Umami 网站统计工具。恭喜你。
# 注意事项
:::caution
Umami 对于从台湾地区传来的请求,默认展示为 **ROC Flag + 台湾**。请注意风险,如需更改,请手动更改 Umami 文件。
+24 -6
View File
@@ -1,9 +1,27 @@
# About # 关于 / Hi there!
This is the demo site for [Fuwari](https://github.com/saicaca/fuwari). 既然你来到了这里,就说明你在访问由 [Netlify](https://www.netlify.com) 托管的 [adclosenn.top](https://adclosenn.top)
本站使用 [@satcaca/fuwari](https://github.com/saicaca/fuwari) 博客模板。嗯,真漂亮,真好用。
::github{repo="saicaca/fuwari"} ::github{repo="saicaca/fuwari"}
::github{repo="withastro/astro"}
> ### Sources of images used in this site ## 域名
> - [Unsplash](https://unsplash.com/) 目前你现在见到的,也就是 [adclosenn.top](https://adclosenn.top)。除了这个,还有其他的域名:
> - [星と少女](https://www.pixiv.net/artworks/108916539) by [Stella](https://www.pixiv.net/users/93273965)
> - [Rabbit - v1.4 Showcase](https://civitai.com/posts/586908) by [Rabbit_YourMajesty](https://civitai.com/user/Rabbit_YourMajesty) 1. adclosenn.top
2. 19991230.xyz
3. adsb.dpdns.org
4. adclosenn.dpdns.org
---
## 关于我
好了,本站的介绍完了,到介绍我自己了。
关于我的名字 Ad_closeNN... 你可以叫我 **Ad**、**closeNN**或**广告猫猫**。
一位住在[中华人民共和国广西壮族自治区梧州市](https://baike.baidu.com/item/%E6%A2%A7%E5%B7%9E%E5%B8%82/7260153)的苦逼学生。长吗?长就对了!谁让广西是自治区呢!
### 爱好
玩游戏、写代码、写博客(也许吧),哦,还有读书。只会一点 [Python](https://baike.baidu.com/item/Python/407313),初学者罢了。
+75 -1
View File
@@ -140,12 +140,66 @@ const bannerOffset =
<style define:vars={{ <style define:vars={{
configHue, configHue,
'page-width': `${PAGE_WIDTH}rem`, 'page-width': `${PAGE_WIDTH}rem`,
}}></style> <!-- defines global css variables. This will be applied to <html> <body> and some other elements idk why --> /* https://github.com/afoim/fuwari/commit/aad0a7734be5f6e96a54a3aed51e49760ab3162a */
'bg-url': siteConfig.background.src ? `url(${siteConfig.background.src})` : 'none',
'bg-enable': siteConfig.background.enable ? '1' : '0',
'bg-position': siteConfig.background.position || 'center',
'bg-size': siteConfig.background.size || 'cover',
'bg-repeat': siteConfig.background.repeat || 'no-repeat',
'bg-attachment': siteConfig.background.attachment || 'fixed',
'bg-opacity': (siteConfig.background.opacity || 0.3).toString()
}}>
:root {
--bg-url: var(--bg-url);
--bg-enable: var(--bg-enable);
--bg-position: var(--bg-position);
--bg-size: var(--bg-size);
--bg-repeat: var(--bg-repeat);
--bg-attachment: var(--bg-attachment);
--bg-opacity: var(--bg-opacity);
}
/* Background image configuration */
body {
--bg-url: var(--bg-url);
--bg-enable: var(--bg-enable);
--bg-position: var(--bg-position);
--bg-size: var(--bg-size);
--bg-repeat: var(--bg-repeat);
--bg-attachment: var(--bg-attachment);
--bg-opacity: var(--bg-opacity);
}
body::before {
content: '' !important;
position: fixed !important;
top: 0 !important;
left: 0 !important;
width: 100% !important;
height: 100% !important;
background-image: var(--bg-url) !important;
background-position: var(--bg-position) !important;
background-size: var(--bg-size) !important;
background-repeat: var(--bg-repeat) !important;
background-attachment: var(--bg-attachment) !important;
opacity: 0 !important;
pointer-events: none !important;
z-index: -1 !important;
display: block !important;
transition: opacity 0.3s ease-in-out !important;
}
body.bg-loaded::before {
opacity: calc(var(--bg-opacity) * var(--bg-enable)) !important;
}
</style> <!-- defines global css variables. This will be applied to <html> <body> and some other elements idk why -->
<slot name="head"></slot> <slot name="head"></slot>
<link rel="alternate" type="application/rss+xml" title={profileConfig.name} href={`${Astro.site}rss.xml`}/> <link rel="alternate" type="application/rss+xml" title={profileConfig.name} href={`${Astro.site}rss.xml`}/>
<!-- Umami分析(自建) -->
<script defer src="https://umami.adclosenn.top/script.js" data-website-id="7610548d-677b-40cb-9ebd-31dc14e16be7"></script>
</head> </head>
<body class=" min-h-screen transition " class:list={[{"lg:is-home": isHomePage, "enable-banner": enableBanner}]} <body class=" min-h-screen transition " class:list={[{"lg:is-home": isHomePage, "enable-banner": enableBanner}]}
@@ -501,7 +555,27 @@ window.onresize = () => {
offset = offset - offset % 4; offset = offset - offset % 4;
document.documentElement.style.setProperty('--banner-height-extend', `${offset}px`); document.documentElement.style.setProperty('--banner-height-extend', `${offset}px`);
} }
// Background image loading detection https://github.com/afoim/fuwari/commit/aad0a7734be5f6e96a54a3aed51e49760ab3162a
const bgUrl = getComputedStyle(document.documentElement).getPropertyValue('--bg-url').trim();
const bgEnable = getComputedStyle(document.documentElement).getPropertyValue('--bg-enable').trim();
if (bgUrl && bgUrl !== 'none' && bgEnable === '1') {
const img = new Image();
const urlMatch = bgUrl.match(/url\(["']?([^"')]+)["']?\)/);
if (urlMatch) {
img.onload = function() {
// 背景图片完全加载后,显示背景并启用卡片透明效果
document.body.classList.add('bg-loaded');
document.documentElement.style.setProperty('--card-bg', 'var(--card-bg-transparent)');
document.documentElement.style.setProperty('--float-panel-bg', 'var(--float-panel-bg-transparent)');
};
img.onerror = function() {
// Keep cards opaque if background image fails to load
console.warn('Background image failed to load, keeping cards opaque');
};
img.src = urlMatch[1];
}
}
</script> </script>
<script> <script>
+461
View File
@@ -112,6 +112,10 @@
} }
} }
@theme {
--font-sans: 'Inter', 'sans-serif';
}
.custom-md img, #post-cover img { .custom-md img, #post-cover img {
@apply cursor-zoom-in @apply cursor-zoom-in
} }
@@ -139,3 +143,460 @@
.collapsed { .collapsed {
height: var(--collapsedHeight); height: var(--collapsedHeight);
} }
/* But MiSans is so good */
@font-face {
font-family: MiSans VF;
font-weight: 1 999;
font-display: swap;
src: url(https://cdn-file.hyperos.mi.com/mi-font-service/misans_vf/VF/cs.2f934f6a30be65c8.0.woff2) format("woff2"), url(https://cdn-file.hyperos.mi.com/mi-font-service/misans_vf/VF/cs.2f934f6a30be65c8.0.woff) format("woff"), url(https://cdn-file.hyperos.mi.com/mi-font-service/misans_vf/VF/cs.2f934f6a30be65c8.0.ttf) format("truetype"), url(https://cdn-file.hyperos.mi.com/mi-font-service/misans_vf/VF/cs.2f934f6a30be65c8.0.eot) format("embedded-opentype");
unicode-range: U+20, U+2013-2014, U+2018-2019, U+201c-201d, U+2026, U+3001-3002, U+3008-3011, U+3014-3015, U+4e00, U+4e09-4e0b, U+4e0d-4e0e, U+4e1a, U+4e24, U+4e2a, U+4e2d, U+4e3a-4e3b, U+4e48, U+4e4b, U+4e5f, U+4e86, U+4e8b-4e8c, U+4e8e, U+4e9b, U+4ea7, U+4eba, U+4ec0, U+4ece, U+4ed6, U+4ee5, U+4eec, U+4f1a, U+4f46, U+4f53, U+4f5c, U+4f60, U+4f7f, U+5168, U+516c, U+5173, U+5176, U+519b, U+51fa, U+5206, U+5229, U+5230, U+5236, U+524d, U+529b, U+52a0, U+52a8, U+5341, U+53bb, U+53c8, U+53d1, U+53ea, U+53ef, U+5408, U+540c, U+540e, U+5411, U+548c, U+56e0, U+56fd, U+5728, U+5730, U+5916, U+591a, U+5927, U+5929, U+5934, U+5979, U+597d, U+5982, U+5b50, U+5b66, U+5b83, U+5b9a, U+5b9e, U+5bb6, U+5bf9, U+5c06, U+5c0f, U+5c31, U+5de5, U+5df1-5df2, U+5e74, U+5e76, U+5e94, U+5f00, U+5f53, U+5f88, U+5f97, U+5fc3, U+6027, U+60c5, U+60f3, U+610f, U+6210-6211, U+6216, U+6218, U+6240, U+624b, U+628a, U+653f, U+6587, U+65af-65b0, U+65b9, U+65e0, U+65e5, U+65f6, U+660e, U+662f, U+6700, U+6708-6709, U+672c, U+673a, U+6765, U+679c, U+6837, U+6b63-6b64, U+6c11, U+6ca1, U+6cd5, U+70b9, U+7136, U+7269, U+73b0, U+7406, U+751f, U+7528, U+7531, U+7684, U+76f8, U+770b, U+7740, U+77e5, U+79cd, U+7b2c, U+7b49, U+7ecf, U+7f8e, U+8005, U+800c, U+80fd, U+81ea, U+884c, U+88ab, U+897f, U+8981, U+89c1, U+8bdd, U+8bf4, U+8d77, U+8eab, U+8fc7, U+8fd8-8fd9, U+8fdb, U+9053, U+90a3, U+90e8, U+90fd, U+91cc-91cd, U+957f, U+95ee, U+95f4, U+9762, U+9ad8, U+ff01, U+ff08-ff09, U+ff0c, U+ff0e, U+ff1a-ff1b
}
@font-face {
font-family: MiSans VF;
font-weight: 1 999;
font-display: swap;
src: url(https://cdn-file.hyperos.mi.com/mi-font-service/misans_vf/VF/cs.cff9af74f3741baf.1.woff2) format("woff2"), url(https://cdn-file.hyperos.mi.com/mi-font-service/misans_vf/VF/cs.cff9af74f3741baf.1.woff) format("woff"), url(https://cdn-file.hyperos.mi.com/mi-font-service/misans_vf/VF/cs.cff9af74f3741baf.1.ttf) format("truetype"), url(https://cdn-file.hyperos.mi.com/mi-font-service/misans_vf/VF/cs.cff9af74f3741baf.1.eot) format("embedded-opentype");
unicode-range: U+4e07, U+4e14, U+4e16, U+4e1c, U+4e49, U+4e66, U+4e89, U+4e94, U+4ea4, U+4eb2, U+4eca, U+4ee3, U+4ef6, U+4efb, U+4f20, U+4f4d, U+4f4f, U+4f55, U+4fbf, U+4fdd, U+4fe1, U+5019, U+505a, U+50cf, U+513f, U+5143, U+5148-5149, U+514b, U+5165, U+5171, U+5185, U+518d, U+51b3, U+51e0, U+5207, U+5219, U+522b, U+529e, U+52a1, U+5316-5317, U+533a, U+5357, U+5373-5374, U+539f, U+53ca, U+53cd, U+53d6-53d8, U+53e3, U+53f8, U+5404, U+540d, U+542c, U+544a, U+5458, U+547d, U+54c1, U+56db, U+56de, U+573a, U+57fa, U+58f0, U+5904, U+592a, U+5973, U+5b89, U+5b8c, U+5bfc, U+5c11, U+5c14, U+5c55, U+5c71, U+5e02, U+5e08, U+5e26, U+5e38, U+5e72-5e73, U+5ea6, U+5efa, U+5f0f, U+5f20, U+5f3a, U+5f62, U+5f80, U+5fb7, U+5fc5, U+5feb, U+601d, U+603b, U+611f, U+624d, U+6253, U+62a5, U+62c9, U+6301, U+6307, U+636e, U+63a5, U+63d0, U+6536, U+6539, U+653e, U+6559, U+6570, U+66f4, U+670d, U+671b, U+671f, U+672f, U+6743, U+6761, U+6781, U+6797, U+6839, U+683c, U+6b21, U+6b65, U+6b7b, U+6bcf, U+6bd4, U+6c14, U+6c34, U+6c42, U+6cbb, U+6d3b, U+6d4e, U+6d77, U+6e05, U+7279, U+738b, U+7535, U+754c, U+767d, U+76ee, U+76f4, U+771f, U+773c, U+786e, U+793e, U+795e, U+79d1, U+7a0b, U+7a7a, U+7acb, U+7b11, U+7ba1, U+7c7b, U+7cfb, U+7ec4, U+7ed3, U+7ed9, U+7edf, U+8001, U+8054, U+81f3, U+8272, U+82f1, U+8868, U+89c2, U+89c4, U+89c9, U+89e3, U+8a00, U+8ba1, U+8ba4, U+8ba9, U+8bae, U+8bb0, U+8bb8, U+8bba, U+8bbe, U+8bc6, U+8be5, U+8c61, U+8d44, U+8d70, U+8def, U+8f66, U+8fb9, U+8fbe, U+8fd0, U+901a, U+9020, U+91cf, U+91d1, U+95e8, U+961f, U+9662, U+96be, U+975e, U+9886, U+9898, U+98ce, U+98de, U+9a6c
}
@font-face {
font-family: MiSans VF;
font-weight: 1 999;
font-display: swap;
src: url(https://cdn-file.hyperos.mi.com/mi-font-service/misans_vf/VF/cs.0a2bcde63f0ee024.2.woff2) format("woff2"), url(https://cdn-file.hyperos.mi.com/mi-font-service/misans_vf/VF/cs.0a2bcde63f0ee024.2.woff) format("woff"), url(https://cdn-file.hyperos.mi.com/mi-font-service/misans_vf/VF/cs.0a2bcde63f0ee024.2.ttf) format("truetype"), url(https://cdn-file.hyperos.mi.com/mi-font-service/misans_vf/VF/cs.0a2bcde63f0ee024.2.eot) format("embedded-opentype");
unicode-range: U+4e03, U+4e13, U+4e25, U+4e4e, U+4e5d, U+4e9a, U+4eac, U+4ec5, U+4ee4, U+4ef7, U+4f01, U+4f17, U+4f3c, U+4f8b, U+4f9b, U+4f9d, U+515a, U+516b, U+516d, U+5174-5175, U+5177, U+5199, U+519c, U+51b5, U+51c6, U+51fb, U+5212, U+5217, U+529f, U+52bf, U+5305, U+533b, U+534a, U+534e, U+5355, U+5386, U+53c2, U+53e4, U+53e6, U+53eb, U+53f0, U+53f2, U+53f7, U+5403, U+5417, U+5427, U+5462, U+5468, U+54cd, U+5546, U+5668, U+56e2, U+56fe, U+571f, U+578b, U+57ce, U+589e, U+58eb, U+5907, U+590d, U+591f, U+592b, U+5931, U+5947, U+59cb, U+59d4, U+5b57-5b58, U+5b69, U+5b98, U+5bb9, U+5bdf, U+5c3d, U+5c40, U+5df4, U+5e03, U+5e0c, U+5e7f, U+5e95, U+5e9c, U+5f15, U+5f71, U+5f8b, U+5fd7, U+5ff5, U+6001, U+600e, U+606f, U+623f, U+6279, U+627e, U+6280, U+6295, U+62a4, U+63a8, U+652f, U+6548, U+654c, U+6574, U+6599, U+65ad, U+65bd, U+65cf, U+65e9, U+6613, U+661f, U+663e, U+66fe, U+672a, U+674e, U+6784, U+67d0, U+67e5, U+6807, U+6848, U+6b66, U+6bb5, U+6bcd, U+6ce8, U+6d3e, U+6d41, U+6d88, U+6df1, U+6ee1, U+706b, U+7167, U+7231, U+7247, U+7559, U+75c5, U+767e, U+77f3, U+7814, U+793a, U+79bb, U+79f0, U+7a76, U+7a81, U+7ad9, U+7ae0, U+7b54, U+7b97, U+7cbe, U+7d27, U+7ea2, U+7ea6-7ea7, U+7ebf, U+7ec8, U+7edd, U+7eed, U+7ef4, U+7f57, U+7fa4, U+8003, U+81f4, U+8282, U+82b1, U+8425, U+843d, U+867d, U+88c5, U+89c6, U+8bb2, U+8bc1, U+8bed, U+8bf7, U+8c03, U+8c08, U+8d23, U+8d28, U+8d39, U+8d8a, U+8db3, U+8ddf, U+8f6c, U+8f7b, U+8f83, U+8fd1, U+8fdc, U+8fde, U+9009, U+9632, U+963f, U+9645, U+9648, U+9664, U+968f, U+96c6, U+9700, U+9752, U+9769, U+97f3, U+9879, U+987b, U+9996, U+9a8c, U+9ec4, U+9ed1
}
@font-face {
font-family: MiSans VF;
font-weight: 1 999;
font-display: swap;
src: url(https://cdn-file.hyperos.mi.com/mi-font-service/misans_vf/VF/cs.b9dd9990c4e70f2d.3.woff2) format("woff2"), url(https://cdn-file.hyperos.mi.com/mi-font-service/misans_vf/VF/cs.b9dd9990c4e70f2d.3.woff) format("woff"), url(https://cdn-file.hyperos.mi.com/mi-font-service/misans_vf/VF/cs.b9dd9990c4e70f2d.3.ttf) format("truetype"), url(https://cdn-file.hyperos.mi.com/mi-font-service/misans_vf/VF/cs.b9dd9990c4e70f2d.3.eot) format("embedded-opentype");
unicode-range: U+4e3e, U+4e45, U+4e50, U+4e60, U+4e70-4e71, U+4e91, U+4ecd, U+4f0a, U+4f24, U+4f4e, U+4f59, U+4f5b, U+4fee, U+5012, U+503c, U+5047, U+505c, U+5145, U+514d, U+5170, U+517b, U+51b2, U+51b7, U+5218, U+521a-521b, U+521d, U+5224, U+523b, U+526f, U+52a9, U+52b3, U+5343, U+534f, U+5360-5361, U+536b, U+5370, U+538b, U+53cb-53cc, U+53e5, U+5426, U+54c8, U+54ea, U+554a, U+5584, U+559c, U+56f4, U+5750, U+575a, U+5883, U+591c, U+5988, U+5a01, U+5b97, U+5ba1-5ba4, U+5bb3, U+5bc6, U+5bcc, U+5c04, U+5c3c, U+5c42, U+5c45, U+5c5e, U+5dde, U+5dee, U+5e1d, U+5e2e, U+5f02, U+5f39, U+5f81, U+5f85, U+5fae, U+6000, U+6015, U+6025, U+60a8, U+60ca, U+613f, U+6267, U+627f, U+6297, U+62c5, U+62ff, U+6309, U+6325, U+6392, U+653b, U+6545, U+6597, U+65e2, U+665a, U+666e, U+671d, U+6728, U+6740, U+6751, U+6811, U+6821, U+68c0, U+6a21, U+6b22, U+6b62, U+6bdb, U+6c49, U+6c5f, U+6c89, U+6cb3, U+6ce2, U+6d32, U+6e38, U+6e90, U+6f14, U+6fc0, U+7075, U+70ed, U+7236, U+72af, U+72b6, U+72ec, U+7387, U+73af, U+7403, U+751a, U+7537, U+7565, U+7591, U+75db, U+7687, U+76ae, U+76ca, U+7701, U+7834, U+798f, U+79ef, U+7adf, U+7b56, U+7b80, U+7c73, U+7d20, U+7eaa, U+7eb3, U+7ec6-7ec7, U+7ee7, U+7f51, U+7f6a, U+7f6e, U+804c, U+80a1, U+80b2, U+80dc, U+8111, U+8138, U+822c, U+8239, U+82cf, U+82e5-82e6, U+8303, U+836f, U+83b7, U+8840, U+8863, U+89d2, U+8b66, U+8bc9, U+8bd5, U+8bfb, U+8c01, U+8d1f, U+8d22, U+8d85, U+8ff0, U+8ffd, U+9000-9002, U+901f, U+914d, U+91c7, U+94b1, U+94f6, U+9519, U+9633, U+9636, U+9646, U+964d, U+9650, U+9669, U+96f7, U+9759, U+9884, U+98df, U+9f99
}
@font-face {
font-family: MiSans VF;
font-weight: 1 999;
font-display: swap;
src: url(https://cdn-file.hyperos.mi.com/mi-font-service/misans_vf/VF/cs.77ad5100083db1de.4.woff2) format("woff2"), url(https://cdn-file.hyperos.mi.com/mi-font-service/misans_vf/VF/cs.77ad5100083db1de.4.woff) format("woff"), url(https://cdn-file.hyperos.mi.com/mi-font-service/misans_vf/VF/cs.77ad5100083db1de.4.ttf) format("truetype"), url(https://cdn-file.hyperos.mi.com/mi-font-service/misans_vf/VF/cs.77ad5100083db1de.4.eot) format("embedded-opentype");
unicode-range: U+4e34, U+4e3d, U+4e61, U+4e88, U+4e92, U+4ea1, U+4ea6, U+4eae, U+4ecb, U+4ed8, U+4efd, U+4f18, U+4f26, U+4f2f, U+51cf, U+5251, U+5267, U+52d2, U+5347, U+535a, U+5371, U+5382, U+53bf, U+53f3, U+53f6, U+5409, U+542b, U+5438, U+5440, U+5473, U+547c, U+54e5, U+56f0, U+56fa, U+5723, U+5747, U+574f, U+5757, U+57df, U+592e, U+5987, U+59d0, U+5a18, U+5a5a, U+5b88, U+5b9d, U+5bfb, U+5c01, U+5c1a, U+5c4b, U+5c81, U+5c9b, U+5cb8, U+5de6, U+5de8, U+5e2d, U+5e78, U+5e8f, U+5ea7, U+5ead, U+5eb7, U+5f1f, U+5f52, U+5f55, U+5fd9, U+5ffd, U+602a, U+6050, U+6069, U+6076, U+6162, U+6237, U+6258, U+62db, U+62e9, U+62ec, U+635f, U+6362, U+6388-6389, U+638c, U+63a2, U+63a7, U+6447, U+6551, U+6562-6563, U+65c5, U+65e7, U+6625, U+666f, U+667a, U+6697, U+670b, U+6742, U+6750, U+677e-677f, U+67aa, U+67b6, U+6838, U+68a6, U+695a, U+697c, U+6982, U+6b27, U+6b3e, U+6bd2, U+6beb, U+6c38, U+6c99, U+6cb9, U+6cfd, U+6d0b, U+6d4b, U+6e10, U+6e29, U+6e2f, U+6e56, U+6e7e, U+706d, U+70ae, U+70c8, U+70df, U+7248, U+73ed, U+7530, U+753b, U+7597, U+767b, U+76d1, U+775b, U+7761, U+7763, U+77ed, U+793c, U+7968, U+79d8, U+79fb, U+7a0e, U+7a7f, U+7aef, U+7b14, U+7d22, U+7f16, U+7f3a, U+8033, U+80af, U+80cc, U+80e1, U+811a, U+8131, U+822a, U+8230, U+826f, U+827a, U+8349, U+83ab, U+8457, U+85cf, U+8651, U+8865, U+8ba8, U+8bc4, U+8bcd, U+8bd7, U+8bef, U+8bfa, U+8c13, U+8c22, U+8d25, U+8d27, U+8d35, U+8d76, U+8dd1, U+8f93, U+9010, U+9047, U+9057, U+9152, U+91ca, U+91ce, U+949f, U+94c1, U+9500, U+95fb, U+9635, U+9644, U+96e8, U+9732, U+9760, U+987a, U+987e-987f, U+989d, U+996d, U+9999, U+9c7c, U+9c81, U+9c9c
}
@font-face {
font-family: MiSans VF;
font-weight: 1 999;
font-display: swap;
src: url(https://cdn-file.hyperos.mi.com/mi-font-service/misans_vf/VF/cs.420808337216d98a.5.woff2) format("woff2"), url(https://cdn-file.hyperos.mi.com/mi-font-service/misans_vf/VF/cs.420808337216d98a.5.woff) format("woff"), url(https://cdn-file.hyperos.mi.com/mi-font-service/misans_vf/VF/cs.420808337216d98a.5.ttf) format("truetype"), url(https://cdn-file.hyperos.mi.com/mi-font-service/misans_vf/VF/cs.420808337216d98a.5.eot) format("embedded-opentype");
unicode-range: U+4e01, U+4e1d, U+4e43, U+4ebf, U+4f11, U+4f19, U+4f1f, U+4f38, U+4fb5, U+4fc3-4fc4, U+501f, U+5065, U+5144, U+5178, U+51b0, U+51e1, U+5200, U+5211, U+523a, U+52aa, U+5348, U+5356, U+5377, U+541b, U+5434, U+54f2, U+5510, U+552e-552f, U+559d, U+5634, U+56ed, U+5706, U+5766, U+57c3, U+57f9, U+5802, U+5854, U+585e, U+590f, U+5957, U+5965, U+59bb, U+59c6, U+59d1, U+59d3, U+5b59, U+5b81, U+5b87, U+5b8b, U+5bab, U+5bbd, U+5c0a, U+5c24, U+5ddd, U+5e84, U+5e8a, U+5e93, U+5e97, U+5ef6, U+5f03-5f04, U+5f31, U+5f92, U+5fcd, U+5fd8, U+6012, U+60b2, U+620f, U+6269, U+626c, U+6293, U+6298, U+62b1, U+62b5, U+62cd, U+62e5, U+632f, U+63aa, U+63e1, U+641e, U+6446, U+6469, U+65c1, U+66b4, U+66f2, U+66ff, U+672b, U+6731, U+675f, U+6768, U+6770, U+6790, U+67d3, U+6885, U+68ee, U+690d, U+6b32, U+6b4c, U+6b8b, U+6bc1, U+6bd5, U+6d1b, U+6d1e, U+6df7, U+6f5c, U+706f, U+70b8, U+719f, U+7237-7238, U+7259, U+725b, U+72c2, U+731b, U+7389, U+73a9, U+7532-7533, U+76d6, U+76d8, U+76db, U+76df, U+7840, U+786c, U+7956, U+7981, U+79c0-79c1, U+79cb, U+7a33, U+7a97, U+7ade, U+7b51, U+7bc7, U+7eaf, U+7eb8, U+7ec3, U+7edc, U+7eff, U+7f13, U+7ffb, U+8089, U+81e3, U+821e, U+8363, U+8428, U+8499, U+864e, U+865a, U+8857, U+8bad, U+8bbf, U+8bda, U+8bf8, U+8c0b, U+8c37, U+8d1d, U+8d2d, U+8d38, U+8d5b, U+8d75, U+8da3, U+8df3, U+8f6e-8f6f, U+8f7d, U+8fc5, U+8fce, U+8feb, U+8ff7, U+8ff9, U+9003, U+900f, U+9014, U+904d, U+906d, U+907f, U+90d1, U+9192, U+9488, U+9547, U+95ea, U+9634, U+9690, U+96c4-96c5, U+96ea, U+9707, U+9875-9876, U+9986, U+9aa8, U+9b3c, U+9ea6, U+9ebb, U+9ed8, U+9f13, U+9f50
}
@font-face {
font-family: MiSans VF;
font-weight: 1 999;
font-display: swap;
src: url(https://cdn-file.hyperos.mi.com/mi-font-service/misans_vf/VF/cs.1dbe1c54c0ad524b.6.woff2) format("woff2"), url(https://cdn-file.hyperos.mi.com/mi-font-service/misans_vf/VF/cs.1dbe1c54c0ad524b.6.woff) format("woff"), url(https://cdn-file.hyperos.mi.com/mi-font-service/misans_vf/VF/cs.1dbe1c54c0ad524b.6.ttf) format("truetype"), url(https://cdn-file.hyperos.mi.com/mi-font-service/misans_vf/VF/cs.1dbe1c54c0ad524b.6.eot) format("embedded-opentype");
unicode-range: U+4e08, U+4e30, U+4e39, U+4e4c, U+4e58, U+4eab, U+4ec1, U+4ed9, U+4eea, U+4ef0, U+4eff, U+4f30, U+4f34, U+4fa0, U+4fa7, U+4fd7, U+503a, U+503e, U+504f, U+5076-5077, U+507f, U+5192, U+520a, U+52b2, U+52c7, U+5385, U+5389, U+539a, U+53ec, U+53f9, U+542f, U+5446, U+54b1, U+54ed, U+5531, U+5566, U+558a, U+5708, U+5806, U+5899, U+593a, U+594b, U+5954, U+5956, U+5976, U+5999, U+59b9, U+5a46, U+5b54, U+5b63-5b64, U+5b9c, U+5bd2, U+5c16, U+5c3e, U+5de7, U+5e01, U+5e55, U+5e86, U+5f17, U+5f69, U+5f79, U+5f7b-5f7c, U+5f84, U+5f90, U+5fc6, U+5fe0, U+6062, U+6068, U+6070, U+60a3, U+60ef, U+6108, U+61c2, U+6234, U+62bd, U+62d2, U+62dc, U+6302, U+6311, U+6355, U+63cf, U+63f4, U+6478, U+64a4, U+64ad, U+64cd, U+656c, U+65e6, U+6620, U+6653, U+6682, U+66fc, U+6717, U+675c, U+684c, U+6865, U+6a2a, U+6b8a, U+6c47, U+6c7d, U+6cbf, U+6cdb, U+6cea, U+6cf0, U+6d17, U+6d25, U+6d2a, U+6d6a, U+6d89, U+6da6, U+6de1, U+6f6e, U+7070, U+707e, U+708e, U+70e6-70e7, U+7206, U+724c, U+72b9, U+72d7, U+732e, U+739b, U+73cd, U+73e0, U+745e, U+74e6, U+75be, U+75c7, U+7801, U+78b0, U+7a77, U+7ae5, U+7b26, U+7b7e, U+7cae, U+7d2f, U+7e41, U+7eb5, U+7eb7, U+7ecd, U+7f18, U+7f29, U+7f5a, U+7f62, U+7f8a, U+7ffc, U+8036, U+805a, U+80c6, U+80de, U+80f8, U+817f, U+820d, U+827e, U+8336, U+8352, U+83b1, U+83dc, U+848b, U+84dd, U+866b, U+878d, U+8861, U+888b, U+88ad, U+88c1-88c2, U+89e6, U+8ba2, U+8baf, U+8bd1, U+8bfe, U+8d2b, U+8d56, U+8d5e, U+8d6b, U+8ddd, U+8f70, U+8f91, U+8fa9, U+8fdd, U+90a6, U+955c, U+95ed, U+95f9, U+963b, U+9677, U+9694, U+969c, U+96f6, U+97e9, U+9a7b, U+9b42, U+9b54, U+9e1f, U+9f3b
}
@font-face {
font-family: MiSans VF;
font-weight: 1 999;
font-display: swap;
src: url(https://cdn-file.hyperos.mi.com/mi-font-service/misans_vf/VF/cs.ed58b14505caca5a.7.woff2) format("woff2"), url(https://cdn-file.hyperos.mi.com/mi-font-service/misans_vf/VF/cs.ed58b14505caca5a.7.woff) format("woff"), url(https://cdn-file.hyperos.mi.com/mi-font-service/misans_vf/VF/cs.ed58b14505caca5a.7.ttf) format("truetype"), url(https://cdn-file.hyperos.mi.com/mi-font-service/misans_vf/VF/cs.ed58b14505caca5a.7.eot) format("embedded-opentype");
unicode-range: U+4e27, U+4e4f, U+4e54, U+4e95, U+4ec7, U+4f0d, U+4f0f, U+4f2a, U+4f69, U+4fa6, U+500d, U+50a8, U+5141, U+517c, U+518c, U+51ac, U+51c0, U+51e4, U+51ed, U+51ef, U+51f6, U+5238, U+5242, U+5269, U+529d, U+52b1, U+52c3, U+52e4, U+53d4, U+5413, U+5439, U+5448, U+5761, U+5821, U+58a8, U+58c1, U+58ee, U+5949, U+594f, U+5974, U+5a92, U+5b99, U+5baa, U+5bbe, U+5c38, U+5c3a, U+5c4a, U+5ca9, U+5cf0, U+5d07, U+5de1, U+5e15, U+5e45, U+5e7b, U+5e9f, U+5f6d, U+5fa1, U+5fe7, U+604b, U+6084, U+6089, U+60dc, U+60e0, U+60e8, U+6124, U+6148, U+6167, U+6212, U+622a, U+624e, U+6251, U+626b, U+6270, U+62a2, U+62ac, U+62d4, U+62d6, U+62df, U+633a, U+63a9, U+63d2, U+641c, U+6444, U+6492, U+649e, U+654f, U+65cb, U+65d7, U+660f, U+6628, U+6668, U+66f9, U+6735, U+676f, U+679d, U+67f3, U+6851, U+6881, U+6b23, U+6b96, U+6bbf, U+6c0f, U+6c57, U+6c61, U+6ce5, U+6d01, U+6d6e, U+6db2, U+6e21, U+6ed1, U+6eda, U+6f02, U+6f2b, U+7126, U+71c3, U+722c, U+7518, U+756a, U+75af, U+7686, U+76fe, U+7709, U+77a7, U+77db, U+77ff, U+788d-788e, U+78e8, U+79df, U+79e6, U+7a0d, U+7bad, U+7bb1, U+7c89, U+7c97, U+7cca, U+7ed5, U+7ee9-7eea, U+7efc, U+7f72, U+8010, U+8083, U+80a9, U+80c1, U+814a, U+8170, U+8212, U+8247, U+8258, U+8361, U+8377, U+83f2, U+8482, U+8584, U+86cb, U+8bca, U+8be6, U+8c6a, U+8d21, U+8d2f, U+8d34, U+8d4f, U+8d8b, U+8dc3, U+8e2a, U+8f86, U+8f88, U+8f9b, U+8f9e, U+8fd4, U+8fdf, U+8fea, U+9012, U+903c, U+90aa, U+90ce, U+9178, U+9501, U+952e, U+95f2, U+9605, U+9686, U+970d, U+9887, U+9891, U+9897, U+989c, U+98d8, U+9910, U+996e, U+9a71, U+9a76, U+9a7e, U+9a82, U+9a91, U+9a97, U+9e21, U+9ece, U+9f84
}
@font-face {
font-family: MiSans VF;
font-weight: 1 999;
font-display: swap;
src: url(https://cdn-file.hyperos.mi.com/mi-font-service/misans_vf/VF/cs.0c0c93c6a76b948c.8.woff2) format("woff2"), url(https://cdn-file.hyperos.mi.com/mi-font-service/misans_vf/VF/cs.0c0c93c6a76b948c.8.woff) format("woff"), url(https://cdn-file.hyperos.mi.com/mi-font-service/misans_vf/VF/cs.0c0c93c6a76b948c.8.ttf) format("truetype"), url(https://cdn-file.hyperos.mi.com/mi-font-service/misans_vf/VF/cs.0c0c93c6a76b948c.8.eot) format("embedded-opentype");
unicode-range: U+4e1b, U+4e22, U+4e8f, U+4ed4, U+4ed7, U+4ef2, U+4f73, U+4faf, U+4fe9, U+517d, U+51a0, U+51af, U+51c9, U+51cc, U+51dd, U+5272, U+5306, U+5362, U+538c, U+53d9, U+5410, U+5415, U+5428, U+543e, U+54ac, U+54c0, U+55b7, U+561b, U+5782, U+57cb, U+5939, U+5948, U+5a1c, U+5b5f, U+5bbf, U+5bc2, U+5bc4, U+5bff, U+5c18, U+5c1d, U+5c48, U+5c82, U+5ce1, U+5e10, U+5e3d, U+5e7c-5e7d, U+5ef7, U+5f2f, U+5faa, U+601c, U+6028, U+6052, U+606d, U+607c, U+609f, U+60d1, U+60e7, U+614c, U+614e, U+6170, U+6208, U+6241, U+6263, U+6276, U+6291, U+6296, U+629a-629b, U+6324, U+63ed, U+642c, U+64e6, U+6566, U+6572, U+65e8, U+6606, U+660c, U+664b, U+6676, U+6696, U+66f0, U+67cf, U+67d4, U+67f1, U+68af-68b0, U+6905, U+6b3a, U+6c60, U+6c64, U+6c88, U+6c9f, U+6cc9, U+6d45, U+6d53, U+6d82, U+6d8c, U+6e14, U+6e7f, U+6fb3, U+70bc, U+70c2, U+7164, U+718a, U+71d5, U+7262, U+7267, U+7272, U+7275, U+72e0, U+72f1, U+72fc, U+730e, U+731c, U+732a-732b, U+7384, U+73bb, U+7434, U+745f, U+74f6, U+75bc, U+76d7, U+78c1, U+795d, U+7965, U+79e9, U+7a3f, U+7a46, U+7af9, U+7b79, U+7c4d, U+7c92, U+7cb9, U+7cd6, U+7d2b, U+7ea0, U+7eb9, U+7ebd, U+8017, U+806a, U+809d, U+80a5, U+8109, U+810f, U+8150, U+8179, U+817e, U+81c2, U+8270, U+82b3, U+82cd, U+83cc, U+8463, U+86c7, U+8870, U+8881, U+8896, U+8a89, U+8be2, U+8bf1, U+8c8c, U+8d37, U+8d3a, U+8d4b, U+8d54, U+8d64, U+8dcc, U+8df5, U+8e0f, U+8eb2, U+8eba, U+8f89, U+8f96, U+8fc1, U+8fc8, U+900a, U+903b, U+9065, U+9075, U+9093, U+90ae, U+90bb, U+9274, U+94a2, U+94bb, U+94fa, U+950b, U+9601, U+9614, U+966a, U+9676, U+96fe, U+978b, U+97e6, U+9970, U+9b4f, U+9e23, U+9f20
}
@font-face {
font-family: MiSans VF;
font-weight: 1 999;
font-display: swap;
src: url(https://cdn-file.hyperos.mi.com/mi-font-service/misans_vf/VF/cs.6f2593f221c73e6a.9.woff2) format("woff2"), url(https://cdn-file.hyperos.mi.com/mi-font-service/misans_vf/VF/cs.6f2593f221c73e6a.9.woff) format("woff"), url(https://cdn-file.hyperos.mi.com/mi-font-service/misans_vf/VF/cs.6f2593f221c73e6a.9.ttf) format("truetype"), url(https://cdn-file.hyperos.mi.com/mi-font-service/misans_vf/VF/cs.6f2593f221c73e6a.9.eot) format("embedded-opentype");
unicode-range: U+4e11, U+4e18, U+4e32, U+4e59, U+4e73, U+4ec6, U+4ed3, U+4f10, U+4f8d, U+4fca, U+4ff1, U+5085, U+50b2, U+5179, U+51fd, U+5237, U+524a, U+5265, U+52a3, U+52ab, U+5339, U+5353, U+5367, U+53db, U+541e, U+5475, U+54e6, U+54e9, U+54fc, U+5507, U+5524, U+5609, U+5740, U+575b, U+582a, U+586b, U+5893, U+58f3, U+5938, U+5951, U+5996, U+59a5, U+59a8, U+59ff, U+5a03, U+5acc, U+5b85, U+5b8f, U+5bf8, U+5bfa, U+5c3f, U+5c4f, U+5c65, U+5c97, U+5cb3, U+5e05, U+5e99, U+5e9e, U+5ec9, U+5f25, U+5fcc, U+6016, U+6094, U+60ac, U+60df, U+60e9, U+611a, U+6254, U+626d, U+62bc, U+62e8, U+62f3, U+62fc, U+62fe, U+6316, U+6321, U+6323, U+6349, U+6377, U+63a0, U+642d, U+643a, U+659c, U+65a4-65a5, U+6602, U+6643, U+6674, U+679a, U+67ef, U+6842-6843, U+6863, U+68c9, U+6b20, U+6b47, U+6b7c, U+6bc5, U+6c27, U+6c6a, U+6c83, U+6d69, U+6da8, U+6dfb, U+6e83, U+6e9c, U+6ecb, U+6ef4, U+6f20, U+7235, U+727a, U+73b2, U+7483, U+74dc, U+758f, U+75ab, U+75b2, U+75d5, U+7626, U+764c, U+76b1, U+76d0, U+76ef, U+7741, U+7897, U+796d, U+7978, U+7a00, U+7a74, U+7a9d, U+7b3c, U+7cdf, U+7eb2, U+7ed8, U+7f1d, U+7f34, U+7fbd, U+7ff0, U+8000, U+8015, U+804a, U+808c, U+809a, U+80a0, U+80a4, U+80bf, U+80c3, U+80d6, U+8154, U+8180, U+819c, U+820c, U+8231, U+82ac, U+82d7, U+8328, U+832b, U+8389, U+83b2, U+8427, U+845b, U+859b, U+8702, U+8986, U+89c8, U+8bbc, U+8c28, U+8c46, U+8c6b, U+8d24, U+8d2a, U+8d62, U+8d74, U+8de8, U+8f68, U+8fa8, U+8fb1, U+9063, U+9080, U+90c1, U+90ed, U+9177, U+9189, U+94c3, U+94dc, U+9510, U+9526, U+95f7, U+9675, U+96b6, U+96c7, U+96d5, U+9738, U+98a4, U+9972, U+997f, U+9e3f, U+9e4f, U+9e70, U+9f7f
}
@font-face {
font-family: MiSans VF;
font-weight: 1 999;
font-display: swap;
src: url(https://cdn-file.hyperos.mi.com/mi-font-service/misans_vf/VF/cs.6ac14e3b704c950f.10.woff2) format("woff2"), url(https://cdn-file.hyperos.mi.com/mi-font-service/misans_vf/VF/cs.6ac14e3b704c950f.10.woff) format("woff"), url(https://cdn-file.hyperos.mi.com/mi-font-service/misans_vf/VF/cs.6ac14e3b704c950f.10.ttf) format("truetype"), url(https://cdn-file.hyperos.mi.com/mi-font-service/misans_vf/VF/cs.6ac14e3b704c950f.10.eot) format("embedded-opentype");
unicode-range: U+4e7e, U+4ea8, U+4ead, U+4ed1, U+4f50, U+4fd8, U+5018, U+50ac, U+50bb, U+50e7, U+5112, U+5188, U+51bb, U+52c9, U+52fe, U+5320, U+5351, U+535c, U+5375, U+537f, U+53a8, U+5401, U+540a, U+541f, U+5435, U+543b-543c, U+5490, U+54bd, U+5509, U+5565, U+5582, U+5589, U+5598, U+55ef, U+5631, U+56ca, U+5733, U+5851, U+5915, U+5978, U+5984, U+59ae, U+59fb, U+5a07, U+5a74, U+5ac1-5ac2, U+5b55, U+5b5d, U+5bb0, U+5bb4, U+5c09, U+5c60, U+5eb8, U+5eca, U+5f8c, U+60a0, U+60a6, U+6101, U+6109, U+6155, U+6247, U+626e-626f, U+62ab, U+62b9, U+62c6, U+62d8, U+62e6, U+6328, U+644a, U+6458, U+6467, U+6591, U+65bc, U+6734, U+6746, U+67dc, U+67f4, U+680f, U+6846, U+68cb, U+68f5, U+6b49, U+6b67, U+6c1b, U+6cc4, U+6cca, U+6ce1, U+6d51, U+6d59, U+6d66, U+6d9b, U+6dcb, U+6e34, U+6ee9, U+6f0f, U+6f58, U+704c, U+7089, U+7239, U+72ed, U+7329, U+7391, U+7487, U+751c, U+752b, U+7545, U+754f, U+755c, U+7586, U+7624, U+76c6, U+76c8, U+76d2, U+76f2, U+7720, U+77aa, U+77ac, U+77e3, U+77e9, U+77ee, U+78a7, U+79a7, U+79d2, U+7a83, U+7aed, U+7b52, U+7ea4, U+7ef3, U+7f20, U+7f69, U+7f9e, U+7fc1, U+7fc5, U+8038, U+803b, U+8096, U+80ba, U+80c0, U+80ce, U+80f6, U+8106, U+81ed, U+8273, U+829d, U+838e, U+8461, U+846c, U+84c4, U+853d, U+85aa, U+86ee, U+871c, U+886b, U+8877, U+88d5, U+88e4, U+88f8, U+8a93, U+8bb6, U+8bde, U+8c05, U+8c0a, U+8c2d, U+8d3c, U+8d3e, U+8d4c, U+8d50, U+8d60, U+8d81, U+8dea, U+8f85, U+8f9f, U+8fbd, U+9006, U+901d, U+9042, U+906e, U+916c, U+94a6, U+94ed, U+94fe, U+9505, U+9521, U+95ef, U+9640, U+9655, U+971e, U+987d, U+9888, U+98a0, U+9971, U+9a70, U+9a73, U+9aa4, U+9c8d, U+9e2d, U+9e7f
}
@font-face {
font-family: MiSans VF;
font-weight: 1 999;
font-display: swap;
src: url(https://cdn-file.hyperos.mi.com/mi-font-service/misans_vf/VF/cs.af8da91ea228d8ab.11.woff2) format("woff2"), url(https://cdn-file.hyperos.mi.com/mi-font-service/misans_vf/VF/cs.af8da91ea228d8ab.11.woff) format("woff"), url(https://cdn-file.hyperos.mi.com/mi-font-service/misans_vf/VF/cs.af8da91ea228d8ab.11.ttf) format("truetype"), url(https://cdn-file.hyperos.mi.com/mi-font-service/misans_vf/VF/cs.af8da91ea228d8ab.11.eot) format("embedded-opentype");
unicode-range: U+4ea9, U+4f1e, U+4fa8, U+4fef, U+5021, U+5026, U+50da, U+50f5, U+5146, U+5154, U+51c4, U+51d1, U+522e, U+5239, U+526a, U+52cb, U+532a, U+5398, U+53a6, U+53c9, U+53e0, U+540f, U+5429, U+5492, U+54ce, U+54d1, U+5561, U+5578, U+5583, U+55bb, U+5632, U+5662, U+56b7, U+5751, U+575f-5760, U+5784, U+5835, U+5937, U+59ca, U+59da, U+59e8, U+5a9a, U+5bd3, U+5be1, U+5be8, U+5c41, U+5cad, U+5d16, U+5d29, U+5de2, U+5deb, U+5dfe, U+5f0a, U+5f13, U+5f26, U+5fbd, U+6014, U+6055, U+6073, U+60f6, U+60f9, U+6123, U+6127, U+6168, U+61be, U+61d2, U+621a, U+6284, U+62d0, U+62d3, U+632a, U+633d, U+6350, U+6367, U+638f, U+6398, U+6454, U+6491, U+6495, U+64b0, U+65ec, U+65fa, U+662d, U+6655, U+6670, U+676d, U+67af, U+67c4, U+68cd, U+68d2, U+6b6a, U+6bb7, U+6cfc, U+6d12, U+6d74, U+6d78, U+6d85, U+6db5, U+6deb, U+6dee, U+6e0a, U+6e20, U+6e58, U+6eaa, U+6eb6, U+6ede, U+6ee5, U+6f06, U+70ad, U+7130, U+714c, U+715e, U+722a, U+72c4, U+72d0, U+72ee, U+7334, U+733f, U+73ab, U+743c, U+74f7, U+75f4, U+76fc, U+7728, U+780d, U+7816, U+7855, U+7891, U+7985, U+7a23, U+7a84, U+7a91, U+7b28, U+7b4b, U+7bee, U+7c98, U+7ef5, U+7f55, U+7fd4, U+7fe0, U+800d, U+8058, U+80a2, U+80be, U+8102, U+810a, U+8116, U+813e, U+817a, U+819d, U+8206, U+821f, U+8236, U+8292, U+8302, U+8305, U+8350, U+83e9, U+8404, U+840d, U+84b2, U+84b8, U+8521, U+85e4, U+8679, U+8776, U+8822, U+8854, U+888d, U+8bbd, U+8c0e, U+8c26, U+8c31, U+8d1e, U+8d26, U+8d5a, U+8eaf, U+8fb0, U+9022, U+902e, U+9038, U+90ca, U+90e1, U+9489, U+9493, U+94a9, U+9610, U+964c, U+9661, U+96c0, U+97ad, U+9881, U+9965, U+9976, U+997c, U+9a84, U+9a9a, U+9e45, U+9f0e
}
@font-face {
font-family: MiSans VF;
font-weight: 1 999;
font-display: swap;
src: url(https://cdn-file.hyperos.mi.com/mi-font-service/misans_vf/VF/cs.141da5f0dc12316c.12.woff2) format("woff2"), url(https://cdn-file.hyperos.mi.com/mi-font-service/misans_vf/VF/cs.141da5f0dc12316c.12.woff) format("woff"), url(https://cdn-file.hyperos.mi.com/mi-font-service/misans_vf/VF/cs.141da5f0dc12316c.12.ttf) format("truetype"), url(https://cdn-file.hyperos.mi.com/mi-font-service/misans_vf/VF/cs.141da5f0dc12316c.12.eot) format("embedded-opentype");
unicode-range: U+4e38, U+4e56, U+4e5e, U+4f3d, U+4f63, U+508d, U+5151, U+515c, U+5180, U+51a4, U+51f0, U+5256, U+5288, U+52ff, U+5308, U+5319, U+5378, U+5384, U+53a2, U+5495-5496, U+54a8, U+54b3, U+54b8, U+54c4, U+54c7, U+54d7, U+54df, U+54e8, U+5580, U+55d3, U+563b, U+563f, U+574a, U+574e, U+5792, U+5824, U+584c, U+5858, U+58e4, U+58f6, U+59dc, U+5a1f, U+5a31, U+5a36, U+5ab3, U+5ae9, U+5b9b, U+5ba0, U+5bc7, U+5c51, U+5c61, U+5cfb, U+5d14, U+5de9, U+5df7, U+5e06, U+5e18, U+5e62, U+5f66, U+5f6a, U+6021, U+602f, U+604d, U+62e2, U+632b, U+634f, U+635e, U+6380, U+6401, U+640f, U+64c5, U+6500, U+658b-658c, U+65a9, U+65f1, U+6614, U+6627, U+673d, U+6756, U+6816, U+682a, U+683d, U+6853, U+6869, U+6876, U+68da, U+68e0, U+690e, U+699c, U+6bd9, U+6c41, U+6c5d, U+6cab, U+6cbc, U+6cbe, U+6ce3, U+6dd8, U+6e17, U+6ea2, U+6ee8, U+70db, U+7109, U+711a, U+7199, U+723d, U+73ca, U+7433, U+7470, U+7779, U+7784, U+778e, U+7792, U+7838, U+788c, U+7948, U+7977, U+7984, U+79bd, U+79c3, U+7a3b, U+7a3d, U+7a9c, U+7ad6, U+7b1b, U+7cd5, U+7eb1, U+7eba, U+7ec5, U+7ed1, U+7ee2-7ee3, U+7f50, U+8086, U+80f3, U+818a, U+81a8, U+8205, U+82a6, U+82af, U+82f9, U+8346, U+83ca, U+84ec, U+864f, U+8681, U+87ba, U+884d, U+886c, U+88d9, U+88f9, U+8a79, U+8b6c, U+8bc8, U+8bf5, U+8c0d, U+8c10, U+8c1c, U+8c2c, U+8c34, U+8c79, U+8d29, U+8d2c, U+8d3f, U+8d9f, U+8e22, U+8e29, U+8e72, U+8e81, U+8f69, U+8f74, U+8f7f, U+8f90, U+8fa3, U+8fc4, U+8fe6, U+90b1, U+9119, U+9187, U+94a5, U+94a7, U+94f8, U+953b, U+9551, U+960e, U+9699, U+96c1, U+96cc, U+9706, U+9709, U+9756, U+97f5, U+9882, U+9896, U+9a74, U+9a87, U+9b44, U+9e26, U+9f9f
}
@font-face {
font-family: MiSans VF;
font-weight: 1 999;
font-display: swap;
src: url(https://cdn-file.hyperos.mi.com/mi-font-service/misans_vf/VF/cs.c41a65c89ff7abe2.13.woff2) format("woff2"), url(https://cdn-file.hyperos.mi.com/mi-font-service/misans_vf/VF/cs.c41a65c89ff7abe2.13.woff) format("woff"), url(https://cdn-file.hyperos.mi.com/mi-font-service/misans_vf/VF/cs.c41a65c89ff7abe2.13.ttf) format("truetype"), url(https://cdn-file.hyperos.mi.com/mi-font-service/misans_vf/VF/cs.c41a65c89ff7abe2.13.eot) format("embedded-opentype");
unicode-range: U+4e10, U+4e19, U+4e2b, U+4f84, U+4fa3, U+4fae, U+4ffa, U+501a, U+5029, U+51a5, U+51f3, U+51ff, U+5203, U+527f, U+52d8, U+52df, U+5300, U+5352, U+53a5, U+53ed-53ee, U+545c, U+54a7, U+54af, U+54c9, U+5587, U+55c5, U+55e3, U+56bc, U+56da, U+573e, U+576a, U+5783, U+57ab, U+57ae, U+5815, U+594e, U+5960, U+5962, U+5983, U+5986, U+5992, U+59ec, U+5ac9, U+5bde, U+5c2c, U+5c34, U+5c7f, U+5c9a, U+5d0e, U+5f18, U+5f6c, U+60d5, U+6115, U+618e, U+61c8, U+62c2, U+62d9, U+62ef, U+62f1, U+6346, U+6361, U+6363, U+63b7, U+6405, U+655e, U+65a7, U+65f7, U+663c, U+6652, U+6664, U+6687, U+6691, U+66ae, U+6749, U+6795, U+67a2, U+680b, U+6817, U+6850, U+68ad, U+68b3, U+68fa, U+69b4, U+6bef, U+6c22, U+6c79, U+6ca6, U+6caa, U+6cb8, U+6ccc, U+6cf3, U+6cfb, U+6d46, U+6da1, U+6daf, U+6dd1, U+6df9, U+6eaf, U+6ed4, U+6f6d, U+6f84, U+6fa1, U+7076, U+707f, U+7092, U+70c1, U+70e4, U+716e, U+71ac, U+71e5, U+72ac, U+72e1, U+72f8, U+7529, U+7538, U+7574, U+75d2, U+7785, U+77a5, U+7802, U+786b, U+78b3, U+7a1a, U+7aa5, U+7bf7, U+7eac, U+7ed2, U+7ede, U+7ef8, U+7f05, U+7f14, U+7f1a, U+7fa1, U+803d, U+803f, U+8155, U+8165, U+818f, U+8299, U+82bd, U+830e, U+8335, U+836b, U+83b9, U+83bd, U+840e, U+841d, U+8511, U+852c, U+8574, U+85c9, U+85e9, U+85fb, U+8650, U+8680, U+86db, U+8700, U+8721, U+8747, U+8859, U+8910, U+8bcf, U+8be1, U+8be7, U+8beb, U+8c15, U+8c23, U+8d31, U+8e44, U+8e48, U+8eac, U+8f9c, U+9017, U+901b, U+903e, U+904f, U+917f, U+949e, U+94ae, U+94c5, U+9556, U+9600, U+964b, U+965b, U+971c, U+9877, U+988a, U+99a8, U+9a7c, U+9ab8, U+9b41, U+9b45, U+9cb8, U+9cde, U+9e3d, U+9e64, U+9e9f, U+9ebd, U+9edb
}
@font-face {
font-family: MiSans VF;
font-weight: 1 999;
font-display: swap;
src: url(https://cdn-file.hyperos.mi.com/mi-font-service/misans_vf/VF/cs.64e92d707619091c.14.woff2) format("woff2"), url(https://cdn-file.hyperos.mi.com/mi-font-service/misans_vf/VF/cs.64e92d707619091c.14.woff) format("woff"), url(https://cdn-file.hyperos.mi.com/mi-font-service/misans_vf/VF/cs.64e92d707619091c.14.ttf) format("truetype"), url(https://cdn-file.hyperos.mi.com/mi-font-service/misans_vf/VF/cs.64e92d707619091c.14.eot) format("embedded-opentype");
unicode-range: U+4e4d, U+4f36, U+4f3a, U+4f51, U+4fcf, U+4fed, U+500f, U+50fb, U+5140, U+516e, U+51a2, U+51b6, U+51f8-51f9, U+5220, U+533f, U+5395, U+53e8-53e9, U+5431, U+5450, U+5455, U+547b, U+548b, U+549a, U+54ee, U+54fa, U+5564, U+556a, U+557c, U+5594, U+55a7, U+55e1, U+55fd, U+560e, U+561f, U+5636, U+566a, U+575d, U+5764, U+57a3, U+5885, U+589f, U+5993, U+59e5, U+5a05, U+5a25, U+5a49, U+5a76, U+5b7d, U+5bdd, U+5c39, U+5c6f, U+5d4c, U+5e16, U+5e1c, U+5e87, U+5e90, U+5ed3, U+5ed6, U+5f70, U+60af, U+60bc, U+60ed, U+6151, U+6177, U+61ff, U+6233, U+627c, U+62e3, U+631f-6320, U+63c9, U+63fd, U+6402, U+6487, U+64d2, U+655b, U+6577, U+65ed, U+664c, U+6726, U+674f, U+6789, U+67a3, U+6813, U+6868, U+6897, U+68a2, U+68d5, U+68d8, U+68f1, U+6a31, U+6a61, U+6b79, U+6bcb, U+6c70, U+6cae, U+6d47, U+6d4f, U+6da9, U+6e3a, U+6e85, U+6f9c, U+707c, U+70af, U+70eb, U+7115, U+714e, U+7184, U+725f, U+7409, U+7410, U+7422, U+745c, U+7476, U+74e3, U+7554, U+762b, U+766b, U+76cf, U+7729, U+772f, U+7737, U+77bb, U+77e2, U+77eb, U+7830, U+789f, U+78b1, U+78c5, U+78f7, U+7901, U+7980, U+79b9, U+79c9, U+7a3c, U+7a9f, U+7aa6, U+7aff, U+7c07, U+7c3f, U+7c9f, U+7caa, U+7ee5, U+7ef0, U+7f06, U+7f15, U+7f38, U+8042, U+804b, U+80da, U+80e7, U+817b, U+819b, U+82d1, U+82df, U+83ba, U+83f1, U+840c, U+8471, U+84c9, U+8513, U+8654, U+865e, U+867e, U+8682, U+868a, U+8695, U+86d9, U+8774, U+88d4, U+88d8, U+88f3, U+895f, U+89c5, U+8ba5, U+8bb3, U+8bc0, U+8c41, U+8d2e, U+8d4e, U+8dcb, U+8e66, U+8f7c, U+8fc2, U+90b5, U+9102, U+91c9, U+9499, U+9524, U+968b, U+96ef, U+9885, U+9988, U+9a6f, U+9a86, U+9ad3, U+9ccd, U+9eef
}
@font-face {
font-family: MiSans VF;
font-weight: 1 999;
font-display: swap;
src: url(https://cdn-file.hyperos.mi.com/mi-font-service/misans_vf/VF/cs.095a221022c600d3.15.woff2) format("woff2"), url(https://cdn-file.hyperos.mi.com/mi-font-service/misans_vf/VF/cs.095a221022c600d3.15.woff) format("woff"), url(https://cdn-file.hyperos.mi.com/mi-font-service/misans_vf/VF/cs.095a221022c600d3.15.ttf) format("truetype"), url(https://cdn-file.hyperos.mi.com/mi-font-service/misans_vf/VF/cs.095a221022c600d3.15.eot) format("embedded-opentype");
unicode-range: U+4ed5, U+4f88, U+5162, U+5189, U+51db, U+5254, U+5323, U+5366, U+53ae, U+542d, U+5499, U+54a6, U+552c, U+553e, U+55dc, U+55e6, U+5618, U+565c, U+56a3, U+575e, U+57a6, U+57d4, U+58d5, U+592d, U+5955, U+5a62, U+5a6a, U+5a7f, U+5ae6, U+5b5c, U+5ba6, U+5bb5, U+5be5, U+5c49, U+5c94, U+5cd9, U+5ce8, U+5ced, U+5d1b, U+5d2d, U+5e9a, U+5eb5-5eb6, U+5f27, U+5f8a, U+5f98, U+5fd2, U+5fd6, U+5fff, U+6020, U+608d, U+6096, U+60eb, U+618b, U+6252, U+625b, U+6273, U+6292, U+62c7, U+62da, U+62f4, U+631a, U+6342, U+63e3, U+63ea, U+6413, U+6479, U+64bc, U+64ce, U+6590, U+659f, U+6666, U+6714-6715, U+6760, U+67ec, U+6805, U+68a8, U+69bb, U+69d0, U+69fd, U+6a71, U+6a90, U+6b86, U+6bd3, U+6c13, U+6c28, U+6c2f, U+6c40, U+6c81, U+6c9b, U+6ca7, U+6d3d, U+6d4a, U+6d95, U+6dc0, U+6dcc, U+6df3, U+6fd2, U+7095, U+717d, U+718f, U+7194, U+7261, U+72c8, U+733e, U+73c0, U+742a, U+745a-745b, U+7578, U+75a4, U+75ae, U+75ea, U+75f0, U+7682, U+7693, U+76d4, U+7766, U+77d7, U+785d, U+78d5, U+7940, U+79ba, U+79fd, U+7a8d, U+7a98, U+7b77, U+7bf1, U+7ca4-7ca5, U+7cd9, U+7d0a, U+7d6e, U+7ece, U+7ef7, U+7efd, U+7f00, U+7f09, U+7f0e, U+7fd8, U+8098, U+80aa, U+812f, U+8235, U+8237, U+82ad, U+82b8, U+82d4, U+82db, U+8304, U+831c, U+84e6, U+8549, U+8718, U+8749, U+87f9, U+8845, U+889c, U+88f4, U+8944, U+8bc5, U+8bec, U+8c0f, U+8d41, U+8d66, U+8db4, U+8dbe, U+8e31, U+8fed, U+9091, U+90b9, U+90dd, U+914c, U+9171, U+9176, U+918b, U+949d, U+94c0, U+94ee, U+94f2, U+9523, U+9525, U+952f, U+9576, U+9698, U+9704, U+9716, U+9761, U+9774, U+978d, U+9798, U+97a0, U+97e7, U+9890, U+9893, U+9975, U+9977, U+9ae6, U+9e43
}
@font-face {
font-family: MiSans VF;
font-weight: 1 999;
font-display: swap;
src: url(https://cdn-file.hyperos.mi.com/mi-font-service/misans_vf/VF/cs.6ffdd5493465a1ff.16.woff2) format("woff2"), url(https://cdn-file.hyperos.mi.com/mi-font-service/misans_vf/VF/cs.6ffdd5493465a1ff.16.woff) format("woff"), url(https://cdn-file.hyperos.mi.com/mi-font-service/misans_vf/VF/cs.6ffdd5493465a1ff.16.ttf) format("truetype"), url(https://cdn-file.hyperos.mi.com/mi-font-service/misans_vf/VF/cs.6ffdd5493465a1ff.16.eot) format("embedded-opentype");
unicode-range: U+4e1e, U+4ea2, U+4ea5, U+4f0e, U+4f22, U+4f43, U+4f5f, U+4f6c, U+4f83, U+4fa5, U+4fac, U+4fde, U+502a, U+5243, U+52fa, U+5315, U+5321, U+5349, U+53f1, U+53fd, U+5443, U+5484, U+5486, U+548e, U+54aa, U+54c6, U+5514, U+5543, U+55b3, U+55bd, U+55e4, U+55e8, U+5600, U+566c, U+568e, U+57a2, U+599e, U+59be, U+5a34, U+5b75, U+5c27, U+5c4e, U+5dcd, U+5e4c, U+5f1b, U+5fcf, U+5fe1, U+5ff1, U+6043, U+6064, U+60da, U+60f0, U+60fa, U+61ca, U+61e6, U+620e, U+622e, U+62e7, U+62ed, U+62f7, U+62fd, U+631b, U+6345, U+634d, U+63ba, U+655d, U+66f3, U+672d, U+67ab, U+67ff, U+6808, U+6854, U+68a7, U+68b5, U+6912, U+692d, U+695e, U+6986, U+6a0a, U+6b89, U+6bb4, U+6c8c, U+6d3c, U+6da4, U+6dc6, U+6e23, U+6e5b, U+6eba, U+6ee4, U+6f47, U+6f88, U+7011, U+708a, U+70ab, U+70b3, U+70bd, U+70d8, U+7118, U+7281, U+72d2, U+72e9, U+731d, U+741b, U+7426, U+748b, U+759a, U+75b9, U+761f, U+763e, U+7696, U+7736, U+7738, U+773a, U+776c, U+77a9, U+77bf, U+77f6, U+780c, U+7845, U+78cb, U+7960, U+7a20, U+7a92, U+7a96, U+7b03, U+7b20, U+7c27, U+7eca, U+7eeb, U+7f2a, U+7f81, U+7fe9, U+8087, U+808b, U+80ae, U+80f0, U+816e, U+81b3, U+81c0, U+81fb, U+8214, U+821c, U+829c, U+82c7, U+8338, U+83c1, U+83c7, U+846b, U+851a, U+854a, U+857e, U+8587, U+85af, U+8757, U+8760, U+88b1, U+8902, U+892a, U+8bdb, U+8c1b, U+8c1f, U+8c24, U+8c5a, U+8d42-8d43, U+8d63, U+8dc4, U+8e09, U+8e0c, U+8e6c, U+8e87, U+8f67, U+8f99, U+8fab, U+8ff8, U+901e, U+9041, U+90b8, U+915d, U+948a, U+94b3, U+94dd, U+9508, U+9555, U+95f8, U+95fa, U+95fd, U+962e, U+9631, U+9647, U+9668, U+96a7, U+96cd, U+970e, U+9776, U+988c, U+9a8f, U+9ca4, U+9e25, U+9f9a
}
@font-face {
font-family: MiSans VF;
font-weight: 1 999;
font-display: swap;
src: url(https://cdn-file.hyperos.mi.com/mi-font-service/misans_vf/VF/cs.e84f7cf1ae448570.17.woff2) format("woff2"), url(https://cdn-file.hyperos.mi.com/mi-font-service/misans_vf/VF/cs.e84f7cf1ae448570.17.woff) format("woff"), url(https://cdn-file.hyperos.mi.com/mi-font-service/misans_vf/VF/cs.e84f7cf1ae448570.17.ttf) format("truetype"), url(https://cdn-file.hyperos.mi.com/mi-font-service/misans_vf/VF/cs.e84f7cf1ae448570.17.eot) format("embedded-opentype");
unicode-range: U+4e52-4e53, U+4eb5, U+4f6f, U+4fd0, U+4fe8, U+4ffe, U+5014, U+502d, U+5195, U+533e, U+5406, U+541d, U+5420, U+545b, U+5471, U+5480, U+548f, U+5520, U+5544, U+55d2, U+55d4, U+5608, U+5657, U+5669, U+56f1, U+5703, U+572d, U+574d, U+57e0, U+5811, U+5830, U+58a9, U+5944, U+595a, U+598a, U+5ad6, U+5ae3, U+5b09, U+5b5a, U+5b70, U+5bc5, U+5c91, U+5d69, U+5df3, U+5e27, U+5e37, U+5e54, U+5e61, U+5eff, U+5f29, U+5f5d, U+5f77, U+5f99, U+6005, U+606a, U+607a, U+609a, U+60b4, U+60b8, U+60d8, U+612b, U+6194, U+62a8, U+62cc, U+62ce, U+6376, U+637b, U+6390, U+63b3, U+63cd, U+63d6, U+6400, U+6414, U+64a9, U+64ae, U+6512, U+6518, U+6538, U+6555, U+6656, U+66d9, U+66dd, U+6845, U+6977, U+69db, U+6a35, U+6a44, U+6a59, U+6a80, U+6b83, U+6bd7, U+6be1, U+6c2e, U+6c72, U+6c90, U+6cbd, U+6e0e, U+6e89, U+6ec7, U+6f13, U+6f31, U+6f8e, U+70ac, U+70d9, U+70f9, U+7280, U+72de, U+7316, U+7459, U+752d, U+7599, U+75a1, U+75c9, U+75f9, U+7629, U+76ce, U+776b, U+777e-777f, U+783e, U+78ca, U+78fa, U+7941, U+795f, U+797a, U+79e7, U+7a57, U+7a79, U+7afa, U+7b0b, U+7b50, U+7b5b, U+7b5d, U+7be1, U+7c7d, U+7e82, U+7eb6, U+7eee, U+7f8c, U+7fce, U+807f, U+809b, U+80b4, U+80fa, U+8113, U+8151, U+8153, U+8339, U+8367, U+8403, U+8424, U+849c, U+853c, U+8611, U+86df, U+86fe, U+8815, U+8884-8885, U+8892, U+8912, U+8925, U+89d1, U+8bd8, U+8be3, U+8bf2, U+8bfd, U+8c12, U+8d3b, U+8f84, U+8f97, U+900d, U+90a2, U+914b, U+9165, U+9175, U+94a0, U+9504, U+950c, U+951a, U+9619, U+961c, U+9685, U+96cf, U+96f3, U+9739, U+9785, U+97f6, U+9889, U+9a6d-9a6e, U+9aa1, U+9abc, U+9ccc, U+9e20, U+9e4a, U+9e66, U+9edd, U+9f8b
}
@font-face {
font-family: MiSans VF;
font-weight: 1 999;
font-display: swap;
src: url(https://cdn-file.hyperos.mi.com/mi-font-service/misans_vf/VF/cs.5b904a0fa6f4effd.18.woff2) format("woff2"), url(https://cdn-file.hyperos.mi.com/mi-font-service/misans_vf/VF/cs.5b904a0fa6f4effd.18.woff) format("woff"), url(https://cdn-file.hyperos.mi.com/mi-font-service/misans_vf/VF/cs.5b904a0fa6f4effd.18.ttf) format("truetype"), url(https://cdn-file.hyperos.mi.com/mi-font-service/misans_vf/VF/cs.5b904a0fa6f4effd.18.eot) format("embedded-opentype");
unicode-range: U+4e15, U+4e9f, U+4f8f, U+4fdf, U+504e, U+5055, U+5197, U+51cb, U+5201, U+5228, U+524c, U+52be, U+532e, U+5364, U+53fc, U+542e, U+5494, U+54d2, U+54dd, U+54e7, U+54fd, U+5506, U+5527, U+5567, U+558b, U+55d6, U+5676, U+5693, U+5a20, U+5a3c, U+5a77, U+5ae1, U+5d3d, U+5e1a-5e1b, U+5f3c, U+5f57, U+6002, U+6026, U+6059, U+606c, U+60bb, U+60cb, U+60e6, U+60ee, U+60f4, U+61a7-61a8, U+61ac, U+620a, U+620d, U+621f, U+6289, U+62bf, U+62c8, U+62d7, U+631d, U+634e, U+63a3, U+63e9, U+6410, U+64ac, U+64c2, U+652b, U+6556, U+66a8, U+66e6, U+67b7, U+6829, U+6862, U+6893, U+6960, U+6984, U+69a8, U+6a58, U+6c16, U+6c1f, U+6c5b, U+6c76, U+6c7e, U+6ca5, U+6d5a, U+6d8e, U+6dc4, U+6de4, U+6e1d, U+6e24, U+6e2d, U+6e32, U+6e44, U+6f09, U+6f29-6f2a, U+6f3e, U+6f66, U+701a, U+7099, U+70ec, U+72d9, U+73ba, U+73c2, U+7405, U+7435-7436, U+74a7, U+74e2, U+75ca, U+75d4, U+7622, U+7656, U+7688, U+76bf, U+779f, U+77b3, U+77dc, U+7889, U+7898, U+78be, U+78d0, U+79be, U+79e4, U+7ae3, U+7b06, U+7b08, U+7b3a, U+7b8d, U+7bab, U+7c38, U+7cb1, U+7cdc, U+7eda, U+7f2d, U+7f94, U+7fcc, U+8046, U+80e5, U+814b, U+81c6, U+82b9, U+82ef, U+8327, U+8340, U+8343, U+8475, U+8543, U+85d0, U+85e5, U+86e4, U+8712, U+8715, U+8717, U+8737, U+8782, U+8785, U+87d2, U+8879, U+8936, U+8baa, U+8bc3, U+8be0, U+8c11, U+8c1a, U+8c62, U+8d58, U+8de4, U+8df7, U+8dfa, U+8e1e, U+8e35, U+8e4b, U+8e51, U+8e6d, U+8fe5, U+9163, U+916a, U+91ab, U+9497, U+94b5, U+94ce, U+94d0, U+94e2, U+95f5, U+9611, U+962a, U+9713, U+97ec, U+987c, U+996c, U+997a, U+9985, U+9992, U+9a79, U+9a7f, U+9ab7, U+9ac5, U+9b13, U+9ca8, U+9e49, U+9e93, U+9ecf
}
@font-face {
font-family: MiSans VF;
font-weight: 1 999;
font-display: swap;
src: url(https://cdn-file.hyperos.mi.com/mi-font-service/misans_vf/VF/cs.4c4e12ac93f9ad70.19.woff2) format("woff2"), url(https://cdn-file.hyperos.mi.com/mi-font-service/misans_vf/VF/cs.4c4e12ac93f9ad70.19.woff) format("woff"), url(https://cdn-file.hyperos.mi.com/mi-font-service/misans_vf/VF/cs.4c4e12ac93f9ad70.19.ttf) format("truetype"), url(https://cdn-file.hyperos.mi.com/mi-font-service/misans_vf/VF/cs.4c4e12ac93f9ad70.19.eot) format("embedded-opentype");
unicode-range: U+4e98, U+4f5a, U+4ff8, U+5080, U+50a3, U+50a9, U+50ed, U+523d, U+536f, U+53df, U+5457, U+5478, U+5537, U+556c, U+55df, U+55f3, U+564e, U+568f, U+576f, U+5777, U+587e, U+58d1, U+5942, U+59d7, U+5a75, U+5ab2, U+5bd0, U+5bf0, U+5c79, U+5c90, U+5ce6, U+5d4b, U+5dc5, U+605a, U+6063, U+607b, U+607f, U+61f5, U+620c, U+6248, U+62a1, U+637a, U+6396, U+6452, U+6482, U+64b5, U+64b8, U+64de, U+6525, U+660a, U+664f, U+667e, U+6684, U+66a7, U+675e, U+67ad, U+6866, U+6930, U+6954, U+6988, U+6aac, U+6b24, U+6ba1, U+6c55, U+6c5e, U+6c82, U+6c93, U+6cde, U+6cf5, U+6d52, U+6d9f, U+6da3, U+6da7, U+6db8, U+6dd6, U+6e0d, U+6e43, U+6e4d, U+6ea5, U+6ed5, U+6f33, U+701b, U+7096, U+7119, U+715c, U+71b9, U+728a, U+7313, U+7357, U+73d1, U+73e5, U+740f, U+7455, U+747e, U+7490, U+749e, U+74ee, U+7504, U+7525, U+75a3, U+762a, U+7638, U+7691, U+7750-7751, U+777d, U+77b0, U+796f, U+79f8, U+7a37, U+7abf, U+7b19, U+7b4f, U+7b75, U+7b93, U+7c0c, U+7eef, U+7f04, U+7f24, U+7f30, U+7f9a, U+7fb2, U+7fb9, U+7fdf, U+8006, U+80f1, U+8110, U+81ba, U+82de, U+832c, U+8354, U+837c, U+8426, U+84d3, U+8517, U+8537, U+85d5, U+8638, U+868c, U+86ca, U+8708, U+873f, U+874e, U+8759, U+8783, U+87c0, U+87c6, U+87cb, U+87fe, U+891a, U+8bb7, U+8bb9, U+8be9, U+8bf0, U+8c00, U+8c19, U+8c29, U+8d30, U+8d53, U+8d61, U+8dda-8ddb, U+8e0a, U+8e1d, U+8e42, U+8e4a, U+8e7f, U+8e8f, U+8f72, U+8f95, U+8f98, U+8fe2, U+9035, U+9050, U+907d, U+9083, U+90af, U+9149, U+916e, U+91dc, U+92c6, U+946b, U+94a1, U+94be, U+9522, U+9535, U+9540, U+956f-9570, U+9609, U+988d, U+998b, U+9aa5, U+9cc3-9cc4, U+9cd6, U+9e33, U+9e3e, U+9e73, U+9f3e
}
@font-face {
font-family: MiSans VF;
font-weight: 1 999;
font-display: swap;
src: url(https://cdn-file.hyperos.mi.com/mi-font-service/misans_vf/VF/cs.676016cc32fdd564.20.woff2) format("woff2"), url(https://cdn-file.hyperos.mi.com/mi-font-service/misans_vf/VF/cs.676016cc32fdd564.20.woff) format("woff"), url(https://cdn-file.hyperos.mi.com/mi-font-service/misans_vf/VF/cs.676016cc32fdd564.20.ttf) format("truetype"), url(https://cdn-file.hyperos.mi.com/mi-font-service/misans_vf/VF/cs.676016cc32fdd564.20.eot) format("embedded-opentype");
unicode-range: U+4f2b, U+4f7c, U+5043, U+504c, U+5121, U+531d, U+5345, U+5477, U+5482, U+555c, U+557e, U+5599, U+55eb-55ec, U+55f7, U+5685, U+56d4, U+572a, U+5742, U+579b, U+58ec, U+59a9, U+5a04, U+5a13, U+5a29, U+5a9b, U+5ad4, U+5b7a, U+5c96, U+5cac, U+5cb1, U+5d47, U+5e96, U+5f64, U+5f87, U+5fa8, U+5fb5, U+5fd0-5fd1, U+6006, U+606b, U+60c6, U+60ec, U+6249, U+62a0, U+630e, U+634b, U+6382, U+642a, U+6485, U+6593, U+65a1, U+6635, U+6840, U+6867, U+6886, U+690b, U+6963, U+6995, U+69cc, U+69df, U+6a1f, U+6a47, U+6a79, U+6c26, U+6d35, U+6d93, U+6dc7, U+6dde, U+6e6e, U+6f7a, U+6f7c, U+6fd1, U+7078, U+70fd, U+710a, U+7166, U+71ce, U+7252, U+72f0, U+73b7, U+74d2, U+752c, U+753a, U+759f, U+75b1, U+75b5, U+75d8, U+75de, U+75e2-75e3, U+75eb, U+7600, U+7620, U+7663, U+768b, U+76c2, U+76c5, U+7708, U+778c, U+77a0, U+781a, U+7825, U+79c6, U+7a51, U+7aa0, U+7b71, U+7bd3, U+7c41, U+7ce0, U+7edb, U+7ef6, U+7f28, U+7f2e, U+7f61, U+7f79, U+7fe1, U+7ff1, U+8018-8019, U+8037, U+80e4, U+8146, U+81fc, U+82a5, U+82ae, U+8309, U+8317, U+835a, U+835f, U+836a, U+8393, U+843c, U+8446, U+84ff, U+8559, U+85b0, U+8671, U+8693, U+86a3-86a4, U+86aa, U+86af, U+86c0, U+86d0, U+86d4, U+86f9, U+8713, U+873b, U+874c, U+88a4, U+88c6, U+8bd9, U+8c04, U+8c06, U+8c0c, U+8c25, U+8c27, U+8d48, U+8dfb, U+8e52, U+8e59, U+8f76, U+8f8d-8f8e, U+9019, U+9099, U+90f8, U+9170, U+91ae, U+91ba, U+94ff, U+9539, U+9541, U+95e9, U+9602, U+96bc, U+96f9, U+9773, U+9791, U+9894, U+989a, U+98d3, U+98d9, U+9981, U+998d, U+9a8b, U+9aef, U+9afb, U+9c87, U+9cce, U+9cd7, U+9e2f, U+9e5e, U+9e9d, U+9ed4, U+9edc, U+9ee0, U+9f88, U+9f9b
}
@font-face {
font-family: MiSans VF;
font-weight: 1 999;
font-display: swap;
src: url(https://cdn-file.hyperos.mi.com/mi-font-service/misans_vf/VF/cs.7b4b64f28d8f845a.21.woff2) format("woff2"), url(https://cdn-file.hyperos.mi.com/mi-font-service/misans_vf/VF/cs.7b4b64f28d8f845a.21.woff) format("woff"), url(https://cdn-file.hyperos.mi.com/mi-font-service/misans_vf/VF/cs.7b4b64f28d8f845a.21.ttf) format("truetype"), url(https://cdn-file.hyperos.mi.com/mi-font-service/misans_vf/VF/cs.7b4b64f28d8f845a.21.eot) format("embedded-opentype");
unicode-range: U+4ec4, U+4fda, U+500c, U+5048, U+51bd, U+530d, U+5310, U+53a9, U+53f5, U+549b, U+549d, U+54ab, U+54bb, U+5511, U+5575, U+557b, U+558f, U+55e5, U+5624, U+5664, U+567c, U+5729, U+57a0, U+57c2, U+5914, U+5919, U+5a11, U+5a32, U+5a4a, U+5b40, U+5b62, U+5b6a, U+5b93, U+5b95, U+5bb8, U+5c8c, U+5cea, U+5f0b, U+5ffb, U+600f, U+61cb, U+623e, U+62c4, U+6371, U+63b0, U+6448, U+645e, U+647a, U+65cc, U+6619, U+66dc, U+6773, U+67d1, U+67e0, U+68e3, U+693f, U+6994, U+69ad, U+6c10, U+6c32, U+6c50, U+6c69, U+6c74, U+6c85, U+6cef, U+6d04, U+6d0c, U+6d5c, U+6d63, U+6d9d, U+6dd9, U+6e25, U+6e9f, U+6f5e, U+6fb9, U+6fc2, U+6fee, U+70ef, U+714a, U+71a0, U+71b5, U+724d, U+7325, U+737e, U+749c, U+7579, U+75bd, U+7601, U+765e, U+768e, U+7699, U+76f9, U+7762, U+7791, U+77ad, U+7827, U+78b4, U+7950, U+7957, U+795b, U+7b94-7b95, U+7bb4, U+7bc6, U+7bdd, U+7c26, U+7c2a, U+7cbc, U+7cef, U+7d93, U+7ea3, U+7eab, U+7ead, U+7f54, U+80c4, U+80eb, U+80ed, U+814c, U+817c, U+81e7, U+8200, U+8210, U+828b, U+828d, U+82d3, U+8364, U+8368, U+839e, U+8431, U+84bf, U+84df, U+8568, U+85d3, U+866c, U+86c6, U+86ed, U+86f0, U+8703, U+8725, U+87b3, U+87d1, U+87e0, U+87ee, U+8821, U+88e8, U+891b, U+8934, U+8bd2, U+8bff, U+8c14, U+8c1d, U+8c21, U+8c4c, U+8c7a, U+8c82, U+8e69, U+8f8f, U+8fe9, U+904e, U+90c5, U+9157, U+92ae, U+949a-949b, U+94e0, U+94ec, U+950f, U+952d, U+9530, U+953a, U+9542, U+954c, U+9550, U+956d, U+95f0, U+95fe, U+9616, U+968d, U+96bd, U+972d, U+973e, U+977c, U+97ed, U+98d2, U+98d5, U+9955, U+9968, U+9980, U+9990, U+9a78, U+9ab0, U+9b03, U+9b47, U+9c88, U+9c91, U+9cab, U+9e35, U+9e44, U+9e51, U+9ebe
}
@font-face {
font-family: MiSans VF;
font-weight: 1 999;
font-display: swap;
src: url(https://cdn-file.hyperos.mi.com/mi-font-service/misans_vf/VF/cs.bce8f5e6414f421c.22.woff2) format("woff2"), url(https://cdn-file.hyperos.mi.com/mi-font-service/misans_vf/VF/cs.bce8f5e6414f421c.22.woff) format("woff"), url(https://cdn-file.hyperos.mi.com/mi-font-service/misans_vf/VF/cs.bce8f5e6414f421c.22.ttf) format("truetype"), url(https://cdn-file.hyperos.mi.com/mi-font-service/misans_vf/VF/cs.bce8f5e6414f421c.22.eot) format("embedded-opentype");
unicode-range: U+4f32, U+4f57, U+4f97, U+4fd1, U+4fe6, U+50ee, U+5106, U+51c7, U+520d, U+5241, U+527d, U+535e, U+53c1, U+5453, U+54a3, U+550f, U+5530, U+5555, U+556e, U+5577, U+559f, U+55b5, U+5601, U+562d, U+566b, U+56e4, U+5773, U+5892, U+5958, U+59ab, U+5abe, U+5b34, U+5b5b, U+5bee, U+5ccb, U+5d99, U+5e7a, U+5e8b, U+5e91, U+5ea0, U+5f01, U+5f08, U+6078, U+6120, U+61a9, U+61d1, U+621b, U+626a, U+62ee, U+631e, U+6387, U+63ac, U+63b8, U+643d, U+64e2, U+659b, U+6641, U+6654, U+6748, U+679e, U+67da, U+67e9, U+683e, U+6924, U+693d, U+6998, U+69b7, U+69c1, U+6a50, U+6b46, U+6b81, U+6b93, U+6c30, U+6c8f, U+6ca3, U+6cb1, U+6cd3, U+6cd7, U+6cfe, U+6d9e, U+6dae, U+6dbf, U+6e4e, U+6ec2, U+6ed3, U+6ee6, U+6f15, U+6f62, U+6fe1, U+7080, U+70e8, U+70f7, U+71a8, U+71d4, U+71ee, U+732c, U+736d, U+7425, U+7428, U+757f, U+75b8, U+7634, U+765c, U+7678, U+7768, U+7837, U+7949, U+7a88, U+7ba9, U+7ebe, U+7efa, U+7efe, U+7f08, U+7f1c, U+7f25, U+7f2b, U+7f42, U+7f44, U+7fca, U+8004, U+80bd, U+80ef, U+8174, U+81c3, U+81ca, U+8207, U+822b, U+826e, U+82aa, U+82b7, U+82f7, U+82fb, U+8301, U+8369, U+836d, U+837b, U+8398, U+83e0, U+84d1, U+85dc, U+869c, U+86a9, U+86b1, U+86c9, U+86ce, U+86f3, U+876e, U+8862, U+8882, U+89ce, U+89d0, U+89e5, U+89ef, U+8bab, U+8bcb, U+8bdc, U+8be4, U+8bf3, U+8c17-8c18, U+8d4a, U+8d73, U+8e39, U+8e76, U+8fe8, U+8ff3, U+9005, U+905b, U+90ba, U+90cf, U+9131, U+915a, U+916f, U+91af, U+92c8, U+94b0, U+94db, U+94e1, U+954d, U+9563, U+9573, U+967d, U+96c9, U+97af, U+98e7, U+996a, U+997d, U+9991, U+9995, U+9a81, U+9a88, U+9aa7, U+9ad4, U+9cc5, U+9e6b, U+9e6d, U+9f87, U+9f8a, U+9f8c, U+9fa2
}
@font-face {
font-family: MiSans VF;
font-weight: 1 999;
font-display: swap;
src: url(https://cdn-file.hyperos.mi.com/mi-font-service/misans_vf/VF/cs.a71630d21ac638b5.23.woff2) format("woff2"), url(https://cdn-file.hyperos.mi.com/mi-font-service/misans_vf/VF/cs.a71630d21ac638b5.23.woff) format("woff"), url(https://cdn-file.hyperos.mi.com/mi-font-service/misans_vf/VF/cs.a71630d21ac638b5.23.ttf) format("truetype"), url(https://cdn-file.hyperos.mi.com/mi-font-service/misans_vf/VF/cs.a71630d21ac638b5.23.eot) format("embedded-opentype");
unicode-range: U+4e69, U+4ee8, U+4f58, U+4f5e, U+4fea, U+507b, U+50d6, U+5208, U+525c, U+5476, U+54a4, U+54a9, U+54bf, U+54c2, U+5550, U+55d1, U+55dd, U+55ea, U+55f2, U+55f5, U+5639, U+5654, U+5658-5659, U+56e1, U+56ff, U+57a9, U+57fd, U+58f9, U+5925, U+592f, U+598d, U+59e3, U+5a23, U+5a40, U+5b51, U+5ba5, U+5cab, U+5cb7, U+5cd2, U+5d02, U+5d34, U+5d58, U+5f11, U+5fdd, U+6029, U+6035, U+603c, U+607d, U+610e, U+61d4, U+629f, U+63c4, U+63c6, U+6421, U+6441, U+64b7, U+65ab, U+6615, U+6631, U+6657, U+66b9, U+67b8, U+6809, U+680e, U+684e, U+688f, U+6942, U+6979, U+6989, U+699b, U+6a3d, U+6a84, U+6b92, U+6cc5, U+6cf8, U+6d39, U+6d94, U+6dc5, U+6de6, U+6dfc, U+6ee2, U+6fa7, U+6fef, U+723b, U+7284, U+7292, U+729f, U+72b7, U+72fb, U+7315, U+7360, U+73de, U+742c, U+7441, U+7480, U+74a8, U+75ff, U+7619, U+76e5, U+77fe, U+783a, U+787c, U+7a95, U+7ad1, U+7ae6, U+7b1e, U+7b25, U+7b60, U+7bd9, U+7c91, U+7c95, U+7ec9, U+7efb, U+7f45, U+7fe6, U+80db, U+80ea, U+814e, U+8191, U+81fe, U+821b, U+827f, U+82a9, U+82c1, U+82e3, U+82eb, U+830f, U+832f, U+852b, U+858f, U+867b, U+8707, U+871a, U+8734, U+87a8, U+8839, U+883c, U+8869, U+8872, U+8996, U+89ca, U+8a48, U+8ba3, U+8bb4, U+8be8, U+8bee, U+8c16, U+8c36, U+8d32, U+8d5d, U+8dba, U+8e2e, U+8f71, U+8f94, U+8fe4, U+9082, U+9095, U+909d, U+90e2, U+9162, U+936a, U+948d, U+949c, U+94c2, U+94e4, U+94e8-94e9, U+94f0, U+951f, U+9528, U+9532, U+9537, U+95f1, U+95ff, U+9608, U+9701, U+970f, U+9730, U+9753, U+98a7, U+98e8, U+996f, U+9984, U+998a, U+998f, U+9997, U+99a5, U+9a9b, U+9ae1, U+9c7f, U+9c9f, U+9cdd, U+9e2c, U+9e4c, U+9e57, U+9e82, U+9e8b, U+9e92, U+9f85
}
@font-face {
font-family: MiSans VF;
font-weight: 1 999;
font-display: swap;
src: url(https://cdn-file.hyperos.mi.com/mi-font-service/misans_vf/VF/cs.cfab7f2372445257.24.woff2) format("woff2"), url(https://cdn-file.hyperos.mi.com/mi-font-service/misans_vf/VF/cs.cfab7f2372445257.24.woff) format("woff"), url(https://cdn-file.hyperos.mi.com/mi-font-service/misans_vf/VF/cs.cfab7f2372445257.24.ttf) format("truetype"), url(https://cdn-file.hyperos.mi.com/mi-font-service/misans_vf/VF/cs.cfab7f2372445257.24.eot) format("embedded-opentype");
unicode-range: U+4fce, U+4fe3, U+501c, U+50a5, U+5156, U+5250, U+5326, U+539d, U+5464, U+5501, U+5576, U+5591, U+59aa, U+59b2, U+59d8, U+5a55, U+5b17, U+5b37, U+5b73, U+5cc1, U+5ce5, U+5d82, U+5e3c, U+5e44, U+5f2d, U+5f95, U+5fad, U+5ff8, U+608c, U+6175, U+6215, U+6221, U+63ff, U+65d6, U+6636, U+6772, U+6775, U+6860, U+696b, U+69ab, U+69ed, U+6a3e, U+6b59, U+6c24, U+6c29, U+6ca4, U+6cf1, U+6d43, U+6d54, U+6dec, U+6e0c, U+6e1a, U+6e5f, U+6f4d, U+7094, U+709c, U+70c3, U+70ca, U+70e9, U+7113, U+7168, U+7172, U+71e7, U+7230, U+7337, U+7511, U+7566, U+75c2, U+75c8, U+75e4, U+75e8, U+7812, U+7823, U+782d, U+784e, U+7852, U+789b-789c, U+78a3, U+7934, U+795a, U+79e3, U+7a17, U+7a2e, U+7a39, U+7aa3, U+7ab8, U+7afd, U+7b0f, U+7b15, U+7b24, U+7b2b, U+7bfe, U+7cb2, U+7ea5, U+7ecc, U+7ee6, U+7f19, U+7f22, U+7faf, U+7fbf, U+7ff3, U+8026, U+8028, U+8093, U+80b1, U+80dd, U+80f4, U+8198, U+8238, U+8244, U+82a8, U+82cb, U+82e1, U+8385-8386, U+83cf, U+84d6, U+85ae, U+865b, U+8662, U+869d, U+86a8, U+870a, U+8748, U+87ea, U+886e, U+8888, U+88dc, U+88df, U+88f1, U+8913, U+8921, U+8983, U+8a8a, U+8b07, U+8b8a, U+8bcc, U+8bd3, U+8bdf, U+8c32, U+8c55, U+8cea, U+8d6d, U+8d84, U+8d94, U+8e74, U+8f6d, U+9068, U+9088, U+908b, U+909b, U+90e7, U+9146, U+914a, U+919b, U+91b4, U+933e, U+9397, U+93d6, U+94a8, U+94b4, U+94c9, U+94e3, U+94f1, U+9502-9503, U+9509, U+9534, U+954f, U+9577, U+9593, U+95f6, U+95fc, U+9604, U+960b, U+9615, U+9642, U+9670, U+9672, U+9697, U+9765, U+985e, U+988f, U+98a6, U+9994, U+9a85, U+9a8a, U+9a9e, U+9ab6, U+9aed, U+9b51, U+9c82, U+9e22, U+9e58, U+9e6c, U+9ec3, U+9f10, U+9f39, U+9f89
}
@font-face {
font-family: MiSans VF;
font-weight: 1 999;
font-display: swap;
src: url(https://cdn-file.hyperos.mi.com/mi-font-service/misans_vf/VF/cs.52d1f6ea493e9986.25.woff2) format("woff2"), url(https://cdn-file.hyperos.mi.com/mi-font-service/misans_vf/VF/cs.52d1f6ea493e9986.25.woff) format("woff"), url(https://cdn-file.hyperos.mi.com/mi-font-service/misans_vf/VF/cs.52d1f6ea493e9986.25.ttf) format("truetype"), url(https://cdn-file.hyperos.mi.com/mi-font-service/misans_vf/VF/cs.52d1f6ea493e9986.25.eot) format("embedded-opentype");
unicode-range: U+4ec3, U+4f09, U+4f5d, U+4f7b, U+4ff3, U+5028, U+520e, U+52ac-52ad, U+52d6, U+53a3, U+5421, U+5454, U+54ad, U+54d0, U+556d, U+55c4, U+560c, U+5623, U+5627, U+5671, U+56eb, U+573b, U+58c5, U+5924, U+5997, U+5a0c, U+5ab8, U+5b71, U+5c50, U+5ca2, U+5d06, U+5d27, U+5d2e, U+5ebe, U+5fe4, U+5ffe, U+6042, U+622c, U+62bb, U+63ae, U+65ce, U+677c, U+67b0, U+68c2, U+69ce, U+69ff, U+6a2f, U+6a5b, U+6b9a, U+6bc2, U+6bd6, U+6c05, U+6c1a, U+6c68, U+6cf7, U+6d31, U+6d60, U+6dab, U+6ddd, U+6eb4, U+6f46, U+6f78, U+6fe0, U+704f, U+725d, U+7396, U+73ae, U+73c8, U+73cf, U+740a, U+7430, U+74e4, U+7572, U+75a5, U+761b, U+77cd, U+77f8, U+781d, U+7826, U+7887, U+789a, U+7947, U+795c, U+7a14, U+7a70, U+7cbd, U+7d50, U+7ec0, U+7f02, U+7f1b, U+7f2c, U+7f9f, U+7fd5, U+8052, U+80cd, U+810d, U+8171, U+8178, U+81c1, U+81ec, U+8202, U+8284, U+828e-828f, U+8297, U+82be, U+82cc, U+82dc, U+8311, U+835e, U+8365, U+8392, U+83f8, U+8438, U+8469, U+847a, U+84af, U+867c, U+86a7, U+86b4, U+86c4, U+86de, U+86e9, U+86f4, U+87ab, U+8813, U+8816, U+887e, U+8941, U+898b, U+89de, U+8aaa, U+8bc2, U+8bd6, U+8bf9, U+8c20, U+8c2a, U+8c2f, U+8d5c, U+8dcf, U+8df8, U+8e14, U+8e47, U+8e7c, U+8f03, U+8f87, U+900b, U+9021, U+9051, U+9062, U+9074, U+9084, U+90db, U+90e6, U+93e1, U+948f, U+9492, U+94a4, U+94bf, U+94f5, U+9549, U+958b, U+95f3, U+960f, U+9612, U+9621, U+96d2, U+97a3, U+984c, U+9880, U+989e, U+98a2, U+98da, U+990d, U+9954, U+9967, U+9969, U+996b, U+9a57, U+9ac1, U+9acb, U+9b08, U+9b49, U+9c86, U+9c8e, U+9ca2, U+9ca7, U+9cb6, U+9cd5, U+9e28-9e2a, U+9e5a, U+9e5c, U+9ecd, U+9ede, U+9ee9, U+9f83, U+9f86
}
@font-face {
font-family: MiSans VF;
font-weight: 1 999;
font-display: swap;
src: url(https://cdn-file.hyperos.mi.com/mi-font-service/misans_vf/VF/cs.110c877f86ac5d85.26.woff2) format("woff2"), url(https://cdn-file.hyperos.mi.com/mi-font-service/misans_vf/VF/cs.110c877f86ac5d85.26.woff) format("woff"), url(https://cdn-file.hyperos.mi.com/mi-font-service/misans_vf/VF/cs.110c877f86ac5d85.26.ttf) format("truetype"), url(https://cdn-file.hyperos.mi.com/mi-font-service/misans_vf/VF/cs.110c877f86ac5d85.26.eot) format("embedded-opentype");
unicode-range: U+4e5c, U+4fa9, U+5088, U+51eb, U+535f, U+536e, U+5412, U+544b, U+5472, U+55c9, U+55cd, U+56df, U+56f5, U+571c, U+5785, U+57ad, U+580b, U+59af, U+59d2, U+59f9, U+5a09, U+5a7a, U+5aaa, U+5ae0, U+5c98, U+5ce4, U+5d3e, U+5d4a, U+5dfd, U+5ea5, U+5fea, U+6041, U+6079, U+6106, U+6308, U+6332, U+63bc, U+643f, U+64e4, U+65c3, U+65ee-65ef, U+66f7, U+6777, U+6787, U+678b, U+67a5, U+67b3, U+67de, U+67e2, U+6849, U+69a7, U+69ca, U+6b87, U+6c18, U+6c2a, U+6c4a, U+6d6f, U+6daa, U+6e86, U+6f74, U+6fc9, U+7116, U+7131, U+7256, U+7266, U+73e9, U+742e, U+746d, U+74ef, U+7618, U+77fd, U+7809, U+7829, U+786a, U+7893, U+78ec, U+79b3, U+7b0a, U+7b2a, U+7b2e, U+7b33, U+7b38, U+7b3e, U+7bb8, U+7bd1, U+7c1f, U+7ea1, U+7ea8, U+7eb0, U+7ed4, U+7ef1, U+7f01, U+7f1f, U+7f26, U+7f36, U+8069, U+80bc, U+816d, U+8222, U+823b, U+82a1, U+82ab, U+82b0, U+82c4, U+82d5, U+835b, U+839c, U+83a0, U+83b4, U+83b8, U+83c0, U+83c5, U+83d6, U+83df, U+83ec, U+84ba, U+853a, U+8572, U+85ff, U+868b, U+870d, U+8722, U+879f, U+87db, U+880a, U+8832, U+88a2, U+88b7, U+88e2, U+88f0, U+8ad6, U+8b49, U+8ba6-8ba7, U+8bb5, U+8bd4, U+8d4d, U+8db8, U+8dbf, U+8dce, U+8dde, U+8df9, U+8e05, U+8e3d, U+9016, U+9036, U+90ac, U+90c3, U+90d3, U+90ef, U+9122-9123, U+912f, U+9169, U+919a, U+91a2, U+91aa, U+938f, U+93ca, U+94b9, U+94c6, U+9512, U+9515, U+9536, U+9552, U+9562, U+95dc, U+9603, U+9606, U+960c-960d, U+9617, U+975b, U+97ea, U+982d, U+98a8, U+990a, U+992e, U+9974, U+9993, U+9a14, U+9a77, U+9a93, U+9aa0, U+9ac2, U+9b3b, U+9b43, U+9b4d, U+9c9b, U+9cdf, U+9e37, U+9e39, U+9e46, U+9e55, U+9e67, U+9e69, U+9ebc, U+9efe, U+9f0b
}
@font-face {
font-family: MiSans VF;
font-weight: 1 999;
font-display: swap;
src: url(https://cdn-file.hyperos.mi.com/mi-font-service/misans_vf/VF/cs.ffafe949cb5fc0d4.27.woff2) format("woff2"), url(https://cdn-file.hyperos.mi.com/mi-font-service/misans_vf/VF/cs.ffafe949cb5fc0d4.27.woff) format("woff"), url(https://cdn-file.hyperos.mi.com/mi-font-service/misans_vf/VF/cs.ffafe949cb5fc0d4.27.ttf) format("truetype"), url(https://cdn-file.hyperos.mi.com/mi-font-service/misans_vf/VF/cs.ffafe949cb5fc0d4.27.eot) format("embedded-opentype");
unicode-range: U+4e47, U+4ede-4edf, U+4f64, U+4f70, U+4f76, U+4faa, U+50e6, U+50f3, U+51fc, U+5216, U+52a2, U+52d0, U+52f0, U+530f, U+531a, U+5363, U+538d, U+5466, U+54b4, U+54d4, U+5541, U+5556, U+55cc, U+55fe, U+56f9, U+5704, U+572e, U+57d9, U+5800, U+5941, U+5b84, U+5be4, U+5c59, U+5cc4, U+5d03, U+5d6c, U+5d74, U+5e11, U+5e19, U+5e42, U+5eea, U+5f40, U+5f89, U+6004, U+6092, U+60ad, U+6100, U+610d, U+63b4, U+63be, U+63f6, U+64c0, U+64d8, U+65c6, U+6600, U+665f, U+6710, U+6800, U+6841, U+6861, U+6934, U+6987, U+69f2, U+6a17, U+6c21, U+6d19, U+6d5e, U+6d91, U+6e6b, U+709d, U+70b7, U+7198, U+71b3, U+726f, U+728d, U+7350, U+736f, U+73b3, U+73d0, U+7548, U+755b, U+7596, U+759d, U+75cd, U+75fc, U+763f, U+766f, U+7747, U+77ec, U+783b, U+784c, U+7850, U+7857, U+7877, U+78a1, U+7b31, U+7b6e, U+7b9d, U+7ba7, U+7bc0, U+7c74, U+7cb3, U+7cc1, U+7cc5, U+7d30, U+7e2f, U+7e47, U+7f03, U+7f17, U+7fb8, U+8084, U+809f, U+80ab, U+80d7, U+80e8, U+8132, U+816b, U+8188, U+8249, U+824f, U+829f, U+82ce, U+82e4, U+82f4, U+8331, U+8334, U+859c, U+8655, U+867a, U+867f, U+86d1, U+86d8, U+86f1, U+872e, U+877c, U+8788, U+87ad, U+87ca, U+8853, U+88e5, U+88fe, U+8a07, U+8a3a, U+8abf, U+8bce, U+8bf6, U+8c89, U+8d3d, U+8d45, U+8d67, U+8dc6, U+8dd7, U+8e5a, U+8f73, U+8f78, U+9026, U+9032, U+90a8, U+90f4, U+91dd, U+9322, U+9485, U+94aa, U+94ba, U+94bc, U+94c4, U+94e7, U+9506, U+9511, U+9529, U+9538, U+954a, U+9567, U+96ce, U+96e0, U+96f1, U+9792, U+97ab, U+97b4, U+9808, U+989b, U+98f2, U+9983, U+9a9c, U+9b23, U+9c85, U+9c8b, U+9cae, U+9cb0-9cb1, U+9cca, U+9ccf, U+9e31, U+9e42, U+9e68, U+9ee2, U+9f0d, U+9f2c, U+9f80
}
@font-face {
font-family: MiSans VF;
font-weight: 1 999;
font-display: swap;
src: url(https://cdn-file.hyperos.mi.com/mi-font-service/misans_vf/VF/cs.310709743b8ca816.28.woff2) format("woff2"), url(https://cdn-file.hyperos.mi.com/mi-font-service/misans_vf/VF/cs.310709743b8ca816.28.woff) format("woff"), url(https://cdn-file.hyperos.mi.com/mi-font-service/misans_vf/VF/cs.310709743b8ca816.28.ttf) format("truetype"), url(https://cdn-file.hyperos.mi.com/mi-font-service/misans_vf/VF/cs.310709743b8ca816.28.eot) format("embedded-opentype");
unicode-range: U+4e93, U+4eb3, U+4f25, U+4f27, U+4f65, U+4f94, U+4fc5, U+5025, U+502c, U+502e, U+50a7, U+54cc, U+54de, U+5533, U+553f, U+5549, U+5581, U+55be, U+560f, U+561e, U+564c, U+5768, U+57a1, U+5807, U+5889, U+5a06, U+5a67, U+5ad8, U+5af1, U+5b16, U+5b6c, U+5cb5, U+5cbf, U+5d9d, U+5e14, U+5edb, U+5f9c, U+6019, U+601b, U+602b, U+6126, U+614a, U+6206, U+6266, U+634c, U+646d, U+6634, U+668c, U+6753, U+67b5, U+67d8, U+695d, U+6966, U+6978, U+6aa9, U+6b9b, U+6ce0, U+6d2e, U+6d33, U+6e11, U+6edf, U+6f8d, U+705e, U+7110, U+712f, U+7145, U+7178, U+72ce, U+72f7, U+736c, U+73f2, U+74f4, U+7519, U+755a, U+7583, U+75f1, U+76cd, U+7817, U+78d4, U+7a1e, U+7a31, U+7a80, U+7b04, U+7bea, U+7c9c-7c9d, U+7ca2, U+7d05, U+7da6, U+7db2, U+7e3b, U+7e7b, U+7ef2, U+7f12, U+7f2f, U+7f58, U+7f5f, U+7f71, U+7f74, U+7fa7, U+7fb0, U+8012, U+802a, U+8043, U+80b7, U+80c2, U+80fc, U+8118, U+815a, U+8166, U+81bb, U+81df, U+81e8, U+8228, U+827d, U+828a, U+82a4, U+8314, U+834f, U+8360, U+837d, U+83bc, U+83d4, U+83f9, U+83fd, U+840b, U+8418, U+844e, U+846d, U+853b, U+85b9, U+8605, U+8616, U+86ac, U+86b6, U+86cf, U+8709, U+8723, U+877d, U+87ac, U+87af, U+881b, U+887d, U+887f, U+88c9, U+88e1, U+88fc, U+892b, U+89f3, U+8bfc, U+8c07, U+8c30, U+8de3, U+8deb, U+8e2f, U+8e70, U+8e85, U+8f15, U+9052, U+9069, U+90fe, U+9104, U+91a3, U+91b5, U+943e, U+948b-948c, U+9495, U+94a3, U+94ad, U+94cd, U+9517, U+9546, U+955b, U+955e, U+956b, U+95eb, U+9649, U+965f, U+96b3, U+96d6, U+97eb, U+988e, U+9ab1, U+9acc, U+9ad1, U+9b2f, U+9b48, U+9c80, U+9ca0-9ca1, U+9cb2, U+9cd4, U+9ce2, U+9e2b, U+9e36, U+9e41, U+9f17, U+9f19, U+9f51
}
@font-face {
font-family: MiSans VF;
font-weight: 1 999;
font-display: swap;
src: url(https://cdn-file.hyperos.mi.com/mi-font-service/misans_vf/VF/cs.4d27a9d86130a78f.29.woff2) format("woff2"), url(https://cdn-file.hyperos.mi.com/mi-font-service/misans_vf/VF/cs.4d27a9d86130a78f.29.woff) format("woff"), url(https://cdn-file.hyperos.mi.com/mi-font-service/misans_vf/VF/cs.4d27a9d86130a78f.29.ttf) format("truetype"), url(https://cdn-file.hyperos.mi.com/mi-font-service/misans_vf/VF/cs.4d27a9d86130a78f.29.eot) format("embedded-opentype");
unicode-range: U+4eeb, U+506c, U+507e, U+510b, U+51bc, U+5452, U+5456, U+55b1, U+562c, U+567b, U+56af, U+581e, U+586c, U+5880, U+5ad2, U+5b32, U+5c25, U+5ca3, U+5d1e, U+5d24, U+5d5b, U+5d5d, U+5d6f, U+5e0f, U+5e5b, U+5e80, U+5eb9, U+60b1, U+61b7, U+6217, U+62ca, U+6339, U+6369, U+636d, U+64ba, U+656b, U+6677, U+66db, U+66e9, U+670a, U+6901, U+69b1, U+69d4, U+6a18, U+6b39, U+6c5c, U+6c86, U+6cd4, U+6ceb, U+6cee, U+6cf6, U+6d7c, U+6e16, U+6e54, U+6e98, U+6ea7, U+6ec1, U+6fb6, U+7023, U+7085, U+70b1, U+7173, U+71f9, U+72b8, U+72cd, U+72ef, U+72f2, U+730a, U+7317, U+7322, U+738e, U+73a2, U+7477, U+748e, U+74e0, U+752f, U+753e, U+7540, U+75a0, U+75b4, U+75e7, U+7654, U+76b4, U+76f1, U+7726, U+7743, U+778b, U+77bd, U+77c7, U+7800, U+7839, U+7856, U+7955, U+7987, U+79eb, U+7a78, U+7aa8, U+7aad, U+7ab3, U+7baa, U+7bc1, U+7be6, U+7bef, U+7c7c, U+7cc7, U+7d44, U+7d71, U+7d9d, U+7de9, U+7e8c, U+7ee8, U+7f07, U+7f21, U+7f23, U+7f31, U+7f7e, U+8080, U+80ad, U+80d9, U+823e, U+8291, U+82ca, U+83a9-83aa, U+8411, U+8451, U+845a, U+848c, U+84fc, U+8556, U+85a8, U+8629, U+863c, U+866e, U+868d, U+86b0, U+86f2, U+8763, U+87bd, U+8844, U+88bc, U+88ce, U+88e3, U+890a, U+8930, U+89ba, U+89c0, U+8a8d, U+8acb, U+8c35, U+8d40, U+8e49, U+8f49, U+8f6b, U+8f8a, U+8fd5, U+9011, U+902d, U+902f, U+9044, U+904b, U+90b0, U+911e, U+9143, U+9150, U+918d, U+928e, U+9487, U+948e, U+9494, U+94ab, U+94af, U+94cb, U+94d2, U+94ef, U+94f3, U+950a, U+951b-951c, U+9531, U+953c, U+953f, U+960a, U+96b1, U+96b9, U+96e3, U+9794, U+9b1f, U+9b88, U+9c83, U+9c9a, U+9cd9-9cda, U+9e48, U+9e6a, U+9e71, U+9e7e, U+9e87, U+9eb8, U+9ee7
}
@font-face {
font-family: MiSans VF;
font-weight: 1 999;
font-display: swap;
src: url(https://cdn-file.hyperos.mi.com/mi-font-service/misans_vf/VF/cs.bed5a9f90c41657c.30.woff2) format("woff2"), url(https://cdn-file.hyperos.mi.com/mi-font-service/misans_vf/VF/cs.bed5a9f90c41657c.30.woff) format("woff"), url(https://cdn-file.hyperos.mi.com/mi-font-service/misans_vf/VF/cs.bed5a9f90c41657c.30.ttf) format("truetype"), url(https://cdn-file.hyperos.mi.com/mi-font-service/misans_vf/VF/cs.bed5a9f90c41657c.30.eot) format("embedded-opentype");
unicode-range: U+4ee1, U+4f1b, U+4fdc, U+50ec, U+523f, U+5423, U+54cf, U+54d9, U+54ff, U+5522, U+55b9, U+5793, U+57b4, U+59a3, U+59dd, U+5b65, U+5c15, U+5c3b, U+5d26, U+5d6b, U+5f58, U+60ab, U+6225, U+6434, U+6484, U+6535, U+6549, U+65c4, U+65d2, U+6661, U+669d, U+66be, U+674c, U+676a, U+67d9, U+680c, U+6864, U+6874, U+696e, U+698d, U+69e0, U+6a65, U+6aa0, U+6b84, U+6b8d, U+6bb3, U+6c19, U+6da0, U+6e53, U+6e8f, U+6eb2, U+6ef9, U+6f2f, U+6fde, U+70bb, U+717a, U+7228, U+72fa, U+7321, U+734d, U+74a9, U+74ff, U+7513, U+754b, U+75b3, U+76a4, U+76b2, U+7707, U+7719, U+772c, U+775a, U+7765, U+7818, U+781c, U+782c, U+7847, U+786d, U+78ba, U+78d9, U+78f4, U+7946, U+794e, U+7962, U+79ed, U+7a4d, U+7a86, U+7aac, U+7b47, U+7b4c, U+7b72, U+7ccc, U+7d04, U+7d0d, U+7d39, U+7dad, U+7dda, U+7e54, U+7f0c, U+7f27, U+7f68, U+7fa9, U+7fbc, U+7fd2, U+7fe5, U+809c, U+80e9, U+8108, U+8114, U+8139, U+8182, U+822f, U+825a, U+825f, U+82b4, U+82d2, U+832d, U+8366, U+8378, U+83a8, U+83b3, U+83d8, U+83e1, U+83ea, U+83f0, U+845c, U+84a1, U+84b4, U+8585, U+85c1, U+877e, U+87e5, U+885b, U+89da, U+8a3e, U+8b1d, U+8c02, U+8c33, U+8c49, U+8ca2, U+8d49, U+8db5, U+8dd6, U+8dec, U+8df6, U+8e1f, U+8e40, U+8e53, U+8edf, U+8f9a, U+8fa6, U+8fd3, U+9004, U+9023, U+9054, U+9078, U+907a, U+90b3, U+9139, U+917d, U+9190, U+91ad, U+9224, U+94bd, U+94d1, U+9507, U+950d, U+9513-9514, U+9516, U+9518, U+951d-951e, U+952a, U+9544-9545, U+9553, U+956c, U+9580, U+9589, U+96e2, U+97b2, U+97ff, U+9838, U+986f, U+98cf, U+9987, U+9a7a, U+9a7d, U+9a98, U+9ac0, U+9adf, U+9c94, U+9ca5, U+9cb7, U+9cc7, U+9e32, U+9e38, U+9e3a, U+9e6e, U+9efc
}
@font-face {
font-family: MiSans VF;
font-weight: 1 999;
font-display: swap;
src: url(https://cdn-file.hyperos.mi.com/mi-font-service/misans_vf/VF/cs.9429c3c224ecc664.31.woff2) format("woff2"), url(https://cdn-file.hyperos.mi.com/mi-font-service/misans_vf/VF/cs.9429c3c224ecc664.31.woff) format("woff"), url(https://cdn-file.hyperos.mi.com/mi-font-service/misans_vf/VF/cs.9429c3c224ecc664.31.ttf) format("truetype"), url(https://cdn-file.hyperos.mi.com/mi-font-service/misans_vf/VF/cs.9429c3c224ecc664.31.eot) format("embedded-opentype");
unicode-range: U+4f74, U+4f89, U+4f91, U+50ba, U+5240, U+5261, U+5282, U+53fb, U+5416, U+5432, U+5459, U+54d3, U+5769, U+577c, U+57a7, U+58bc, U+5981, U+5a08, U+5adc, U+5aeb, U+5b53, U+5c63, U+5c9c, U+5cbd, U+5db7, U+5def, U+5ee8, U+5fbc, U+5fc9, U+6003, U+603f, U+609b, U+609d, U+6222, U+623d, U+63ce, U+65f0, U+6603, U+6769, U+6798, U+67a8, U+680a, U+6855, U+686b, U+6877, U+68f9, U+6939, U+6a8e, U+6b37, U+6b43, U+6bfd, U+6d07, U+6de0, U+6e2b, U+6f4b, U+6f8c, U+71e0, U+7301, U+731e, U+7352, U+7457, U+74ba, U+750f, U+754e, U+7594, U+760c, U+7630, U+77ef, U+7811, U+783c, U+78a5, U+78b6, U+78f2, U+7967, U+79d5, U+7a40, U+7ac5, U+7b46, U+7ba8, U+7c21, U+7c40, U+7c64, U+7cd7, U+7ce8, U+7d61, U+7d66, U+7df4, U+7e2e, U+7e3d, U+7e9b, U+7ee1, U+7f0b, U+7f0d, U+7f11, U+7f9d, U+800b, U+801c, U+806c, U+8167, U+81bd, U+8233-8234, U+8268, U+8288, U+82c8, U+8315, U+8348, U+8351, U+83b6, U+8401, U+842c, U+8473, U+8476, U+8478, U+84ca, U+84cd, U+8564, U+8570, U+8579, U+85b7, U+8627, U+86b5, U+877b, U+878b, U+8793, U+87f2, U+88b4, U+8919, U+898f, U+8a08, U+8a13, U+8a71, U+8a9e, U+8aa4, U+8b02, U+8b58, U+8b70, U+8b77, U+8b80, U+8b93, U+8c2e, U+8c3f, U+8c42, U+8c47, U+8c73, U+8c98, U+8c9d, U+8cc7, U+8dbc, U+8dfd, U+8f7e, U+8f82, U+8f8b, U+9060, U+90dc, U+918c, U+91cb, U+9490, U+94cc, U+950e, U+952b-952c, U+953e, U+9557, U+955d, U+956a, U+961a, U+966c, U+96a8, U+96b0, U+9708, U+9810, U+9852, U+9867, U+9878, U+989f, U+98a1, U+9a90, U+9a96, U+9aba, U+9af9, U+9b06, U+9b46, U+9c15, U+9c3d, U+9c8c, U+9cad, U+9cb3, U+9cb5, U+9cd0, U+9ce1, U+9d70, U+9e2e, U+9e47, U+9e4b, U+9e5b, U+9e63, U+9eb4, U+9ed2, U+9ee5
}
@font-face {
font-family: MiSans VF;
font-weight: 1 999;
font-display: swap;
src: url(https://cdn-file.hyperos.mi.com/mi-font-service/misans_vf/VF/cs.00e5e326abdd742f.32.woff2) format("woff2"), url(https://cdn-file.hyperos.mi.com/mi-font-service/misans_vf/VF/cs.00e5e326abdd742f.32.woff) format("woff"), url(https://cdn-file.hyperos.mi.com/mi-font-service/misans_vf/VF/cs.00e5e326abdd742f.32.ttf) format("truetype"), url(https://cdn-file.hyperos.mi.com/mi-font-service/misans_vf/VF/cs.00e5e326abdd742f.32.eot) format("embedded-opentype");
unicode-range: U+4ef5, U+4f7e, U+5281, U+54da, U+56dd, U+5709, U+572f, U+5739, U+577b, U+5786, U+57da, U+5819, U+5844, U+5c22, U+5c99, U+5e3b, U+5f56, U+5f82, U+600d, U+60dd, U+615d, U+6243, U+6420, U+6426, U+6499, U+661d, U+67f0, U+67fd, U+6832, U+68f0, U+68fc, U+691f, U+6a28, U+6aab, U+6bf5, U+6c06-6c07, U+6c3d, U+6c94, U+6cad, U+6d0e, U+6d4d, U+6eb1, U+6eb7, U+6ebd, U+6f36, U+70c0, U+727e, U+72b4, U+72c1, U+7331, U+739f, U+73c9, U+73d9, U+76e1, U+7722, U+773e, U+7780, U+77fb, U+781f, U+78b2, U+78fb, U+7905, U+790c, U+790e, U+794f, U+7953, U+7b5a, U+7bc4, U+7c8b, U+7c9e, U+7cab, U+7ccd, U+7d1a, U+7d55, U+7e7c, U+7eae, U+7ebb, U+7ec1-7ec2, U+7f0f, U+7f1e, U+7f35, U+7fd9, U+8071, U+80ec, U+812b, U+8148, U+8173, U+819a, U+81a0, U+81bf, U+81e5, U+822d, U+824b, U+8298, U+8300, U+831b, U+8347, U+835c, U+83dd, U+83e5, U+8406, U+840f, U+841c, U+8449, U+84cb, U+84da, U+8548, U+857b, U+85da, U+8667, U+86ba, U+86f8, U+8731, U+8753, U+8770, U+8856, U+88fd, U+895e, U+897b, U+89c7, U+89cb, U+8a0e, U+8a18, U+8a2d, U+8a31, U+8a66, U+8c8a, U+8c94, U+8caa, U+8d91, U+8e2c, U+8e30, U+8e9e, U+8eca, U+8f09, U+8ff4, U+9031, U+908a, U+90a0, U+90bd, U+90d7, U+90ff, U+9117, U+9129, U+915e, U+9161, U+9164, U+932f, U+93ae, U+9486, U+94c8, U+94ca, U+94d6-94d7, U+94d9, U+94e6, U+954e, U+9554, U+9560, U+95b1, U+9607, U+9673, U+9678, U+9688, U+968e, U+96aa, U+96d9, U+96dc, U+96fb, U+975c, U+97ac, U+9805, U+983b, U+985f, U+9871, U+9899, U+9902, U+9918, U+9a5a, U+9a80, U+9a9d, U+9aeb, U+9aee, U+9b18, U+9b8a, U+9ba0, U+9c47, U+9c56, U+9c67, U+9c72, U+9cb4, U+9cbd, U+9cdc, U+9d87, U+9e3b, U+9e4e, U+9efb, U+9f8d
}
@font-face {
font-family: MiSans VF;
font-weight: 1 999;
font-display: swap;
src: url(https://cdn-file.hyperos.mi.com/mi-font-service/misans_vf/VF/cs.6ca1c59e5f9c131e.33.woff2) format("woff2"), url(https://cdn-file.hyperos.mi.com/mi-font-service/misans_vf/VF/cs.6ca1c59e5f9c131e.33.woff) format("woff"), url(https://cdn-file.hyperos.mi.com/mi-font-service/misans_vf/VF/cs.6ca1c59e5f9c131e.33.ttf) format("truetype"), url(https://cdn-file.hyperos.mi.com/mi-font-service/misans_vf/VF/cs.6ca1c59e5f9c131e.33.eot) format("embedded-opentype");
unicode-range: U+5107, U+5233, U+5293, U+537a, U+5523, U+5588, U+5686, U+574c, U+57b8, U+57d2, U+57dd, U+57e4, U+57ef, U+57f8, U+584d, U+5881, U+5ab5, U+5e5e, U+5ed1, U+5fee, U+6083, U+620b, U+62f6, U+638a, U+6445, U+6509, U+652e, U+6534, U+67dd, U+6883, U+6920, U+6a7c, U+6a97, U+6b82, U+6cd0, U+6cfa, U+72b0, U+72f3-72f4, U+741a, U+75ac, U+7610, U+7617, U+764d, U+771a, U+7787, U+778d, U+77e7, U+784f, U+7881, U+78c9, U+7919, U+7986, U+798a, U+79fe, U+7a1c, U+7a69, U+7b90, U+7b9c, U+7bac, U+7bcc, U+7be0, U+7c0b, U+7c0f, U+7caf, U+7cde, U+7d5c, U+7dae, U+7dca, U+7e94, U+7fee, U+8035, U+804d, U+8072, U+807d, U+8112, U+811e, U+8129, U+8158, U+81a9, U+81ac, U+81af, U+81cd, U+8201, U+8208, U+8256, U+8306-8307, U+8332, U+83c3, U+83e7, U+83ef, U+8490, U+8497, U+84b9, U+84c1, U+84d0, U+84e5, U+855e, U+8591, U+85ed, U+85f4, U+865f, U+8729, U+873e, U+8765, U+889d, U+88aa, U+8907, U+8914, U+8966, U+89cf, U+89eb, U+89f8, U+8a72-8a73, U+8ac7, U+8ae1, U+8af8, U+8b89, U+8c1e, U+8c2b, U+8c68, U+8c85, U+8c93, U+8ca0, U+8cac, U+8cb4, U+8cbc, U+8d52, U+8d59, U+8d5f, U+8db1, U+8e41, U+8e60, U+8e6f, U+8e7b, U+8e90, U+8f36, U+8faf, U+8fee, U+9079, U+9097, U+90e4, U+90eb, U+91a1, U+91d0, U+936c, U+93af, U+942e, U+94ac, U+94df, U+94eb, U+94f7, U+955f, U+9561, U+9568, U+962f, U+963c, U+9654, U+9660, U+9674, U+969b, U+96de, U+96e9, U+96f0, U+9728, U+972a, U+9748, U+9806, U+9850, U+9883, U+98db, U+997e, U+9998, U+9a69, U+9a8e, U+9a99, U+9aa2, U+9b31, U+9b5f, U+9b9f, U+9bae, U+9c8f-9c90, U+9ca6, U+9ca9, U+9cbb, U+9cbf, U+9cc8, U+9cd1, U+9cf4, U+9ddf, U+9e88, U+9ea5, U+9ebf, U+9edf, U+9f02, U+9f29, U+9f82
}
@font-face {
font-family: MiSans VF;
font-weight: 1 999;
font-display: swap;
src: url(https://cdn-file.hyperos.mi.com/mi-font-service/misans_vf/VF/cs.cccfe8627a70856c.34.woff2) format("woff2"), url(https://cdn-file.hyperos.mi.com/mi-font-service/misans_vf/VF/cs.cccfe8627a70856c.34.woff) format("woff"), url(https://cdn-file.hyperos.mi.com/mi-font-service/misans_vf/VF/cs.cccfe8627a70856c.34.ttf) format("truetype"), url(https://cdn-file.hyperos.mi.com/mi-font-service/misans_vf/VF/cs.cccfe8627a70856c.34.eot) format("embedded-opentype");
unicode-range: U+4ec2, U+4edd, U+5155, U+551b, U+564d, U+576d, U+57a4, U+57d5, U+57d8, U+57ed, U+57f4, U+580d, U+593c, U+59a4, U+5fed, U+6067, U+63e0, U+63f8, U+641b, U+64d0, U+67c1, U+67d2, U+6833, U+6910, U+6c46, U+6c54, U+6d2b, U+6ecf, U+721d, U+72c3, U+7339, U+7481, U+7625, U+7635, U+7643, U+76e4, U+7704, U+770a, U+770d, U+7843, U+78fe, U+7942, U+799b, U+7a13, U+7b78, U+7c33, U+7c8e, U+7d00, U+7d2c, U+7d41-7d42, U+7d72, U+7d77, U+7d9c, U+7db1, U+7de1, U+7e20, U+7e78, U+7e96, U+7ea9, U+7ecb, U+7ed0, U+7ed6, U+7f33, U+7fdb, U+805e, U+812c, U+81ab, U+81ae, U+81c5, U+81c9, U+8204, U+8209, U+8316, U+8477, U+84a8, U+84bd, U+84e3, U+84ee, U+8500, U+850c, U+850e, U+852f, U+857a, U+857f, U+85a4, U+8607, U+860b, U+8661, U+8701, U+8766, U+8798, U+87b5, U+87eb, U+8803, U+880b, U+8886, U+888a, U+8893, U+88d2, U+88dd, U+89a9, U+8a09, U+8a22, U+8a55, U+8a5e, U+8a7e, U+8a8c, U+8b34, U+8b39, U+8b5e, U+8b9f, U+8bea, U+8c99, U+8ca9, U+8cbb, U+8d06-8d07, U+8d55, U+8da8, U+8dbd, U+8e68, U+8e9c, U+8f14, U+8f4e, U+8f79-8f7a, U+8fb2, U+8ffb, U+90a1, U+90b4, U+90be, U+90c4, U+9172, U+917a, U+91c6, U+9240-9241, U+9280, U+92a7, U+92ec, U+9304, U+934b, U+934f, U+9369, U+93b0, U+9418, U+94b2, U+94b8, U+94d3, U+94d5, U+94ea, U+9628, U+963d, U+9663, U+968a, U+96f2, U+9705, U+9766, U+9778, U+97ae, U+9817-9818, U+982b, U+984f, U+9857, U+98ef, U+992c, U+9978-9979, U+99ee, U+9a83, U+9ac6, U+9b02, U+9b32, U+9ba1, U+9ba3, U+9bd4, U+9bee, U+9c1c, U+9c21, U+9c89, U+9c95, U+9c9e, U+9cc0, U+9d25, U+9d73, U+9dc9, U+9e0a, U+9e30, U+9e61, U+9e7c-9e7d, U+9e84, U+9ef9, U+9f2f, U+9f37, U+9f7e, U+9f81, U+9fa0
}
@font-face {
font-family: MiSans VF;
font-weight: 1 999;
font-display: swap;
src: url(https://cdn-file.hyperos.mi.com/mi-font-service/misans_vf/VF/cs.4f183c581c5241b8.35.woff2) format("woff2"), url(https://cdn-file.hyperos.mi.com/mi-font-service/misans_vf/VF/cs.4f183c581c5241b8.35.woff) format("woff"), url(https://cdn-file.hyperos.mi.com/mi-font-service/misans_vf/VF/cs.4f183c581c5241b8.35.ttf) format("truetype"), url(https://cdn-file.hyperos.mi.com/mi-font-service/misans_vf/VF/cs.4f183c581c5241b8.35.eot) format("embedded-opentype");
unicode-range: U+553c, U+572c, U+575c, U+576b, U+57cf, U+5820, U+5c66, U+5c88, U+605d, U+619d, U+6343, U+67a7, U+6844, U+6980, U+6d27, U+6ee0, U+6f72, U+6f89, U+73e7, U+750d, U+7615, U+7633, U+7752, U+777a, U+77a2, U+7871, U+7913, U+791e, U+796b, U+798d, U+79bf, U+7aa9, U+7b30, U+7b4d, U+7b74, U+7b96, U+7ba6, U+7be5, U+7c65, U+7d14, U+7d24, U+7d45, U+7d7d, U+7de3, U+7e31, U+7e6b, U+7e81, U+7ee0, U+7f3b, U+7f3d, U+7f63, U+7f7d, U+7fb6, U+7fe7, U+7ff9, U+8027, U+8031, U+8056, U+805b, U+806d, U+806f, U+808f, U+80e0, U+812e, U+8160, U+8169, U+81a6, U+81b6, U+81b9, U+81cc, U+81dc, U+8216, U+8221, U+8308, U+830c, U+8310, U+833c, U+83a4, U+83d1, U+8429, U+8470, U+8545, U+8599, U+871e, U+8764, U+8797, U+879d, U+885d, U+889b, U+88a3, U+88a7, U+89cc-89cd, U+89d4, U+8a04, U+8a0a, U+8a19, U+8a62, U+8a96, U+8a98, U+8ab2, U+8af9, U+8b3f, U+8c50, U+8c90, U+8ca7, U+8cb7, U+8cc8, U+8ce6, U+8cf4, U+8d05, U+8d33, U+8d36, U+8d46-8d47, U+8dd0, U+8e23, U+8e45, U+8e50, U+8e5f, U+8e84, U+8ebc, U+8f13, U+8f33, U+8f38, U+8f80, U+8fbb, U+8fef, U+903f, U+9072, U+90b2, U+90c7, U+90d5, U+90d9, U+912c, U+9156, U+9179, U+9185, U+91e4, U+9226, U+9264, U+92f5, U+92f9, U+9375, U+93ad, U+9423, U+943b, U+9451, U+9498, U+94cf, U+94da, U+94fc, U+9559, U+9569, U+9571, U+9574, U+9592, U+959f, U+95a4, U+95ae, U+95c6-95c7, U+9641, U+9667, U+96bb, U+9711, U+9770, U+97a1, U+97fb, U+9863, U+9869, U+98d1, U+98d7, U+98fd, U+99ac, U+99da, U+9a03, U+9a3e, U+9a75, U+9a95, U+9b4b, U+9b80, U+9b84, U+9bc6, U+9bdd, U+9c01, U+9c28, U+9c32, U+9c64, U+9c6f, U+9c75, U+9c99, U+9cc1, U+9cd3, U+9e40, U+9e79, U+9ee8, U+9f41, U+9f52, U+9f61
}
@font-face {
font-family: MiSans VF;
font-weight: 1 999;
font-display: swap;
src: url(https://cdn-file.hyperos.mi.com/mi-font-service/misans_vf/VF/cs.07049c65c3675ff8.36.woff2) format("woff2"), url(https://cdn-file.hyperos.mi.com/mi-font-service/misans_vf/VF/cs.07049c65c3675ff8.36.woff) format("woff"), url(https://cdn-file.hyperos.mi.com/mi-font-service/misans_vf/VF/cs.07049c65c3675ff8.36.ttf) format("truetype"), url(https://cdn-file.hyperos.mi.com/mi-font-service/misans_vf/VF/cs.07049c65c3675ff8.36.eot) format("embedded-opentype");
unicode-range: U+4ec9, U+4ef3, U+5290, U+54d5, U+552a, U+5eb3, U+5ed2, U+640b, U+681d, U+6baa, U+6c15, U+6cd6, U+6d1a, U+6ebb, U+6ed7, U+7039, U+728b, U+75e6, U+76c7, U+772d, U+7730, U+7733, U+7735, U+774f, U+7793, U+77d4, U+77de, U+785a, U+7895, U+7921, U+7926, U+7954, U+796a, U+797c, U+798b, U+7998, U+79f5, U+7a03, U+7a48-7a49, U+7b1f, U+7b39, U+7b45, U+7b58, U+7b62, U+7ba0, U+7bda, U+7be9, U+7bf8, U+7c3e, U+7c8c, U+7c9a, U+7cc8, U+7d19, U+7d6a, U+7d7c, U+7d8e, U+7dd2, U+7ef9, U+7f76, U+7f91, U+7fc0, U+7fc3, U+8016, U+8029, U+8077, U+80f2, U+8105, U+8144, U+81ad, U+81b5, U+81ce-81cf, U+81d1-81d2, U+81fa, U+8232, U+82fe, U+833a, U+8396, U+839b, U+83be, U+83cd, U+844c, U+8459, U+8474, U+84b7, U+84bc, U+8538, U+8557, U+85bf, U+8652, U+873a, U+8758, U+875f, U+87ec, U+8852, U+8889, U+8891, U+88a0, U+88c8, U+8955, U+8962, U+89dd, U+89f1, U+8a02, U+8a12, U+8a17, U+8a1a, U+8b1b, U+8b3a, U+8b62, U+8b9d, U+8bd0, U+8c09, U+8c6c, U+8c8f, U+8caf, U+8cf8, U+8cfc, U+8d95, U+8da5, U+8da9, U+8e94, U+8ecc, U+8ef8, U+8eff, U+8f58, U+8f75, U+900c, U+9046, U+904a, U+9055, U+9058, U+905e, U+90b6, U+90d0, U+9109, U+911a, U+918a, U+91d8, U+9227, U+9229, U+92b3, U+93f0, U+9413, U+953d, U+9548, U+955a, U+9583, U+95b7, U+95c5, U+95ca, U+9618, U+9683, U+96d4, U+971a, U+97e5, U+9802-9803, U+9809, U+9820, U+98a5, U+98e2, U+9917, U+994b, U+9951, U+9958, U+9982, U+9a40, U+9a45, U+9a9f, U+9aaf, U+9ad2, U+9ae4, U+9b0f, U+9b1b, U+9b5a, U+9bbb, U+9bd2, U+9c65, U+9c84, U+9c8a, U+9c9d, U+9ca3, U+9cc6, U+9cc9, U+9cd8, U+9ce4, U+9cf0, U+9d2b, U+9d31, U+9d8e, U+9e91, U+9e97, U+9ec9, U+9eea, U+9ef4, U+9f9c, U+9fa4
}
@font-face {
font-family: MiSans VF;
font-weight: 1 999;
font-display: swap;
src: url(https://cdn-file.hyperos.mi.com/mi-font-service/misans_vf/VF/cs.63f8a16ecec3548a.37.woff2) format("woff2"), url(https://cdn-file.hyperos.mi.com/mi-font-service/misans_vf/VF/cs.63f8a16ecec3548a.37.woff) format("woff"), url(https://cdn-file.hyperos.mi.com/mi-font-service/misans_vf/VF/cs.63f8a16ecec3548a.37.ttf) format("truetype"), url(https://cdn-file.hyperos.mi.com/mi-font-service/misans_vf/VF/cs.63f8a16ecec3548a.37.eot) format("embedded-opentype");
unicode-range: U+522d, U+525e, U+54dc, U+5f61, U+6322, U+638e, U+63de, U+63f2, U+6971, U+6a91, U+6c0d, U+7303, U+75d6, U+7605, U+760a, U+763c, U+76e3, U+770e, U+7725, U+772b, U+7746, U+775e, U+776a, U+77bc, U+7832, U+7841, U+78bc, U+798e, U+7991, U+79a6, U+79ec, U+7a05, U+7a16, U+7a1f, U+7a4a, U+7a6a, U+7a8b, U+7ac7, U+7b07, U+7b66, U+7b70, U+7b85, U+7ba2, U+7bc2, U+7c60, U+7ca1, U+7ca3, U+7cba, U+7cc0, U+7d5b, U+7d96, U+7da0, U+7ddb, U+7de8, U+7e21, U+7e2b, U+7e3f, U+7e50, U+7f0a, U+7feb, U+8060, U+8074, U+8085, U+812d, U+8159, U+820a, U+8246, U+8248, U+825e, U+82ff, U+8337, U+8345, U+83c9, U+83e2, U+83f5, U+8487, U+84c7, U+84f4, U+8502, U+8514, U+851f, U+855a, U+8561, U+85de, U+8606, U+862d, U+866f, U+86e3, U+877f-8780, U+87ed, U+8883, U+889a, U+889e, U+88a9, U+88cf, U+890b, U+8927, U+892f, U+89aa, U+89d6, U+8a34, U+8b26, U+8b95, U+8b9a, U+8bac, U+8c9e, U+8ca1, U+8ce3, U+8ce8, U+8cee, U+8d0f, U+8d20, U+8d57, U+8dcd, U+8dd3, U+8de1, U+8dfc, U+8e10, U+8e21, U+8e26, U+8e64, U+8e7e, U+8ec5, U+8ecd, U+8ed3, U+8f3e, U+905d, U+906f, U+9086, U+90bf, U+9126, U+9130, U+9142, U+9147, U+9174, U+919c, U+91bf, U+91d9, U+9228, U+9244-9245, U+924f, U+92b7, U+92fc, U+9306, U+930f, U+938c, U+940f, U+9468, U+9481, U+94b7, U+94e5, U+956e, U+9572, U+95a3, U+95b6, U+95c9, U+9613, U+961b, U+965e, U+96ee, U+9749, U+9779-977a, U+977f, U+9793, U+97a8, U+97f0, U+97f2, U+9801, U+98d6, U+98e9, U+98ed, U+9916, U+99f0, U+99f5, U+99f8, U+9a3b, U+9a5f, U+9ae3, U+9af3, U+9b7e, U+9bd5, U+9c09, U+9c2a, U+9c7e, U+9caf, U+9d95, U+9dba, U+9dc3, U+9e5f, U+9e83, U+9e86, U+9e95, U+9ea8, U+9eb9, U+9f22, U+9f31, U+9f6e
}
@font-face {
font-family: MiSans VF;
font-weight: 1 999;
font-display: swap;
src: url(https://cdn-file.hyperos.mi.com/mi-font-service/misans_vf/VF/cs.3436af72e50c93db.38.woff2) format("woff2"), url(https://cdn-file.hyperos.mi.com/mi-font-service/misans_vf/VF/cs.3436af72e50c93db.38.woff) format("woff"), url(https://cdn-file.hyperos.mi.com/mi-font-service/misans_vf/VF/cs.3436af72e50c93db.38.ttf) format("truetype"), url(https://cdn-file.hyperos.mi.com/mi-font-service/misans_vf/VF/cs.3436af72e50c93db.38.eot) format("embedded-opentype");
unicode-range: U+5181, U+5e31, U+6224, U+75b0, U+75c4, U+7744, U+774a, U+7822, U+78bb, U+78dc, U+78e1, U+79a3, U+79b1, U+79f1, U+7a94, U+7add, U+7b2d, U+7b4a, U+7b7c, U+7bf0, U+7c30, U+7c8a, U+7c8f, U+7ca9, U+7cf7, U+7d17, U+7d1b, U+7d2e, U+7d43, U+7d7a, U+7d7f, U+7d88, U+7dbc, U+7dbf, U+7def, U+7e98, U+7f32, U+7fba, U+7fc9, U+7fec, U+8022, U+80f5, U+8126-8127, U+816a, U+817d, U+81c7, U+81cb, U+81d0, U+81d3, U+81e2, U+8266, U+8296, U+82e0, U+831a, U+831d, U+8323, U+8344, U+83d2, U+83f4, U+844d, U+845e, U+846f, U+847b, U+8489, U+84be, U+84cf, U+84e0-84e1, U+84ef-84f0, U+8523, U+8526, U+855d, U+85b3, U+85d9, U+85db, U+86a2, U+86da, U+86ef, U+870f, U+8714, U+8740, U+8795, U+87a3, U+87fb, U+88a5, U+894d, U+8972, U+8997, U+89dc, U+89fc, U+89ff, U+8a5d, U+8a63, U+8a65, U+8a69, U+8a7c, U+8add, U+8ae5, U+8b31, U+8b5f, U+8b9e, U+8c40, U+8ca8, U+8cc0, U+8cf2, U+8da7, U+8dc2, U+8dc9, U+8e27, U+8e8d, U+8ed2, U+8f0b, U+8f2a, U+8f8c, U+8f92, U+8fb5, U+8fbc, U+8fcf, U+9059, U+9061, U+9085, U+9089, U+90cb, U+90de, U+90ea, U+9118, U+911c, U+9120, U+9136, U+9141, U+914e, U+917e, U+91a8, U+91c0, U+9207, U+920d, U+923e-923f, U+92ca, U+92fe, U+931e, U+932b, U+934a, U+9407, U+9483, U+94de, U+94fb, U+94fd, U+9558, U+9597, U+95c0, U+95c4, U+9684, U+96a4, U+96da, U+96df, U+9727, U+9763, U+97cc, U+97fa, U+980d-980e, U+9828, U+9835, U+984d, U+985d, U+986b-986c, U+9908, U+99a7, U+9a92, U+9aff, U+9b0b, U+9b8d, U+9bbc, U+9be1, U+9c92, U+9caa, U+9cb9, U+9ce3, U+9d23, U+9d26, U+9d3f, U+9d9d, U+9de3, U+9e02, U+9e6f, U+9e90, U+9e9a, U+9e9c, U+9ea4, U+9eaf, U+9f08, U+9f36, U+9f4b, U+9f67, U+9f78, U+9f7b
}
@font-face {
font-family: MiSans VF;
font-weight: 1 999;
font-display: swap;
src: url(https://cdn-file.hyperos.mi.com/mi-font-service/misans_vf/VF/cs.879a7489d2d98db2.39.woff2) format("woff2"), url(https://cdn-file.hyperos.mi.com/mi-font-service/misans_vf/VF/cs.879a7489d2d98db2.39.woff) format("woff"), url(https://cdn-file.hyperos.mi.com/mi-font-service/misans_vf/VF/cs.879a7489d2d98db2.39.ttf) format("truetype"), url(https://cdn-file.hyperos.mi.com/mi-font-service/misans_vf/VF/cs.879a7489d2d98db2.39.eot) format("embedded-opentype");
unicode-range: U+6bf3, U+6ca9, U+6cb2, U+76dc-76dd, U+76e6, U+7739, U+7756, U+7786, U+77dd, U+77f0, U+7859, U+78e5, U+78eb, U+7904, U+794b, U+7966, U+796e, U+799c, U+79a0, U+79ab-79ac, U+7a1b, U+7ada, U+7af6, U+7b16, U+7b27, U+7baf, U+7bbe, U+7bc9, U+7be4, U+7bf2, U+7c22, U+7c37, U+7c3b, U+7c4c, U+7c53, U+7c8d, U+7c90, U+7ca6, U+7cad, U+7ce2, U+7cf0, U+7cf5, U+7d03, U+7d16, U+7d29, U+7d59, U+7d6b, U+7d8d, U+7e15, U+7e5f, U+7e68, U+7e7a, U+7e84, U+7f4b, U+7f77, U+7fc2, U+7fdc, U+8066, U+80ca, U+811d, U+8130, U+813a, U+81b0, U+81b2, U+8283, U+82e7, U+82fd, U+830a, U+83bf, U+83c2, U+83c6, U+83eb, U+8466, U+84de, U+84fa, U+8542, U+85a2, U+85a6, U+85be, U+85d7, U+85e0, U+85e7, U+85ec, U+85f7, U+8698, U+877a, U+879e, U+87d3, U+8836, U+883b, U+8880, U+8890, U+88b5, U+88c0, U+88ef, U+8931, U+8935, U+8946, U+8971, U+8985, U+898d, U+8a0c, U+8a1b, U+8a2a, U+8a64, U+8a67, U+8a7f, U+8aa5, U+8ac4, U+8b53, U+8b5c, U+8b8f, U+8c48, U+8c4e, U+8c8d, U+8ce2, U+8cf9, U+8da6, U+8dc5, U+8dca, U+8e06, U+8e18, U+8e3a, U+8e54, U+8e77, U+8ed0, U+8f6a, U+9077, U+9124, U+9166, U+91b0, U+91b2, U+91be, U+91db, U+9223, U+9231, U+9236, U+935b, U+9366, U+93cf, U+93d8, U+9435, U+945f, U+94b6, U+94d4, U+9533, U+9564-9566, U+959b, U+95af, U+95ba-95bb, U+9659, U+9682, U+96b8, U+972e, U+9733, U+979a, U+980c, U+9830, U+9846, U+9851, U+986a, U+98bc, U+98d4, U+98fc, U+9905, U+9926, U+99d5, U+99dd, U+9a4c, U+9a58, U+9b81, U+9ba8, U+9c20, U+9c39, U+9c63, U+9c97, U+9cbc, U+9d03, U+9d28, U+9d2a, U+9d72, U+9d84, U+9d92, U+9d97, U+9de5, U+9de7, U+9df9, U+9e53, U+9e80, U+9e89-9e8a, U+9ea3, U+9f44, U+9f4a, U+9f4f
}
@font-face {
font-family: MiSans VF;
font-weight: 1 999;
font-display: swap;
src: url(https://cdn-file.hyperos.mi.com/mi-font-service/misans_vf/VF/cs.e7c824f4f29bda10.40.woff2) format("woff2"), url(https://cdn-file.hyperos.mi.com/mi-font-service/misans_vf/VF/cs.e7c824f4f29bda10.40.woff) format("woff"), url(https://cdn-file.hyperos.mi.com/mi-font-service/misans_vf/VF/cs.e7c824f4f29bda10.40.ttf) format("truetype"), url(https://cdn-file.hyperos.mi.com/mi-font-service/misans_vf/VF/cs.e7c824f4f29bda10.40.eot) format("embedded-opentype");
unicode-range: U+4f67, U+63ad, U+67c3, U+6bf9, U+7338, U+74de, U+7706, U+7760, U+7790, U+77ab, U+77c5, U+77ca, U+77d8, U+77da, U+77e1, U+787d, U+7883, U+78ff, U+7908, U+791c, U+7983, U+79d4, U+79f2, U+7a02, U+7a7b, U+7aae, U+7ac4, U+7b17, U+7b87, U+7b98, U+7bbd, U+7c0d, U+7c1c, U+7c42, U+7c50, U+7cb7, U+7d35, U+7d4f, U+7d68, U+7d79, U+7d91, U+7dcc, U+7df7, U+7dfb, U+7e3e, U+7e49, U+7e59, U+7e95, U+7f41, U+7f85, U+7f87, U+7fd0, U+7fef, U+8008, U+800e, U+8063, U+8070, U+8119, U+811b, U+8136-8137, U+813b-813c, U+8157, U+8195, U+81d8, U+81db, U+8250, U+825c, U+8274, U+8277, U+82d8-82d9, U+839a, U+840a, U+8417, U+8458, U+8462, U+8479, U+849e, U+84c2, U+8525, U+8532, U+858b, U+85cd, U+85d8, U+85dd, U+863f, U+86ec, U+86f7, U+8711, U+8781, U+879a, U+87a4, U+8806, U+883e, U+8842, U+884b, U+8887, U+888c, U+8894, U+88a6, U+88a8, U+88bf, U+88f2, U+8932, U+8982, U+8a03, U+8a0b, U+8a15, U+8a1d, U+8a60, U+8a6b-8a6c, U+8a6e, U+8a7b, U+8aa0, U+8ab3, U+8ac6, U+8b2c, U+8b43-8b44, U+8b6f, U+8b7d, U+8bb1, U+8cdc, U+8cf0, U+8d08, U+8dae, U+8e63, U+8e71, U+8ec3, U+8ec8, U+8ece, U+8ed9, U+8ee0-8ee2, U+8f29, U+8f5d, U+8fad, U+8ffa, U+905c, U+9087, U+9098, U+90c0, U+90c8, U+90f5, U+9127, U+912b, U+9133, U+9137, U+913f-9140, U+91e1-91e2, U+9243, U+9250, U+92b6, U+92d0, U+92f8, U+9310, U+934d, U+9367, U+937c, U+93e6, U+9455, U+9496, U+9575, U+95ad, U+95d2, U+95e2, U+9657, U+967c, U+976d, U+97c8, U+984e, U+988b, U+9931, U+9989, U+9a19, U+9a4a, U+9a59, U+9aab, U+9ab3, U+9ab9, U+9ae0, U+9ae5, U+9bd9, U+9cd2, U+9d40, U+9d9c, U+9d9f, U+9da1, U+9df1-9df2, U+9e4d, U+9e96, U+9f30, U+9f92
}
@font-face {
font-family: MiSans VF;
font-weight: 1 999;
font-display: swap;
src: url(https://cdn-file.hyperos.mi.com/mi-font-service/misans_vf/VF/cs.2063412ee3302e36.41.woff2) format("woff2"), url(https://cdn-file.hyperos.mi.com/mi-font-service/misans_vf/VF/cs.2063412ee3302e36.41.woff) format("woff"), url(https://cdn-file.hyperos.mi.com/mi-font-service/misans_vf/VF/cs.2063412ee3302e36.41.ttf) format("truetype"), url(https://cdn-file.hyperos.mi.com/mi-font-service/misans_vf/VF/cs.2063412ee3302e36.41.eot) format("embedded-opentype");
unicode-range: U+54f3, U+589a, U+5c7a, U+640c, U+64d7, U+6957, U+728f, U+76d5, U+76e9, U+76fb, U+7716, U+771c, U+7795, U+77b7, U+77c4, U+77d9, U+781b, U+782e, U+7848, U+78e6, U+7928, U+7943, U+7972, U+797b, U+79a2, U+79a5, U+7a06, U+7a8a, U+7aaa, U+7abc, U+7acf, U+7b48, U+7b7b, U+7b7d, U+7bf4, U+7bfc, U+7c25, U+7c46-7c47, U+7c72, U+7d0f, U+7d7e, U+7d9f, U+7db5, U+7ddc, U+7de0, U+7e22, U+7e4c, U+7e51-7e52, U+7e91, U+7f48, U+8025, U+805c, U+8067, U+80a3, U+80bb, U+80d1, U+80d4, U+80fe, U+810e, U+811c, U+8128, U+81bc, U+81ee, U+8223, U+8255, U+8264, U+82f2, U+82fc, U+8356, U+836c, U+83bb, U+8483, U+84e8, U+84f5, U+84fe, U+854c, U+8580, U+85e6, U+8640, U+8657, U+8670, U+8688, U+86e1, U+86fb, U+870c, U+875d, U+8779, U+87ff, U+8814, U+8819, U+8837, U+887c, U+8897, U+890f, U+8926, U+896c, U+8976, U+8990, U+89fd, U+8a6f, U+8ab4, U+8ad3, U+8b0f, U+8b27, U+8b2a, U+8b41, U+8ca4, U+8d6a, U+8dd8, U+8e16, U+8e2b, U+8e7d, U+8ec6, U+8ec9, U+8edb, U+8f08, U+8f34, U+911b, U+9121, U+9168, U+9191, U+9196, U+92fb, U+934e, U+9351, U+9396, U+93aa, U+93c2, U+93c9, U+9430, U+945b, U+95c3, U+96ca, U+9797, U+97a6-97a7, U+97c2, U+97f1, U+9839, U+9853, U+9858, U+9873, U+98c6, U+98d0, U+9901, U+9903, U+9935, U+994f, U+99ae, U+99b3, U+99db, U+99f3, U+99f9, U+9a0e, U+9a3a, U+9a3d, U+9a44, U+9a4e, U+9a8d, U+9afc, U+9b11, U+9b56, U+9b71, U+9b8b, U+9bb0, U+9bbe, U+9bcb, U+9bcf, U+9bda, U+9c1f, U+9c37, U+9c49, U+9cdb, U+9cfe, U+9d10, U+9d1f, U+9d27, U+9d2e, U+9d32, U+9d37, U+9d83, U+9dab, U+9db2, U+9ded, U+9df7, U+9e00, U+9e3c, U+9e50, U+9e8e, U+9ea1, U+9ea7, U+9f07, U+9f1e, U+9f24, U+9f5b, U+9f7a, U+9f7d, U+9f91
}
@font-face {
font-family: MiSans VF;
font-weight: 1 999;
font-display: swap;
src: url(https://cdn-file.hyperos.mi.com/mi-font-service/misans_vf/VF/cs.79f31a96df0d4ce6.42.woff2) format("woff2"), url(https://cdn-file.hyperos.mi.com/mi-font-service/misans_vf/VF/cs.79f31a96df0d4ce6.42.woff) format("woff"), url(https://cdn-file.hyperos.mi.com/mi-font-service/misans_vf/VF/cs.79f31a96df0d4ce6.42.ttf) format("truetype"), url(https://cdn-file.hyperos.mi.com/mi-font-service/misans_vf/VF/cs.79f31a96df0d4ce6.42.eot) format("embedded-opentype");
unicode-range: U+570a, U+5776, U+6f24, U+727f, U+76de, U+76eb, U+7705, U+77b5, U+77ce, U+78c8, U+78da, U+78e9, U+78ed, U+78f3, U+790b, U+7931, U+797f, U+7a0c, U+7a2d, U+7a43, U+7a6b, U+7a85, U+7a8c, U+7abe, U+7b6d, U+7ba3, U+7c03, U+7c3a, U+7c3c, U+7c44, U+7cb4, U+7ce6, U+7cf4, U+7d5f, U+7d82, U+7df2, U+7dfa, U+7e29, U+7e73, U+7eb4, U+7f4d, U+7f75, U+7fda, U+7fe3, U+8030, U+805d, U+805f, U+807a, U+808a, U+8099, U+809e, U+81a5, U+81b1, U+81b4, U+81de, U+81ff, U+824e, U+8267, U+82b5, U+82c3, U+82f6, U+830d, U+83ed, U+8456, U+849f, U+8573, U+85c7, U+85e3, U+85eb, U+8648, U+8656, U+8692, U+8696, U+870e, U+8710, U+8728, U+872a, U+8755, U+881c, U+882d, U+8895, U+88cb, U+88e9, U+890c, U+890e, U+8939, U+896b, U+8988, U+8993, U+89ed, U+8a05-8a06, U+8a0f, U+8a1f, U+8a3d, U+8a5f, U+8a68, U+8a6d, U+8a75, U+8a95, U+8aa1, U+8b54, U+8b7b, U+8b88, U+8bc7, U+8c6d, U+8c8e, U+8c91, U+8cbf, U+8cc4, U+8d99, U+8dac, U+8db7, U+8df0-8df1, U+8e25, U+8e4c, U+8e79, U+8e98, U+8f16, U+8f47, U+8f4b, U+8f55, U+8f81, U+8fc6, U+8fd2, U+9015, U+9024, U+90d8, U+9183-9184, U+91bc, U+9230, U+9291, U+92cb, U+92eb, U+9332, U+9354, U+936e, U+9378, U+93c1, U+93d5, U+93e2, U+93e4, U+93ed, U+9404, U+9428, U+9444, U+9463, U+9477, U+947d, U+95d5, U+95da, U+9622, U+9624, U+9638, U+972b, U+978e, U+979d, U+97d7, U+981e, U+9837, U+9909, U+9964, U+99c3, U+99c9, U+9a1b, U+9a20, U+9a61, U+9aea, U+9b10, U+9b16, U+9b1a, U+9b3f, U+9b8c, U+9bc1, U+9bdb, U+9c24, U+9c7b, U+9cbe, U+9ce0, U+9cf3, U+9d09, U+9d30, U+9d3c, U+9d3e, U+9d42, U+9d9a, U+9da2, U+9db3, U+9dc7, U+9deb, U+9e56, U+9e85, U+9ec7, U+9ecb, U+9ee1, U+9f46, U+9f62-9f63
}
@font-face {
font-family: MiSans VF;
font-weight: 1 999;
font-display: swap;
src: url(https://cdn-file.hyperos.mi.com/mi-font-service/misans_vf/VF/cs.b5194d6a46db5ca6.43.woff2) format("woff2"), url(https://cdn-file.hyperos.mi.com/mi-font-service/misans_vf/VF/cs.b5194d6a46db5ca6.43.woff) format("woff"), url(https://cdn-file.hyperos.mi.com/mi-font-service/misans_vf/VF/cs.b5194d6a46db5ca6.43.ttf) format("truetype"), url(https://cdn-file.hyperos.mi.com/mi-font-service/misans_vf/VF/cs.b5194d6a46db5ca6.43.eot) format("embedded-opentype");
unicode-range: U+5865, U+6f2d, U+76cc, U+76e8, U+76ec, U+76ff, U+770c, U+7759, U+7782, U+77df, U+7863, U+78f9, U+7900, U+7945, U+79a1, U+79ad-79ae, U+79f6, U+7a87, U+7af7, U+7b23, U+7ba5, U+7bc3, U+7c15, U+7c2b-7c2c, U+7c2f, U+7c93, U+7c9b, U+7cb6, U+7cbb, U+7cf1, U+7d0b, U+7d13, U+7d5e, U+7df9, U+7e02, U+7e37, U+7e3c, U+7e46, U+7e55, U+7e5a, U+7e5e, U+7ee4, U+7f37, U+7f46, U+7f88, U+7fc6, U+7fd1, U+8075, U+8135, U+81c4, U+81d6, U+833d, U+838a, U+83a2, U+83b5, U+83d5, U+8435, U+84db, U+84f7-84f8, U+850a, U+8518, U+851e, U+8558, U+857c, U+8594, U+85d6, U+85e2, U+85f6, U+8659, U+86e2, U+87ef, U+8804, U+8808, U+880e, U+8823, U+8825, U+88d3, U+896a, U+8999, U+89a5, U+8a11, U+8a23, U+8a70, U+8a78, U+8ab0, U+8acf, U+8adb, U+8aee, U+8af1, U+8b25, U+8b28, U+8b6b, U+8c8b, U+8c9b, U+8cab, U+8cb2, U+8cd3, U+8cde, U+8d01-8d02, U+8d09, U+8da4, U+8daf, U+8db6, U+8dd4, U+8e34, U+8e46, U+8ef7, U+8f1d, U+8f30, U+8f3f, U+8f42, U+9081, U+90bc, U+912e, U+91df-91e0, U+91e3, U+91f1, U+9209, U+9234, U+923a, U+9242, U+928a, U+9298, U+92a6, U+92c5, U+92e4, U+92ed, U+9303, U+9308, U+9323, U+9328, U+9364, U+9394, U+93c6, U+93d0, U+9416, U+9427, U+9433, U+9462, U+9471, U+947e, U+9491, U+94f9, U+9543, U+95ac, U+95be-95bf, U+965c-965d, U+9720, U+976e, U+978f, U+9796, U+97e8, U+97fc-97fd, U+9812, U+9824, U+9854, U+985b, U+98f3, U+98f8, U+9906, U+9928, U+9945, U+9948, U+995f, U+99d0, U+99e1, U+99f7, U+9a01, U+9a2b, U+9a37, U+9a3c, U+9a62, U+9ad5, U+9b5c, U+9bc5, U+9c2b, U+9c57, U+9c7d, U+9cac, U+9d3b, U+9d86, U+9d8a, U+9df3, U+9dff, U+9e01, U+9e9e, U+9f0a, U+9f0f, U+9f1c, U+9f2b, U+9f57, U+9f66
}
@font-face {
font-family: MiSans VF;
font-weight: 1 999;
font-display: swap;
src: url(https://cdn-file.hyperos.mi.com/mi-font-service/misans_vf/VF/cs.cf03b249f24d5a05.44.woff2) format("woff2"), url(https://cdn-file.hyperos.mi.com/mi-font-service/misans_vf/VF/cs.cf03b249f24d5a05.44.woff) format("woff"), url(https://cdn-file.hyperos.mi.com/mi-font-service/misans_vf/VF/cs.cf03b249f24d5a05.44.ttf) format("truetype"), url(https://cdn-file.hyperos.mi.com/mi-font-service/misans_vf/VF/cs.cf03b249f24d5a05.44.eot) format("embedded-opentype");
unicode-range: U+5ddb, U+75c3, U+76e0, U+76f3, U+76fd, U+7703, U+770f, U+7745, U+774d, U+7755, U+7767, U+779c, U+7844, U+7894, U+78a0, U+78a6, U+78ad, U+78b8, U+78bd, U+78c3, U+78d1, U+78de, U+78f8, U+78fd, U+7909, U+7918, U+792e, U+793d, U+7958, U+797e, U+798c, U+79a4, U+79cc, U+79d9, U+79e2, U+79f9, U+7a27, U+7a2c, U+7a32, U+7a38, U+7a5c, U+7a8e, U+7ad2, U+7b65, U+7b76, U+7bec-7bed, U+7c18, U+7c34, U+7c52, U+7c54, U+7c5c, U+7c5e, U+7c76, U+7cc2, U+7cc9, U+7d23, U+7d4d, U+7da1, U+7db6, U+7dc4, U+7dd7, U+7dfc, U+7e01, U+7e06, U+7e0b, U+7e1c, U+7e1e, U+7e40, U+7e43, U+7e64, U+7e67, U+7e6c, U+7e83, U+7e89, U+7e92, U+7e97, U+7f6f, U+7f80, U+7f95, U+7fb5, U+8007, U+8034, U+806b, U+808d, U+8117, U+8143, U+8163, U+8168, U+8175, U+8197, U+819f, U+81ef, U+8226, U+8241-8242, U+824a, U+831e, U+8322, U+8358, U+83c4, U+8468, U+847e, U+8484, U+8495, U+8498, U+84a7, U+84ad, U+84bb, U+84c3, U+84c6, U+84f3, U+8531, U+8534, U+8541, U+8582, U+85ef, U+8601, U+8614, U+8618, U+8691, U+8706, U+8791, U+87e8, U+87fc, U+882a, U+885f, U+88db, U+8911, U+8920, U+8956, U+8987, U+8a10, U+8a14, U+8a52, U+8a56-8a57, U+8a6a, U+8a87, U+8ac8, U+8ad1, U+8b1f, U+8b8c, U+8b99, U+8c3d, U+8c57, U+8c77, U+8c97, U+8ca3, U+8cef, U+8d72, U+8e28, U+8e89, U+8eb1, U+8f17, U+91b1, U+91d4, U+9219, U+9254, U+929d, U+92d5, U+938b, U+939a, U+93f1, U+93fb, U+9434, U+9440, U+9475, U+96a9, U+96ba, U+96d1, U+9724, U+9729, U+97c6, U+983a, U+98ba, U+98ee, U+98f0, U+9907, U+991a, U+9950, U+995c, U+99bb, U+99de, U+9af4, U+9b36, U+9bc2, U+9bf5-9bf6, U+9c27, U+9c42, U+9cc2, U+9ccb, U+9d13, U+9d1c, U+9d5f, U+9db8, U+9e34, U+9e52, U+9eff
}
@font-face {
font-family: MiSans VF;
font-weight: 1 999;
font-display: swap;
src: url(https://cdn-file.hyperos.mi.com/mi-font-service/misans_vf/VF/cs.674a7eef87c03f30.45.woff2) format("woff2"), url(https://cdn-file.hyperos.mi.com/mi-font-service/misans_vf/VF/cs.674a7eef87c03f30.45.woff) format("woff"), url(https://cdn-file.hyperos.mi.com/mi-font-service/misans_vf/VF/cs.674a7eef87c03f30.45.ttf) format("truetype"), url(https://cdn-file.hyperos.mi.com/mi-font-service/misans_vf/VF/cs.674a7eef87c03f30.45.eot) format("embedded-opentype");
unicode-range: U+51b1, U+578c, U+57b2, U+5c1c, U+600a, U+7723, U+772e, U+774e, U+77a3, U+77c0, U+784a, U+7885, U+78ea, U+7912, U+7994, U+799e, U+79e0, U+7a44, U+7a59, U+7a6f, U+7a71, U+7a75, U+7aaf, U+7ae2, U+7b00, U+7b0d, U+7b69, U+7bdb, U+7bf3, U+7c11, U+7c20, U+7c63, U+7c83, U+7c96, U+7cd3, U+7cfa, U+7d2d, U+7d3e, U+7d6d, U+7d76, U+7d85, U+7dc5, U+7dcd, U+7e42, U+7e4b, U+7e63, U+7f47, U+7f59, U+7f65, U+7f7c, U+7f97, U+7f9c, U+7fed, U+8011, U+802e, U+8078, U+80b8, U+80f9, U+8123, U+816c, U+8184, U+8186, U+818b, U+81aa, U+81d5, U+8203, U+8252, U+826b, U+826d, U+8276, U+827c, U+833f, U+8362, U+8373, U+8382, U+841a, U+8488, U+84d7, U+84f1, U+854b, U+855f, U+8583, U+8590, U+85a0, U+85d1, U+85fa, U+8613, U+862a, U+8675, U+86be, U+86d6, U+86dc, U+874d, U+8768, U+87c2, U+87dc, U+880f, U+8855, U+8858, U+889f, U+88ac, U+895b, U+8abe, U+8b45, U+8b4c, U+8b78, U+8b9c, U+8c3b, U+8c60, U+8cda, U+8d0b, U+8d9d, U+8da1, U+8dfe, U+8e00, U+8e38, U+8e4e, U+8e61, U+8e73, U+8e9b, U+8ea9, U+8eb6, U+8ecf, U+8eec, U+8f00, U+8f35, U+8f53, U+8f57, U+8f65, U+8f77, U+8fa2, U+8fcb, U+9013, U+9037, U+9048, U+908c, U+911f, U+913a, U+9173, U+918e, U+91bb, U+91ed, U+922a, U+9238, U+928c, U+92c2, U+92ce, U+9350, U+9373, U+93b4, U+93b8, U+940d, U+9410, U+9458, U+946e, U+9594, U+95cd, U+96cb, U+9718, U+9723, U+9743, U+9784, U+97cd, U+9833, U+98a9, U+98e6, U+9914, U+99cb, U+9a04, U+9a27, U+9a48, U+9aa9, U+9abb, U+9abe, U+9af2, U+9afd, U+9b19, U+9b3d, U+9b63, U+9b6b, U+9b73, U+9bc0, U+9bc8, U+9be9, U+9bec, U+9c0c, U+9c30, U+9c6e, U+9c93, U+9d02, U+9d39, U+9d44, U+9d6c, U+9d8d, U+9eb0, U+9f04-9f05, U+9f16, U+9f2a, U+9f94
}
@font-face {
font-family: MiSans VF;
font-weight: 1 999;
font-display: swap;
src: url(https://cdn-file.hyperos.mi.com/mi-font-service/misans_vf/VF/cs.5a57e2c0f0e251c3.46.woff2) format("woff2"), url(https://cdn-file.hyperos.mi.com/mi-font-service/misans_vf/VF/cs.5a57e2c0f0e251c3.46.woff) format("woff"), url(https://cdn-file.hyperos.mi.com/mi-font-service/misans_vf/VF/cs.5a57e2c0f0e251c3.46.ttf) format("truetype"), url(https://cdn-file.hyperos.mi.com/mi-font-service/misans_vf/VF/cs.5a57e2c0f0e251c3.46.eot) format("embedded-opentype");
unicode-range: U+7640, U+76d3, U+7700, U+7715, U+7758, U+7769, U+77c2, U+77f5, U+77fa, U+782a-782b, U+7842, U+7880, U+7892, U+78e3, U+7907, U+7959, U+7964, U+7973, U+79a9-79aa, U+7a11, U+7a50, U+7a5b, U+7ac2, U+7b09, U+7b63, U+7b8f, U+7bdf, U+7bfa, U+7ca7, U+7ce7, U+7d02, U+7d10, U+7d33, U+7d3b, U+7d80, U+7db9, U+7dd0, U+7df1, U+7e08, U+7e56, U+7e6f, U+7e74, U+7e80, U+7f3e, U+7f89, U+7fad, U+7fb7, U+7fc8, U+800a, U+8021, U+8140, U+8142, U+81d7, U+81da, U+824d, U+8269, U+82c5, U+8381, U+83de, U+83f3, U+8408, U+844f, U+8481, U+8491, U+84d4-84d5, U+8519, U+853f, U+8563, U+8567, U+8586, U+8597, U+859d, U+85c0, U+860c, U+864b, U+86bf, U+872b, U+873d, U+8744, U+87a5, U+8805, U+881a, U+8878, U+88bd, U+88f6, U+88fa, U+8923, U+8938, U+89d3, U+8a45, U+8a47, U+8a50, U+8a5b, U+8abb, U+8abd, U+8ac2, U+8ae7, U+8b1a, U+8c67, U+8cae, U+8cc2, U+8ce1, U+8cf1, U+8d51, U+8d79, U+8d7d, U+8db9, U+8e03, U+8e5e, U+8e67, U+8ebb, U+8ebf, U+8f27, U+8f3b, U+8f3d, U+90df, U+910d, U+9111, U+917c, U+9181, U+9195, U+91a5, U+91e6, U+91ea, U+9215, U+9221, U+9235, U+9292, U+9299, U+92fa, U+9317, U+9325, U+9353, U+935f, U+938d, U+9398, U+93cd, U+93fd, U+93ff, U+940e, U+9424, U+9432, U+943f, U+944a, U+9527, U+95a7, U+95db, U+969d, U+96a5-96a6, U+9744, U+9771, U+97aa, U+97ba, U+97bf, U+97df, U+9840, U+98b1, U+98c0, U+98e5, U+98ea, U+9912, U+9946, U+995d, U+99bf, U+9a07, U+9a66, U+9ac9, U+9acf, U+9b09, U+9b38, U+9b5b, U+9cf7, U+9d4b, U+9d4f, U+9d68, U+9d7c, U+9da0, U+9dc1, U+9dd6, U+9df5, U+9dfc, U+9e07, U+9e0d, U+9e13, U+9e16, U+9e18, U+9e27, U+9e59, U+9e60, U+9e8f, U+9eee, U+9ef6, U+9f09, U+9f6f-9f70, U+9f93
}
@font-face {
font-family: MiSans VF;
font-weight: 1 999;
font-display: swap;
src: url(https://cdn-file.hyperos.mi.com/mi-font-service/misans_vf/VF/cs.b4dc7107cc4fed1a.47.woff2) format("woff2"), url(https://cdn-file.hyperos.mi.com/mi-font-service/misans_vf/VF/cs.b4dc7107cc4fed1a.47.woff) format("woff"), url(https://cdn-file.hyperos.mi.com/mi-font-service/misans_vf/VF/cs.b4dc7107cc4fed1a.47.ttf) format("truetype"), url(https://cdn-file.hyperos.mi.com/mi-font-service/misans_vf/VF/cs.b4dc7107cc4fed1a.47.eot) format("embedded-opentype");
unicode-range: U+76ea, U+7732, U+774b, U+77c3, U+77d2, U+785f, U+78a9, U+78c4, U+7902, U+790a, U+7970, U+7979, U+7990, U+79f3, U+79fc, U+7a04, U+7a07-7a08, U+7a18-7a19, U+7a62, U+7af8, U+7afe, U+7b10, U+7b1c, U+7b42, U+7b92, U+7b9b, U+7b9e, U+7ba4, U+7bb7, U+7bb9, U+7bbf, U+7bdc, U+7c1e, U+7c24, U+7c28, U+7c39, U+7c3d, U+7c6c, U+7c94, U+7cb8, U+7d07, U+7d1d, U+7d3a, U+7d46, U+7d73, U+7d84, U+7d8a, U+7d8f, U+7d92, U+7d94, U+7d97, U+7db4, U+7ddd-7dde, U+7de6, U+7df0, U+7df6, U+7e23, U+7e39, U+7e5c-7e5d, U+7e69, U+7e8f, U+7f43, U+7f5d, U+7f70, U+7fb4, U+7fe2, U+8061, U+8079, U+807b, U+807e, U+8115, U+811f, U+8133, U+813d, U+813f, U+81c8, U+8251, U+8259, U+8262, U+82bb, U+833b, U+834a, U+83d0, U+83d3, U+83d9-83da, U+83e3, U+83e6, U+83e8, U+8454, U+8460, U+846e, U+8472, U+84d9, U+8501, U+855b-855c, U+8566, U+8575, U+8577, U+8596, U+85e8, U+85ee, U+85f0, U+85f3, U+85f5, U+8643, U+8658, U+865c-865d, U+86e5, U+86f6, U+8720, U+8778, U+8790, U+8796, U+87a1-87a2, U+87f3, U+880c-880d, U+8812, U+8817, U+881d, U+881f, U+8898, U+891c, U+8928, U+897e, U+898a, U+899a-899b, U+899f-89a0, U+89af, U+8a1c, U+8a21, U+8a2e, U+8a3c, U+8a77, U+8a7a, U+8ac9, U+8ad2, U+8ad8, U+8ae6, U+8afa, U+8b00, U+8b20-8b21, U+8b29, U+8b38, U+8b3d, U+8b8d, U+8b9b, U+8ca6, U+8cb8, U+8cbd, U+8cc5, U+8cca, U+8cf3, U+8cfa, U+8d00, U+8d04, U+8d0a, U+8d0c, U+8daa, U+8dc1, U+8dc8, U+8dd2, U+8e56, U+8ec0, U+8ec7, U+8ed4, U+8ed8, U+8ee3, U+8efb, U+8f12, U+8f25-8f26, U+8f5f, U+9007, U+9094, U+90a5, U+90ab, U+913d, U+9186, U+919e, U+91bd, U+91e5, U+9202, U+923d, U+924d, U+925b, U+9293, U+929c, U+958f
}
@font-face {
font-family: MiSans VF;
font-weight: 1 999;
font-display: swap;
src: url(https://cdn-file.hyperos.mi.com/mi-font-service/misans_vf/VF/cs.22023aabe95a5c44.48.woff2) format("woff2"), url(https://cdn-file.hyperos.mi.com/mi-font-service/misans_vf/VF/cs.22023aabe95a5c44.48.woff) format("woff"), url(https://cdn-file.hyperos.mi.com/mi-font-service/misans_vf/VF/cs.22023aabe95a5c44.48.ttf) format("truetype"), url(https://cdn-file.hyperos.mi.com/mi-font-service/misans_vf/VF/cs.22023aabe95a5c44.48.eot) format("embedded-opentype");
unicode-range: U+5c8d, U+771e, U+7749, U+7774, U+778f, U+77a1, U+780f, U+7824, U+78ef, U+7911, U+7976, U+7996, U+79b0, U+79b5, U+79c5, U+7a34, U+7aa4, U+7ac8, U+7acc, U+7b32, U+7b3f, U+7c59, U+7cb5, U+7cbf, U+7d18, U+7dcb, U+7e2a, U+7e8d, U+7ed7, U+7fa0, U+7fd6, U+7ff8, U+8076, U+80a7, U+81f6, U+820b, U+8263, U+836e, U+844b, U+8552, U+85ad, U+8672, U+86a1, U+8738, U+8829, U+89b5, U+8a39, U+8a3b, U+8a44, U+8aac, U+8ae0, U+8b57, U+8c4a, U+8cc1, U+8d8c, U+8db0, U+8ee7, U+8f02, U+8f10, U+8f18, U+8f28, U+9076, U+908f, U+9206, U+9216, U+927c, U+9285, U+92c7, U+92d2, U+92ea, U+92f0, U+92f7, U+9320, U+9326, U+9365, U+9387, U+93b2, U+93c8, U+93df, U+9411, U+942c, U+9437, U+9472, U+9474, U+947f, U+957b, U+9591, U+95b0, U+95b3-95b4, U+95b9, U+95bd, U+95cc, U+95df, U+95e1, U+966e, U+967b, U+96d8, U+9702, U+9775, U+978a, U+979b, U+97bb, U+97d3, U+97ee, U+97f4, U+97f7, U+980a-980b, U+9813, U+981c, U+9855, U+9868, U+9874, U+98b5, U+98f7, U+98fa, U+98fe, U+9900, U+990c, U+9913, U+993c, U+9952, U+9961, U+9973, U+997b, U+99b4, U+99dc, U+99e3, U+99e5, U+99e8, U+99f6, U+9a0d, U+9a23, U+9a30, U+9a3f, U+9a41-9a42, U+9a47, U+9a51, U+9a55-9a56, U+9a65, U+9ade, U+9ae7, U+9b00, U+9b04-9b05, U+9b22, U+9b27, U+9b70, U+9b75, U+9b78, U+9b7a, U+9bca, U+9bd0, U+9bd3, U+9bd6-9bd8, U+9bfd, U+9c1e, U+9c2c, U+9c35, U+9c38, U+9c3b, U+9c4c, U+9c7a, U+9ce9-9cea, U+9cf6, U+9cff, U+9d22, U+9d2d, U+9d33-9d35, U+9d3a, U+9d3d, U+9d41, U+9d5d, U+9d88, U+9d90, U+9d93, U+9da9, U+9db4, U+9dd8, U+9de9, U+9df4, U+9dfd, U+9ea9, U+9eb5, U+9efa, U+9f11, U+9f18, U+9f2e, U+9f72, U+9f7c, U+9f8e, U+9f9d
}
@font-face {
font-family: MiSans VF;
font-weight: 1 999;
font-display: swap;
src: url(https://cdn-file.hyperos.mi.com/mi-font-service/misans_vf/VF/cs.e851aa7736638ddf.49.woff2) format("woff2"), url(https://cdn-file.hyperos.mi.com/mi-font-service/misans_vf/VF/cs.e851aa7736638ddf.49.woff) format("woff"), url(https://cdn-file.hyperos.mi.com/mi-font-service/misans_vf/VF/cs.e851aa7736638ddf.49.ttf) format("truetype"), url(https://cdn-file.hyperos.mi.com/mi-font-service/misans_vf/VF/cs.e851aa7736638ddf.49.eot) format("embedded-opentype");
unicode-range: U+72e8, U+76c9, U+76e2, U+7718, U+7771, U+777b, U+779e, U+78b5, U+78e0, U+7910, U+7924, U+793f, U+7969, U+7997, U+79a8, U+79fa, U+7a21, U+7a5f, U+7a7d, U+7aab, U+7ae4, U+7b0e, U+7b8b, U+7be8, U+7c4b, U+7cee, U+7d52-7d53, U+7d63, U+7de4, U+7df5, U+7e00, U+7e1a-7e1b, U+7e27, U+7e7f, U+7f99, U+7fae, U+80b0, U+8278, U+82bc, U+8359, U+8395, U+8399, U+8422, U+8447, U+845f, U+84aa, U+84e7, U+8504, U+8602, U+873c, U+8751, U+87a0, U+87a6-87a7, U+87c5, U+87e2, U+87e7, U+894c, U+8958, U+897d, U+8a1e, U+8a40, U+8b04, U+8c3c, U+8c70, U+8c92, U+8cf7, U+8e04, U+8e92, U+8ea6, U+8ead, U+8fcd, U+91ff, U+927d, U+92ab, U+92b2, U+930b, U+9327, U+935a, U+9371, U+939d, U+93f8, U+9429, U+946a, U+9470, U+95a2, U+96a3, U+96b2, U+971d, U+9777, U+979f, U+9826, U+98bb, U+991f, U+992b, U+993d, U+994c, U+9a0a, U+9a46, U+9a5b, U+9a94, U+9aa3, U+9abf, U+9b33, U+9b52, U+9b7d, U+9b7f, U+9b85, U+9b87, U+9b8e, U+9b98, U+9baa, U+9bad, U+9be8, U+9c3f-9c40, U+9c44, U+9c53, U+9c96, U+9d12, U+9d19, U+9d1e, U+9d63, U+9d6a, U+9de6, U+9dfa, U+9f25, U+9f5c
}
@font-face {
font-family: MiSans VF;
font-weight: 1 999;
font-display: swap;
src: url(https://cdn-file.hyperos.mi.com/mi-font-service/misans_vf/VF/lt.a6a7c6e600ff19f0.0.woff2) format("woff2"), url(https://cdn-file.hyperos.mi.com/mi-font-service/misans_vf/VF/lt.a6a7c6e600ff19f0.0.woff) format("woff"), url(https://cdn-file.hyperos.mi.com/mi-font-service/misans_vf/VF/lt.a6a7c6e600ff19f0.0.ttf) format("truetype"), url(https://cdn-file.hyperos.mi.com/mi-font-service/misans_vf/VF/lt.a6a7c6e600ff19f0.0.eot) format("embedded-opentype");
unicode-range: U+20-7e, U+a0-108
}
@font-face {
font-family: MiSans VF;
font-weight: 1 999;
font-display: swap;
src: url(https://cdn-file.hyperos.mi.com/mi-font-service/misans_vf/VF/lt.c77fd348439af20e.1.woff2) format("woff2"), url(https://cdn-file.hyperos.mi.com/mi-font-service/misans_vf/VF/lt.c77fd348439af20e.1.woff) format("woff"), url(https://cdn-file.hyperos.mi.com/mi-font-service/misans_vf/VF/lt.c77fd348439af20e.1.ttf) format("truetype"), url(https://cdn-file.hyperos.mi.com/mi-font-service/misans_vf/VF/lt.c77fd348439af20e.1.eot) format("embedded-opentype");
unicode-range: U+109-17f, U+181, U+18a, U+18f, U+192, U+198-199, U+1a0-1a1, U+1af-1b0, U+1b3-1b4, U+1b7, U+1cd-1dc, U+1e4-1e9, U+1ee-1f0, U+1f9-1ff, U+218-21b, U+21e-21f, U+237, U+251, U+253, U+257, U+259, U+261, U+292, U+2b0, U+2b2-2b3, U+2b7-2b8, U+2bb-2bc, U+2c6-2c7, U+2c9-2cb, U+2d8-2dd, U+2e1-2e3, U+300-301
}
@font-face {
font-family: MiSans VF;
font-weight: 1 999;
font-display: swap;
src: url(https://cdn-file.hyperos.mi.com/mi-font-service/misans_vf/VF/lt.0ac29c0be305bc1f.2.woff2) format("woff2"), url(https://cdn-file.hyperos.mi.com/mi-font-service/misans_vf/VF/lt.0ac29c0be305bc1f.2.woff) format("woff"), url(https://cdn-file.hyperos.mi.com/mi-font-service/misans_vf/VF/lt.0ac29c0be305bc1f.2.ttf) format("truetype"), url(https://cdn-file.hyperos.mi.com/mi-font-service/misans_vf/VF/lt.0ac29c0be305bc1f.2.eot) format("embedded-opentype");
unicode-range: U+302-304, U+306-30c, U+312, U+323, U+326-328, U+374-375, U+37e, U+384-38a, U+38c, U+38e-3a1, U+3a3-3ce, U+3d1-3d4, U+3d6, U+400-45f, U+462-463, U+46a-46b, U+472-475, U+490
}
@font-face {
font-family: MiSans VF;
font-weight: 1 999;
font-display: swap;
src: url(https://cdn-file.hyperos.mi.com/mi-font-service/misans_vf/VF/lt.246f7ce5260e8e3e.3.woff2) format("woff2"), url(https://cdn-file.hyperos.mi.com/mi-font-service/misans_vf/VF/lt.246f7ce5260e8e3e.3.woff) format("woff"), url(https://cdn-file.hyperos.mi.com/mi-font-service/misans_vf/VF/lt.246f7ce5260e8e3e.3.ttf) format("truetype"), url(https://cdn-file.hyperos.mi.com/mi-font-service/misans_vf/VF/lt.246f7ce5260e8e3e.3.eot) format("embedded-opentype");
unicode-range: U+491-493, U+497, U+49a-49d, U+4a2-4a3, U+4ae-4b3, U+4b6-4bb, U+4ca, U+4d8-4d9, U+4e2-4e3, U+4e8-4e9, U+4ee-4ef, U+e3f, U+1d43, U+1d47-1d49, U+1d4d, U+1d4f-1d50, U+1d52, U+1d56-1d58, U+1d5b, U+1d9c, U+1da0, U+1dbb, U+1e00-1e01, U+1e3e-1e3f, U+1e80-1e85, U+1e9e, U+1ea0-1ef9, U+1f45, U+2004-2006, U+2009-200a, U+2010, U+2013-2016, U+2018-201a, U+201c-201e, U+2020-2022, U+2025-2026, U+2030-2037, U+2039-203c, U+203e, U+2042-2044, U+2047-2049, U+204e, U+2051, U+2055, U+2060-2064, U+2070-2071, U+2074
}
@font-face {
font-family: MiSans VF;
font-weight: 1 999;
font-display: swap;
src: url(https://cdn-file.hyperos.mi.com/mi-font-service/misans_vf/VF/lt.e4bf938f700cee4e.4.woff2) format("woff2"), url(https://cdn-file.hyperos.mi.com/mi-font-service/misans_vf/VF/lt.e4bf938f700cee4e.4.woff) format("woff"), url(https://cdn-file.hyperos.mi.com/mi-font-service/misans_vf/VF/lt.e4bf938f700cee4e.4.ttf) format("truetype"), url(https://cdn-file.hyperos.mi.com/mi-font-service/misans_vf/VF/lt.e4bf938f700cee4e.4.eot) format("embedded-opentype");
unicode-range: U+2075-207b, U+207f-2089, U+20a3-20a4, U+20a8-20a9, U+20ab-20ac, U+20ae, U+20b1, U+20b8-20ba, U+20bd, U+20bf, U+2103, U+2105, U+2109, U+2113-2114, U+2116-2117, U+211e, U+2120-2122, U+2126, U+212e, U+2153-2154, U+215b-215e, U+2160-2179, U+2180-2182, U+2190-2193, U+2196-2199, U+21c4, U+2202, U+2206, U+2208, U+220f, U+2211-2212, U+2215, U+221a, U+221d-2220, U+2223, U+2225, U+2227-222b, U+222e, U+2234-2237, U+223c-223d, U+2248, U+224c, U+2252, U+2260-2261, U+2264-2267, U+226e-226f, U+2295, U+2299, U+22a5, U+22bf, U+2312, U+2460-2469, U+2474-249b, U+2500-2513
}
@font-face {
font-family: MiSans VF;
font-weight: 1 999;
font-display: swap;
src: url(https://cdn-file.hyperos.mi.com/mi-font-service/misans_vf/VF/lt.1c8ba56c4cd96839.5.woff2) format("woff2"), url(https://cdn-file.hyperos.mi.com/mi-font-service/misans_vf/VF/lt.1c8ba56c4cd96839.5.woff) format("woff"), url(https://cdn-file.hyperos.mi.com/mi-font-service/misans_vf/VF/lt.1c8ba56c4cd96839.5.ttf) format("truetype"), url(https://cdn-file.hyperos.mi.com/mi-font-service/misans_vf/VF/lt.1c8ba56c4cd96839.5.eot) format("embedded-opentype");
unicode-range: U+20, U+2514-254b, U+2550-2573, U+2581-258f, U+2593-2595, U+25a0-25a1, U+25b2-25b3, U+25bc-25bd, U+25c6-25c7, U+25ca-25cb, U+25ce-25cf, U+25e2-25e5, U+2605-2606, U+2609, U+2640, U+2642, U+2713, U+2715, U+275b-275e, U+2780-2793, U+3000, U+3003, U+3007, U+3012-3013, U+301d-301e, U+fe49-fe4f
}
@font-face {
font-family: JetBrainsMono-VF;
src: url(https://resource-workspace.19991230.xyz/web-font/JetBrainsMono-VF.woff2) format("woff2-variations"), url(https://resource-workspace.19991230.xyz/web-font/JetBrainsMono-VF.ttf) format("ttf");
font-weight: 100 900;
font-style: normal;
font-display: swap
}
+2 -1
View File
@@ -26,7 +26,7 @@ define({
--primary: oklch(0.70 0.14 var(--hue)) oklch(0.75 0.14 var(--hue)) --primary: oklch(0.70 0.14 var(--hue)) oklch(0.75 0.14 var(--hue))
--page-bg: oklch(0.95 0.01 var(--hue)) oklch(0.16 0.014 var(--hue)) --page-bg: oklch(0.95 0.01 var(--hue)) oklch(0.16 0.014 var(--hue))
--card-bg: white oklch(0.23 0.015 var(--hue)) --card-bg: white oklch(0.23 0.015 var(--hue))
--card-bg-transparent: rgba(255, 255, 255, 0.8) rgba(23, 23, 23, 0.8)
--btn-content: oklch(0.55 0.12 var(--hue)) oklch(0.75 0.1 var(--hue)) --btn-content: oklch(0.55 0.12 var(--hue)) oklch(0.75 0.1 var(--hue))
--btn-regular-bg: oklch(0.95 0.025 var(--hue)) oklch(0.33 0.035 var(--hue)) --btn-regular-bg: oklch(0.95 0.025 var(--hue)) oklch(0.33 0.035 var(--hue))
@@ -66,6 +66,7 @@ define({
--link-active: oklch(0.90 0.05 var(--hue)) oklch(0.35 0.07 var(--hue)) --link-active: oklch(0.90 0.05 var(--hue)) oklch(0.35 0.07 var(--hue))
--float-panel-bg: white oklch(0.19 0.015 var(--hue)) --float-panel-bg: white oklch(0.19 0.015 var(--hue))
--float-panel-bg-transparent: rgba(255, 255, 255, 0.8) rgba(23, 23, 23, 0.8)
--scrollbar-bg-light: black(0.4) --scrollbar-bg-light: black(0.4)
--scrollbar-bg-hover-light: black(0.5) --scrollbar-bg-hover-light: black(0.5)
+24 -1
View File
@@ -20,6 +20,17 @@ export type SiteConfig = {
hue: number; hue: number;
fixed: boolean; fixed: boolean;
}; };
background: {
enable: boolean;
src: string;
position?: "top" | "center" | "bottom";
size?: "cover" | "contain" | "auto";
repeat?: "no-repeat" | "repeat" | "repeat-x" | "repeat-y";
attachment?: "fixed" | "scroll" | "local";
opacity?: number;
};
banner: { banner: {
enable: boolean; enable: boolean;
src: string; src: string;
@@ -80,7 +91,6 @@ export type LicenseConfig = {
export type LIGHT_DARK_MODE = export type LIGHT_DARK_MODE =
| typeof LIGHT_MODE | typeof LIGHT_MODE
| typeof DARK_MODE | typeof DARK_MODE
| typeof AUTO_MODE;
export type BlogPostData = { export type BlogPostData = {
body: string; body: string;
@@ -100,3 +110,16 @@ export type BlogPostData = {
export type ExpressiveCodeConfig = { export type ExpressiveCodeConfig = {
theme: string; theme: string;
}; };
export type ImageFallbackConfig = {
enable: boolean;
originalDomain: string;
fallbackDomain: string;
};
export type UmamiConfig = {
enable: boolean;
baseUrl: string;
shareId: string;
timezone: string;
};
+1 -1
View File
@@ -6,7 +6,7 @@ module.exports = {
theme: { theme: {
extend: { extend: {
fontFamily: { fontFamily: {
sans: ["Roboto", "sans-serif", ...defaultTheme.fontFamily.sans], sans: ["MiSans VF", "HarmonyOS Sans SC", ...defaultTheme.fontFamily.sans],
}, },
}, },
}, },