Forecast
About
diff --git a/assets/about.css b/assets/about.css
index c9d52b7..2c7c023 100644
--- a/assets/about.css
+++ b/assets/about.css
@@ -1,3 +1,11 @@
+@font-face { font-family: 'Manrope'; font-style: normal; font-weight: 200 800; font-display: swap; src: url('fonts/manrope-variable.woff2') format('woff2'); }
+@font-face { font-family: 'Fraunces'; font-style: normal; font-weight: 700; font-display: swap; src: url('fonts/fraunces-700-normal.woff2') format('woff2'); }
+@font-face { font-family: 'Fraunces'; font-style: normal; font-weight: 900; font-display: swap; src: url('fonts/fraunces-900-normal.woff2') format('woff2'); }
+@font-face { font-family: 'Fraunces'; font-style: italic; font-weight: 300; font-display: swap; src: url('fonts/fraunces-300-italic.woff2') format('woff2'); }
+@font-face { font-family: 'Fraunces'; font-style: italic; font-weight: 700; font-display: swap; src: url('fonts/fraunces-700-italic.woff2') format('woff2'); }
+@font-face { font-family: 'JetBrains Mono'; font-style: normal; font-weight: 400; font-display: swap; src: url('fonts/jetbrains-mono-400.woff2') format('woff2'); }
+@font-face { font-family: 'JetBrains Mono'; font-style: normal; font-weight: 600; font-display: swap; src: url('fonts/jetbrains-mono-600.woff2') format('woff2'); }
+
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
body {
@@ -141,15 +149,18 @@ header a.active { color: #c8922a; }
.logo {
margin-right: auto;
- font-family: 'Fraunces', serif;
- font-weight: 900;
+ font-family: 'Manrope', sans-serif;
+ font-weight: 250;
font-size: 1.6rem;
color: #1e1208;
- letter-spacing: -0.02em;
+ letter-spacing: -0.01em;
text-transform: none;
+ display: flex;
+ align-items: center;
+ gap: 0.05em;
}
-.logo-sun { color: #c8922a; font-weight: 900; font-style: normal; }
-.logo-scope { font-style: italic; font-weight: 900; color: #1e1208; }
+.logo-sun, .logo-scope { color: #1e1208; font-weight: 250; font-style: normal; }
+.logo-icon { width: 0.82em; height: 0.82em; flex-shrink: 0; }
main {
max-width: 780px;
diff --git a/assets/css/base.css b/assets/css/base.css
index 0a93cbb..be4581b 100644
--- a/assets/css/base.css
+++ b/assets/css/base.css
@@ -1,6 +1,5 @@
/* ── SELF-HOSTED FONTS ───────────────────────────────────────────────── */
-@font-face { font-family: 'Manrope'; font-style: normal; font-weight: 600; font-display: swap; src: url('../fonts/manrope-600.woff2') format('woff2'); }
-@font-face { font-family: 'Manrope'; font-style: normal; font-weight: 700; font-display: swap; src: url('../fonts/manrope-700.woff2') format('woff2'); }
+@font-face { font-family: 'Manrope'; font-style: normal; font-weight: 200 800; font-display: swap; src: url('../fonts/manrope-variable.woff2') format('woff2'); }
@font-face { font-family: 'Fraunces'; font-style: normal; font-weight: 700; font-display: swap; src: url('../fonts/fraunces-700-normal.woff2') format('woff2'); }
@font-face { font-family: 'Fraunces'; font-style: normal; font-weight: 900; font-display: swap; src: url('../fonts/fraunces-900-normal.woff2') format('woff2'); }
@font-face { font-family: 'Fraunces'; font-style: italic; font-weight: 300; font-display: swap; src: url('../fonts/fraunces-300-italic.woff2') format('woff2'); }
@@ -127,28 +126,35 @@ body {
.nav-logo {
display: none;
}
-.nav-logo-sun {
- font-family: Fraunces, serif;
- font-weight: 900;
- font-size: 2.1rem;
- color: #c8922a;
- letter-spacing: -0.02em;
+.nav-logo-wordmark {
+ display: flex;
+ align-items: center;
+ gap: 0.05em;
}
+.nav-logo-sun,
.nav-logo-scope {
- font-family: Fraunces, serif;
- font-style: italic;
- font-weight: 300;
+ font-family: Manrope, sans-serif;
+ font-weight: 250;
font-size: 2.1rem;
color: #1e1208;
- letter-spacing: -0.02em;
+ letter-spacing: -0.01em;
+}
+.nav-logo-icon {
+ width: 1.65rem;
+ height: 1.65rem;
+ color: #1e1208;
+ flex-shrink: 0;
}
.nav-logo-tag {
display: block;
- font-family: Fraunces, serif;
- font-style: italic;
- font-size: 11px;
+ font-family: Manrope, sans-serif;
+ font-style: normal;
+ font-weight: 600;
+ font-size: 8px;
+ letter-spacing: 0.12em;
+ text-transform: uppercase;
color: #7a5c2a;
- margin-top: 2px;
+ margin-top: 3px;
}
/* Desktop: overlay hidden */
diff --git a/assets/css/header.css b/assets/css/header.css
index 253e032..e34baf9 100644
--- a/assets/css/header.css
+++ b/assets/css/header.css
@@ -49,36 +49,41 @@
justify-content: center;
}
-/* The big "SUNScope" wordmark */
+/* The big "SunScope" wordmark */
.utci-title {
- font-family: Fraunces, serif;
- font-weight: 900;
- font-variation-settings: "opsz" 144;
- font-size: clamp(48px, 6vw, 80px); /* responsive — scales with viewport */
- line-height: 0.9;
- letter-spacing: -0.03em;
+ font-family: Manrope, sans-serif;
+ font-weight: 250;
+ font-size: clamp(48px, 6vw, 80px);
+ line-height: 1;
+ letter-spacing: -0.01em;
+ color: #1e1208;
+ display: flex;
+ align-items: center;
+ gap: 0.05em;
+}
+
+.utci-title .title-sun,
+.utci-title .title-scope {
color: #1e1208;
}
-.utci-title .title-sun { /* "SUN" — bold + brass */
- color: #c8922a;
- font-weight: 900;
- font-style: normal;
-}
-
-.utci-title .title-scope { /* "Scope" — italic light, matching about page */
- font-style: italic;
- font-weight: 300;
+.title-icon {
+ width: 0.82em;
+ height: 0.82em;
color: #1e1208;
+ flex-shrink: 0;
}
-/* "See the sun the way..." */
+/* "See the world the way..." */
.utci-tagline {
- font-family: Fraunces, serif;
- font-style: italic;
- font-size: 17px;
+ font-family: Manrope, sans-serif;
+ font-style: normal;
+ font-weight: 600;
+ font-size: 11px;
+ letter-spacing: 0.12em;
+ text-transform: uppercase;
color: #7a5c2a;
- margin-top: 14px;
+ margin-top: 12px;
}
/* "↳ Location, Somewhere" + the magnifier that reveals the search */
diff --git a/assets/css/ui.css b/assets/css/ui.css
index 6d032b9..4a1c39b 100644
--- a/assets/css/ui.css
+++ b/assets/css/ui.css
@@ -875,6 +875,16 @@
margin: 0.3rem 0 0;
letter-spacing: 0.03em;
}
+.utci-fetch-time.is-stale {
+ opacity: 0.75;
+ color: #a06e18;
+}
+.stale-dot {
+ font-size: 0.5rem;
+ color: #c8922a;
+ vertical-align: middle;
+ line-height: 1;
+}
/* ── 10. LEGEND (thermal-stress band colours at the bottom) ────────── */
diff --git a/assets/fonts/manrope-cyrillic-200-normal.woff b/assets/fonts/manrope-cyrillic-200-normal.woff
new file mode 100644
index 0000000..80a2a1c
Binary files /dev/null and b/assets/fonts/manrope-cyrillic-200-normal.woff differ
diff --git a/assets/fonts/manrope-cyrillic-200-normal.woff2 b/assets/fonts/manrope-cyrillic-200-normal.woff2
new file mode 100644
index 0000000..dd50409
Binary files /dev/null and b/assets/fonts/manrope-cyrillic-200-normal.woff2 differ
diff --git a/assets/fonts/manrope-cyrillic-300-normal.woff b/assets/fonts/manrope-cyrillic-300-normal.woff
new file mode 100644
index 0000000..71eba52
Binary files /dev/null and b/assets/fonts/manrope-cyrillic-300-normal.woff differ
diff --git a/assets/fonts/manrope-cyrillic-300-normal.woff2 b/assets/fonts/manrope-cyrillic-300-normal.woff2
new file mode 100644
index 0000000..46f8ef5
Binary files /dev/null and b/assets/fonts/manrope-cyrillic-300-normal.woff2 differ
diff --git a/assets/fonts/manrope-cyrillic-400-normal.woff b/assets/fonts/manrope-cyrillic-400-normal.woff
new file mode 100644
index 0000000..10cee4d
Binary files /dev/null and b/assets/fonts/manrope-cyrillic-400-normal.woff differ
diff --git a/assets/fonts/manrope-cyrillic-400-normal.woff2 b/assets/fonts/manrope-cyrillic-400-normal.woff2
new file mode 100644
index 0000000..642e90f
Binary files /dev/null and b/assets/fonts/manrope-cyrillic-400-normal.woff2 differ
diff --git a/assets/fonts/manrope-cyrillic-500-normal.woff b/assets/fonts/manrope-cyrillic-500-normal.woff
new file mode 100644
index 0000000..2b37d7a
Binary files /dev/null and b/assets/fonts/manrope-cyrillic-500-normal.woff differ
diff --git a/assets/fonts/manrope-cyrillic-500-normal.woff2 b/assets/fonts/manrope-cyrillic-500-normal.woff2
new file mode 100644
index 0000000..6ebd904
Binary files /dev/null and b/assets/fonts/manrope-cyrillic-500-normal.woff2 differ
diff --git a/assets/fonts/manrope-cyrillic-600-normal.woff b/assets/fonts/manrope-cyrillic-600-normal.woff
new file mode 100644
index 0000000..10ebb9f
Binary files /dev/null and b/assets/fonts/manrope-cyrillic-600-normal.woff differ
diff --git a/assets/fonts/manrope-cyrillic-600-normal.woff2 b/assets/fonts/manrope-cyrillic-600-normal.woff2
new file mode 100644
index 0000000..6b4ac49
Binary files /dev/null and b/assets/fonts/manrope-cyrillic-600-normal.woff2 differ
diff --git a/assets/fonts/manrope-cyrillic-700-normal.woff b/assets/fonts/manrope-cyrillic-700-normal.woff
new file mode 100644
index 0000000..8f29ea1
Binary files /dev/null and b/assets/fonts/manrope-cyrillic-700-normal.woff differ
diff --git a/assets/fonts/manrope-cyrillic-700-normal.woff2 b/assets/fonts/manrope-cyrillic-700-normal.woff2
new file mode 100644
index 0000000..3156c54
Binary files /dev/null and b/assets/fonts/manrope-cyrillic-700-normal.woff2 differ
diff --git a/assets/fonts/manrope-cyrillic-800-normal.woff b/assets/fonts/manrope-cyrillic-800-normal.woff
new file mode 100644
index 0000000..e99f8e5
Binary files /dev/null and b/assets/fonts/manrope-cyrillic-800-normal.woff differ
diff --git a/assets/fonts/manrope-cyrillic-800-normal.woff2 b/assets/fonts/manrope-cyrillic-800-normal.woff2
new file mode 100644
index 0000000..f05b200
Binary files /dev/null and b/assets/fonts/manrope-cyrillic-800-normal.woff2 differ
diff --git a/assets/fonts/manrope-cyrillic-ext-200-normal.woff b/assets/fonts/manrope-cyrillic-ext-200-normal.woff
new file mode 100644
index 0000000..e564efc
Binary files /dev/null and b/assets/fonts/manrope-cyrillic-ext-200-normal.woff differ
diff --git a/assets/fonts/manrope-cyrillic-ext-200-normal.woff2 b/assets/fonts/manrope-cyrillic-ext-200-normal.woff2
new file mode 100644
index 0000000..32a83bb
Binary files /dev/null and b/assets/fonts/manrope-cyrillic-ext-200-normal.woff2 differ
diff --git a/assets/fonts/manrope-cyrillic-ext-300-normal.woff b/assets/fonts/manrope-cyrillic-ext-300-normal.woff
new file mode 100644
index 0000000..afc06b6
Binary files /dev/null and b/assets/fonts/manrope-cyrillic-ext-300-normal.woff differ
diff --git a/assets/fonts/manrope-cyrillic-ext-300-normal.woff2 b/assets/fonts/manrope-cyrillic-ext-300-normal.woff2
new file mode 100644
index 0000000..88c4744
Binary files /dev/null and b/assets/fonts/manrope-cyrillic-ext-300-normal.woff2 differ
diff --git a/assets/fonts/manrope-cyrillic-ext-400-normal.woff b/assets/fonts/manrope-cyrillic-ext-400-normal.woff
new file mode 100644
index 0000000..eb51f1d
Binary files /dev/null and b/assets/fonts/manrope-cyrillic-ext-400-normal.woff differ
diff --git a/assets/fonts/manrope-cyrillic-ext-400-normal.woff2 b/assets/fonts/manrope-cyrillic-ext-400-normal.woff2
new file mode 100644
index 0000000..f12edfa
Binary files /dev/null and b/assets/fonts/manrope-cyrillic-ext-400-normal.woff2 differ
diff --git a/assets/fonts/manrope-cyrillic-ext-500-normal.woff b/assets/fonts/manrope-cyrillic-ext-500-normal.woff
new file mode 100644
index 0000000..694d8c0
Binary files /dev/null and b/assets/fonts/manrope-cyrillic-ext-500-normal.woff differ
diff --git a/assets/fonts/manrope-cyrillic-ext-500-normal.woff2 b/assets/fonts/manrope-cyrillic-ext-500-normal.woff2
new file mode 100644
index 0000000..0883e17
Binary files /dev/null and b/assets/fonts/manrope-cyrillic-ext-500-normal.woff2 differ
diff --git a/assets/fonts/manrope-cyrillic-ext-600-normal.woff b/assets/fonts/manrope-cyrillic-ext-600-normal.woff
new file mode 100644
index 0000000..7cae10a
Binary files /dev/null and b/assets/fonts/manrope-cyrillic-ext-600-normal.woff differ
diff --git a/assets/fonts/manrope-cyrillic-ext-600-normal.woff2 b/assets/fonts/manrope-cyrillic-ext-600-normal.woff2
new file mode 100644
index 0000000..9233979
Binary files /dev/null and b/assets/fonts/manrope-cyrillic-ext-600-normal.woff2 differ
diff --git a/assets/fonts/manrope-cyrillic-ext-700-normal.woff b/assets/fonts/manrope-cyrillic-ext-700-normal.woff
new file mode 100644
index 0000000..3c7ae8a
Binary files /dev/null and b/assets/fonts/manrope-cyrillic-ext-700-normal.woff differ
diff --git a/assets/fonts/manrope-cyrillic-ext-700-normal.woff2 b/assets/fonts/manrope-cyrillic-ext-700-normal.woff2
new file mode 100644
index 0000000..f2ae858
Binary files /dev/null and b/assets/fonts/manrope-cyrillic-ext-700-normal.woff2 differ
diff --git a/assets/fonts/manrope-cyrillic-ext-800-normal.woff b/assets/fonts/manrope-cyrillic-ext-800-normal.woff
new file mode 100644
index 0000000..af06b94
Binary files /dev/null and b/assets/fonts/manrope-cyrillic-ext-800-normal.woff differ
diff --git a/assets/fonts/manrope-cyrillic-ext-800-normal.woff2 b/assets/fonts/manrope-cyrillic-ext-800-normal.woff2
new file mode 100644
index 0000000..a4f92a4
Binary files /dev/null and b/assets/fonts/manrope-cyrillic-ext-800-normal.woff2 differ
diff --git a/assets/fonts/manrope-greek-200-normal.woff b/assets/fonts/manrope-greek-200-normal.woff
new file mode 100644
index 0000000..9d9a6fc
Binary files /dev/null and b/assets/fonts/manrope-greek-200-normal.woff differ
diff --git a/assets/fonts/manrope-greek-200-normal.woff2 b/assets/fonts/manrope-greek-200-normal.woff2
new file mode 100644
index 0000000..e0444bb
Binary files /dev/null and b/assets/fonts/manrope-greek-200-normal.woff2 differ
diff --git a/assets/fonts/manrope-greek-300-normal.woff b/assets/fonts/manrope-greek-300-normal.woff
new file mode 100644
index 0000000..5781adc
Binary files /dev/null and b/assets/fonts/manrope-greek-300-normal.woff differ
diff --git a/assets/fonts/manrope-greek-300-normal.woff2 b/assets/fonts/manrope-greek-300-normal.woff2
new file mode 100644
index 0000000..7e978ad
Binary files /dev/null and b/assets/fonts/manrope-greek-300-normal.woff2 differ
diff --git a/assets/fonts/manrope-greek-400-normal.woff b/assets/fonts/manrope-greek-400-normal.woff
new file mode 100644
index 0000000..517d2b3
Binary files /dev/null and b/assets/fonts/manrope-greek-400-normal.woff differ
diff --git a/assets/fonts/manrope-greek-400-normal.woff2 b/assets/fonts/manrope-greek-400-normal.woff2
new file mode 100644
index 0000000..c7f3d55
Binary files /dev/null and b/assets/fonts/manrope-greek-400-normal.woff2 differ
diff --git a/assets/fonts/manrope-greek-500-normal.woff b/assets/fonts/manrope-greek-500-normal.woff
new file mode 100644
index 0000000..c32ddea
Binary files /dev/null and b/assets/fonts/manrope-greek-500-normal.woff differ
diff --git a/assets/fonts/manrope-greek-500-normal.woff2 b/assets/fonts/manrope-greek-500-normal.woff2
new file mode 100644
index 0000000..3b39af0
Binary files /dev/null and b/assets/fonts/manrope-greek-500-normal.woff2 differ
diff --git a/assets/fonts/manrope-greek-600-normal.woff b/assets/fonts/manrope-greek-600-normal.woff
new file mode 100644
index 0000000..022a8bf
Binary files /dev/null and b/assets/fonts/manrope-greek-600-normal.woff differ
diff --git a/assets/fonts/manrope-greek-600-normal.woff2 b/assets/fonts/manrope-greek-600-normal.woff2
new file mode 100644
index 0000000..4e80f6b
Binary files /dev/null and b/assets/fonts/manrope-greek-600-normal.woff2 differ
diff --git a/assets/fonts/manrope-greek-700-normal.woff b/assets/fonts/manrope-greek-700-normal.woff
new file mode 100644
index 0000000..c220933
Binary files /dev/null and b/assets/fonts/manrope-greek-700-normal.woff differ
diff --git a/assets/fonts/manrope-greek-700-normal.woff2 b/assets/fonts/manrope-greek-700-normal.woff2
new file mode 100644
index 0000000..8f704ea
Binary files /dev/null and b/assets/fonts/manrope-greek-700-normal.woff2 differ
diff --git a/assets/fonts/manrope-greek-800-normal.woff b/assets/fonts/manrope-greek-800-normal.woff
new file mode 100644
index 0000000..7fbc587
Binary files /dev/null and b/assets/fonts/manrope-greek-800-normal.woff differ
diff --git a/assets/fonts/manrope-greek-800-normal.woff2 b/assets/fonts/manrope-greek-800-normal.woff2
new file mode 100644
index 0000000..be0762e
Binary files /dev/null and b/assets/fonts/manrope-greek-800-normal.woff2 differ
diff --git a/assets/fonts/manrope-latin-200-normal.woff b/assets/fonts/manrope-latin-200-normal.woff
new file mode 100644
index 0000000..f8135d9
Binary files /dev/null and b/assets/fonts/manrope-latin-200-normal.woff differ
diff --git a/assets/fonts/manrope-latin-200-normal.woff2 b/assets/fonts/manrope-latin-200-normal.woff2
new file mode 100644
index 0000000..cc1dbe6
Binary files /dev/null and b/assets/fonts/manrope-latin-200-normal.woff2 differ
diff --git a/assets/fonts/manrope-latin-300-normal.woff b/assets/fonts/manrope-latin-300-normal.woff
new file mode 100644
index 0000000..14d52a1
Binary files /dev/null and b/assets/fonts/manrope-latin-300-normal.woff differ
diff --git a/assets/fonts/manrope-latin-300-normal.woff2 b/assets/fonts/manrope-latin-300-normal.woff2
new file mode 100644
index 0000000..bf07ee0
Binary files /dev/null and b/assets/fonts/manrope-latin-300-normal.woff2 differ
diff --git a/assets/fonts/manrope-latin-400-normal.woff b/assets/fonts/manrope-latin-400-normal.woff
new file mode 100644
index 0000000..f312fbb
Binary files /dev/null and b/assets/fonts/manrope-latin-400-normal.woff differ
diff --git a/assets/fonts/manrope-latin-400-normal.woff2 b/assets/fonts/manrope-latin-400-normal.woff2
new file mode 100644
index 0000000..7eaaa95
Binary files /dev/null and b/assets/fonts/manrope-latin-400-normal.woff2 differ
diff --git a/assets/fonts/manrope-latin-500-normal.woff b/assets/fonts/manrope-latin-500-normal.woff
new file mode 100644
index 0000000..6edcacc
Binary files /dev/null and b/assets/fonts/manrope-latin-500-normal.woff differ
diff --git a/assets/fonts/manrope-latin-500-normal.woff2 b/assets/fonts/manrope-latin-500-normal.woff2
new file mode 100644
index 0000000..70447ee
Binary files /dev/null and b/assets/fonts/manrope-latin-500-normal.woff2 differ
diff --git a/assets/fonts/manrope-latin-600-normal.woff b/assets/fonts/manrope-latin-600-normal.woff
new file mode 100644
index 0000000..3fe76a6
Binary files /dev/null and b/assets/fonts/manrope-latin-600-normal.woff differ
diff --git a/assets/fonts/manrope-latin-600-normal.woff2 b/assets/fonts/manrope-latin-600-normal.woff2
new file mode 100644
index 0000000..7cc09a3
Binary files /dev/null and b/assets/fonts/manrope-latin-600-normal.woff2 differ
diff --git a/assets/fonts/manrope-latin-700-normal.woff b/assets/fonts/manrope-latin-700-normal.woff
new file mode 100644
index 0000000..6000ec7
Binary files /dev/null and b/assets/fonts/manrope-latin-700-normal.woff differ
diff --git a/assets/fonts/manrope-latin-700-normal.woff2 b/assets/fonts/manrope-latin-700-normal.woff2
new file mode 100644
index 0000000..84f7af5
Binary files /dev/null and b/assets/fonts/manrope-latin-700-normal.woff2 differ
diff --git a/assets/fonts/manrope-latin-800-normal.woff b/assets/fonts/manrope-latin-800-normal.woff
new file mode 100644
index 0000000..50f2dc3
Binary files /dev/null and b/assets/fonts/manrope-latin-800-normal.woff differ
diff --git a/assets/fonts/manrope-latin-800-normal.woff2 b/assets/fonts/manrope-latin-800-normal.woff2
new file mode 100644
index 0000000..b5cd400
Binary files /dev/null and b/assets/fonts/manrope-latin-800-normal.woff2 differ
diff --git a/assets/fonts/manrope-latin-ext-200-normal.woff b/assets/fonts/manrope-latin-ext-200-normal.woff
new file mode 100644
index 0000000..f69f308
Binary files /dev/null and b/assets/fonts/manrope-latin-ext-200-normal.woff differ
diff --git a/assets/fonts/manrope-latin-ext-200-normal.woff2 b/assets/fonts/manrope-latin-ext-200-normal.woff2
new file mode 100644
index 0000000..d64adc0
Binary files /dev/null and b/assets/fonts/manrope-latin-ext-200-normal.woff2 differ
diff --git a/assets/fonts/manrope-latin-ext-300-normal.woff b/assets/fonts/manrope-latin-ext-300-normal.woff
new file mode 100644
index 0000000..d122d86
Binary files /dev/null and b/assets/fonts/manrope-latin-ext-300-normal.woff differ
diff --git a/assets/fonts/manrope-latin-ext-300-normal.woff2 b/assets/fonts/manrope-latin-ext-300-normal.woff2
new file mode 100644
index 0000000..5e32ac6
Binary files /dev/null and b/assets/fonts/manrope-latin-ext-300-normal.woff2 differ
diff --git a/assets/fonts/manrope-latin-ext-400-normal.woff b/assets/fonts/manrope-latin-ext-400-normal.woff
new file mode 100644
index 0000000..add2e3c
Binary files /dev/null and b/assets/fonts/manrope-latin-ext-400-normal.woff differ
diff --git a/assets/fonts/manrope-latin-ext-400-normal.woff2 b/assets/fonts/manrope-latin-ext-400-normal.woff2
new file mode 100644
index 0000000..a56d446
Binary files /dev/null and b/assets/fonts/manrope-latin-ext-400-normal.woff2 differ
diff --git a/assets/fonts/manrope-latin-ext-500-normal.woff b/assets/fonts/manrope-latin-ext-500-normal.woff
new file mode 100644
index 0000000..bc8bc08
Binary files /dev/null and b/assets/fonts/manrope-latin-ext-500-normal.woff differ
diff --git a/assets/fonts/manrope-latin-ext-500-normal.woff2 b/assets/fonts/manrope-latin-ext-500-normal.woff2
new file mode 100644
index 0000000..2ff2060
Binary files /dev/null and b/assets/fonts/manrope-latin-ext-500-normal.woff2 differ
diff --git a/assets/fonts/manrope-latin-ext-600-normal.woff b/assets/fonts/manrope-latin-ext-600-normal.woff
new file mode 100644
index 0000000..4ba5d43
Binary files /dev/null and b/assets/fonts/manrope-latin-ext-600-normal.woff differ
diff --git a/assets/fonts/manrope-latin-ext-600-normal.woff2 b/assets/fonts/manrope-latin-ext-600-normal.woff2
new file mode 100644
index 0000000..9ceb22a
Binary files /dev/null and b/assets/fonts/manrope-latin-ext-600-normal.woff2 differ
diff --git a/assets/fonts/manrope-latin-ext-700-normal.woff b/assets/fonts/manrope-latin-ext-700-normal.woff
new file mode 100644
index 0000000..655902d
Binary files /dev/null and b/assets/fonts/manrope-latin-ext-700-normal.woff differ
diff --git a/assets/fonts/manrope-latin-ext-700-normal.woff2 b/assets/fonts/manrope-latin-ext-700-normal.woff2
new file mode 100644
index 0000000..5e6b5ae
Binary files /dev/null and b/assets/fonts/manrope-latin-ext-700-normal.woff2 differ
diff --git a/assets/fonts/manrope-latin-ext-800-normal.woff b/assets/fonts/manrope-latin-ext-800-normal.woff
new file mode 100644
index 0000000..64ca281
Binary files /dev/null and b/assets/fonts/manrope-latin-ext-800-normal.woff differ
diff --git a/assets/fonts/manrope-latin-ext-800-normal.woff2 b/assets/fonts/manrope-latin-ext-800-normal.woff2
new file mode 100644
index 0000000..2e69061
Binary files /dev/null and b/assets/fonts/manrope-latin-ext-800-normal.woff2 differ
diff --git a/assets/fonts/manrope-variable.woff2 b/assets/fonts/manrope-variable.woff2
new file mode 100644
index 0000000..f449356
Binary files /dev/null and b/assets/fonts/manrope-variable.woff2 differ
diff --git a/assets/fonts/manrope-vietnamese-200-normal.woff b/assets/fonts/manrope-vietnamese-200-normal.woff
new file mode 100644
index 0000000..ae242e3
Binary files /dev/null and b/assets/fonts/manrope-vietnamese-200-normal.woff differ
diff --git a/assets/fonts/manrope-vietnamese-200-normal.woff2 b/assets/fonts/manrope-vietnamese-200-normal.woff2
new file mode 100644
index 0000000..d1df451
Binary files /dev/null and b/assets/fonts/manrope-vietnamese-200-normal.woff2 differ
diff --git a/assets/fonts/manrope-vietnamese-300-normal.woff b/assets/fonts/manrope-vietnamese-300-normal.woff
new file mode 100644
index 0000000..31abfb9
Binary files /dev/null and b/assets/fonts/manrope-vietnamese-300-normal.woff differ
diff --git a/assets/fonts/manrope-vietnamese-300-normal.woff2 b/assets/fonts/manrope-vietnamese-300-normal.woff2
new file mode 100644
index 0000000..1fe7dfd
Binary files /dev/null and b/assets/fonts/manrope-vietnamese-300-normal.woff2 differ
diff --git a/assets/fonts/manrope-vietnamese-400-normal.woff b/assets/fonts/manrope-vietnamese-400-normal.woff
new file mode 100644
index 0000000..7f9ff87
Binary files /dev/null and b/assets/fonts/manrope-vietnamese-400-normal.woff differ
diff --git a/assets/fonts/manrope-vietnamese-400-normal.woff2 b/assets/fonts/manrope-vietnamese-400-normal.woff2
new file mode 100644
index 0000000..3b2938e
Binary files /dev/null and b/assets/fonts/manrope-vietnamese-400-normal.woff2 differ
diff --git a/assets/fonts/manrope-vietnamese-500-normal.woff b/assets/fonts/manrope-vietnamese-500-normal.woff
new file mode 100644
index 0000000..cabb8ad
Binary files /dev/null and b/assets/fonts/manrope-vietnamese-500-normal.woff differ
diff --git a/assets/fonts/manrope-vietnamese-500-normal.woff2 b/assets/fonts/manrope-vietnamese-500-normal.woff2
new file mode 100644
index 0000000..2130490
Binary files /dev/null and b/assets/fonts/manrope-vietnamese-500-normal.woff2 differ
diff --git a/assets/fonts/manrope-vietnamese-600-normal.woff b/assets/fonts/manrope-vietnamese-600-normal.woff
new file mode 100644
index 0000000..84df44d
Binary files /dev/null and b/assets/fonts/manrope-vietnamese-600-normal.woff differ
diff --git a/assets/fonts/manrope-vietnamese-600-normal.woff2 b/assets/fonts/manrope-vietnamese-600-normal.woff2
new file mode 100644
index 0000000..8714f1d
Binary files /dev/null and b/assets/fonts/manrope-vietnamese-600-normal.woff2 differ
diff --git a/assets/fonts/manrope-vietnamese-700-normal.woff b/assets/fonts/manrope-vietnamese-700-normal.woff
new file mode 100644
index 0000000..e43daa0
Binary files /dev/null and b/assets/fonts/manrope-vietnamese-700-normal.woff differ
diff --git a/assets/fonts/manrope-vietnamese-700-normal.woff2 b/assets/fonts/manrope-vietnamese-700-normal.woff2
new file mode 100644
index 0000000..0d36914
Binary files /dev/null and b/assets/fonts/manrope-vietnamese-700-normal.woff2 differ
diff --git a/assets/fonts/manrope-vietnamese-800-normal.woff b/assets/fonts/manrope-vietnamese-800-normal.woff
new file mode 100644
index 0000000..5fab845
Binary files /dev/null and b/assets/fonts/manrope-vietnamese-800-normal.woff differ
diff --git a/assets/fonts/manrope-vietnamese-800-normal.woff2 b/assets/fonts/manrope-vietnamese-800-normal.woff2
new file mode 100644
index 0000000..3e80836
Binary files /dev/null and b/assets/fonts/manrope-vietnamese-800-normal.woff2 differ
diff --git a/assets/js/app.js b/assets/js/app.js
index bc90997..a7a1fd8 100644
--- a/assets/js/app.js
+++ b/assets/js/app.js
@@ -81,6 +81,7 @@ export function UTCIForecast() {
tableCanScrollLeft, tableCanScrollRight, handleBodyScroll,
hourlyRows, days, utcOffsetMs,
visible, tableRows, nowLocalISO, currentRow, currentCat,
+ liveElev,
activeEvents, lensEvent, selectedDayEvents,
bannerIndex, bannerTransition, bannerPrevIndex,
bannerVisible, bannerStageRef,
@@ -203,6 +204,8 @@ export function UTCIForecast() {
// ─── 3b. PANEL COMPUTATIONS ──────────────────────────────────────────
// Derived from currentRow and the active day - no side effects.
const whyFeelsLike = computeWhyFeelsLike(currentRow ?? null, UTCI_ENVIRONMENTS[utciEnv]);
+ const staleThreshMs = isPro ? 15 * 60 * 1000 : 30 * 60 * 1000;
+ const isStale = fetchedAt ? (now - fetchedAt) > staleThreshMs : false;
const glanceSummary = computeGlanceSummary(
days[selectedDay]?.rows ?? [],
activeProfile,
@@ -254,8 +257,8 @@ export function UTCIForecast() {