diff --git a/assets/css/custom.css b/assets/css/custom.css
new file mode 100644
index 0000000..69a24c9
--- /dev/null
+++ b/assets/css/custom.css
@@ -0,0 +1,25 @@
+/* ===== Custom Fonts ===== */
+
+/* iA Writer Quattro S — self-hosted */
+@font-face {
+ font-family: "iA Writer Quattro S";
+ src: url("/fonts/iAWriterQuattroSRegular.ttf") format("truetype");
+ font-weight: 400;
+ font-style: normal;
+ font-display: swap;
+}
+
+/* Global font stack: English → Chinese → system fallback */
+html,
+body {
+ font-family: "iA Writer Quattro S", "Noto Sans SC", sans-serif;
+}
+
+/* Code blocks keep monospace */
+code,
+pre,
+kbd {
+ font-family:
+ "SF Mono", "Fira Code", "Fira Mono", "Roboto Mono", "Noto Sans SC",
+ monospace;
+}
diff --git a/layouts/_partials/custom/head-end.html b/layouts/_partials/custom/head-end.html
new file mode 100644
index 0000000..5c386c9
--- /dev/null
+++ b/layouts/_partials/custom/head-end.html
@@ -0,0 +1,4 @@
+
+
+
+
diff --git a/static/fonts/iAWriterQuattroSRegular.ttf b/static/fonts/iAWriterQuattroSRegular.ttf
new file mode 100644
index 0000000..f8eb282
Binary files /dev/null and b/static/fonts/iAWriterQuattroSRegular.ttf differ