diff --git a/.DS_Store b/.DS_Store index 279ec63..e8276eb 100644 Binary files a/.DS_Store and b/.DS_Store differ diff --git a/package-lock.json b/package-lock.json index fc0be01..d1d924b 100644 --- a/package-lock.json +++ b/package-lock.json @@ -8,6 +8,7 @@ "name": "fiveq-website", "version": "1.0.0", "dependencies": { + "@fontsource/manrope": "^5.2.8", "@iconify-json/lucide": "^1.2.32", "astro": "^5.7.10", "astro-icon": "^1.1.5" @@ -590,6 +591,15 @@ "node": ">=18" } }, + "node_modules/@fontsource/manrope": { + "version": "5.2.8", + "resolved": "https://registry.npmmirror.com/@fontsource/manrope/-/manrope-5.2.8.tgz", + "integrity": "sha512-gJHJmcuUk7qWcNCfcAri/DJQtXtBYqi9yKratr4jXhSo0I3xUtNNKI+igQIcw5c+m95g0vounk8ZnX/kb8o0TA==", + "license": "OFL-1.1", + "funding": { + "url": "https://github.com/sponsors/ayuhito" + } + }, "node_modules/@iconify-json/lucide": { "version": "1.2.101", "resolved": "https://mirrors.cloud.tencent.com/npm/@iconify-json/lucide/-/lucide-1.2.101.tgz", diff --git a/package.json b/package.json index 3b99c26..ae34273 100644 --- a/package.json +++ b/package.json @@ -8,8 +8,9 @@ "preview": "astro preview" }, "dependencies": { + "@fontsource/manrope": "^5.2.8", + "@iconify-json/lucide": "^1.2.32", "astro": "^5.7.10", - "astro-icon": "^1.1.5", - "@iconify-json/lucide": "^1.2.32" + "astro-icon": "^1.1.5" } } diff --git a/public/_headers b/public/_headers new file mode 100644 index 0000000..12bbe46 --- /dev/null +++ b/public/_headers @@ -0,0 +1,36 @@ +# Cache static assets for 1 year (content hashed filenames ensure cache busting) +/_astro/* + Cache-Control: public, max-age=31536000, immutable + +# Fonts — cache for 1 year +/fonts/* + Cache-Control: public, max-age=31536000, immutable + +# Images — cache for 1 year +/images/* + Cache-Control: public, max-age=31536000, immutable + +# HTML pages — no cache (always fetch latest) +/index.html + Cache-Control: no-cache + +/about/* + Cache-Control: no-cache + +/curriculum/* + Cache-Control: no-cache + +/faculty/* + Cache-Control: no-cache + +/teaching-philosophy/* + Cache-Control: no-cache + +/en/* + Cache-Control: no-cache + +/ja/* + Cache-Control: no-cache + +/fr/* + Cache-Control: no-cache diff --git a/public/fonts/manrope-latin-400-normal.woff2 b/public/fonts/manrope-latin-400-normal.woff2 new file mode 100644 index 0000000..7eaaa95 Binary files /dev/null and b/public/fonts/manrope-latin-400-normal.woff2 differ diff --git a/public/fonts/manrope-latin-600-normal.woff2 b/public/fonts/manrope-latin-600-normal.woff2 new file mode 100644 index 0000000..7cc09a3 Binary files /dev/null and b/public/fonts/manrope-latin-600-normal.woff2 differ diff --git a/public/fonts/manrope-latin-700-normal.woff2 b/public/fonts/manrope-latin-700-normal.woff2 new file mode 100644 index 0000000..84f7af5 Binary files /dev/null and b/public/fonts/manrope-latin-700-normal.woff2 differ diff --git a/public/fonts/manrope-latin-800-normal.woff2 b/public/fonts/manrope-latin-800-normal.woff2 new file mode 100644 index 0000000..b5cd400 Binary files /dev/null and b/public/fonts/manrope-latin-800-normal.woff2 differ diff --git a/public/fonts/manrope-latin-ext-400-normal.woff2 b/public/fonts/manrope-latin-ext-400-normal.woff2 new file mode 100644 index 0000000..a56d446 Binary files /dev/null and b/public/fonts/manrope-latin-ext-400-normal.woff2 differ diff --git a/public/fonts/manrope-latin-ext-600-normal.woff2 b/public/fonts/manrope-latin-ext-600-normal.woff2 new file mode 100644 index 0000000..9ceb22a Binary files /dev/null and b/public/fonts/manrope-latin-ext-600-normal.woff2 differ diff --git a/public/fonts/manrope-latin-ext-700-normal.woff2 b/public/fonts/manrope-latin-ext-700-normal.woff2 new file mode 100644 index 0000000..5e6b5ae Binary files /dev/null and b/public/fonts/manrope-latin-ext-700-normal.woff2 differ diff --git a/public/fonts/manrope-latin-ext-800-normal.woff2 b/public/fonts/manrope-latin-ext-800-normal.woff2 new file mode 100644 index 0000000..2e69061 Binary files /dev/null and b/public/fonts/manrope-latin-ext-800-normal.woff2 differ diff --git a/public/fonts/manrope.css b/public/fonts/manrope.css new file mode 100644 index 0000000..5863644 --- /dev/null +++ b/public/fonts/manrope.css @@ -0,0 +1,73 @@ +/* Self-hosted Manrope font — eliminates slow Google Fonts CDN dependency */ + +@font-face { + font-family: 'Manrope'; + src: url('/fonts/manrope-latin-400-normal.woff2') format('woff2'); + font-weight: 400; + font-style: normal; + font-display: swap; + unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; +} + +@font-face { + font-family: 'Manrope'; + src: url('/fonts/manrope-latin-ext-400-normal.woff2') format('woff2'); + font-weight: 400; + font-style: normal; + font-display: swap; + unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; +} + +@font-face { + font-family: 'Manrope'; + src: url('/fonts/manrope-latin-600-normal.woff2') format('woff2'); + font-weight: 600; + font-style: normal; + font-display: swap; + unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; +} + +@font-face { + font-family: 'Manrope'; + src: url('/fonts/manrope-latin-ext-600-normal.woff2') format('woff2'); + font-weight: 600; + font-style: normal; + font-display: swap; + unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; +} + +@font-face { + font-family: 'Manrope'; + src: url('/fonts/manrope-latin-700-normal.woff2') format('woff2'); + font-weight: 700; + font-style: normal; + font-display: swap; + unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; +} + +@font-face { + font-family: 'Manrope'; + src: url('/fonts/manrope-latin-ext-700-normal.woff2') format('woff2'); + font-weight: 700; + font-style: normal; + font-display: swap; + unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; +} + +@font-face { + font-family: 'Manrope'; + src: url('/fonts/manrope-latin-800-normal.woff2') format('woff2'); + font-weight: 800; + font-style: normal; + font-display: swap; + unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; +} + +@font-face { + font-family: 'Manrope'; + src: url('/fonts/manrope-latin-ext-800-normal.woff2') format('woff2'); + font-weight: 800; + font-style: normal; + font-display: swap; + unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; +} diff --git a/public/images/index-hero-bg.webp b/public/images/index-hero-bg.webp index 93462ee..eaca92b 100644 Binary files a/public/images/index-hero-bg.webp and b/public/images/index-hero-bg.webp differ diff --git a/public/images/index-left.webp b/public/images/index-left.webp index e70e158..a8780fc 100644 Binary files a/public/images/index-left.webp and b/public/images/index-left.webp differ diff --git a/public/images/sketch/165dc7c938317262993013e2bf7108b0d8429d1e.webp b/public/images/sketch/165dc7c938317262993013e2bf7108b0d8429d1e.webp index f24d70f..a1f5a07 100644 Binary files a/public/images/sketch/165dc7c938317262993013e2bf7108b0d8429d1e.webp and b/public/images/sketch/165dc7c938317262993013e2bf7108b0d8429d1e.webp differ diff --git a/public/images/sketch/1abbe19f0bf338ca5914e4918c80e2a0166fb3c6.webp b/public/images/sketch/1abbe19f0bf338ca5914e4918c80e2a0166fb3c6.webp index 4047918..4f9577e 100644 Binary files a/public/images/sketch/1abbe19f0bf338ca5914e4918c80e2a0166fb3c6.webp and b/public/images/sketch/1abbe19f0bf338ca5914e4918c80e2a0166fb3c6.webp differ diff --git a/public/images/sketch/3cfbe88194be43bcc0ab7a8e987c4d7eaad93ef5.webp b/public/images/sketch/3cfbe88194be43bcc0ab7a8e987c4d7eaad93ef5.webp index 0474931..2df111d 100644 Binary files a/public/images/sketch/3cfbe88194be43bcc0ab7a8e987c4d7eaad93ef5.webp and b/public/images/sketch/3cfbe88194be43bcc0ab7a8e987c4d7eaad93ef5.webp differ diff --git a/public/images/sketch/3fb13b6b14a9c9c38c19f57b131e9dbb84e9d2a8.webp b/public/images/sketch/3fb13b6b14a9c9c38c19f57b131e9dbb84e9d2a8.webp index 2178b1a..86df786 100644 Binary files a/public/images/sketch/3fb13b6b14a9c9c38c19f57b131e9dbb84e9d2a8.webp and b/public/images/sketch/3fb13b6b14a9c9c38c19f57b131e9dbb84e9d2a8.webp differ diff --git a/public/images/sketch/4f0c158d4abd3ded7bc18fb50aedeedc77691076.webp b/public/images/sketch/4f0c158d4abd3ded7bc18fb50aedeedc77691076.webp index 45521d9..2e80d38 100644 Binary files a/public/images/sketch/4f0c158d4abd3ded7bc18fb50aedeedc77691076.webp and b/public/images/sketch/4f0c158d4abd3ded7bc18fb50aedeedc77691076.webp differ diff --git a/public/images/sketch/53f5e9c4751757b91531fd260cf01f6eff8e1278.webp b/public/images/sketch/53f5e9c4751757b91531fd260cf01f6eff8e1278.webp index 751a178..e47317c 100644 Binary files a/public/images/sketch/53f5e9c4751757b91531fd260cf01f6eff8e1278.webp and b/public/images/sketch/53f5e9c4751757b91531fd260cf01f6eff8e1278.webp differ diff --git a/public/images/sketch/67a807fec1b784684e1a026f0ee01f5072a571c7.webp b/public/images/sketch/67a807fec1b784684e1a026f0ee01f5072a571c7.webp index 7869a2f..0b2cf9e 100644 Binary files a/public/images/sketch/67a807fec1b784684e1a026f0ee01f5072a571c7.webp and b/public/images/sketch/67a807fec1b784684e1a026f0ee01f5072a571c7.webp differ diff --git a/public/images/sketch/6de9aa9e5d23da3009d3776b55c3b84c02a5aaa2.webp b/public/images/sketch/6de9aa9e5d23da3009d3776b55c3b84c02a5aaa2.webp index ca284f7..d741891 100644 Binary files a/public/images/sketch/6de9aa9e5d23da3009d3776b55c3b84c02a5aaa2.webp and b/public/images/sketch/6de9aa9e5d23da3009d3776b55c3b84c02a5aaa2.webp differ diff --git a/public/images/sketch/7cdc25ddd57dfe8b8394e8b3ed7ffc28225b6471.webp b/public/images/sketch/7cdc25ddd57dfe8b8394e8b3ed7ffc28225b6471.webp index 679af95..e28feea 100644 Binary files a/public/images/sketch/7cdc25ddd57dfe8b8394e8b3ed7ffc28225b6471.webp and b/public/images/sketch/7cdc25ddd57dfe8b8394e8b3ed7ffc28225b6471.webp differ diff --git a/public/images/sketch/8f23517eccd3e10f8cdc63887d23cd0aaaa75181.webp b/public/images/sketch/8f23517eccd3e10f8cdc63887d23cd0aaaa75181.webp index 552e5e0..b219c6f 100644 Binary files a/public/images/sketch/8f23517eccd3e10f8cdc63887d23cd0aaaa75181.webp and b/public/images/sketch/8f23517eccd3e10f8cdc63887d23cd0aaaa75181.webp differ diff --git a/public/images/sketch/9286e6b5a91d38938547ebf3909e5d6886e79899.webp b/public/images/sketch/9286e6b5a91d38938547ebf3909e5d6886e79899.webp index 6f77756..017d8ff 100644 Binary files a/public/images/sketch/9286e6b5a91d38938547ebf3909e5d6886e79899.webp and b/public/images/sketch/9286e6b5a91d38938547ebf3909e5d6886e79899.webp differ diff --git a/public/images/sketch/abfcce4aed0c6b426ced3e4a00ca599ddb0bc080.webp b/public/images/sketch/abfcce4aed0c6b426ced3e4a00ca599ddb0bc080.webp index a4d40ba..2880c56 100644 Binary files a/public/images/sketch/abfcce4aed0c6b426ced3e4a00ca599ddb0bc080.webp and b/public/images/sketch/abfcce4aed0c6b426ced3e4a00ca599ddb0bc080.webp differ diff --git a/public/images/sketch/d47cf2285609fda9339d16a5dae947ac4f22416e.webp b/public/images/sketch/d47cf2285609fda9339d16a5dae947ac4f22416e.webp index 254d4ac..1590934 100644 Binary files a/public/images/sketch/d47cf2285609fda9339d16a5dae947ac4f22416e.webp and b/public/images/sketch/d47cf2285609fda9339d16a5dae947ac4f22416e.webp differ diff --git a/public/images/sketch/d5c638f4b093f233101f28a2872f10f3172a3ac4.webp b/public/images/sketch/d5c638f4b093f233101f28a2872f10f3172a3ac4.webp index 47421c9..0934805 100644 Binary files a/public/images/sketch/d5c638f4b093f233101f28a2872f10f3172a3ac4.webp and b/public/images/sketch/d5c638f4b093f233101f28a2872f10f3172a3ac4.webp differ diff --git a/public/images/sketch/e008645eb4e8bd0b78d8a748abedf9702a1944c0.webp b/public/images/sketch/e008645eb4e8bd0b78d8a748abedf9702a1944c0.webp index 6f7a099..010c507 100644 Binary files a/public/images/sketch/e008645eb4e8bd0b78d8a748abedf9702a1944c0.webp and b/public/images/sketch/e008645eb4e8bd0b78d8a748abedf9702a1944c0.webp differ diff --git a/public/images/sketch/eb55da7436f1cf69f9ce2a44234033426361d80d.webp b/public/images/sketch/eb55da7436f1cf69f9ce2a44234033426361d80d.webp index b31b9a1..621289f 100644 Binary files a/public/images/sketch/eb55da7436f1cf69f9ce2a44234033426361d80d.webp and b/public/images/sketch/eb55da7436f1cf69f9ce2a44234033426361d80d.webp differ diff --git a/public/images/study.webp b/public/images/study.webp index e76f315..d5e4b83 100644 Binary files a/public/images/study.webp and b/public/images/study.webp differ diff --git a/public/images/teacher.webp b/public/images/teacher.webp index a8763df..e2d7ce2 100644 Binary files a/public/images/teacher.webp and b/public/images/teacher.webp differ diff --git a/src/layouts/BaseLayout.astro b/src/layouts/BaseLayout.astro index 9fbf020..ffaab15 100644 --- a/src/layouts/BaseLayout.astro +++ b/src/layouts/BaseLayout.astro @@ -28,12 +28,7 @@ const htmlLangAttr = htmlLang[lang]; ))} - - - +