From 6013b848c553404ef18da71ed11ac157b3061382 Mon Sep 17 00:00:00 2001 From: Anton Afanasyeu Date: Tue, 23 Jun 2026 12:29:37 +0200 Subject: [PATCH] initial --- DEPLOY.md | 124 ++ README.md | 3 + analytics.config.js | 7 + assets/_snapshot-globe-grid3.png | Bin 0 -> 154694 bytes assets/analytics.config.example.js | 7 + assets/analytics.config.js | 7 + assets/build_lcd_alphabet.py | 366 ++++++ assets/build_quartz_alphabet.py | 195 +++ assets/build_ttf_lcd_alphabet.py | 196 +++ assets/continents-meta.json | 50 + assets/digital-7-mono-italic-alphabet.svg | 129 ++ assets/ds-digital-alphabet.svg | 129 ++ assets/dseg14-classic-alphabet.svg | 129 ++ assets/dseg14-modern-alphabet.svg | 129 ++ assets/extract_red_polygons.py | 306 +++++ assets/fonts/Clockopia.ttf | Bin 0 -> 6880 bytes assets/fonts/DS-Digital.ttf | Bin 0 -> 24448 bytes assets/fonts/DSEG14Classic-Regular.ttf | Bin 0 -> 65224 bytes assets/fonts/DSEG14Modern-Regular.ttf | Bin 0 -> 65176 bytes assets/fonts/digital-7-mono-italic.ttf | Bin 0 -> 17888 bytes assets/hub-globe.js | 627 +++++++++ assets/hub-i18n.js | 111 ++ assets/hub-landing.js | 160 +++ assets/hub-logo-continents-mercator-flat.svg | 13 + ...nents-mercator-globe.snapshot-vertical.svg | 28 + assets/hub-logo-continents-mercator-globe.svg | 28 + assets/hub-logo-fragment-compass.svg | 14 + assets/hub-logo-fragment-globe-4x4.svg | 24 + .../hub-logo-fragment-globe-grid-overlay.svg | 34 + ...logo-fragment-globe-snapshot-20260526e.svg | 4 + ...logo-fragment-globe-snapshot-20260527g.svg | 4 + ...logo-fragment-globe-snapshot-20260527i.svg | 4 + ...logo-fragment-globe-snapshot-20260527j.svg | 4 + ...logo-fragment-globe-snapshot-20260530b.svg | 4 + assets/hub-logo-fragment-globe.svg | 58 + assets/hub-logo-fragment-rocket.svg | 110 ++ assets/hub-logo-fragment-space.svg | 75 ++ assets/hub-logo-fragment-tail.svg | 58 + assets/hub-logo-transparent.svg | 3 + assets/hub-thunder.svg | 14 + assets/hub-widget-resize-arrow.svg | 7 + assets/i18n/hub-en.json | 62 + assets/i18n/hub-ru.json | 62 + assets/mercator-source.jpg | Bin 0 -> 64097 bytes assets/overtime-01-alphabet.svg | 46 + assets/quartz-alphabet.svg | 46 + clock-widget.html | 482 +++++++ deploy/BE-apps-hub.conf.snippet | 15 + hub-landing.css | 476 +++++++ hub-logo-layers.css | 92 ++ hub.css | 1100 ++++++++++++++++ index.html | 1 + index.php | 1154 +++++++++++++++++ landing-pages.inc.php | 130 ++ partials/cookie_consent.php | 15 + scripts/sync-landing-to-be.sh | 100 ++ 56 files changed, 6942 insertions(+) create mode 100644 DEPLOY.md create mode 100644 README.md create mode 100644 analytics.config.js create mode 100644 assets/_snapshot-globe-grid3.png create mode 100644 assets/analytics.config.example.js create mode 100644 assets/analytics.config.js create mode 100644 assets/build_lcd_alphabet.py create mode 100644 assets/build_quartz_alphabet.py create mode 100644 assets/build_ttf_lcd_alphabet.py create mode 100644 assets/continents-meta.json create mode 100644 assets/digital-7-mono-italic-alphabet.svg create mode 100644 assets/ds-digital-alphabet.svg create mode 100644 assets/dseg14-classic-alphabet.svg create mode 100644 assets/dseg14-modern-alphabet.svg create mode 100644 assets/extract_red_polygons.py create mode 100644 assets/fonts/Clockopia.ttf create mode 100644 assets/fonts/DS-Digital.ttf create mode 100644 assets/fonts/DSEG14Classic-Regular.ttf create mode 100644 assets/fonts/DSEG14Modern-Regular.ttf create mode 100644 assets/fonts/digital-7-mono-italic.ttf create mode 100644 assets/hub-globe.js create mode 100644 assets/hub-i18n.js create mode 100644 assets/hub-landing.js create mode 100644 assets/hub-logo-continents-mercator-flat.svg create mode 100644 assets/hub-logo-continents-mercator-globe.snapshot-vertical.svg create mode 100644 assets/hub-logo-continents-mercator-globe.svg create mode 100644 assets/hub-logo-fragment-compass.svg create mode 100644 assets/hub-logo-fragment-globe-4x4.svg create mode 100644 assets/hub-logo-fragment-globe-grid-overlay.svg create mode 100644 assets/hub-logo-fragment-globe-snapshot-20260526e.svg create mode 100644 assets/hub-logo-fragment-globe-snapshot-20260527g.svg create mode 100644 assets/hub-logo-fragment-globe-snapshot-20260527i.svg create mode 100644 assets/hub-logo-fragment-globe-snapshot-20260527j.svg create mode 100644 assets/hub-logo-fragment-globe-snapshot-20260530b.svg create mode 100644 assets/hub-logo-fragment-globe.svg create mode 100644 assets/hub-logo-fragment-rocket.svg create mode 100644 assets/hub-logo-fragment-space.svg create mode 100644 assets/hub-logo-fragment-tail.svg create mode 100644 assets/hub-logo-transparent.svg create mode 100644 assets/hub-thunder.svg create mode 100644 assets/hub-widget-resize-arrow.svg create mode 100644 assets/i18n/hub-en.json create mode 100644 assets/i18n/hub-ru.json create mode 100644 assets/mercator-source.jpg create mode 100644 assets/overtime-01-alphabet.svg create mode 100644 assets/quartz-alphabet.svg create mode 100644 clock-widget.html create mode 100644 deploy/BE-apps-hub.conf.snippet create mode 100644 hub-landing.css create mode 100644 hub-logo-layers.css create mode 100644 hub.css create mode 100644 index.html create mode 100644 index.php create mode 100644 landing-pages.inc.php create mode 100644 partials/cookie_consent.php create mode 100755 scripts/sync-landing-to-be.sh diff --git a/DEPLOY.md b/DEPLOY.md new file mode 100644 index 0000000..37d055e --- /dev/null +++ b/DEPLOY.md @@ -0,0 +1,124 @@ +# Landing + androidcast — BE only, port 80 + +**Full topology:** [docs/INFRA.md](../../docs/INFRA.md) — read after any agent/context reset. + +Public: `https://apps.f0xx.org/app/androidcast_project/` + +## Topology (no :8089) + +```text +Browser → apps.f0xx.org (Gentoo FE, TLS) + → http://artc0.intra.raptor.org:80 ← this vhost only + → /etc/nginx/conf.d/apps.conf listen 80 +``` + +**8089 is not this installation** (Janus/other). Do not point androidcast FE locations at :8089. + +On FE, hub and (if you fix it) crashes should both target **`http://artc0.intra.raptor.org:80`**, same as `location /`. + +## 1. Hub entry (`index.php`) + assets + +Landing uses **`index.php`** (shared footer from `examples/platform/footer.config.php`). Copy **`index.html`** only as a redirect fallback. + +**Multipage landing (2026-06):** sync `hub-landing.css`, `landing-pages.inc.php`, `assets/hub-landing.js`, `assets/hub-i18n.js`, `assets/i18n/hub-en.json`, `assets/i18n/hub-ru.json` with `index.php`. + +**One-shot sync (recommended):** + +```bash +# sshfs mount at tmp/BE_alpine/... OR pass BE path: +./examples/app_hub/scripts/sync-landing-to-be.sh + +# Or direct to Alpine BE: +REMOTE=alpine-be ./examples/app_hub/scripts/sync-landing-to-be.sh +``` + +**Verify deploy actually landed** (old hub title is `Project hub`; new is `Landing`): + +```bash +curl -sS 'https://apps.f0xx.org/app/androidcast_project/' | grep -E '|hub-landing|landing-top' +curl -sS -o /dev/null -w '%{http_code}\n' 'https://apps.f0xx.org/app/androidcast_project/hub-landing.css' +``` + +Expect `Android Cast — Landing`, `hub-landing.css`, and HTTP **200** (not 404). + +```bash +cp .../android_cast/examples/app_hub/index.php \ + .../htdocs/apps/app/androidcast_project/index.php +cp .../android_cast/examples/app_hub/index.html \ + .../htdocs/apps/app/androidcast_project/index.html +cp .../android_cast/examples/app_hub/hub.css \ + .../htdocs/apps/app/androidcast_project/hub.css +cp .../android_cast/examples/app_hub/assets/overtime-01-alphabet.svg \ + .../htdocs/apps/app/androidcast_project/assets/ +# GA4 (optional): set measurementId in analytics.config.js before copy +cp .../android_cast/examples/app_hub/assets/analytics.config.js \ + .../htdocs/apps/app/androidcast_project/assets/ +``` + +Crash console ships `analytics.js` via `deploy-to-be-mount.sh` (under `crashes/assets/js/`). + +## 2. BE nginx + +Edit **`/etc/nginx/conf.d/apps.conf`** on Alpine (sshfs: `tmp/BE_alpine/etc/nginx/...`). + +Replace the whole **`server { listen 80; ... }`** block with: + +**`examples/crash_reporter/backend/nginx.apps-port80.fragment`** + +That file has hub + crashes + build on **port 80**. + +Or run (from repo, with write access to the mount): + +```bash +sudo ./examples/crash_reporter/backend/scripts/apply-be-port80-nginx.sh +``` + +**FE** (`tmp/FE_gentoo/etc/nginx/apps.conf`): build must proxy to BE **:443** like hub/crashes: + +```nginx +proxy_pass https://artc0.intra.raptor.org/app/androidcast_project/build/; +``` + +Do **not** use `http://artc0.intra.raptor.org:80` for build until BE `listen 80` includes the build block. +Copy from **`nginx.fe-apps.conf.fragment`** or run: + +```bash +sudo ./examples/crash_reporter/backend/scripts/apply-build-nginx-fix.sh +``` + +**BE** `conf.d/apps_builder.frag` must use **full paths** (no `...` placeholders). Same script installs the repo fragment. + +Use prefix location for the hub (not `alias` to a single file): + +```nginx +location /app/androidcast_project/ { + alias /var/www/localhost/htdocs/apps/app/androidcast_project/; + index index.php index.html; +} +``` + +## 3. Reload BE + +```bash +ssh alpine-be 'sudo nginx -t && sudo rc-service nginx reload' +``` + +## 4. Verify + +```bash +curl -sS -o /dev/null -w "%{http_code}\n" -H "Host: apps.f0xx.org" \ + "http://artc0.intra.raptor.org/app/androidcast_project/" + +curl -sS -o /dev/null -w "%{http_code}\n" \ + "https://apps.f0xx.org/app/androidcast_project/" +``` + +## FE (optional, not required if `location /` already proxies to :80) + +If crashes on FE still say `proxy_pass https://artc0...:8089/.../crashes/`, change to: + +```nginx +proxy_pass http://artc0.intra.raptor.org/app/androidcast_project/crashes/; +``` + +(same upstream as the hub — port **80**, no TLS to BE from FE) diff --git a/README.md b/README.md new file mode 100644 index 0000000..18a2901 --- /dev/null +++ b/README.md @@ -0,0 +1,3 @@ +# ac-be-hub + +Landing hub. Remote: `git://f0xx.org/ac/ac-be-hub` diff --git a/analytics.config.js b/analytics.config.js new file mode 100644 index 0000000..236e461 --- /dev/null +++ b/analytics.config.js @@ -0,0 +1,7 @@ +/** Hub GA4 config — set measurementId to enable (see analytics.config.example.js). */ +window.ANDROIDCAST_ANALYTICS = { + measurementId: 'G-8RKGWGQ52P', + platform: 'hub', + basePath: '/app/androidcast_project', + debug: false +}; diff --git a/assets/_snapshot-globe-grid3.png b/assets/_snapshot-globe-grid3.png new file mode 100644 index 0000000000000000000000000000000000000000..95584d7f61be153673dae52d9b010718fa912c3b GIT binary patch literal 154694 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 N;LhFK6}Rrc_<#PZrLh12 literal 0 HcmV?d00001 diff --git a/assets/analytics.config.example.js b/assets/analytics.config.example.js new file mode 100644 index 0000000..fc113cd --- /dev/null +++ b/assets/analytics.config.example.js @@ -0,0 +1,7 @@ +/** Copy to analytics.config.js on deploy and set your GA4 measurement ID. */ +window.ANDROIDCAST_ANALYTICS = { + measurementId: 'G-XXXXXXXXXX', + platform: 'hub', + basePath: '/app/androidcast_project', + debug: false +}; diff --git a/assets/analytics.config.js b/assets/analytics.config.js new file mode 100644 index 0000000..236e461 --- /dev/null +++ b/assets/analytics.config.js @@ -0,0 +1,7 @@ +/** Hub GA4 config — set measurementId to enable (see analytics.config.example.js). */ +window.ANDROIDCAST_ANALYTICS = { + measurementId: 'G-8RKGWGQ52P', + platform: 'hub', + basePath: '/app/androidcast_project', + debug: false +}; diff --git a/assets/build_lcd_alphabet.py b/assets/build_lcd_alphabet.py new file mode 100644 index 0000000..ac52270 --- /dev/null +++ b/assets/build_lcd_alphabet.py @@ -0,0 +1,366 @@ +#!/usr/bin/env python3 +"""Build full Overtime and Quartz 7-segment LCD SVG symbol sets.""" + +from __future__ import annotations + +from dataclasses import dataclass +from pathlib import Path + +# Segment indices: 0=top, 1=UL, 2=UR, 3=mid, 4=LL, 5=LR, 6=bottom +PATTERNS: dict[str, list[int]] = { + " ": [], + "0": [0, 1, 2, 4, 5, 6], + "1": [2, 5], + "2": [0, 1, 3, 5, 6], + "3": [0, 2, 3, 5, 6], + "4": [1, 2, 3, 5], + "5": [0, 2, 3, 5, 6], + "6": [0, 2, 3, 4, 5, 6], + "7": [0, 1, 2], + "8": [0, 1, 2, 3, 4, 5, 6], + "9": [0, 1, 2, 3, 5, 6], + "A": [0, 1, 2, 3, 4, 5], + "B": [0, 1, 2, 3, 5, 6], + "C": [0, 1, 4, 6], + "D": [1, 2, 3, 5, 6], + "E": [0, 3, 4, 5, 6], + "F": [0, 3, 4, 5], + "G": [0, 2, 4, 5, 6], + "H": [1, 2, 3, 4, 5], + "I": [0, 6], + "J": [1, 2, 4, 5, 6], + "K": [1, 3, 4, 5], + "L": [4, 5, 6], + "M": [0, 1, 2, 4, 5], + "N": [1, 2, 4, 5], + "O": [0, 1, 2, 4, 5, 6], + "P": [0, 1, 2, 3, 4], + "Q": [0, 1, 2, 4, 5, 6], + "R": [0, 1, 2, 3, 4, 5], + "S": [0, 2, 3, 5, 6], + "T": [0, 3, 6], + "U": [1, 2, 4, 5, 6], + "V": [1, 4, 5], + "W": [1, 2, 4, 5, 6], + "X": [1, 2, 4, 5], + "Y": [1, 2, 3], + "Z": [0, 1, 4, 6], +} + +EXTRA_RECTS: dict[str, list[tuple]] = { + "M": [ + ("7.1", "5", "2.6", "13.2", 'transform="rotate(28 8.4 11.6)"'), + ("14.3", "5", "2.6", "13.2", 'transform="rotate(-28 15.6 11.6)"'), + ], + "N": [ + ("6.5", "6", "2.4", "12", 'transform="rotate(32 7.7 12)"'), + ("14.8", "14", "2.4", "12", 'transform="rotate(32 16 20)"'), + ], + "K": [ + ("10", "4", "2.2", "11", 'transform="rotate(-30 11.1 9.5)"'), + ("10", "17", "2.2", "11", 'transform="rotate(30 11.1 22.5)"'), + ], + "V": [ + ("7", "17", "2.2", "12", 'transform="rotate(24 8.1 23)"'), + ("12", "17", "2.2", "12", 'transform="rotate(-24 13.1 23)"'), + ], + "W": [ + ("5", "17", "2", "11", 'transform="rotate(18 6 22.5)"'), + ("9.5", "17", "2", "11", 'transform="rotate(-18 10.5 22.5)"'), + ("14", "17", "2", "11", 'transform="rotate(18 15 22.5)"'), + ], + "X": [ + ("7", "5", "2.2", "11", 'transform="rotate(32 8.1 10.5)"'), + ("11", "16", "2.2", "11", 'transform="rotate(-32 12.1 21.5)"'), + ], + "Q": [("14", "18", "2.2", "10", 'transform="rotate(38 15.1 23)"')], + "R": [("12", "17", "2.2", "10", 'transform="rotate(38 13.1 22)"')], + "/": [ + ("13", "4", "2.2", "10", 'transform="rotate(52 14.1 9)"'), + ("5", "18", "2.2", "10", 'transform="rotate(52 6.1 23)"'), + ], + ":": [("4", "10", "4", "4"), ("4", "20", "4", "4")], + "+": [("6", "8", "4", "16"), ("2", "14", "12", "4")], + "-": [("2", "14", "12", "4")], +} + +# Hand-tuned Overtime Bold shapes (from hub digit geometry). +# Hand-tuned glyphs from hub (do not regenerate numerics). +OVERTIME_VERBATIM: dict[str, tuple[int, str]] = { + "0": ( + 20, + '<rect x="3" y="1" width="14" height="3" rx="1"/><rect x="16" y="4" width="3" height="11" rx="1"/>' + '<rect x="16" y="17" width="3" height="11" rx="1"/><rect x="3" y="28" width="14" height="3" rx="1"/>' + '<rect x="1" y="17" width="3" height="11" rx="1"/><rect x="1" y="4" width="3" height="11" rx="1"/>', + ), + "1": (20, '<rect x="16" y="4" width="3" height="11" rx="1"/><rect x="16" y="17" width="3" height="11" rx="1"/>'), + "2": ( + 20, + '<rect x="3" y="1" width="14" height="3" rx="1"/><rect x="1" y="4" width="3" height="11" rx="1"/>' + '<rect x="3" y="15" width="14" height="3" rx="1"/><rect x="16" y="17" width="3" height="11" rx="1"/>' + '<rect x="3" y="28" width="14" height="3" rx="1"/>', + ), + "3": ( + 20, + '<rect x="3" y="1" width="14" height="3" rx="1"/><rect x="16" y="4" width="3" height="11" rx="1"/>' + '<rect x="3" y="15" width="14" height="3" rx="1"/><rect x="16" y="17" width="3" height="11" rx="1"/>' + '<rect x="3" y="28" width="14" height="3" rx="1"/>', + ), + "4": ( + 20, + '<rect x="1" y="4" width="3" height="11" rx="1"/><rect x="3" y="15" width="14" height="3" rx="1"/>' + '<rect x="16" y="4" width="3" height="11" rx="1"/><rect x="16" y="17" width="3" height="11" rx="1"/>', + ), + "5": ( + 20, + '<rect x="3" y="1" width="14" height="3" rx="1"/><rect x="1" y="4" width="3" height="11" rx="1"/>' + '<rect x="3" y="15" width="14" height="3" rx="1"/><rect x="16" y="17" width="3" height="11" rx="1"/>' + '<rect x="3" y="28" width="14" height="3" rx="1"/>', + ), + "6": ( + 20, + '<rect x="3" y="1" width="14" height="3" rx="1"/><rect x="1" y="4" width="3" height="11" rx="1"/>' + '<rect x="3" y="15" width="14" height="3" rx="1"/><rect x="1" y="17" width="3" height="11" rx="1"/>' + '<rect x="16" y="17" width="3" height="11" rx="1"/><rect x="3" y="28" width="14" height="3" rx="1"/>', + ), + "7": ( + 20, + '<rect x="3" y="1" width="14" height="3" rx="1"/><rect x="16" y="4" width="3" height="11" rx="1"/>' + '<rect x="16" y="17" width="3" height="11" rx="1"/>', + ), + "8": ( + 20, + '<rect x="3" y="1" width="14" height="3" rx="1"/><rect x="1" y="4" width="3" height="11" rx="1"/>' + '<rect x="16" y="4" width="3" height="11" rx="1"/><rect x="3" y="15" width="14" height="3" rx="1"/>' + '<rect x="1" y="17" width="3" height="11" rx="1"/><rect x="16" y="17" width="3" height="11" rx="1"/>' + '<rect x="3" y="28" width="14" height="3" rx="1"/>', + ), + "9": ( + 20, + '<rect x="3" y="1" width="14" height="3" rx="1"/><rect x="1" y="4" width="3" height="11" rx="1"/>' + '<rect x="3" y="15" width="14" height="3" rx="1"/><rect x="16" y="4" width="3" height="11" rx="1"/>' + '<rect x="16" y="17" width="3" height="11" rx="1"/><rect x="3" y="28" width="14" height="3" rx="1"/>', + ), + ":": (12, '<rect x="4" y="10" width="4" height="4" rx="1"/><rect x="4" y="20" width="4" height="4" rx="1"/>'), + "+": (16, '<rect x="6" y="8" width="4" height="16" rx="1"/><rect x="2" y="14" width="12" height="4" rx="1"/>'), + "-": (16, '<rect x="2" y="14" width="12" height="4" rx="1"/>'), + " ": (8, ""), + "/": ( + 14, + '<rect x="11" y="5" width="2.2" height="10" rx="1" transform="rotate(52 12.1 10)"/>' + '<rect x="4" y="19" width="2.2" height="10" rx="1" transform="rotate(52 5.1 24)"/>', + ), +} + +OVERTIME_CUSTOM: dict[str, tuple[int, str]] = { + "G": ( + 20, + '<rect x="3" y="1" width="14" height="3" rx="1"/><rect x="1" y="4" width="3" height="11" rx="1"/>' + '<rect x="1" y="17" width="3" height="11" rx="1"/><rect x="3" y="28" width="14" height="3" rx="1"/>' + '<rect x="16" y="17" width="3" height="11" rx="1"/><rect x="10" y="15" width="9" height="3" rx="1"/>', + ), + "M": ( + 24, + '<rect x="1" y="4" width="3" height="24" rx="1"/><rect x="20" y="4" width="3" height="24" rx="1"/>' + '<rect x="7.1" y="5" width="2.6" height="13.2" rx="1" transform="rotate(28 8.4 11.6)"/>' + '<rect x="14.3" y="5" width="2.6" height="13.2" rx="1" transform="rotate(-28 15.6 11.6)"/>', + ), + "T": ( + 20, + '<rect x="3" y="1" width="14" height="3" rx="1"/><rect x="8" y="4" width="4" height="24" rx="1"/>', + ), + "Y": ( + 20, + '<rect x="1" y="4" width="3" height="11" rx="1"/><rect x="16" y="4" width="3" height="11" rx="1"/>' + '<rect x="8" y="15" width="4" height="14" rx="1"/>', + ), +} + + +@dataclass(frozen=True) +class FontStyle: + prefix: str + outfile: str + comment: str + h_pad: float + top_y: float + mid_y: float + bot_y: float + seg_h: float + v_w: float + v_h: float + left_x: float + right_x: float + seg_w: float + + +FONTS: dict[str, FontStyle] = { + "overtime": FontStyle( + prefix="ot", + outfile="overtime-01-alphabet.svg", + comment="Overtime Bold style 7-segment LCD (full alphabet)", + h_pad=3.0, + top_y=1.0, + mid_y=15.0, + bot_y=28.0, + seg_h=3.0, + v_w=3.0, + v_h=11.0, + left_x=1.0, + right_x=16.0, + seg_w=14.0, + ), + "quartz": FontStyle( + prefix="qz", + outfile="quartz-alphabet.svg", + comment="Quartz (TS) style 7-segment LCD (full alphabet)", + h_pad=0.0, + top_y=0.0, + mid_y=0.0, + bot_y=0.0, + seg_h=0.0, + v_w=0.0, + v_h=0.0, + left_x=0.0, + right_x=0.0, + seg_w=0.0, + ), +} + + +def _rect(x, y, width, height, extra: str = "") -> str: + attrs = f'x="{x}" y="{y}" width="{width}" height="{height}" rx="1"' + if extra: + return f"<rect {attrs} {extra}/>" + return f"<rect {attrs}/>" + + +def _seg_defs(style: FontStyle, w: float, h: float) -> list[tuple[float, float, float, float]]: + if style.prefix == "qz": + h_pad = max(1.0, w * 0.12) + top_y = max(1.0, h * 0.04) + mid_y = h * 0.47 + bot_y = h * 0.86 + seg_w = max(6.0, w - h_pad * 2) + seg_h = max(2.0, h * 0.09) + v_w = max(2.0, w * 0.14) + v_h = max(6.0, h * 0.33) + left_x = max(1.0, h_pad * 0.45) + right_x = max(left_x + v_w + 1, w - left_x - v_w) + upper_y = top_y + seg_h + lower_y = mid_y + seg_h * 0.6 + return [ + (h_pad, top_y, seg_w, seg_h), + (left_x, upper_y, v_w, v_h), + (right_x, upper_y, v_w, v_h), + (h_pad, mid_y, seg_w, seg_h), + (left_x, lower_y, v_w, v_h), + (right_x, lower_y, v_w, v_h), + (h_pad, bot_y, seg_w, seg_h), + ] + + upper_y = style.top_y + style.seg_h + lower_y = 17.0 + return [ + (style.h_pad, style.top_y, style.seg_w, style.seg_h), + (style.left_x, upper_y, style.v_w, style.v_h), + (style.right_x, upper_y, style.v_w, style.v_h), + (style.h_pad, style.mid_y, style.seg_w, style.seg_h), + (style.left_x, lower_y, style.v_w, style.v_h), + (style.right_x, lower_y, style.v_w, style.v_h), + (style.h_pad, style.bot_y, style.seg_w, style.seg_h), + ] + + +def _symbol_id(prefix: str, ch: str) -> str: + if ch == " ": + return f"{prefix}-space" + if ch == ":": + return f"{prefix}-colon" + if ch == "+": + return f"{prefix}-plus" + if ch == "-": + return f"{prefix}-minus" + if ch == "/": + return f"{prefix}-slash" + if len(ch) == 1 and "0" <= ch <= "9": + return f"{prefix}-{ch}" + if len(ch) == 1 and "A" <= ch <= "Z": + return f"{prefix}-{ch}" + return f"{prefix}-u{ord(ch):04x}" + + +def _symbol_body(style: FontStyle, ch: str, width: int) -> str: + if style.prefix == "ot" and ch in OVERTIME_VERBATIM: + _, body = OVERTIME_VERBATIM[ch] + return body + if style.prefix == "ot" and ch in OVERTIME_CUSTOM: + _, body = OVERTIME_CUSTOM[ch] + return body + + h = 32.0 + w = float(width) + segs = PATTERNS.get(ch, []) + parts: list[str] = [] + defs = _seg_defs(style, w, h) + for idx in segs: + if idx < 7: + x, y, rw, rh = defs[idx] + parts.append(_rect(f"{x:.2f}", f"{y:.2f}", f"{rw:.2f}", f"{rh:.2f}")) + for item in EXTRA_RECTS.get(ch, []): + if len(item) == 4: + parts.append(_rect(*item)) + else: + parts.append(_rect(item[0], item[1], item[2], item[3], item[4])) + return "".join(parts) + + +def _char_width(ch: str) -> int: + if ch in "MWKNQRX": + return 24 + if ch == ":": + return 12 + if ch in "+-": + return 16 + if ch == "/": + return 14 + if ch == " ": + return 8 + if ch in OVERTIME_VERBATIM: + return OVERTIME_VERBATIM[ch][0] + if ch in OVERTIME_CUSTOM: + return OVERTIME_CUSTOM[ch][0] + return 20 + + +def build_font(style: FontStyle, out_dir: Path) -> None: + chars = ( + [" "] + [str(d) for d in range(10)] + [chr(c) for c in range(ord("A"), ord("Z") + 1)] + + [":", "+", "-", "/"] + ) + lines = [ + '<svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" ' + 'style="position:absolute;width:0;height:0;overflow:hidden">', + f" <!-- {style.comment} -->", + " <defs>", + ] + for ch in chars: + width = _char_width(ch) + sid = _symbol_id(style.prefix, ch) + body = _symbol_body(style, ch, width) + lines.append(f' <symbol id="{sid}" viewBox="0 0 {width} 32">{body}</symbol>') + lines.append(" </defs>") + lines.append("</svg>") + out_path = out_dir / style.outfile + out_path.write_text("\n".join(lines) + "\n", encoding="utf-8") + print(f"Wrote {out_path} ({len(chars)} symbols)") + + +def main() -> None: + out_dir = Path(__file__).resolve().parent + for style in FONTS.values(): + build_font(style, out_dir) + + +if __name__ == "__main__": + main() diff --git a/assets/build_quartz_alphabet.py b/assets/build_quartz_alphabet.py new file mode 100644 index 0000000..f8397cd --- /dev/null +++ b/assets/build_quartz_alphabet.py @@ -0,0 +1,195 @@ +#!/usr/bin/env python3 +"""Generate Quartz-style 7-segment LCD symbol set for hub clock rows.""" + +from __future__ import annotations + +# Segment indices: 0=top, 1=upper-left, 2=upper-right, 3=mid, 4=lower-left, 5=lower-right, 6=bottom +PATTERNS: dict[str, list[int]] = { + " ": [], + "0": [0, 1, 2, 4, 5, 6], + "1": [2, 5], + "2": [0, 1, 3, 4, 6], + "3": [0, 1, 2, 3, 6], + "4": [1, 2, 3, 5], + "5": [0, 2, 3, 5, 6], + "6": [0, 2, 3, 4, 5, 6], + "7": [0, 1, 2], + "8": [0, 1, 2, 3, 4, 5, 6], + "9": [0, 1, 2, 3, 5, 6], + "A": [0, 1, 2, 3, 4, 5], + "B": [0, 1, 2, 3, 5, 6], + "C": [0, 1, 4, 6], + "D": [1, 2, 3, 5, 6], + "E": [0, 3, 4, 5, 6], + "F": [0, 3, 4, 5], + "G": [0, 2, 4, 5, 6], + "H": [1, 2, 3, 4, 5], + "I": [0, 6], + "J": [1, 2, 4, 5, 6], + "K": [1, 3, 4, 5], + "L": [4, 5, 6], + "M": [0, 1, 2, 4, 5], + "N": [1, 2, 4, 5], + "O": [0, 1, 2, 4, 5, 6], + "P": [0, 1, 2, 3, 4], + "Q": [0, 1, 2, 4, 5, 6], + "R": [0, 1, 2, 3, 4, 5], + "S": [0, 2, 3, 5, 6], + "T": [0, 3, 6], + "U": [1, 2, 4, 5, 6], + "V": [1, 4, 5], + "W": [1, 2, 4, 5, 6], + "X": [1, 2, 4, 5], + "Y": [2, 3, 5, 6], + "Z": [0, 1, 4, 6], + ":": [10, 11], + "+": [12, 13], + "-": [14], + "/": [15, 16], +} + +EXTRA_RECTS: dict[str, list[tuple]] = { + "M": [ + ("7.1", "5", "2.6", "13.2", 'transform="rotate(28 8.4 11.6)"'), + ("14.3", "5", "2.6", "13.2", 'transform="rotate(-28 15.6 11.6)"'), + ], + "N": [ + ("6.5", "6", "2.4", "12", 'transform="rotate(32 7.7 12)"'), + ("14.8", "14", "2.4", "12", 'transform="rotate(32 16 20)"'), + ], + "K": [ + ("10", "4", "2.2", "11", 'transform="rotate(-30 11.1 9.5)"'), + ("10", "17", "2.2", "11", 'transform="rotate(30 11.1 22.5)"'), + ], + "V": [ + ("7", "17", "2.2", "12", 'transform="rotate(24 8.1 23)"'), + ("12", "17", "2.2", "12", 'transform="rotate(-24 13.1 23)"'), + ], + "W": [ + ("5", "17", "2", "11", 'transform="rotate(18 6 22.5)"'), + ("9.5", "17", "2", "11", 'transform="rotate(-18 10.5 22.5)"'), + ("14", "17", "2", "11", 'transform="rotate(18 15 22.5)"'), + ], + "X": [ + ("7", "5", "2.2", "11", 'transform="rotate(32 8.1 10.5)"'), + ("11", "16", "2.2", "11", 'transform="rotate(-32 12.1 21.5)"'), + ], + "Q": [ + ("14", "18", "2.2", "10", 'transform="rotate(38 15.1 23)"'), + ], + "R": [ + ("12", "17", "2.2", "10", 'transform="rotate(38 13.1 22)"'), + ], + "/": [ + ("13", "4", "2.2", "10", 'transform="rotate(52 14.1 9)"'), + ("5", "18", "2.2", "10", 'transform="rotate(52 6.1 23)"'), + ], + ":": [ + ("4", "10", "4", "4"), + ("4", "20", "4", "4"), + ], + "+": [ + ("6", "8", "4", "16"), + ("2", "14", "12", "4"), + ], + "-": [ + ("2", "14", "12", "4"), + ], +} + + +def _seg_defs(w: float, h: float) -> list[tuple[float, float, float, float]]: + h_pad = max(1.0, w * 0.12) + top_y = max(1.0, h * 0.04) + mid_y = h * 0.47 + bot_y = h * 0.86 + seg_w = max(6.0, w - h_pad * 2) + seg_h = max(2.0, h * 0.09) + v_w = max(2.0, w * 0.14) + v_h = max(6.0, h * 0.33) + left_x = max(1.0, h_pad * 0.45) + right_x = max(left_x + v_w + 1, w - left_x - v_w) + upper_y = top_y + seg_h + lower_y = mid_y + seg_h * 0.6 + return [ + (h_pad, top_y, seg_w, seg_h), + (left_x, upper_y, v_w, v_h), + (right_x, upper_y, v_w, v_h), + (h_pad, mid_y, seg_w, seg_h), + (left_x, lower_y, v_w, v_h), + (right_x, lower_y, v_w, v_h), + (h_pad, bot_y, seg_w, seg_h), + ] + + +def _rect(x, y, width, height, extra: str = "") -> str: + attrs = f'x="{x}" y="{y}" width="{width}" height="{height}" rx="1"' + if extra: + return f"<rect {attrs} {extra}/>" + return f"<rect {attrs}/>" + + +def symbol_body(ch: str, width: int = 20) -> str: + h = 32.0 + w = float(width) + segs = PATTERNS.get(ch, []) + parts: list[str] = [] + defs = _seg_defs(w, h) + for idx in segs: + if idx < 7: + x, y, rw, rh = defs[idx] + parts.append(_rect(f"{x:.2f}", f"{y:.2f}", f"{rw:.2f}", f"{rh:.2f}")) + for item in EXTRA_RECTS.get(ch, []): + if len(item) == 4: + parts.append(_rect(*item)) + else: + parts.append(_rect(item[0], item[1], item[2], item[3], item[4])) + return "".join(parts) + + +def symbol_id(ch: str) -> str: + if ch == " ": + return "qz-space" + if ch == ":": + return "qz-colon" + if ch == "+": + return "qz-plus" + if ch == "-": + return "qz-minus" + if ch == "/": + return "qz-slash" + if len(ch) == 1 and "0" <= ch <= "9": + return f"qz-{ch}" + if len(ch) == 1 and "A" <= ch <= "Z": + return f"qz-{ch}" + return f"qz-u{ord(ch):04x}" + + +def main() -> None: + chars = ( + [" "] + [str(d) for d in range(10)] + [chr(c) for c in range(ord("A"), ord("Z") + 1)] + + [":", "+", "-", "/"] + ) + wide = set("MWKNQRX") + lines = [ + '<svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" ' + 'style="position:absolute;width:0;height:0;overflow:hidden">', + " <!-- Quartz (TS) style 7-segment LCD glyphs for hub timezone/date rows -->", + " <defs>", + ] + for ch in chars: + width = 24 if ch in wide else (12 if ch == ":" else (16 if ch in "+-" else (14 if ch == "/" else (8 if ch == " " else 20)))) + sid = symbol_id(ch) + body = symbol_body(ch, width) + lines.append(f' <symbol id="{sid}" viewBox="0 0 {width} 32">{body}</symbol>') + lines.append(" </defs>") + lines.append("</svg>") + out = "\n".join(lines) + "\n" + path = __file__.replace("build_quartz_alphabet.py", "quartz-alphabet.svg") + with open(path, "w", encoding="utf-8") as fh: + fh.write(out) + print(f"Wrote {path} ({len(chars)} symbols)") + + +if __name__ == "__main__": + main() diff --git a/assets/build_ttf_lcd_alphabet.py b/assets/build_ttf_lcd_alphabet.py new file mode 100644 index 0000000..e139269 --- /dev/null +++ b/assets/build_ttf_lcd_alphabet.py @@ -0,0 +1,196 @@ +#!/usr/bin/env python3 +"""Vectorize LCD TTF fonts into SVG symbol sets for the hub clock widget.""" + +from __future__ import annotations + +import argparse +import re +from dataclasses import dataclass +from pathlib import Path + +from fontTools.pens.boundsPen import BoundsPen +from fontTools.pens.svgPathPen import SVGPathPen +from fontTools.ttLib import TTFont + +CHARS = ( + [" "] + + [str(d) for d in range(10)] + + [chr(c) for c in range(ord("A"), ord("Z") + 1)] + + [":", "+", "-", "/", "."] +) + +TARGET_HEIGHT = 32.0 +PADDING_X = 1.5 +PADDING_Y = 1.0 + + +@dataclass(frozen=True) +class FontSpec: + ttf: str + prefix: str + outfile: str + comment: str + + +FONTS: dict[str, FontSpec] = { + "dseg14-classic": FontSpec( + ttf="DSEG14Classic-Regular.ttf", + prefix="d14c", + outfile="dseg14-classic-alphabet.svg", + comment="DSEG14 Classic (OFL) — vectorized for hub clock", + ), + "dseg14-modern": FontSpec( + ttf="DSEG14Modern-Regular.ttf", + prefix="d14m", + outfile="dseg14-modern-alphabet.svg", + comment="DSEG14 Modern (OFL) — vectorized for hub clock", + ), + "ds-digital": FontSpec( + ttf="DS-Digital.ttf", + prefix="dsd", + outfile="ds-digital-alphabet.svg", + comment="DS-Digital by Dusit Supasawat (shareware) — vectorized for hub clock", + ), + "digital-7-mono-italic": FontSpec( + ttf="digital-7-mono-italic.ttf", + prefix="d7mi", + outfile="digital-7-mono-italic-alphabet.svg", + comment="Digital-7 Mono Italic by Style-7 (personal use) — vectorized for hub clock", + ), +} + + +def symbol_id(prefix: str, ch: str) -> str: + if ch == " ": + return f"{prefix}-space" + if ch == ":": + return f"{prefix}-colon" + if ch == "+": + return f"{prefix}-plus" + if ch == "-": + return f"{prefix}-minus" + if ch == "/": + return f"{prefix}-slash" + if ch == ".": + return f"{prefix}-dot" + if len(ch) == 1 and "0" <= ch <= "9": + return f"{prefix}-{ch}" + if len(ch) == 1 and "A" <= ch <= "Z": + return f"{prefix}-{ch}" + return f"{prefix}-u{ord(ch):04x}" + + +def glyph_path(font: TTFont, ch: str) -> tuple[str, float, float, float, float] | None: + cmap = font.getBestCmap() + code = ord(ch) + if code not in cmap: + return None + glyph_name = cmap[code] + glyph_set = font.getGlyphSet() + if glyph_name not in glyph_set: + return None + glyph = glyph_set[glyph_name] + + pen = SVGPathPen(glyph_set) + bounds_pen = BoundsPen(glyph_set) + glyph.draw(bounds_pen) + if bounds_pen.bounds is None: + return None + x_min, y_min, x_max, y_max = bounds_pen.bounds + glyph.draw(pen) + path = pen.getCommands() + if not path.strip(): + return None + return path, x_min, y_min, x_max, y_max + + +def char_width(font: TTFont, ch: str, fallback: float) -> float: + cmap = font.getBestCmap() + code = ord(ch) + if code not in cmap: + return fallback + glyph_name = cmap[code] + if glyph_name in font["hmtx"].metrics: + adv, _ = font["hmtx"].metrics[glyph_name] + return float(adv) + return fallback + + +def build_alphabet(spec: FontSpec, fonts_dir: Path, out_dir: Path) -> None: + ttf_path = fonts_dir / spec.ttf + font = TTFont(ttf_path) + units_per_em = float(font["head"].unitsPerEm or 1000) + + lines = [ + '<svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" ' + 'style="position:absolute;width:0;height:0;overflow:hidden">', + f" <!-- {spec.comment} -->", + " <defs>", + ] + + for ch in CHARS: + sid = symbol_id(spec.prefix, ch) + if ch == " ": + width = max(8.0, TARGET_HEIGHT * 0.35) + lines.append( + f' <symbol id="{sid}" viewBox="0 0 {width:.2f} {TARGET_HEIGHT:.2f}"></symbol>' + ) + continue + + parsed = glyph_path(font, ch) + if parsed is None and ch.isalpha(): + parsed = glyph_path(font, ch.lower()) + if parsed is None: + width = char_width(font, "0", 20.0) * (TARGET_HEIGHT / units_per_em) + lines.append( + f' <symbol id="{sid}" viewBox="0 0 {width:.2f} {TARGET_HEIGHT:.2f}"></symbol>' + ) + continue + + path, x_min, y_min, x_max, y_max = parsed + glyph_w = max(x_max - x_min, 1.0) + glyph_h = max(y_max - y_min, 1.0) + scale = (TARGET_HEIGHT - PADDING_Y * 2) / glyph_h + tx = PADDING_X - x_min * scale + ty = TARGET_HEIGHT - PADDING_Y - y_max * scale + width = max(glyph_w * scale + PADDING_X * 2, char_width(font, ch, glyph_w) * scale * 0.55) + + # Flip Y: font coords are bottom-up; SVG is top-down. + transform = f"translate({tx:.3f} {ty:.3f}) scale({scale:.6f} {scale:.6f})" + lines.append(f' <symbol id="{sid}" viewBox="0 0 {width:.2f} {TARGET_HEIGHT:.2f}">') + lines.append(f' <path class="lcd-active" d="{path}" transform="{transform}" />') + lines.append(" </symbol>") + + lines.extend([" </defs>", "</svg>", ""]) + out_path = out_dir / spec.outfile + out_path.write_text("\n".join(lines), encoding="utf-8") + print(f"Wrote {out_path}") + + +def main() -> None: + parser = argparse.ArgumentParser(description=__doc__) + parser.add_argument( + "--fonts-dir", + type=Path, + default=Path(__file__).resolve().parent / "fonts", + ) + parser.add_argument( + "--out-dir", + type=Path, + default=Path(__file__).resolve().parent, + ) + parser.add_argument( + "--only", + choices=sorted(FONTS.keys()), + action="append", + help="Build one font (repeatable). Default: all.", + ) + args = parser.parse_args() + + selected = args.only or sorted(FONTS.keys()) + for key in selected: + build_alphabet(FONTS[key], args.fonts_dir, args.out_dir) + + +if __name__ == "__main__": + main() diff --git a/assets/continents-meta.json b/assets/continents-meta.json new file mode 100644 index 0000000..1391f56 --- /dev/null +++ b/assets/continents-meta.json @@ -0,0 +1,50 @@ +{ + "source": "mercator-source.jpg", + "size": [ + 800, + 519 + ], + "components": 8, + "layers": { + "vertical_snapshot": { + "translate": [ + 0.0, + 238.0 + ], + "scale": [ + 1.2408477842003853, + 1.2408477842003853 + ] + }, + "inner": { + "translate": [ + 223.66088631984587, + 238.0 + ], + "scale": [ + 1.2408477842003853, + 1.2408477842003853 + ] + }, + "outer": { + "scale": [ + 1.0, + 1.0 + ] + }, + "pivot": [ + 720.0, + 560.0 + ] + }, + "areas_top10": [ + 78439, + 42423, + 21849, + 5520, + 5428, + 3434, + 546, + 540 + ] +} \ No newline at end of file diff --git a/assets/digital-7-mono-italic-alphabet.svg b/assets/digital-7-mono-italic-alphabet.svg new file mode 100644 index 0000000..40ac039 --- /dev/null +++ b/assets/digital-7-mono-italic-alphabet.svg @@ -0,0 +1,129 @@ +<svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" style="position:absolute;width:0;height:0;overflow:hidden"> + <!-- Digital-7 Mono Italic by Style-7 (personal use) — vectorized for hub clock --> + <defs> + <symbol id="d7mi-space" viewBox="0 0 11.20 32.00"></symbol> + <symbol id="d7mi-0" viewBox="0 0 23.21 32.00"> + <path class="lcd-active" d="M447 350 465 330 436 50Q422 10 381 0L359 80L381 290ZM361 0H61Q22 10 16 50L99 80H339ZM18 70 45 330 67 350 121 290 101 100ZM398 640H159L82 670Q96 710 137 720H436ZM156 620 136 430 69 370 52 390 79 650ZM396 430 418 640 456 720Q495 710 501 670L472 390L449 370Z" transform="translate(0.833 1.000) scale(0.041667 0.041667)" /> + </symbol> + <symbol id="d7mi-1" viewBox="0 0 11.92 32.00"> + <path class="lcd-active" d="M447 350 465 330 436 50Q422 10 381 0L359 80L381 290ZM396 430 418 640 456 720Q495 710 501 670L472 390L449 370Z" transform="translate(-13.458 1.000) scale(0.041667 0.041667)" /> + </symbol> + <symbol id="d7mi-2" viewBox="0 0 23.21 32.00"> + <path class="lcd-active" d="M393 400 428 360 384 320H124L88 360L133 400ZM391 0H61Q22 10 16 50L99 80H369ZM18 70 45 330 67 350 121 290 101 100ZM398 640H159L82 670Q96 710 137 720H436ZM396 430 418 640 456 720Q495 710 501 670L472 390L449 370Z" transform="translate(0.833 1.000) scale(0.041667 0.041667)" /> + </symbol> + <symbol id="d7mi-3" viewBox="0 0 23.21 32.00"> + <path class="lcd-active" d="M393 400 428 360 384 320H124L88 360L133 400ZM447 350 465 330 436 50Q422 10 381 0L359 80L381 290ZM361 0H61Q22 10 16 50L99 80H339ZM398 640H159L82 670Q96 710 137 720H436ZM396 430 418 640 456 720Q495 710 501 670L472 390L449 370Z" transform="translate(0.833 1.000) scale(0.041667 0.041667)" /> + </symbol> + <symbol id="d7mi-4" viewBox="0 0 21.71 32.00"> + <path class="lcd-active" d="M393 400 428 360 384 320H124L88 360L133 400ZM447 350 465 330 436 50Q422 10 381 0L359 80L381 290ZM159 650 136 430 69 370 52 390 82 680ZM396 430 418 640 456 720Q495 710 501 670L472 390L449 370Z" transform="translate(-0.667 1.000) scale(0.041667 0.041667)" /> + </symbol> + <symbol id="d7mi-5" viewBox="0 0 21.75 32.00"> + <path class="lcd-active" d="M393 400 428 360 384 320H124L88 360L133 400ZM447 350 465 330 436 50Q422 10 381 0L359 80L381 290ZM361 0H61Q22 10 16 50L99 80H339ZM428 640H159L82 670Q96 710 137 720H466ZM156 620 136 430 69 370 52 390 79 650Z" transform="translate(0.833 1.000) scale(0.041667 0.041667)" /> + </symbol> + <symbol id="d7mi-6" viewBox="0 0 21.75 32.00"> + <path class="lcd-active" d="M393 400 428 360 384 320H124L88 360L133 400ZM447 350 465 330 436 50Q422 10 381 0L359 80L381 290ZM361 0H61Q22 10 16 50L99 80H339ZM18 70 45 330 67 350 121 290 101 100ZM428 640H159L82 670Q96 710 137 720H466ZM156 620 136 430 69 370 52 390 79 650Z" transform="translate(0.833 1.000) scale(0.041667 0.041667)" /> + </symbol> + <symbol id="d7mi-7" viewBox="0 0 21.71 32.00"> + <path class="lcd-active" d="M447 350 465 330 436 50Q422 10 381 0L359 80L381 290ZM398 640H159L82 670Q96 710 137 720H436ZM156 620 136 430 69 370 52 390 79 650ZM396 430 418 640 456 720Q495 710 501 670L472 390L449 370Z" transform="translate(-0.667 1.000) scale(0.041667 0.041667)" /> + </symbol> + <symbol id="d7mi-8" viewBox="0 0 23.21 32.00"> + <path class="lcd-active" d="M393 400 428 360 384 320H124L88 360L133 400ZM447 350 465 330 436 50Q422 10 381 0L359 80L381 290ZM361 0H61Q22 10 16 50L99 80H339ZM18 70 45 330 67 350 121 290 101 100ZM398 640H159L82 670Q96 710 137 720H436ZM156 620 136 430 69 370 52 390 79 650ZM396 430 418 640 456 720Q495 710 501 670L472 390L449 370Z" transform="translate(0.833 1.000) scale(0.041667 0.041667)" /> + </symbol> + <symbol id="d7mi-9" viewBox="0 0 23.21 32.00"> + <path class="lcd-active" d="M393 400 428 360 384 320H124L88 360L133 400ZM447 350 465 330 436 50Q422 10 381 0L359 80L381 290ZM361 0H61Q22 10 16 50L99 80H339ZM398 640H159L82 670Q96 710 137 720H436ZM156 620 136 430 69 370 52 390 79 650ZM396 430 418 640 456 720Q495 710 501 670L472 390L449 370Z" transform="translate(0.833 1.000) scale(0.041667 0.041667)" /> + </symbol> + <symbol id="d7mi-A" viewBox="0 0 23.21 32.00"> + <path class="lcd-active" d="M393 400 428 360 384 320H124L88 360L133 400ZM447 350 465 330 436 50Q422 10 381 0L359 80L381 290ZM398 640H159L82 670Q96 710 137 720H436ZM156 620 136 430 69 370 52 390 79 650ZM396 430 418 640 456 720Q495 710 501 670L472 390L449 370ZM121 290 99 80 61 0Q22 10 16 50L45 330L67 350Z" transform="translate(0.833 1.000) scale(0.041667 0.041667)" /> + </symbol> + <symbol id="d7mi-B" viewBox="0 0 23.21 32.00"> + <path class="lcd-active" d="M393 400 428 360 384 320H124L88 360L133 400ZM18 70 45 330 67 350 121 290 101 100ZM398 640H158L81 670L86 720H406L442 680ZM156 620 136 430 69 370 52 390 79 650ZM396 430 418 640 451 670 496 620 472 390 449 370ZM447 350 465 330 441 100 386 50 359 80 381 290ZM374 40 330 0H11L16 50L99 80H338Z" transform="translate(1.042 1.000) scale(0.041667 0.041667)" /> + </symbol> + <symbol id="d7mi-C" viewBox="0 0 21.75 32.00"> + <path class="lcd-active" d="M391 0H61Q22 10 16 50L99 80H369ZM18 70 45 330 67 350 121 290 101 100ZM428 640H159L82 670Q96 710 137 720H466ZM156 620 136 430 69 370 52 390 79 650Z" transform="translate(0.833 1.000) scale(0.041667 0.041667)" /> + </symbol> + <symbol id="d7mi-D" viewBox="0 0 23.21 32.00"> + <path class="lcd-active" d="M18 70 45 330 67 350 121 290 101 100ZM398 640H158L81 670L86 720H406L442 680ZM156 620 136 430 69 370 52 390 79 650ZM396 430 418 640 451 670 496 620 472 390 449 370ZM447 350 465 330 441 100 386 50 359 80 381 290ZM374 40 330 0H11L16 50L99 80H338Z" transform="translate(1.042 1.000) scale(0.041667 0.041667)" /> + </symbol> + <symbol id="d7mi-E" viewBox="0 0 21.75 32.00"> + <path class="lcd-active" d="M393 400 428 360 384 320H124L88 360L133 400ZM391 0H61Q22 10 16 50L99 80H369ZM18 70 45 330 67 350 121 290 101 100ZM428 640H159L82 670Q96 710 137 720H466ZM156 620 136 430 69 370 52 390 79 650Z" transform="translate(0.833 1.000) scale(0.041667 0.041667)" /> + </symbol> + <symbol id="d7mi-F" viewBox="0 0 21.75 32.00"> + <path class="lcd-active" d="M393 400 428 360 384 320H124L88 360L133 400ZM428 640H159L82 670Q96 710 137 720H466ZM156 620 136 430 69 370 52 390 79 650ZM121 290 99 80 61 0Q22 10 16 50L45 330L67 350Z" transform="translate(0.833 1.000) scale(0.041667 0.041667)" /> + </symbol> + <symbol id="d7mi-G" viewBox="0 0 21.75 32.00"> + <path class="lcd-active" d="M393 400 428 360 384 320H294L258 360L303 400ZM447 350 465 330 436 50Q422 10 381 0L359 80L381 290ZM361 0H61Q22 10 16 50L99 80H339ZM18 70 45 330 67 350 121 290 101 100ZM428 640H159L82 670Q96 710 137 720H466ZM156 620 136 430 69 370 52 390 79 650Z" transform="translate(0.833 1.000) scale(0.041667 0.041667)" /> + </symbol> + <symbol id="d7mi-H" viewBox="0 0 23.21 32.00"> + <path class="lcd-active" d="M393 400 428 360 384 320H124L88 360L133 400ZM447 350 465 330 436 50Q422 10 381 0L359 80L381 290ZM396 430 418 640 456 720Q495 710 501 670L472 390L449 370ZM121 290 99 80 61 0Q22 10 16 50L45 330L67 350ZM68 360 51 380 80 660Q94 700 135 710L157 630L135 420Z" transform="translate(0.833 1.000) scale(0.041667 0.041667)" /> + </symbol> + <symbol id="d7mi-I" viewBox="0 0 12.08 32.00"> + <path class="lcd-active" d="M216 430 238 640 276 720Q315 710 321 670L291 390L269 370ZM268 360 286 340 257 60Q242 20 201 10L180 90L202 300Z" transform="translate(-6.106 0.577) scale(0.042254 0.042254)" /> + </symbol> + <symbol id="d7mi-J" viewBox="0 0 23.21 32.00"> + <path class="lcd-active" d="M447 350 465 330 436 50Q422 10 381 0L359 80L381 290ZM361 0H61Q22 10 16 50L99 80H339ZM18 70 45 330 67 350 121 290 101 100ZM396 430 418 640 456 720Q495 710 501 670L472 390L449 370Z" transform="translate(0.833 1.000) scale(0.041667 0.041667)" /> + </symbol> + <symbol id="d7mi-K" viewBox="0 0 23.25 32.00"> + <path class="lcd-active" d="M393 400 428 360 384 320H124L88 360L133 400ZM447 350 465 330 436 50Q422 10 381 0L359 80L381 290ZM161 480 426 720Q486 720 502 680L215 420H155ZM121 290 99 80 61 0Q22 10 16 50L45 330L67 350ZM69 370 52 390 81 670Q95 710 136 720L158 640L136 430Z" transform="translate(0.833 1.000) scale(0.041667 0.041667)" /> + </symbol> + <symbol id="d7mi-L" viewBox="0 0 20.50 32.00"> + <path class="lcd-active" d="M121 290 99 80 61 0Q22 10 16 50L45 330L67 350ZM119 80H359L436 50Q422 10 381 0H81ZM69 370 52 390 81 670Q95 710 136 720L158 640L136 430Z" transform="translate(0.833 1.000) scale(0.041667 0.041667)" /> + </symbol> + <symbol id="d7mi-M" viewBox="0 0 23.21 32.00"> + <path class="lcd-active" d="M302 390 257 350 222 390 246 620H326ZM447 350 465 330 436 50Q422 10 381 0L359 80L381 290ZM398 640H159L82 670Q96 710 137 720H436ZM156 620 136 430 69 370 52 390 79 650ZM396 430 418 640 456 720Q495 710 501 670L472 390L449 370ZM121 290 99 80 61 0Q22 10 16 50L45 330L67 350Z" transform="translate(0.833 1.000) scale(0.041667 0.041667)" /> + </symbol> + <symbol id="d7mi-N" viewBox="0 0 23.45 32.00"> + <path class="lcd-active" d="M121 290 99 80 61 0Q22 10 16 50L46 330L68 350ZM375 420H305L171 570L177 630H237L380 470ZM448 350 466 330 436 50Q422 10 381 0L359 80L381 290ZM395 420 417 630 455 710Q494 700 500 660L471 380L449 360ZM69 360 51 380 80 660Q94 700 135 710L157 630L135 420Z" transform="translate(0.824 1.000) scale(0.042254 0.042254)" /> + </symbol> + <symbol id="d7mi-O" viewBox="0 0 22.79 32.00"> + <path class="lcd-active" d="M398 640H178L142 680L186 720H406L442 680ZM396 430 418 640 451 670 496 620 472 390 449 370ZM447 350 465 330 441 100 386 50 359 80 381 290ZM69 370 52 390 76 620 131 670 158 640 136 430ZM375 40 331 0H111L75 40L119 80H339ZM121 290 99 80 66 50 21 100 45 330 67 350Z" transform="translate(0.625 1.000) scale(0.041667 0.041667)" /> + </symbol> + <symbol id="d7mi-P" viewBox="0 0 23.00 32.00"> + <path class="lcd-active" d="M393 400 428 360 384 320H124L88 360L133 400ZM398 640H158L81 670L86 720H406L442 680ZM156 620 136 430 69 370 52 390 79 650ZM396 430 418 640 451 670 496 620 472 390 449 370ZM121 290 99 80 61 0Q22 10 16 50L45 330L67 350Z" transform="translate(0.833 1.000) scale(0.041667 0.041667)" /> + </symbol> + <symbol id="d7mi-Q" viewBox="0 0 22.93 32.00"> + <path class="lcd-active" d="M448 350 466 330 440 90 369 170 381 290ZM341 0H61Q22 10 16 50L99 80H269ZM18 70 46 330 68 350 121 290 101 100ZM398 640H159L82 670Q96 710 138 720H437ZM156 620 136 430 70 370 52 390 79 650ZM396 430 418 640 457 720Q495 710 501 670L472 390L450 370ZM270 180H330L446 50L440 -10H380L263 120Z" transform="translate(0.842 1.411) scale(0.041096 0.041096)" /> + </symbol> + <symbol id="d7mi-R" viewBox="0 0 23.21 32.00"> + <path class="lcd-active" d="M393 400 428 360 384 320H124L88 360L133 400ZM142 300H202L435 40Q411 0 351 0L136 240ZM121 290 99 80 61 0Q22 10 16 50L45 330L67 350ZM398 640H159L82 670Q96 710 137 720H436ZM396 430 418 640 456 720Q495 710 501 670L472 390L449 370ZM156 620 136 430 69 370 52 390 79 650Z" transform="translate(0.833 1.000) scale(0.041667 0.041667)" /> + </symbol> + <symbol id="d7mi-S" viewBox="0 0 23.21 32.00"> + <path class="lcd-active" d="M393 400 428 360 384 320H124L88 360L133 400ZM447 350 465 330 436 50Q422 10 381 0L359 80L381 290ZM361 0H61Q22 10 16 50L99 80H339ZM156 620 136 430 69 370 52 390 79 650ZM159 640 82 670Q96 710 137 720H456Q495 710 501 670L418 640Z" transform="translate(0.833 1.000) scale(0.041667 0.041667)" /> + </symbol> + <symbol id="d7mi-T" viewBox="0 0 20.46 32.00"> + <path class="lcd-active" d="M257 350 293 310 266 50Q252 10 211 0L189 80L213 310ZM224 410 246 620H326L304 410L259 370ZM159 640 82 670Q96 710 137 720H456Q495 710 501 670L418 640Z" transform="translate(-1.917 1.000) scale(0.041667 0.041667)" /> + </symbol> + <symbol id="d7mi-U" viewBox="0 0 23.21 32.00"> + <path class="lcd-active" d="M447 350 465 330 436 50Q422 10 381 0L359 80L381 290ZM361 0H61Q22 10 16 50L99 80H339ZM18 70 45 330 67 350 121 290 101 100ZM396 430 418 640 456 720Q495 710 501 670L472 390L449 370ZM68 360 51 380 80 660Q94 700 135 710L157 630L135 420Z" transform="translate(0.833 1.000) scale(0.041667 0.041667)" /> + </symbol> + <symbol id="d7mi-V" viewBox="0 0 22.52 32.00"> + <path class="lcd-active" d="M69 360 51 380 80 660Q94 700 135 710L157 630L135 420ZM395 420 417 630 455 710Q494 700 500 660L471 380L449 360ZM223 120 211 0 38 260 44 320 67 340 120 280ZM380 280 447 340 464 320 458 260 231 0 243 120Z" transform="translate(-0.106 1.000) scale(0.042254 0.042254)" /> + </symbol> + <symbol id="d7mi-W" viewBox="0 0 23.17 32.00"> + <path class="lcd-active" d="M271 100H191L215 330L259 370L295 330ZM396 430 418 640 456 720Q495 710 501 670L472 390L449 370ZM361 0H62Q23 10 17 50L100 80H339ZM18 70 45 330 67 350 121 290 101 100ZM447 350 465 330 436 50Q422 10 381 0L359 80L381 290ZM69 370 52 390 81 670Q95 710 136 720L158 640L136 430Z" transform="translate(0.792 1.000) scale(0.041667 0.041667)" /> + </symbol> + <symbol id="d7mi-X" viewBox="0 0 23.29 32.00"> + <path class="lcd-active" d="M267 350H312L434 40Q410 0 350 0L256 242ZM282 478 426 720Q486 720 502 680L315 370H270ZM235 242 91 0Q31 0 15 40L201 350H246ZM249 370H204L83 680Q107 720 167 720L261 477Z" transform="translate(0.875 1.000) scale(0.041667 0.041667)" /> + </symbol> + <symbol id="d7mi-Y" viewBox="0 0 23.21 32.00"> + <path class="lcd-active" d="M393 400 428 360 384 320H124L88 360L133 400ZM447 350 465 330 436 50Q422 10 381 0L359 80L381 290ZM361 0H61Q22 10 16 50L99 80H339ZM159 650 136 430 69 370 52 390 82 680ZM396 430 418 640 456 720Q495 710 501 670L472 390L449 370Z" transform="translate(0.833 1.000) scale(0.041667 0.041667)" /> + </symbol> + <symbol id="d7mi-Z" viewBox="0 0 23.29 32.00"> + <path class="lcd-active" d="M391 0H111L159 80H369ZM358 640H159L82 670Q96 710 137 720H406ZM266 430 426 720Q486 720 502 680L319 370H259ZM261 290 91 0Q31 0 15 40L207 350H267Z" transform="translate(0.875 1.000) scale(0.041667 0.041667)" /> + </symbol> + <symbol id="d7mi-colon" viewBox="0 0 21.45 32.00"> + <path class="lcd-active" d="M277 160H197L206 240H286ZM311 480H231L239 560H319Z" transform="translate(-13.275 -11.000) scale(0.075000 0.075000)" /> + </symbol> + <symbol id="d7mi-plus" viewBox="0 0 33.00 32.00"> + <path class="lcd-active" d="M223 400 232 490 276 530 312 490 303 400H393L428 360L384 320H294L285 230L241 190L205 230L214 320H124L88 360L133 400Z" transform="translate(-6.265 -15.765) scale(0.088235 0.088235)" /> + </symbol> + <symbol id="d7mi-minus" viewBox="0 0 130.50 32.00"> + <path class="lcd-active" d="M393 400 428 360 384 320H124L88 360L133 400Z" transform="translate(-31.500 -119.000) scale(0.375000 0.375000)" /> + </symbol> + <symbol id="d7mi-slash" viewBox="0 0 23.29 32.00"> + <path class="lcd-active" d="M282 478 426 720Q486 720 502 680L315 370H270ZM235 242 91 0Q31 0 15 40L201 350H246Z" transform="translate(0.875 1.000) scale(0.041667 0.041667)" /> + </symbol> + <symbol id="d7mi-dot" viewBox="0 0 107.25 32.00"> + <path class="lcd-active" d="M277 0H197L206 80H286Z" transform="translate(-72.375 1.000) scale(0.375000 0.375000)" /> + </symbol> + </defs> +</svg> diff --git a/assets/ds-digital-alphabet.svg b/assets/ds-digital-alphabet.svg new file mode 100644 index 0000000..e4f9ee8 --- /dev/null +++ b/assets/ds-digital-alphabet.svg @@ -0,0 +1,129 @@ +<svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" style="position:absolute;width:0;height:0;overflow:hidden"> + <!-- DS-Digital by Dusit Supasawat (shareware) — vectorized for hub clock --> + <defs> + <symbol id="dsd-space" viewBox="0 0 11.20 32.00"></symbol> + <symbol id="dsd-0" viewBox="0 0 20.96 32.00"> + <path class="lcd-active" d="M479 392 452 364 405 411V611L479 686ZM465 700 391 625H148L74 700ZM135 411 88 364 60 392V686L135 611ZM479 14 405 89V289L452 336L479 307ZM465 0H74L148 75H391ZM135 89 60 14V307L88 336L135 289Z" transform="translate(-1.071 1.000) scale(0.042857 0.042857)" /> + </symbol> + <symbol id="dsd-1" viewBox="0 0 7.05 32.00"> + <path class="lcd-active" d="M181 307V14L106 89V289L153 336ZM106 411V611L181 686V392L153 364Z" transform="translate(-3.232 0.375) scale(0.044643 0.044643)" /> + </symbol> + <symbol id="dsd-2" viewBox="0 0 20.96 32.00"> + <path class="lcd-active" d="M465 700 391 625H148L74 700ZM465 0H74L148 75H391ZM135 289V89L60 14V307L88 336ZM405 411V611L479 686V392L452 364ZM400 387 438 350 400 313H139L102 350L139 387Z" transform="translate(-1.071 1.000) scale(0.042857 0.042857)" /> + </symbol> + <symbol id="dsd-3" viewBox="0 0 20.36 32.00"> + <path class="lcd-active" d="M465 700 391 625H148L74 700ZM465 0H74L148 75H391ZM479 307V14L405 89V289L452 336ZM405 411V611L479 686V392L452 364ZM400 387 438 350 400 313H139L102 350L139 387Z" transform="translate(-1.671 1.000) scale(0.042857 0.042857)" /> + </symbol> + <symbol id="dsd-4" viewBox="0 0 21.71 32.00"> + <path class="lcd-active" d="M60 392V686L135 611V411L88 364ZM479 307V14L405 89V289L452 336ZM405 411V611L479 686V392L452 364ZM400 387 438 350 400 313H139L102 350L139 387Z" transform="translate(-1.179 0.375) scale(0.044643 0.044643)" /> + </symbol> + <symbol id="dsd-5" viewBox="0 0 20.96 32.00"> + <path class="lcd-active" d="M465 700 391 625H148L74 700ZM465 0H74L148 75H391ZM60 392V686L135 611V411L88 364ZM479 307V14L405 89V289L452 336ZM400 387 438 350 400 313H139L102 350L139 387Z" transform="translate(-1.071 1.000) scale(0.042857 0.042857)" /> + </symbol> + <symbol id="dsd-6" viewBox="0 0 20.96 32.00"> + <path class="lcd-active" d="M465 700 391 625H148L74 700ZM465 0H74L148 75H391ZM135 289V89L60 14V307L88 336ZM60 392V686L135 611V411L88 364ZM479 307V14L405 89V289L452 336ZM400 387 438 350 400 313H139L102 350L139 387Z" transform="translate(-1.071 1.000) scale(0.042857 0.042857)" /> + </symbol> + <symbol id="dsd-7" viewBox="0 0 20.71 32.00"> + <path class="lcd-active" d="M465 700 391 625H148L74 700ZM479 307V14L405 89V289L452 336ZM405 411V611L479 686V392L452 364Z" transform="translate(-1.736 0.388) scale(0.043732 0.043732)" /> + </symbol> + <symbol id="dsd-8" viewBox="0 0 20.96 32.00"> + <path class="lcd-active" d="M465 700 391 625H148L74 700ZM465 0H74L148 75H391ZM135 289V89L60 14V307L88 336ZM60 392V686L135 611V411L88 364ZM479 307V14L405 89V289L452 336ZM405 411V611L479 686V392L452 364ZM400 387 438 350 400 313H139L102 350L139 387Z" transform="translate(-1.071 1.000) scale(0.042857 0.042857)" /> + </symbol> + <symbol id="dsd-9" viewBox="0 0 20.96 32.00"> + <path class="lcd-active" d="M465 700 391 625H148L74 700ZM465 0H74L148 75H391ZM60 392V686L135 611V411L88 364ZM479 307V14L405 89V289L452 336ZM405 411V611L479 686V392L452 364ZM400 387 438 350 400 313H139L102 350L139 387Z" transform="translate(-1.071 1.000) scale(0.042857 0.042857)" /> + </symbol> + <symbol id="dsd-A" viewBox="0 0 20.96 32.00"> + <path class="lcd-active" d="M465 700 391 625H148L74 700ZM135 289V75L60 0V307L88 336ZM60 392V686L135 611V411L88 364ZM479 307V0L405 75V289L452 336ZM405 411V611L479 686V392L452 364ZM400 387 438 350 400 313H139L102 350L139 387Z" transform="translate(-1.071 1.000) scale(0.042857 0.042857)" /> + </symbol> + <symbol id="dsd-B" viewBox="0 0 20.96 32.00"> + <path class="lcd-active" d="M479 89 442 51 405 89V289L452 336L479 307ZM479 392 452 364 405 411V611L442 649L479 611ZM428 663 391 625H148L74 700H391ZM428 37 391 0H74L148 75H391ZM135 411 88 364 60 392V686L135 611ZM135 89 60 14V307L88 336L135 289ZM400 387 438 350 400 313H139L102 350L139 387Z" transform="translate(-1.071 1.000) scale(0.042857 0.042857)" /> + </symbol> + <symbol id="dsd-C" viewBox="0 0 20.96 32.00"> + <path class="lcd-active" d="M479 700 405 625H148L111 663L148 700ZM135 411 88 364 60 392V611L97 649L135 611ZM479 0H148L111 37L148 75H405ZM135 89 97 51 60 89V307L88 336L135 289Z" transform="translate(-1.071 1.000) scale(0.042857 0.042857)" /> + </symbol> + <symbol id="dsd-D" viewBox="0 0 20.96 32.00"> + <path class="lcd-active" d="M479 89 442 51 405 89V289L452 336L479 307ZM479 392 452 364 405 411V611L442 649L479 611ZM428 663 391 625H148L74 700H391ZM428 37 391 0H74L148 75H391ZM135 411 88 364 60 392V686L135 611ZM135 89 60 14V307L88 336L135 289Z" transform="translate(-1.071 1.000) scale(0.042857 0.042857)" /> + </symbol> + <symbol id="dsd-E" viewBox="0 0 20.96 32.00"> + <path class="lcd-active" d="M479 700 405 625H148L74 700ZM479 0H74L148 75H405ZM135 289V89L60 14V307L88 336ZM60 392V686L135 611V411L88 364ZM400 387 438 350 400 313H139L102 350L139 387Z" transform="translate(-1.071 1.000) scale(0.042857 0.042857)" /> + </symbol> + <symbol id="dsd-F" viewBox="0 0 21.32 32.00"> + <path class="lcd-active" d="M479 700 405 625H148L74 700ZM135 289V89L60 14V307L88 336ZM60 392V686L135 611V411L88 364ZM400 387 438 350 400 313H139L102 350L139 387Z" transform="translate(-1.124 0.388) scale(0.043732 0.043732)" /> + </symbol> + <symbol id="dsd-G" viewBox="0 0 20.96 32.00"> + <path class="lcd-active" d="M465 700 391 625H148L111 663L148 700ZM438 350 400 313H316L279 350L316 387H400ZM135 411 88 364 60 392V611L97 649L135 611ZM135 89 97 51 60 89V307L88 336L135 289ZM391 0 428 37 391 75H148L111 37L148 0ZM479 89 442 51 405 89V289L452 336L479 307Z" transform="translate(-1.071 1.000) scale(0.042857 0.042857)" /> + </symbol> + <symbol id="dsd-H" viewBox="0 0 20.96 32.00"> + <path class="lcd-active" d="M135 289V75L60 0V307L88 336ZM60 392V700L135 625V411L88 364ZM479 307V0L405 75V289L452 336ZM405 411V625L479 700V392L452 364ZM400 387 438 350 400 313H139L102 350L139 387Z" transform="translate(-1.071 1.000) scale(0.042857 0.042857)" /> + </symbol> + <symbol id="dsd-I" viewBox="0 0 6.77 32.00"> + <path class="lcd-active" d="M181 392 153 364 106 411V663L143 700L181 663ZM181 37 143 0 106 37V289L153 336L181 307Z" transform="translate(-3.043 1.000) scale(0.042857 0.042857)" /> + </symbol> + <symbol id="dsd-J" viewBox="0 0 20.96 32.00"> + <path class="lcd-active" d="M465 0H74L148 75H391ZM135 196V89L60 14V215L88 242ZM479 307V14L405 89V289L452 336ZM405 411V625L479 700V392L452 364Z" transform="translate(-1.071 1.000) scale(0.042857 0.042857)" /> + </symbol> + <symbol id="dsd-K" viewBox="0 0 20.96 32.00"> + <path class="lcd-active" d="M135 289V75L60 0V307L88 336ZM60 392V700L135 625V411L88 364ZM479 307V0L405 75V289L452 336ZM391 697H444V644L206 409H153V462ZM400 387 438 350 400 313H139L102 350L139 387Z" transform="translate(-1.071 1.000) scale(0.042857 0.042857)" /> + </symbol> + <symbol id="dsd-L" viewBox="0 0 20.96 32.00"> + <path class="lcd-active" d="M479 0H74L148 75H405ZM135 289V89L60 14V307L88 336ZM60 392V700L135 625V411L88 364Z" transform="translate(-1.071 1.000) scale(0.042857 0.042857)" /> + </symbol> + <symbol id="dsd-M" viewBox="0 0 20.96 32.00"> + <path class="lcd-active" d="M465 700 391 625H148L74 700ZM135 289V75L60 0V307L88 336ZM60 392V686L135 611V411L88 364ZM479 307V0L405 75V289L452 336ZM405 411V611L479 686V392L452 364ZM232 569 269 606 307 569V402L269 364L232 402Z" transform="translate(-1.071 1.000) scale(0.042857 0.042857)" /> + </symbol> + <symbol id="dsd-N" viewBox="0 0 20.96 32.00"> + <path class="lcd-active" d="M135 289V75L60 0V307L88 336ZM60 392V700L135 625V411L88 364ZM479 307V0L405 75V289L452 336ZM405 411V625L479 700V392L452 364ZM152 571V625H205L387 443V390H334Z" transform="translate(-1.071 1.000) scale(0.042857 0.042857)" /> + </symbol> + <symbol id="dsd-O" viewBox="0 0 20.96 32.00"> + <path class="lcd-active" d="M479 392 452 364 405 411V611L442 649L479 611ZM428 663 391 625H148L111 663L148 700H391ZM479 89 442 51 405 89V289L452 336L479 307ZM135 411 88 364 60 392V611L97 649L135 611ZM60 89 97 51 135 89V289L88 336L60 307ZM148 0 111 37 148 75H391L428 37L391 0Z" transform="translate(-1.071 1.000) scale(0.042857 0.042857)" /> + </symbol> + <symbol id="dsd-P" viewBox="0 0 20.96 32.00"> + <path class="lcd-active" d="M479 392 452 364 405 411V611L442 649L479 611ZM428 663 391 625H148L74 700H391ZM135 411 88 364 60 392V686L135 611ZM135 75 60 0V307L88 336L135 289ZM400 387 438 350 400 313H139L102 350L139 387Z" transform="translate(-1.071 1.000) scale(0.042857 0.042857)" /> + </symbol> + <symbol id="dsd-Q" viewBox="0 0 20.96 32.00"> + <path class="lcd-active" d="M479 392 452 364 405 411V611L442 649L479 611ZM428 663 391 625H148L111 663L148 700H391ZM479 155 442 118 405 155V289L452 336L479 307ZM135 411 88 364 60 392V611L97 649L135 611ZM60 89 97 51 135 89V289L88 336L60 307ZM148 0 111 37 148 75H324L361 37L324 0ZM338 89V142H391L479 53V0H426Z" transform="translate(-1.071 1.000) scale(0.042857 0.042857)" /> + </symbol> + <symbol id="dsd-R" viewBox="0 0 20.96 32.00"> + <path class="lcd-active" d="M479 392 452 364 405 411V611L442 649L479 611ZM428 663 391 625H148L74 700H391ZM135 411 88 364 60 392V686L135 611ZM135 75 60 0V307L88 336L135 289ZM186 241V294H239L479 53V0H426ZM400 387 438 350 400 313H139L102 350L139 387Z" transform="translate(-1.071 1.000) scale(0.042857 0.042857)" /> + </symbol> + <symbol id="dsd-S" viewBox="0 0 20.96 32.00"> + <path class="lcd-active" d="M479 663 442 625H148L111 663L148 700H442ZM479 89 442 51 405 89V289L452 336L479 307ZM135 411 88 364 60 392V611L97 649L135 611ZM97 0 60 37 97 75H391L428 37L391 0ZM400 387 438 350 400 313H139L102 350L139 387Z" transform="translate(-1.071 1.000) scale(0.042857 0.042857)" /> + </symbol> + <symbol id="dsd-T" viewBox="0 0 20.96 32.00"> + <path class="lcd-active" d="M479 700 405 625H135L60 700ZM307 37 269 0 232 37V252L279 299L307 271ZM307 354 279 327 232 373V574L269 611L307 574Z" transform="translate(-1.071 1.000) scale(0.042857 0.042857)" /> + </symbol> + <symbol id="dsd-U" viewBox="0 0 20.96 32.00"> + <path class="lcd-active" d="M479 89 442 51 405 89V289L452 336L479 307ZM60 89 97 51 135 89V289L88 336L60 307ZM148 0 111 37 148 75H391L428 37L391 0ZM60 392V700L135 625V411L88 364ZM405 411V625L479 700V392L452 364Z" transform="translate(-1.071 1.000) scale(0.042857 0.042857)" /> + </symbol> + <symbol id="dsd-V" viewBox="0 0 20.96 32.00"> + <path class="lcd-active" d="M479 392 452 364 405 411V625L479 700ZM446 282 201 37H148V90L393 336L452 337ZM135 411 88 364 60 392V700L135 625ZM60 37 97 0 135 37V289L88 336L60 307Z" transform="translate(-1.071 1.000) scale(0.042857 0.042857)" /> + </symbol> + <symbol id="dsd-W" viewBox="0 0 20.96 32.00"> + <path class="lcd-active" d="M479 392 452 364 405 411V625L479 700ZM135 411 88 364 60 392V700L135 625ZM479 14 405 89V289L452 336L479 307ZM307 130 269 93 232 130V298L269 336L307 298ZM465 0H74L148 75H391ZM135 89 60 14V307L88 336L135 289Z" transform="translate(-1.071 1.000) scale(0.042857 0.042857)" /> + </symbol> + <symbol id="dsd-X" viewBox="0 0 20.96 32.00"> + <path class="lcd-active" d="M284 364V446L436 700H479V627L322 364ZM218 364 60 627V700H103L255 446V364ZM255 336V254L103 0H60V73L218 336ZM321 336 479 73V0H436L284 254V336Z" transform="translate(-1.071 1.000) scale(0.042857 0.042857)" /> + </symbol> + <symbol id="dsd-Y" viewBox="0 0 20.96 32.00"> + <path class="lcd-active" d="M479 392 452 364 405 411V625L479 700ZM60 392 88 364 135 411V625L60 700ZM148 0 111 37 148 75H391L428 37L391 0ZM479 89 442 51 405 89V289L452 336L479 307ZM400 387 438 350 400 313H139L102 350L139 387Z" transform="translate(-1.071 1.000) scale(0.042857 0.042857)" /> + </symbol> + <symbol id="dsd-Z" viewBox="0 0 20.96 32.00"> + <path class="lcd-active" d="M479 663 442 625H135L60 700H442ZM465 0H97L60 37L97 75H391ZM334 369 268 361 265 401 427 606H479V551ZM211 336 251 340 260 274 115 93H60V145Z" transform="translate(-1.071 1.000) scale(0.042857 0.042857)" /> + </symbol> + <symbol id="dsd-colon" viewBox="0 0 6.86 32.00"> + <path class="lcd-active" d="M83 0V75H158V0ZM83 508V583H158V508Z" transform="translate(-2.771 1.000) scale(0.051458 0.051458)" /> + </symbol> + <symbol id="dsd-plus" viewBox="0 0 32.91 32.00"> + <path class="lcd-active" d="M265 401 228 364 190 401V480L228 518L265 480ZM395 350 358 313H279L241 350L279 387H358ZM214 350 176 313H97L60 350L97 387H176ZM265 219 228 182 190 219V299L228 336L265 299Z" transform="translate(-3.857 -15.250) scale(0.089286 0.089286)" /> + </symbol> + <symbol id="dsd-minus" viewBox="0 0 138.81 32.00"> + <path class="lcd-active" d="M358 387 395 350 358 313H97L60 350L97 387Z" transform="translate(-22.824 -125.892) scale(0.405405 0.405405)" /> + </symbol> + <symbol id="dsd-slash" viewBox="0 0 21.52 32.00"> + <path class="lcd-active" d="M246 320 64 4 36 106 172 340 235 358ZM232 446 367 680 470 707 287 393 249 382Z" transform="translate(-0.036 0.829) scale(0.042674 0.042674)" /> + </symbol> + <symbol id="dsd-dot" viewBox="0 0 42.68 32.00"> + <path class="lcd-active" d="M60 0V75H135V0Z" transform="translate(-22.500 1.000) scale(0.400000 0.400000)" /> + </symbol> + </defs> +</svg> diff --git a/assets/dseg14-classic-alphabet.svg b/assets/dseg14-classic-alphabet.svg new file mode 100644 index 0000000..525f2f2 --- /dev/null +++ b/assets/dseg14-classic-alphabet.svg @@ -0,0 +1,129 @@ +<svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" style="position:absolute;width:0;height:0;overflow:hidden"> + <!-- DSEG14 Classic (OFL) — vectorized for hub clock --> + <defs> + <symbol id="d14c-space" viewBox="0 0 11.20 32.00"></symbol> + <symbol id="d14c-0" viewBox="0 0 21.54 32.00"> + <path class="lcd-active" d="M144 969 175 1000H641L672 969L610 907H590H454H362H226H206ZM686 955 717 924V510H690L685 514L624 575V607V782V887V893ZM685 485 690 489H717V76L686 45L624 107V113V218V424ZM672 31 641 0H175L144 31L206 93H226H362H454H590H610ZM130 45 99 76V490H126L130 485L192 424V218V113V107ZM130 515 126 510H99V924L130 955L192 893V887V782V576ZM578 887H604V746L500 567H475V709ZM341 291 238 113H212V254L316 433H341Z" transform="translate(-1.470 1.000) scale(0.030000 0.030000)" /> + </symbol> + <symbol id="d14c-1" viewBox="0 0 14.80 32.00"> + <path class="lcd-active" d="M686 955 717 924V510H690L685 514L624 575V607V782V887V893ZM685 485 690 489H717V76L686 45L624 107V113V218V424Z" transform="translate(-19.071 -0.484) scale(0.032967 0.032967)" /> + </symbol> + <symbol id="d14c-2" viewBox="0 0 21.54 32.00"> + <path class="lcd-active" d="M144 969 175 1000H641L672 969L610 907H590H454H362H226H206ZM686 955 717 924V510H690L685 514L624 575V607V782V887V893ZM672 31 641 0H175L144 31L206 93H226H362H454H590H610ZM130 45 99 76V490H126L130 485L192 424V218V113V107ZM144 500 192 547V546H328H369L396 500L369 454H212H209H192V453ZM624 546 671 499 624 453V454H606H604H475H454H447L420 500L447 546H454H475H488Z" transform="translate(-1.470 1.000) scale(0.030000 0.030000)" /> + </symbol> + <symbol id="d14c-3" viewBox="0 0 20.19 32.00"> + <path class="lcd-active" d="M144 969 175 1000H641L672 969L610 907H590H454H362H226H206ZM686 955 717 924V510H690L685 514L624 575V607V782V887V893ZM685 485 690 489H717V76L686 45L624 107V113V218V424ZM672 31 641 0H175L144 31L206 93H226H362H454H590H610ZM144 500 192 547V546H328H369L396 500L369 454H212H209H192V453ZM624 546 671 499 624 453V454H606H604H475H454H447L420 500L447 546H454H475H488Z" transform="translate(-2.820 1.000) scale(0.030000 0.030000)" /> + </symbol> + <symbol id="d14c-4" viewBox="0 0 23.37 32.00"> + <path class="lcd-active" d="M686 955 717 924V510H690L685 514L624 575V607V782V887V893ZM685 485 690 489H717V76L686 45L624 107V113V218V424ZM130 515 126 510H99V924L130 955L192 893V887V782V576ZM144 500 192 547V546H328H369L396 500L369 454H212H209H192V453ZM624 546 671 499 624 453V454H606H604H475H454H447L420 500L447 546H454H475H488Z" transform="translate(-1.764 -0.484) scale(0.032967 0.032967)" /> + </symbol> + <symbol id="d14c-5" viewBox="0 0 21.54 32.00"> + <path class="lcd-active" d="M144 969 175 1000H641L672 969L610 907H590H454H362H226H206ZM685 485 690 489H717V76L686 45L624 107V113V218V424ZM672 31 641 0H175L144 31L206 93H226H362H454H590H610ZM130 515 126 510H99V924L130 955L192 893V887V782V576ZM144 500 192 547V546H328H369L396 500L369 454H212H209H192V453ZM624 546 671 499 624 453V454H606H604H475H454H447L420 500L447 546H454H475H488Z" transform="translate(-1.470 1.000) scale(0.030000 0.030000)" /> + </symbol> + <symbol id="d14c-6" viewBox="0 0 21.54 32.00"> + <path class="lcd-active" d="M144 969 175 1000H641L672 969L610 907H590H454H362H226H206ZM685 485 690 489H717V76L686 45L624 107V113V218V424ZM672 31 641 0H175L144 31L206 93H226H362H454H590H610ZM130 45 99 76V490H126L130 485L192 424V218V113V107ZM130 515 126 510H99V924L130 955L192 893V887V782V576ZM144 500 192 547V546H328H369L396 500L369 454H212H209H192V453ZM624 546 671 499 624 453V454H606H604H475H454H447L420 500L447 546H454H475H488Z" transform="translate(-1.470 1.000) scale(0.030000 0.030000)" /> + </symbol> + <symbol id="d14c-7" viewBox="0 0 22.41 32.00"> + <path class="lcd-active" d="M144 969 175 1000H641L672 969L610 907H590H454H362H226H206ZM686 955 717 924V510H690L685 514L624 575V607V782V887V893ZM685 485 690 489H717V76L686 45L624 107V113V218V424ZM130 515 126 510H99V924L130 955L192 893V887V782V576Z" transform="translate(-1.610 -0.414) scale(0.031414 0.031414)" /> + </symbol> + <symbol id="d14c-8" viewBox="0 0 21.54 32.00"> + <path class="lcd-active" d="M144 969 175 1000H641L672 969L610 907H590H454H362H226H206ZM686 955 717 924V510H690L685 514L624 575V607V782V887V893ZM685 485 690 489H717V76L686 45L624 107V113V218V424ZM672 31 641 0H175L144 31L206 93H226H362H454H590H610ZM130 45 99 76V490H126L130 485L192 424V218V113V107ZM130 515 126 510H99V924L130 955L192 893V887V782V576ZM144 500 192 547V546H328H369L396 500L369 454H212H209H192V453ZM624 546 671 499 624 453V454H606H604H475H454H447L420 500L447 546H454H475H488Z" transform="translate(-1.470 1.000) scale(0.030000 0.030000)" /> + </symbol> + <symbol id="d14c-9" viewBox="0 0 21.54 32.00"> + <path class="lcd-active" d="M144 969 175 1000H641L672 969L610 907H590H454H362H226H206ZM686 955 717 924V510H690L685 514L624 575V607V782V887V893ZM685 485 690 489H717V76L686 45L624 107V113V218V424ZM672 31 641 0H175L144 31L206 93H226H362H454H590H610ZM130 515 126 510H99V924L130 955L192 893V887V782V576ZM144 500 192 547V546H328H369L396 500L369 454H212H209H192V453ZM624 546 671 499 624 453V454H606H604H475H454H447L420 500L447 546H454H475H488Z" transform="translate(-1.470 1.000) scale(0.030000 0.030000)" /> + </symbol> + <symbol id="d14c-A" viewBox="0 0 22.41 32.00"> + <path class="lcd-active" d="M144 969 175 1000H641L672 969L610 907H590H454H362H226H206ZM686 955 717 924V510H690L685 514L624 575V607V782V887V893ZM685 485 690 489H717V76L686 45L624 107V113V218V424ZM130 45 99 76V490H126L130 485L192 424V218V113V107ZM130 515 126 510H99V924L130 955L192 893V887V782V576ZM144 500 192 547V546H328H369L396 500L369 454H212H209H192V453ZM624 546 671 499 624 453V454H606H604H475H454H447L420 500L447 546H454H475H488Z" transform="translate(-1.610 -0.414) scale(0.031414 0.031414)" /> + </symbol> + <symbol id="d14c-B" viewBox="0 0 20.19 32.00"> + <path class="lcd-active" d="M144 969 175 1000H641L672 969L610 907H590H454H362H226H206ZM686 955 717 924V510H690L685 514L624 575V607V782V887V893ZM685 485 690 489H717V76L686 45L624 107V113V218V424ZM672 31 641 0H175L144 31L206 93H226H362H454H590H610ZM624 546 671 499 624 453V454H606H604H475H454H447L420 500L447 546H454H475H488ZM362 673V887H454V876V673V601L408 521L362 601ZM454 157V113H362V327V399L408 479L454 399V327Z" transform="translate(-2.820 1.000) scale(0.030000 0.030000)" /> + </symbol> + <symbol id="d14c-C" viewBox="0 0 20.19 32.00"> + <path class="lcd-active" d="M144 969 175 1000H641L672 969L610 907H590H454H362H226H206ZM672 31 641 0H175L144 31L206 93H226H362H454H590H610ZM130 45 99 76V490H126L130 485L192 424V218V113V107ZM130 515 126 510H99V924L130 955L192 893V887V782V576Z" transform="translate(-1.470 1.000) scale(0.030000 0.030000)" /> + </symbol> + <symbol id="d14c-D" viewBox="0 0 20.19 32.00"> + <path class="lcd-active" d="M144 969 175 1000H641L672 969L610 907H590H454H362H226H206ZM686 955 717 924V510H690L685 514L624 575V607V782V887V893ZM685 485 690 489H717V76L686 45L624 107V113V218V424ZM672 31 641 0H175L144 31L206 93H226H362H454H590H610ZM362 673V887H454V876V673V601L408 521L362 601ZM454 157V113H362V327V399L408 479L454 399V327Z" transform="translate(-2.820 1.000) scale(0.030000 0.030000)" /> + </symbol> + <symbol id="d14c-E" viewBox="0 0 20.19 32.00"> + <path class="lcd-active" d="M144 969 175 1000H641L672 969L610 907H590H454H362H226H206ZM672 31 641 0H175L144 31L206 93H226H362H454H590H610ZM130 45 99 76V490H126L130 485L192 424V218V113V107ZM130 515 126 510H99V924L130 955L192 893V887V782V576ZM144 500 192 547V546H328H369L396 500L369 454H212H209H192V453ZM624 546 671 499 624 453V454H606H604H475H454H447L420 500L447 546H454H475H488Z" transform="translate(-1.470 1.000) scale(0.030000 0.030000)" /> + </symbol> + <symbol id="d14c-F" viewBox="0 0 21.00 32.00"> + <path class="lcd-active" d="M144 969 175 1000H641L672 969L610 907H590H454H362H226H206ZM130 45 99 76V490H126L130 485L192 424V218V113V107ZM130 515 126 510H99V924L130 955L192 893V887V782V576ZM144 500 192 547V546H328H369L396 500L369 454H212H209H192V453ZM624 546 671 499 624 453V454H606H604H475H454H447L420 500L447 546H454H475H488Z" transform="translate(-1.610 -0.414) scale(0.031414 0.031414)" /> + </symbol> + <symbol id="d14c-G" viewBox="0 0 21.54 32.00"> + <path class="lcd-active" d="M144 969 175 1000H641L672 969L610 907H590H454H362H226H206ZM685 485 690 489H717V76L686 45L624 107V113V218V424ZM672 31 641 0H175L144 31L206 93H226H362H454H590H610ZM130 45 99 76V490H126L130 485L192 424V218V113V107ZM130 515 126 510H99V924L130 955L192 893V887V782V576ZM624 546 671 499 624 453V454H606H604H475H454H447L420 500L447 546H454H475H488Z" transform="translate(-1.470 1.000) scale(0.030000 0.030000)" /> + </symbol> + <symbol id="d14c-H" viewBox="0 0 23.37 32.00"> + <path class="lcd-active" d="M686 955 717 924V510H690L685 514L624 575V607V782V887V893ZM685 485 690 489H717V76L686 45L624 107V113V218V424ZM130 45 99 76V490H126L130 485L192 424V218V113V107ZM130 515 126 510H99V924L130 955L192 893V887V782V576ZM144 500 192 547V546H328H369L396 500L369 454H212H209H192V453ZM624 546 671 499 624 453V454H606H604H475H454H447L420 500L447 546H454H475H488Z" transform="translate(-1.764 -0.484) scale(0.032967 0.032967)" /> + </symbol> + <symbol id="d14c-I" viewBox="0 0 18.84 32.00"> + <path class="lcd-active" d="M144 969 175 1000H641L672 969L610 907H590H454H362H226H206ZM672 31 641 0H175L144 31L206 93H226H362H454H590H610ZM362 673V887H454V876V673V601L408 521L362 601ZM454 157V113H362V327V399L408 479L454 399V327Z" transform="translate(-2.820 1.000) scale(0.030000 0.030000)" /> + </symbol> + <symbol id="d14c-J" viewBox="0 0 22.41 32.00"> + <path class="lcd-active" d="M686 955 717 924V510H690L685 514L624 575V607V782V887V893ZM685 485 690 489H717V76L686 45L624 107V113V218V424ZM672 31 641 0H175L144 31L206 93H226H362H454H590H610ZM130 45 99 76V490H126L130 485L192 424V218V113V107Z" transform="translate(-1.610 1.000) scale(0.031414 0.031414)" /> + </symbol> + <symbol id="d14c-K" viewBox="0 0 19.65 32.00"> + <path class="lcd-active" d="M130 45 99 76V490H126L130 485L192 424V218V113V107ZM130 515 126 510H99V924L130 955L192 893V887V782V576ZM144 500 192 547V546H328H369L396 500L369 454H212H209H192V453ZM578 887H604V746L500 567H475V709ZM475 433H500L604 254V113H578L475 291Z" transform="translate(-1.764 -0.484) scale(0.032967 0.032967)" /> + </symbol> + <symbol id="d14c-L" viewBox="0 0 21.00 32.00"> + <path class="lcd-active" d="M672 31 641 0H175L144 31L206 93H226H362H454H590H610ZM130 45 99 76V490H126L130 485L192 424V218V113V107ZM130 515 126 510H99V924L130 955L192 893V887V782V576Z" transform="translate(-1.610 1.000) scale(0.031414 0.031414)" /> + </symbol> + <symbol id="d14c-M" viewBox="0 0 23.37 32.00"> + <path class="lcd-active" d="M686 955 717 924V510H690L685 514L624 575V607V782V887V893ZM685 485 690 489H717V76L686 45L624 107V113V218V424ZM130 45 99 76V490H126L130 485L192 424V218V113V107ZM130 515 126 510H99V924L130 955L192 893V887V782V576ZM341 567H316L212 746V887H238L341 709ZM578 887H604V746L500 567H475V709Z" transform="translate(-1.764 -0.484) scale(0.032967 0.032967)" /> + </symbol> + <symbol id="d14c-N" viewBox="0 0 23.37 32.00"> + <path class="lcd-active" d="M686 955 717 924V510H690L685 514L624 575V607V782V887V893ZM685 485 690 489H717V76L686 45L624 107V113V218V424ZM130 45 99 76V490H126L130 485L192 424V218V113V107ZM130 515 126 510H99V924L130 955L192 893V887V782V576ZM341 567H316L212 746V887H238L341 709ZM475 433H500L604 254V113H578L475 291Z" transform="translate(-1.764 -0.484) scale(0.032967 0.032967)" /> + </symbol> + <symbol id="d14c-O" viewBox="0 0 21.54 32.00"> + <path class="lcd-active" d="M144 969 175 1000H641L672 969L610 907H590H454H362H226H206ZM686 955 717 924V510H690L685 514L624 575V607V782V887V893ZM685 485 690 489H717V76L686 45L624 107V113V218V424ZM672 31 641 0H175L144 31L206 93H226H362H454H590H610ZM130 45 99 76V490H126L130 485L192 424V218V113V107ZM130 515 126 510H99V924L130 955L192 893V887V782V576Z" transform="translate(-1.470 1.000) scale(0.030000 0.030000)" /> + </symbol> + <symbol id="d14c-P" viewBox="0 0 22.41 32.00"> + <path class="lcd-active" d="M144 969 175 1000H641L672 969L610 907H590H454H362H226H206ZM686 955 717 924V510H690L685 514L624 575V607V782V887V893ZM130 45 99 76V490H126L130 485L192 424V218V113V107ZM130 515 126 510H99V924L130 955L192 893V887V782V576ZM144 500 192 547V546H328H369L396 500L369 454H212H209H192V453ZM624 546 671 499 624 453V454H606H604H475H454H447L420 500L447 546H454H475H488Z" transform="translate(-1.610 -0.414) scale(0.031414 0.031414)" /> + </symbol> + <symbol id="d14c-Q" viewBox="0 0 21.54 32.00"> + <path class="lcd-active" d="M144 969 175 1000H641L672 969L610 907H590H454H362H226H206ZM686 955 717 924V510H690L685 514L624 575V607V782V887V893ZM685 485 690 489H717V76L686 45L624 107V113V218V424ZM672 31 641 0H175L144 31L206 93H226H362H454H590H610ZM130 45 99 76V490H126L130 485L192 424V218V113V107ZM130 515 126 510H99V924L130 955L192 893V887V782V576ZM475 433H500L604 254V113H578L475 291Z" transform="translate(-1.470 1.000) scale(0.030000 0.030000)" /> + </symbol> + <symbol id="d14c-R" viewBox="0 0 22.41 32.00"> + <path class="lcd-active" d="M144 969 175 1000H641L672 969L610 907H590H454H362H226H206ZM686 955 717 924V510H690L685 514L624 575V607V782V887V893ZM130 45 99 76V490H126L130 485L192 424V218V113V107ZM130 515 126 510H99V924L130 955L192 893V887V782V576ZM144 500 192 547V546H328H369L396 500L369 454H212H209H192V453ZM624 546 671 499 624 453V454H606H604H475H454H447L420 500L447 546H454H475H488ZM475 433H500L604 254V113H578L475 291Z" transform="translate(-1.610 -0.414) scale(0.031414 0.031414)" /> + </symbol> + <symbol id="d14c-S" viewBox="0 0 20.19 32.00"> + <path class="lcd-active" d="M144 969 175 1000H641L672 969L610 907H590H454H362H226H206ZM685 485 690 489H717V76L686 45L624 107V113V218V424ZM672 31 641 0H175L144 31L206 93H226H362H454H590H610ZM624 546 671 499 624 453V454H606H604H475H454H447L420 500L447 546H454H475H488ZM341 567H316L212 746V887H238L341 709Z" transform="translate(-2.820 1.000) scale(0.030000 0.030000)" /> + </symbol> + <symbol id="d14c-T" viewBox="0 0 20.86 32.00"> + <path class="lcd-active" d="M144 969 175 1000H641L672 969L610 907H590H454H362H226H206ZM362 673V887H454V876V673V601L408 521L362 601ZM454 157V113H362V327V399L408 479L454 399V327Z" transform="translate(-3.370 -2.822) scale(0.033822 0.033822)" /> + </symbol> + <symbol id="d14c-U" viewBox="0 0 22.41 32.00"> + <path class="lcd-active" d="M686 955 717 924V510H690L685 514L624 575V607V782V887V893ZM685 485 690 489H717V76L686 45L624 107V113V218V424ZM672 31 641 0H175L144 31L206 93H226H362H454H590H610ZM130 45 99 76V490H126L130 485L192 424V218V113V107ZM130 515 126 510H99V924L130 955L192 893V887V782V576Z" transform="translate(-1.610 1.000) scale(0.031414 0.031414)" /> + </symbol> + <symbol id="d14c-V" viewBox="0 0 19.65 32.00"> + <path class="lcd-active" d="M130 45 99 76V490H126L130 485L192 424V218V113V107ZM130 515 126 510H99V924L130 955L192 893V887V782V576ZM578 887H604V746L500 567H475V709ZM341 291 238 113H212V254L316 433H341Z" transform="translate(-1.764 -0.484) scale(0.032967 0.032967)" /> + </symbol> + <symbol id="d14c-W" viewBox="0 0 23.37 32.00"> + <path class="lcd-active" d="M686 955 717 924V510H690L685 514L624 575V607V782V887V893ZM685 485 690 489H717V76L686 45L624 107V113V218V424ZM130 45 99 76V490H126L130 485L192 424V218V113V107ZM130 515 126 510H99V924L130 955L192 893V887V782V576ZM341 291 238 113H212V254L316 433H341ZM475 433H500L604 254V113H578L475 291Z" transform="translate(-1.764 -0.484) scale(0.032967 0.032967)" /> + </symbol> + <symbol id="d14c-X" viewBox="0 0 18.19 32.00"> + <path class="lcd-active" d="M341 567H316L212 746V887H238L341 709ZM578 887H604V746L500 567H475V709ZM341 291 238 113H212V254L316 433H341ZM475 433H500L604 254V113H578L475 291Z" transform="translate(-6.717 -3.380) scale(0.038760 0.038760)" /> + </symbol> + <symbol id="d14c-Y" viewBox="0 0 18.19 32.00"> + <path class="lcd-active" d="M341 567H316L212 746V887H238L341 709ZM578 887H604V746L500 567H475V709ZM454 157V113H362V327V399L408 479L454 399V327Z" transform="translate(-6.717 -3.380) scale(0.038760 0.038760)" /> + </symbol> + <symbol id="d14c-Z" viewBox="0 0 18.84 32.00"> + <path class="lcd-active" d="M144 969 175 1000H641L672 969L610 907H590H454H362H226H206ZM672 31 641 0H175L144 31L206 93H226H362H454H590H610ZM578 887H604V746L500 567H475V709ZM341 291 238 113H212V254L316 433H341Z" transform="translate(-2.820 1.000) scale(0.030000 0.030000)" /> + </symbol> + <symbol id="d14c-colon" viewBox="0 0 9.95 32.00"> + <path class="lcd-active" d="M43 717Q48 728 56 736Q66 746 76 750Q85 754 100.0 754.0Q115 754 124 750Q135 745 144 736Q152 728 157 717Q162 705 162.0 693.0Q162 681 157.0 669.0Q152 657 144.0 649.0Q136 641 124.0 636.0Q112 631 100.0 631.0Q88 631 76.0 636.0Q64 641 56.0 649.0Q48 657 43.0 669.0Q38 681 38.0 693.0Q38 705 43 717ZM43 305Q48 316 56 324Q66 334 76 338Q85 342 100.0 342.0Q115 342 124 338Q134 334 144 324Q152 316 157 305Q162 293 162.0 281.0Q162 269 157.0 257.0Q152 245 144.0 237.0Q136 229 124.0 224.0Q112 219 100.0 219.0Q88 219 76.0 224.0Q64 229 56.0 237.0Q48 245 43.0 257.0Q38 269 38.0 281.0Q38 293 43 305Z" transform="translate(-0.631 -11.280) scale(0.056075 0.056075)" /> + </symbol> + <symbol id="d14c-plus" viewBox="0 0 23.43 32.00"> + <path class="lcd-active" d="M144 500 192 547V546H328H369L396 500L369 454H212H209H192V453ZM624 546 671 499 624 453V454H606H604H475H454H447L420 500L447 546H454H475H488ZM362 673V887H454V876V673V601L408 521L362 601ZM454 157V113H362V327V399L408 479L454 399V327Z" transform="translate(-4.081 -3.380) scale(0.038760 0.038760)" /> + </symbol> + <symbol id="d14c-minus" viewBox="0 0 171.19 32.00"> + <path class="lcd-active" d="M144 500 192 547V546H328H369L396 500L369 454H212H209H192V453ZM624 546 671 499 624 453V454H606H604H475H454H447L420 500L447 546H454H475H488Z" transform="translate(-44.457 -143.574) scale(0.319149 0.319149)" /> + </symbol> + <symbol id="d14c-slash" viewBox="0 0 18.19 32.00"> + <path class="lcd-active" d="M578 887H604V746L500 567H475V709ZM341 291 238 113H212V254L316 433H341Z" transform="translate(-6.717 -3.380) scale(0.038760 0.038760)" /> + </symbol> + <symbol id="d14c-dot" viewBox="0 0 33.00 32.00"> + <path class="lcd-active" d="M57.0 86.0Q62 74 62.0 62.0Q62 50 57.0 38.0Q52 26 44.0 18.0Q36 10 24.0 5.0Q12 0 0.0 0.0Q-12 0 -24.0 5.0Q-36 10 -44.0 18.0Q-52 26 -57.0 38.0Q-62 50 -62.0 62.0Q-62 74 -57.0 86.0Q-52 98 -44.0 106.0Q-36 114 -24.0 119.0Q-12 124 0.0 124.0Q12 124 24.0 119.0Q36 114 44.0 106.0Q52 98 57.0 86.0Z" transform="translate(16.500 1.000) scale(0.241935 0.241935)" /> + </symbol> + </defs> +</svg> diff --git a/assets/dseg14-modern-alphabet.svg b/assets/dseg14-modern-alphabet.svg new file mode 100644 index 0000000..cb52047 --- /dev/null +++ b/assets/dseg14-modern-alphabet.svg @@ -0,0 +1,129 @@ +<svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" style="position:absolute;width:0;height:0;overflow:hidden"> + <!-- DSEG14 Modern (OFL) — vectorized for hub clock --> + <defs> + <symbol id="d14m-space" viewBox="0 0 11.20 32.00"></symbol> + <symbol id="d14m-0" viewBox="0 0 21.54 32.00"> + <path class="lcd-active" d="M233 907 105 981Q117 1000 140 1000H676Q676 1000 678 1000L624 907H621H590H454H362ZM698 994Q717 982 717 959V517L624 570V607V782V866ZM664 523 717 493V41Q717 41 717 39L624 93V95V103V113V218V454ZM583 93 711 19Q699 0 676 0H140Q140 0 138 0L192 93H195H226H362H454ZM192 218V134L118 6Q99 18 99 41V483L192 430ZM99 959Q99 959 99 961L192 907V905V895V887V782V578V546L152 477L99 507ZM474 707 578 887H604V746L499 564L424 521ZM342 293 238 113H212V254L317 436L392 479Z" transform="translate(-1.470 1.000) scale(0.030000 0.030000)" /> + </symbol> + <symbol id="d14m-1" viewBox="0 0 14.10 32.00"> + <path class="lcd-active" d="M698 994Q717 982 717 959V517L624 570V607V782V866ZM664 523 717 493V41Q717 41 717 39L624 93V95V103V113V218V454Z" transform="translate(-18.102 -0.225) scale(0.031414 0.031414)" /> + </symbol> + <symbol id="d14m-2" viewBox="0 0 21.54 32.00"> + <path class="lcd-active" d="M233 907 105 981Q117 1000 140 1000H676Q676 1000 678 1000L624 907H621H590H454H362ZM698 994Q717 982 717 959V517L624 570V607V782V866ZM583 93 711 19Q699 0 676 0H140Q140 0 138 0L192 93H195H226H362H454ZM192 218V134L118 6Q99 18 99 41V483L192 430ZM387 500 307 454H212H192L169 467L215 546H307ZM624 546 647 533 601 454H509L429 500L509 546Z" transform="translate(-1.470 1.000) scale(0.030000 0.030000)" /> + </symbol> + <symbol id="d14m-3" viewBox="0 0 21.36 32.00"> + <path class="lcd-active" d="M233 907 105 981Q117 1000 140 1000H676Q676 1000 678 1000L624 907H621H590H454H362ZM698 994Q717 982 717 959V517L624 570V607V782V866ZM664 523 717 493V41Q717 41 717 39L624 93V95V103V113V218V454ZM583 93 711 19Q699 0 676 0H140Q140 0 138 0L192 93H195H226H362H454ZM387 500 307 454H212H192L169 467L215 546H307ZM624 546 647 533 601 454H509L429 500L509 546Z" transform="translate(-1.650 1.000) scale(0.030000 0.030000)" /> + </symbol> + <symbol id="d14m-4" viewBox="0 0 22.41 32.00"> + <path class="lcd-active" d="M698 994Q717 982 717 959V517L624 570V607V782V866ZM664 523 717 493V41Q717 41 717 39L624 93V95V103V113V218V454ZM99 959Q99 959 99 961L192 907V905V895V887V782V578V546L152 477L99 507ZM387 500 307 454H212H192L169 467L215 546H307ZM624 546 647 533 601 454H509L429 500L509 546Z" transform="translate(-1.610 -0.225) scale(0.031414 0.031414)" /> + </symbol> + <symbol id="d14m-5" viewBox="0 0 21.54 32.00"> + <path class="lcd-active" d="M233 907 105 981Q117 1000 140 1000H676Q676 1000 678 1000L624 907H621H590H454H362ZM664 523 717 493V41Q717 41 717 39L624 93V95V103V113V218V454ZM583 93 711 19Q699 0 676 0H140Q140 0 138 0L192 93H195H226H362H454ZM99 959Q99 959 99 961L192 907V905V895V887V782V578V546L152 477L99 507ZM387 500 307 454H212H192L169 467L215 546H307ZM624 546 647 533 601 454H509L429 500L509 546Z" transform="translate(-1.470 1.000) scale(0.030000 0.030000)" /> + </symbol> + <symbol id="d14m-6" viewBox="0 0 21.54 32.00"> + <path class="lcd-active" d="M233 907 105 981Q117 1000 140 1000H676Q676 1000 678 1000L624 907H621H590H454H362ZM664 523 717 493V41Q717 41 717 39L624 93V95V103V113V218V454ZM583 93 711 19Q699 0 676 0H140Q140 0 138 0L192 93H195H226H362H454ZM192 218V134L118 6Q99 18 99 41V483L192 430ZM99 959Q99 959 99 961L192 907V905V895V887V782V578V546L152 477L99 507ZM387 500 307 454H212H192L169 467L215 546H307ZM624 546 647 533 601 454H509L429 500L509 546Z" transform="translate(-1.470 1.000) scale(0.030000 0.030000)" /> + </symbol> + <symbol id="d14m-7" viewBox="0 0 22.29 32.00"> + <path class="lcd-active" d="M233 907 105 981Q117 1000 140 1000H676Q676 1000 678 1000L624 907H621H590H454H362ZM698 994Q717 982 717 959V517L624 570V607V782V866ZM664 523 717 493V41Q717 41 717 39L624 93V95V103V113V218V454ZM99 959Q99 959 99 961L192 907V905V895V887V782V578V546L152 477L99 507Z" transform="translate(-1.591 -0.217) scale(0.031217 0.031217)" /> + </symbol> + <symbol id="d14m-8" viewBox="0 0 21.54 32.00"> + <path class="lcd-active" d="M233 907 105 981Q117 1000 140 1000H676Q676 1000 678 1000L624 907H621H590H454H362ZM698 994Q717 982 717 959V517L624 570V607V782V866ZM664 523 717 493V41Q717 41 717 39L624 93V95V103V113V218V454ZM583 93 711 19Q699 0 676 0H140Q140 0 138 0L192 93H195H226H362H454ZM192 218V134L118 6Q99 18 99 41V483L192 430ZM99 959Q99 959 99 961L192 907V905V895V887V782V578V546L152 477L99 507ZM387 500 307 454H212H192L169 467L215 546H307ZM624 546 647 533 601 454H509L429 500L509 546Z" transform="translate(-1.470 1.000) scale(0.030000 0.030000)" /> + </symbol> + <symbol id="d14m-9" viewBox="0 0 21.54 32.00"> + <path class="lcd-active" d="M233 907 105 981Q117 1000 140 1000H676Q676 1000 678 1000L624 907H621H590H454H362ZM698 994Q717 982 717 959V517L624 570V607V782V866ZM664 523 717 493V41Q717 41 717 39L624 93V95V103V113V218V454ZM583 93 711 19Q699 0 676 0H140Q140 0 138 0L192 93H195H226H362H454ZM99 959Q99 959 99 961L192 907V905V895V887V782V578V546L152 477L99 507ZM387 500 307 454H212H192L169 467L215 546H307ZM624 546 647 533 601 454H509L429 500L509 546Z" transform="translate(-1.470 1.000) scale(0.030000 0.030000)" /> + </symbol> + <symbol id="d14m-A" viewBox="0 0 21.65 32.00"> + <path class="lcd-active" d="M233 907 105 981Q117 1000 140 1000H676Q676 1000 678 1000L624 907H621H590H454H362ZM698 994Q717 982 717 959V517L624 570V607V782V866ZM664 523 717 493V41Q717 41 717 39L624 93V95V103V113V218V454ZM192 218V134L118 6Q99 18 99 41V483L192 430ZM99 959Q99 959 99 961L192 907V905V895V887V782V578V546L152 477L99 507ZM387 500 307 454H212H192L169 467L215 546H307ZM624 546 647 533 601 454H509L429 500L509 546Z" transform="translate(-1.488 0.819) scale(0.030181 0.030181)" /> + </symbol> + <symbol id="d14m-B" viewBox="0 0 21.36 32.00"> + <path class="lcd-active" d="M233 907 105 981Q117 1000 140 1000H676Q676 1000 678 1000L624 907H621H590H454H362ZM698 994Q717 982 717 959V517L624 570V607V782V866ZM664 523 717 493V41Q717 41 717 39L624 93V95V103V113V218V454ZM583 93 711 19Q699 0 676 0H140Q140 0 138 0L192 93H195H226H362H454ZM624 546 647 533 601 454H509L429 500L509 546ZM362 713V887H454V713L408 540ZM454 287V113H362V287L408 460Z" transform="translate(-1.650 1.000) scale(0.030000 0.030000)" /> + </symbol> + <symbol id="d14m-C" viewBox="0 0 21.36 32.00"> + <path class="lcd-active" d="M233 907 105 981Q117 1000 140 1000H676Q676 1000 678 1000L624 907H621H590H454H362ZM583 93 711 19Q699 0 676 0H140Q140 0 138 0L192 93H195H226H362H454ZM192 218V134L118 6Q99 18 99 41V483L192 430ZM99 959Q99 959 99 961L192 907V905V895V887V782V578V546L152 477L99 507Z" transform="translate(-1.470 1.000) scale(0.030000 0.030000)" /> + </symbol> + <symbol id="d14m-D" viewBox="0 0 21.36 32.00"> + <path class="lcd-active" d="M233 907 105 981Q117 1000 140 1000H676Q676 1000 678 1000L624 907H621H590H454H362ZM698 994Q717 982 717 959V517L624 570V607V782V866ZM664 523 717 493V41Q717 41 717 39L624 93V95V103V113V218V454ZM583 93 711 19Q699 0 676 0H140Q140 0 138 0L192 93H195H226H362H454ZM362 713V887H454V713L408 540ZM454 287V113H362V287L408 460Z" transform="translate(-1.650 1.000) scale(0.030000 0.030000)" /> + </symbol> + <symbol id="d14m-E" viewBox="0 0 21.36 32.00"> + <path class="lcd-active" d="M233 907 105 981Q117 1000 140 1000H676Q676 1000 678 1000L624 907H621H590H454H362ZM583 93 711 19Q699 0 676 0H140Q140 0 138 0L192 93H195H226H362H454ZM192 218V134L118 6Q99 18 99 41V483L192 430ZM99 959Q99 959 99 961L192 907V905V895V887V782V578V546L152 477L99 507ZM387 500 307 454H212H192L169 467L215 546H307ZM624 546 647 533 601 454H509L429 500L509 546Z" transform="translate(-1.470 1.000) scale(0.030000 0.030000)" /> + </symbol> + <symbol id="d14m-F" viewBox="0 0 20.47 32.00"> + <path class="lcd-active" d="M233 907 105 981Q117 1000 140 1000H676Q676 1000 678 1000L624 907H621H590H454H362ZM192 218V134L118 6Q99 18 99 41V483L192 430ZM99 959Q99 959 99 961L192 907V905V895V887V782V578V546L152 477L99 507ZM387 500 307 454H212H192L169 467L215 546H307ZM624 546 647 533 601 454H509L429 500L509 546Z" transform="translate(-1.488 0.819) scale(0.030181 0.030181)" /> + </symbol> + <symbol id="d14m-G" viewBox="0 0 21.54 32.00"> + <path class="lcd-active" d="M233 907 105 981Q117 1000 140 1000H676Q676 1000 678 1000L624 907H621H590H454H362ZM664 523 717 493V41Q717 41 717 39L624 93V95V103V113V218V454ZM583 93 711 19Q699 0 676 0H140Q140 0 138 0L192 93H195H226H362H454ZM192 218V134L118 6Q99 18 99 41V483L192 430ZM99 959Q99 959 99 961L192 907V905V895V887V782V578V546L152 477L99 507ZM624 546 647 533 601 454H509L429 500L509 546Z" transform="translate(-1.470 1.000) scale(0.030000 0.030000)" /> + </symbol> + <symbol id="d14m-H" viewBox="0 0 21.77 32.00"> + <path class="lcd-active" d="M698 994Q717 982 717 959V517L624 570V607V782V866ZM664 523 717 493V41Q717 41 717 39L624 93V95V103V113V218V454ZM192 218V134L118 6Q99 18 99 41V483L192 430ZM99 959Q99 959 99 961L192 907V905V895V887V782V578V546L152 477L99 507ZM387 500 307 454H212H192L169 467L215 546H307ZM624 546 647 533 601 454H509L429 500L509 546Z" transform="translate(-1.506 0.818) scale(0.030364 0.030364)" /> + </symbol> + <symbol id="d14m-I" viewBox="0 0 21.18 32.00"> + <path class="lcd-active" d="M233 907 105 981Q117 1000 140 1000H676Q676 1000 678 1000L624 907H621H590H454H362ZM583 93 711 19Q699 0 676 0H140Q140 0 138 0L192 93H195H226H362H454ZM362 713V887H454V713L408 540ZM454 287V113H362V287L408 460Z" transform="translate(-1.650 1.000) scale(0.030000 0.030000)" /> + </symbol> + <symbol id="d14m-J" viewBox="0 0 21.65 32.00"> + <path class="lcd-active" d="M698 994Q717 982 717 959V517L624 570V607V782V866ZM664 523 717 493V41Q717 41 717 39L624 93V95V103V113V218V454ZM583 93 711 19Q699 0 676 0H140Q140 0 138 0L192 93H195H226H362H454ZM192 218V134L118 6Q99 18 99 41V483L192 430Z" transform="translate(-1.488 1.000) scale(0.030181 0.030181)" /> + </symbol> + <symbol id="d14m-K" viewBox="0 0 18.86 32.00"> + <path class="lcd-active" d="M192 218V134L118 6Q99 18 99 41V483L192 430ZM99 959Q99 959 99 961L192 907V905V895V887V782V578V546L152 477L99 507ZM387 500 307 454H212H192L169 467L215 546H307ZM474 707 578 887H604V746L499 564L424 521ZM604 254V113H578L474 293L424 479L499 436Z" transform="translate(-1.610 0.812) scale(0.031414 0.031414)" /> + </symbol> + <symbol id="d14m-L" viewBox="0 0 22.11 32.00"> + <path class="lcd-active" d="M583 93 711 19Q699 0 676 0H140Q140 0 138 0L192 93H195H226H362H454ZM192 218V134L118 6Q99 18 99 41V483L192 430ZM99 959Q99 959 99 961L192 907V905V895V887V782V578V546L152 477L99 507Z" transform="translate(-1.591 1.000) scale(0.031217 0.031217)" /> + </symbol> + <symbol id="d14m-M" viewBox="0 0 21.77 32.00"> + <path class="lcd-active" d="M698 994Q717 982 717 959V517L624 570V607V782V866ZM664 523 717 493V41Q717 41 717 39L624 93V95V103V113V218V454ZM192 218V134L118 6Q99 18 99 41V483L192 430ZM99 959Q99 959 99 961L192 907V905V895V887V782V578V546L152 477L99 507ZM212 746V887H238L342 707L392 521L317 564ZM474 707 578 887H604V746L499 564L424 521Z" transform="translate(-1.506 0.818) scale(0.030364 0.030364)" /> + </symbol> + <symbol id="d14m-N" viewBox="0 0 21.77 32.00"> + <path class="lcd-active" d="M698 994Q717 982 717 959V517L624 570V607V782V866ZM664 523 717 493V41Q717 41 717 39L624 93V95V103V113V218V454ZM192 218V134L118 6Q99 18 99 41V483L192 430ZM99 959Q99 959 99 961L192 907V905V895V887V782V578V546L152 477L99 507ZM212 746V887H238L342 707L392 521L317 564ZM604 254V113H578L474 293L424 479L499 436Z" transform="translate(-1.506 0.818) scale(0.030364 0.030364)" /> + </symbol> + <symbol id="d14m-O" viewBox="0 0 21.54 32.00"> + <path class="lcd-active" d="M233 907 105 981Q117 1000 140 1000H676Q676 1000 678 1000L624 907H621H590H454H362ZM698 994Q717 982 717 959V517L624 570V607V782V866ZM664 523 717 493V41Q717 41 717 39L624 93V95V103V113V218V454ZM583 93 711 19Q699 0 676 0H140Q140 0 138 0L192 93H195H226H362H454ZM192 218V134L118 6Q99 18 99 41V483L192 430ZM99 959Q99 959 99 961L192 907V905V895V887V782V578V546L152 477L99 507Z" transform="translate(-1.470 1.000) scale(0.030000 0.030000)" /> + </symbol> + <symbol id="d14m-P" viewBox="0 0 21.65 32.00"> + <path class="lcd-active" d="M233 907 105 981Q117 1000 140 1000H676Q676 1000 678 1000L624 907H621H590H454H362ZM698 994Q717 982 717 959V517L624 570V607V782V866ZM192 218V134L118 6Q99 18 99 41V483L192 430ZM99 959Q99 959 99 961L192 907V905V895V887V782V578V546L152 477L99 507ZM387 500 307 454H212H192L169 467L215 546H307ZM624 546 647 533 601 454H509L429 500L509 546Z" transform="translate(-1.488 0.819) scale(0.030181 0.030181)" /> + </symbol> + <symbol id="d14m-Q" viewBox="0 0 21.54 32.00"> + <path class="lcd-active" d="M233 907 105 981Q117 1000 140 1000H676Q676 1000 678 1000L624 907H621H590H454H362ZM698 994Q717 982 717 959V517L624 570V607V782V866ZM664 523 717 493V41Q717 41 717 39L624 93V95V103V113V218V454ZM583 93 711 19Q699 0 676 0H140Q140 0 138 0L192 93H195H226H362H454ZM192 218V134L118 6Q99 18 99 41V483L192 430ZM99 959Q99 959 99 961L192 907V905V895V887V782V578V546L152 477L99 507ZM604 254V113H578L474 293L424 479L499 436Z" transform="translate(-1.470 1.000) scale(0.030000 0.030000)" /> + </symbol> + <symbol id="d14m-R" viewBox="0 0 21.65 32.00"> + <path class="lcd-active" d="M233 907 105 981Q117 1000 140 1000H676Q676 1000 678 1000L624 907H621H590H454H362ZM698 994Q717 982 717 959V517L624 570V607V782V866ZM192 218V134L118 6Q99 18 99 41V483L192 430ZM99 959Q99 959 99 961L192 907V905V895V887V782V578V546L152 477L99 507ZM387 500 307 454H212H192L169 467L215 546H307ZM624 546 647 533 601 454H509L429 500L509 546ZM604 254V113H578L474 293L424 479L499 436Z" transform="translate(-1.488 0.819) scale(0.030181 0.030181)" /> + </symbol> + <symbol id="d14m-S" viewBox="0 0 21.36 32.00"> + <path class="lcd-active" d="M233 907 105 981Q117 1000 140 1000H676Q676 1000 678 1000L624 907H621H590H454H362ZM664 523 717 493V41Q717 41 717 39L624 93V95V103V113V218V454ZM583 93 711 19Q699 0 676 0H140Q140 0 138 0L192 93H195H226H362H454ZM624 546 647 533 601 454H509L429 500L509 546ZM212 746V887H238L342 707L392 521L317 564Z" transform="translate(-1.650 1.000) scale(0.030000 0.030000)" /> + </symbol> + <symbol id="d14m-T" viewBox="0 0 22.38 32.00"> + <path class="lcd-active" d="M233 907 105 981Q117 1000 140 1000H676Q676 1000 678 1000L624 907H621H590H454H362ZM362 713V887H454V713L408 540ZM454 287V113H362V287L408 460Z" transform="translate(-2.051 -2.822) scale(0.033822 0.033822)" /> + </symbol> + <symbol id="d14m-U" viewBox="0 0 21.65 32.00"> + <path class="lcd-active" d="M698 994Q717 982 717 959V517L624 570V607V782V866ZM664 523 717 493V41Q717 41 717 39L624 93V95V103V113V218V454ZM583 93 711 19Q699 0 676 0H140Q140 0 138 0L192 93H195H226H362H454ZM192 218V134L118 6Q99 18 99 41V483L192 430ZM99 959Q99 959 99 961L192 907V905V895V887V782V578V546L152 477L99 507Z" transform="translate(-1.488 1.000) scale(0.030181 0.030181)" /> + </symbol> + <symbol id="d14m-V" viewBox="0 0 18.86 32.00"> + <path class="lcd-active" d="M192 218V134L118 6Q99 18 99 41V483L192 430ZM99 959Q99 959 99 961L192 907V905V895V887V782V578V546L152 477L99 507ZM474 707 578 887H604V746L499 564L424 521ZM342 293 238 113H212V254L317 436L392 479Z" transform="translate(-1.610 0.812) scale(0.031414 0.031414)" /> + </symbol> + <symbol id="d14m-W" viewBox="0 0 21.77 32.00"> + <path class="lcd-active" d="M698 994Q717 982 717 959V517L624 570V607V782V866ZM664 523 717 493V41Q717 41 717 39L624 93V95V103V113V218V454ZM192 218V134L118 6Q99 18 99 41V483L192 430ZM99 959Q99 959 99 961L192 907V905V895V887V782V578V546L152 477L99 507ZM342 293 238 113H212V254L317 436L392 479ZM604 254V113H578L474 293L424 479L499 436Z" transform="translate(-1.506 0.818) scale(0.030364 0.030364)" /> + </symbol> + <symbol id="d14m-X" viewBox="0 0 18.19 32.00"> + <path class="lcd-active" d="M212 746V887H238L342 707L392 521L317 564ZM474 707 578 887H604V746L499 564L424 521ZM342 293 238 113H212V254L317 436L392 479ZM604 254V113H578L474 293L424 479L499 436Z" transform="translate(-6.717 -3.380) scale(0.038760 0.038760)" /> + </symbol> + <symbol id="d14m-Y" viewBox="0 0 18.19 32.00"> + <path class="lcd-active" d="M212 746V887H238L342 707L392 521L317 564ZM474 707 578 887H604V746L499 564L424 521ZM454 287V113H362V287L408 460Z" transform="translate(-6.717 -3.380) scale(0.038760 0.038760)" /> + </symbol> + <symbol id="d14m-Z" viewBox="0 0 21.18 32.00"> + <path class="lcd-active" d="M233 907 105 981Q117 1000 140 1000H676Q676 1000 678 1000L624 907H621H590H454H362ZM583 93 711 19Q699 0 676 0H140Q140 0 138 0L192 93H195H226H362H454ZM474 707 578 887H604V746L499 564L424 521ZM342 293 238 113H212V254L317 436L392 479Z" transform="translate(-1.650 1.000) scale(0.030000 0.030000)" /> + </symbol> + <symbol id="d14m-colon" viewBox="0 0 9.95 32.00"> + <path class="lcd-active" d="M43 717Q48 728 56 736Q66 746 76 750Q85 754 100.0 754.0Q115 754 124 750Q135 745 144 736Q152 728 157 717Q162 705 162.0 693.0Q162 681 157.0 669.0Q152 657 144.0 649.0Q136 641 124.0 636.0Q112 631 100.0 631.0Q88 631 76.0 636.0Q64 641 56.0 649.0Q48 657 43.0 669.0Q38 681 38.0 693.0Q38 705 43 717ZM43 305Q48 316 56 324Q66 334 76 338Q85 342 100.0 342.0Q115 342 124 338Q134 334 144 324Q152 316 157 305Q162 293 162.0 281.0Q162 269 157.0 257.0Q152 245 144.0 237.0Q136 229 124.0 224.0Q112 219 100.0 219.0Q88 219 76.0 224.0Q64 229 56.0 237.0Q48 245 43.0 257.0Q38 269 38.0 281.0Q38 293 43 305Z" transform="translate(-0.631 -11.280) scale(0.056075 0.056075)" /> + </symbol> + <symbol id="d14m-plus" viewBox="0 0 21.53 32.00"> + <path class="lcd-active" d="M387 500 307 454H212H192L169 467L215 546H307ZM624 546 647 533 601 454H509L429 500L509 546ZM362 713V887H454V713L408 540ZM454 287V113H362V287L408 460Z" transform="translate(-5.050 -3.380) scale(0.038760 0.038760)" /> + </symbol> + <symbol id="d14m-minus" viewBox="0 0 158.87 32.00"> + <path class="lcd-active" d="M387 500 307 454H212H192L169 467L215 546H307ZM624 546 647 533 601 454H509L429 500L509 546Z" transform="translate(-53.609 -147.043) scale(0.326087 0.326087)" /> + </symbol> + <symbol id="d14m-slash" viewBox="0 0 18.19 32.00"> + <path class="lcd-active" d="M474 707 578 887H604V746L499 564L424 521ZM342 293 238 113H212V254L317 436L392 479Z" transform="translate(-6.717 -3.380) scale(0.038760 0.038760)" /> + </symbol> + <symbol id="d14m-dot" viewBox="0 0 33.00 32.00"> + <path class="lcd-active" d="M57.0 86.0Q62 74 62.0 62.0Q62 50 57.0 38.0Q52 26 44.0 18.0Q36 10 24.0 5.0Q12 0 0.0 0.0Q-12 0 -24.0 5.0Q-36 10 -44.0 18.0Q-52 26 -57.0 38.0Q-62 50 -62.0 62.0Q-62 74 -57.0 86.0Q-52 98 -44.0 106.0Q-36 114 -24.0 119.0Q-12 124 0.0 124.0Q12 124 24.0 119.0Q36 114 44.0 106.0Q52 98 57.0 86.0Z" transform="translate(16.500 1.000) scale(0.241935 0.241935)" /> + </symbol> + </defs> +</svg> diff --git a/assets/extract_red_polygons.py b/assets/extract_red_polygons.py new file mode 100644 index 0000000..a75a79e --- /dev/null +++ b/assets/extract_red_polygons.py @@ -0,0 +1,306 @@ +#!/usr/bin/env python3 +"""Extract red land polygons from Mercator reference image -> layered SVG paths.""" + +from __future__ import annotations + +import json +import math +from collections import deque +from pathlib import Path + +import numpy as np +from PIL import Image + +ROOT = Path(__file__).resolve().parent +SRC = ROOT / "mercator-source.jpg" +OUT_FLAT = ROOT / "hub-logo-continents-mercator-flat.svg" +OUT_GLOBE = ROOT / "hub-logo-continents-mercator-globe.svg" +OUT_GLOBE_SNAP_VERTICAL = ROOT / "hub-logo-continents-mercator-globe.snapshot-vertical.svg" +OUT_META = ROOT / "continents-meta.json" + +# Globe framing in 1920x1080 logo scene. +GLOBE_CX = 720.0 +GLOBE_CY = 560.0 +GLOBE_R = 322.0 +# Orthographic center (visible hemisphere). +CENTER_LAT = 18.0 +CENTER_LON = 12.0 + + +def red_mask(rgb: np.ndarray) -> np.ndarray: + r, g, b = rgb[..., 0], rgb[..., 1], rgb[..., 2] + return (r.astype(np.int16) > 150) & (g.astype(np.int16) < 120) & (b.astype(np.int16) < 120) + + +def dilate(mask: np.ndarray, radius: int = 3) -> np.ndarray: + h, w = mask.shape + out = mask.copy() + ys, xs = np.where(mask) + for y, x in zip(ys, xs): + y0 = max(0, y - radius) + y1 = min(h, y + radius + 1) + x0 = max(0, x - radius) + x1 = min(w, x + radius + 1) + if mask[y0:y1, x0:x1].any(): + out[y0:y1, x0:x1] = True + return out + + +def label_components(mask: np.ndarray) -> tuple[np.ndarray, int]: + h, w = mask.shape + labels = np.zeros((h, w), dtype=np.int32) + current = 0 + for y in range(h): + for x in range(w): + if not mask[y, x] or labels[y, x]: + continue + current += 1 + q = deque([(x, y)]) + labels[y, x] = current + while q: + cx, cy = q.popleft() + for nx, ny in ((cx + 1, cy), (cx - 1, cy), (cx, cy + 1), (cx, cy - 1)): + if 0 <= nx < w and 0 <= ny < h and mask[ny, nx] and labels[ny, nx] == 0: + labels[ny, nx] = current + q.append((nx, ny)) + return labels, current + + +def trace_boundary(labels: np.ndarray, label_id: int) -> list[tuple[int, int]]: + h, w = labels.shape + comp = labels == label_id + if not comp.any(): + return [] + + ys, xs = np.where(comp) + start = (int(xs[0]), int(ys[0])) + x, y = start + path = [start] + dirs = [(1, 0), (1, 1), (0, 1), (-1, 1), (-1, 0), (-1, -1), (0, -1), (1, -1)] + dir_idx = 0 + + def is_land(px: int, py: int) -> bool: + return 0 <= px < w and 0 <= py < h and labels[py, px] == label_id + + for _ in range(w * h * 4): + found = False + for i in range(8): + nd = (dir_idx + i) % 8 + dx, dy = dirs[nd] + nx, ny = x + dx, y + dy + if is_land(nx, ny): + x, y = nx, ny + dir_idx = (nd + 6) % 8 + path.append((x, y)) + found = True + break + if not found: + break + if (x, y) == start and len(path) > 8: + break + return path + + +def simplify(points: list[tuple[int, int]], min_dist: float = 2.0) -> list[tuple[int, int]]: + if len(points) < 3: + return points + out = [points[0]] + for p in points[1:]: + ox, oy = out[-1] + if math.hypot(p[0] - ox, p[1] - oy) >= min_dist: + out.append(p) + if out[0] != out[-1]: + out.append(out[0]) + return out + + +def path_d(points: list[tuple[float, float]]) -> str: + if len(points) < 3: + return "" + x0, y0 = points[0] + parts = [f"M {x0:.1f} {y0:.1f}"] + for x, y in points[1:]: + parts.append(f"L {x:.1f} {y:.1f}") + parts.append("Z") + return " ".join(parts) + + +def mercator_y_to_lat(y: float, h: float) -> float: + t = 1.0 - (y / h) + t = min(max(t, 0.02), 0.98) + return math.degrees(math.atan(math.sinh(math.pi * (2 * t - 1)))) + + +def lat_lon_to_globe(lat: float, lon: float) -> tuple[float, float]: + lat_r = math.radians(lat) + lon_r = math.radians(lon) + lon0 = math.radians(CENTER_LON) + dlon = lon_r - lon0 + x = GLOBE_CX + GLOBE_R * math.cos(lat_r) * math.sin(dlon) + y = GLOBE_CY - GLOBE_R * math.sin(lat_r) + return x, y + + +def map_to_globe(points: list[tuple[int, int]], w: int, h: int) -> str: + mapped: list[tuple[float, float]] = [] + for x, y in points: + lon = (x / w) * 360.0 - 180.0 + lat = mercator_y_to_lat(float(y), float(h)) + mapped.append(lat_lon_to_globe(lat, lon)) + if len(mapped) < 3: + return "" + return path_d(mapped) + + +def main() -> None: + img = Image.open(SRC).convert("RGB") + rgb = np.array(img) + w, h = rgb.shape[1], rgb.shape[0] + mask = dilate(red_mask(rgb), radius=3) + labels, n = label_components(mask) + + components: list[dict] = [] + for label_id in range(1, n + 1): + area = int((labels == label_id).sum()) + if area < 500: + continue + boundary = trace_boundary(labels, label_id) + if len(boundary) < 20: + continue + boundary = simplify(boundary, min_dist=3.5) + flat = path_d([(float(x), float(y)) for x, y in boundary]) + globe = map_to_globe(boundary, w, h) + if not flat: + continue + ys, xs = np.where(labels == label_id) + components.append( + { + "id": label_id, + "area": area, + "bbox": [int(xs.min()), int(ys.min()), int(xs.max()), int(ys.max())], + "flat": flat, + "globe": globe, + } + ) + + components.sort(key=lambda c: c["area"], reverse=True) + + flat_paths = "\n ".join( + f'<path id="continent-{c["id"]}" data-area="{c["area"]}" d="{c["flat"]}"/>' + for c in components + ) + globe_paths = "\n ".join( + f'<path id="continent-{c["id"]}" data-area="{c["area"]}" d="{c["globe"]}"/>' + for c in components + ) + + OUT_FLAT.write_text( + f"""<svg xmlns="http://www.w3.org/2000/svg" width="{w}" height="{h}" viewBox="0 0 {w} {h}" role="img" aria-label="Extracted continents (flat Mercator plate)"> + <rect width="100%" height="100%" fill="#b8d4e8"/> + <g id="continents-inner-layer" fill="#9ab3cc" fill-opacity="0.82" stroke="#dce8f6" stroke-opacity="0.78" stroke-width="1.1"> + {flat_paths} + </g> +</svg> +""", + encoding="utf-8", + ) + + # Two-step alignment: + # 1) Vertical fit: Mercator north/south poles match globe top/bottom. + # 2) Horizontal fit: layer centers/pivots match at globe center. + globe_diameter = GLOBE_R * 2 + inner_sy = globe_diameter / h + inner_sx = inner_sy + inner_ty = GLOBE_CY - GLOBE_R + inner_tx_vertical = 0.0 + inner_tx = GLOBE_CX - (w * inner_sx) / 2 + outer_sx = 1.0 + outer_sy = 1.0 + + def globe_svg( + inner_tx_val: float, + inner_ty_val: float, + inner_sx_val: float, + inner_sy_val: float, + outer_sx_val: float, + outer_sy_val: float, + label: str, + ) -> str: + return f"""<svg xmlns="http://www.w3.org/2000/svg" width="1920" height="1080" viewBox="0 0 1920 1080" preserveAspectRatio="xMidYMid slice" role="img" aria-label="{label}"> + <defs> + <clipPath id="globeClip"><circle cx="{GLOBE_CX:.0f}" cy="{GLOBE_CY:.0f}" r="{GLOBE_R:.0f}"/></clipPath> + <radialGradient id="continentRelief" cx="34%" cy="22%" r="78%"> + <stop offset="0%" stop-color="#dbe7f6" stop-opacity="0.45"/> + <stop offset="58%" stop-color="#9ab3cc" stop-opacity="0.22"/> + <stop offset="100%" stop-color="#6a7f97" stop-opacity="0.18"/> + </radialGradient> + <filter id="continentDepth" x="-30%" y="-30%" width="160%" height="160%"> + <feDropShadow dx="-4" dy="-6" stdDeviation="3" flood-color="#f4fbff" flood-opacity="0.2"/> + <feDropShadow dx="4" dy="6" stdDeviation="4" flood-color="#0a1220" flood-opacity="0.28"/> + </filter> + </defs> + <g id="continents-outer-layer" clip-path="url(#globeClip)" transform="translate({GLOBE_CX:.0f} {GLOBE_CY:.0f}) scale({outer_sx_val:.3f} {outer_sy_val:.3f}) translate(-{GLOBE_CX:.0f} -{GLOBE_CY:.0f})"> + <g id="continents-inner-layer" transform="translate({inner_tx_val:.2f} {inner_ty_val:.2f}) scale({inner_sx_val:.4f} {inner_sy_val:.4f})"> + <g id="continents-flat" fill="url(#continentRelief)" fill-opacity="0.9" stroke="#dce8f6" stroke-opacity="0.78" stroke-width="1.2" filter="url(#continentDepth)"> + {flat_paths} + </g> + </g> + </g> +</svg> +""" + + OUT_GLOBE_SNAP_VERTICAL.write_text( + globe_svg( + inner_tx_vertical, + inner_ty, + inner_sx, + inner_sy, + outer_sx, + outer_sy, + "Continents vertical-fit snapshot", + ), + encoding="utf-8", + ) + + OUT_GLOBE.write_text( + globe_svg( + inner_tx, + inner_ty, + inner_sx, + inner_sy, + outer_sx, + outer_sy, + "Continents layered Mercator overlay", + ), + encoding="utf-8", + ) + + OUT_META.write_text( + json.dumps( + { + "source": str(SRC.name), + "size": [w, h], + "components": len(components), + "layers": { + "vertical_snapshot": { + "translate": [inner_tx_vertical, inner_ty], + "scale": [inner_sx, inner_sy], + }, + "inner": {"translate": [inner_tx, inner_ty], "scale": [inner_sx, inner_sy]}, + "outer": {"scale": [outer_sx, outer_sy]}, + "pivot": [GLOBE_CX, GLOBE_CY], + }, + "areas_top10": [c["area"] for c in components[:10]], + }, + indent=2, + ), + encoding="utf-8", + ) + + print(f"components={len(components)}") + print(f"wrote {OUT_FLAT}") + print(f"wrote {OUT_GLOBE}") + + +if __name__ == "__main__": + main() diff --git a/assets/fonts/Clockopia.ttf b/assets/fonts/Clockopia.ttf new file mode 100644 index 0000000000000000000000000000000000000000..123ea4ff882db439327e854387ed7fea4e5d9eaf GIT binary patch literal 6880 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 F{2!yxfYAT| literal 0 HcmV?d00001 diff --git a/assets/fonts/DS-Digital.ttf b/assets/fonts/DS-Digital.ttf new file mode 100644 index 0000000000000000000000000000000000000000..09258773c7219ad9e60b92b918e3c50b58f43c9e GIT binary patch literal 24448 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 literal 0 HcmV?d00001 diff --git a/assets/fonts/DSEG14Classic-Regular.ttf b/assets/fonts/DSEG14Classic-Regular.ttf new file mode 100644 index 0000000000000000000000000000000000000000..e0ddebd91ad8352f94332dee5cbf94c8fd64c183 GIT binary patch literal 65224 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 literal 0 HcmV?d00001 diff --git a/assets/fonts/DSEG14Modern-Regular.ttf b/assets/fonts/DSEG14Modern-Regular.ttf new file mode 100644 index 0000000000000000000000000000000000000000..691b77e8ec87652c24fd2fa9824b3c0da0abae52 GIT binary patch literal 65176 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�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 literal 0 HcmV?d00001 diff --git a/assets/fonts/digital-7-mono-italic.ttf b/assets/fonts/digital-7-mono-italic.ttf new file mode 100644 index 0000000000000000000000000000000000000000..ddbd3f7523170de919fc03258999b9de230e5581 GIT binary patch literal 17888 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 BoT&f+ literal 0 HcmV?d00001 diff --git a/assets/hub-globe.js b/assets/hub-globe.js new file mode 100644 index 0000000..9022152 --- /dev/null +++ b/assets/hub-globe.js @@ -0,0 +1,627 @@ +/** + * Hub landing globe — orthographic Canvas2D (globe3d=1). + * Grid: hub SVG ellipses (E–W) + meridian paths (N–S) traced on sphere, then Y-rotated. + * Land: ortho hub disk on front face; mercator-flat only on back wrap (avoids front squeeze). + */ +export const GLOBE_VIEW = { imgW: 1920, imgH: 1080, cx: 720, cy: 560, r: 322, rim: 330 }; + +const AUTO_SPIN_RAD_S = 0.035; +const DRAG_ROTATION_PER_PX = 0.004; +const OCEAN_FALLBACK = { r: 22, g: 38, b: 60 }; +const FRONT_Z = 0.04; +const RASTER_SCALE = 2; +const AXIS_STEPS = 160; + +/** hub-logo-fragment-globe-grid-overlay.svg — E–W parallels. */ +const HUB_EW_PARALLELS = [ + { cx: 720, cy: 560, rx: 318, ry: 11, bright: true }, + { cx: 720, cy: 392, rx: 260, ry: 39, bright: false }, + { cx: 720, cy: 728, rx: 260, ry: 39, bright: false }, +]; + +/** Same SVG — N–S meridians (line + quadratic beziers). */ +const HUB_NS_MERIDIANS = [ + { prime: true, points: sampleLinePoints(720, 248, 720, 872, AXIS_STEPS) }, + { prime: false, points: sampleQuadPoints(620, 248, 358, 560, 620, 872, AXIS_STEPS) }, + { prime: false, points: sampleQuadPoints(820, 248, 1082, 560, 820, 872, AXIS_STEPS) }, +]; + +function sampleLinePoints(x0, y0, x1, y1, steps) { + const pts = []; + for (let i = 0; i <= steps; i++) { + const t = i / steps; + pts.push({ x: x0 + (x1 - x0) * t, y: y0 + (y1 - y0) * t }); + } + return pts; +} + +function sampleQuadPoints(x0, y0, cx, cy, x1, y1, steps) { + const pts = []; + for (let i = 0; i <= steps; i++) { + const t = i / steps; + const u = 1 - t; + pts.push({ + x: u * u * x0 + 2 * u * t * cx + t * t * x1, + y: u * u * y0 + 2 * u * t * cy + t * t * y1, + }); + } + return pts; +} + +function hubAsset(rel, build) { + const link = document.querySelector('link[href*="hub.css"]'); + const base = link ? (link.getAttribute('href') || '').replace(/[^/]*$/, '') : ''; + const sep = rel.indexOf('?') >= 0 ? '&' : '?'; + return base + rel + sep + 'v=' + build; +} + +export function globeCoverRect() { + const vw = window.innerWidth; + const vh = window.innerHeight; + const scale = Math.max(vw / GLOBE_VIEW.imgW, vh / GLOBE_VIEW.imgH); + const drawW = GLOBE_VIEW.imgW * scale; + const drawH = GLOBE_VIEW.imgH * scale; + const offX = (vw - drawW) / 2; + const offY = (vh - drawH) / 2; + const left = offX + (GLOBE_VIEW.cx - GLOBE_VIEW.r) * scale; + const top = offY + (GLOBE_VIEW.cy - GLOBE_VIEW.r) * scale; + const size = GLOBE_VIEW.r * 2 * scale; + return { + left, + top, + width: size, + height: size, + scale, + cx: GLOBE_VIEW.cx * scale + offX, + cy: GLOBE_VIEW.cy * scale + offY, + r: GLOBE_VIEW.r * scale, + rim: GLOBE_VIEW.rim * scale, + }; +} + +function loadImage(url) { + return new Promise((resolve, reject) => { + const img = new Image(); + img.onload = () => resolve(img); + img.onerror = () => reject(new Error('image load failed: ' + url)); + img.src = url; + }); +} + +function rasterizeImage(img, w, h, scale) { + const s = scale || 1; + const rw = Math.max(1, Math.round(w * s)); + const rh = Math.max(1, Math.round(h * s)); + const c = document.createElement('canvas'); + c.width = rw; + c.height = rh; + const ctx = c.getContext('2d', { willReadFrequently: true }); + ctx.imageSmoothingEnabled = true; + ctx.imageSmoothingQuality = 'high'; + ctx.drawImage(img, 0, 0, rw, rh); + return { data: ctx.getImageData(0, 0, rw, rh).data, w: rw, h: rh }; +} + +function sampleImageDataBilinear(imgData, w, h, fx, fy) { + const x = Math.max(0, Math.min(w - 1.001, fx)); + const y = Math.max(0, Math.min(h - 1.001, fy)); + const x0 = x | 0; + const y0 = y | 0; + const x1 = Math.min(w - 1, x0 + 1); + const y1 = Math.min(h - 1, y0 + 1); + const tx = x - x0; + const ty = y - y0; + const i00 = (y0 * w + x0) * 4; + const i10 = (y0 * w + x1) * 4; + const i01 = (y1 * w + x0) * 4; + const i11 = (y1 * w + x1) * 4; + const out = [0, 0, 0, 0]; + for (let c = 0; c < 4; c++) { + out[c] = Math.round( + imgData[i00 + c] * (1 - tx) * (1 - ty) + + imgData[i10 + c] * tx * (1 - ty) + + imgData[i01 + c] * (1 - tx) * ty + + imgData[i11 + c] * tx * ty + ); + } + return out; +} + +function inverseRotateY(nx, ny, nz, rotY) { + const cosR = Math.cos(rotY); + const sinR = Math.sin(rotY); + return { + x: nx * cosR - nz * sinR, + y: ny, + z: nx * sinR + nz * cosR, + }; +} + +function bodyToTex(body) { + return { x: body.x, y: -body.y, z: body.z }; +} + +function bodyToView(body, rotY) { + const cosR = Math.cos(rotY); + const sinR = Math.sin(rotY); + return { + x: body.x * cosR + body.z * sinR, + y: body.y, + z: -body.x * sinR + body.z * cosR, + }; +} + +/** Hub disk pixel → unit-sphere body (front hemisphere, matches globe3d=0). */ +function hubPixelToBody(hpX, hpY) { + const texX = (hpX - GLOBE_VIEW.cx) / GLOBE_VIEW.r; + const texY = (GLOBE_VIEW.cy - hpY) / GLOBE_VIEW.r; + const rr = texX * texX + texY * texY; + if (rr > 1.001) { + return null; + } + return { + x: texX, + y: -texY, + z: Math.sqrt(Math.max(0, 1 - rr)), + }; +} + +function hubPointsToBodyRing(points) { + const out = []; + for (let i = 0; i < points.length; i++) { + const body = hubPixelToBody(points[i].x, points[i].y); + if (body) { + out.push(body); + } + } + return out; +} + +function ellipseBodyRing(ellipse, steps) { + const out = []; + for (let i = 0; i <= steps; i++) { + const a = (i / steps) * Math.PI * 2; + const body = hubPixelToBody( + ellipse.cx + ellipse.rx * Math.cos(a), + ellipse.cy + ellipse.ry * Math.sin(a) + ); + if (body) { + out.push(body); + } + } + return out; +} + +function parallelStyle(bright, scale, z) { + const t = Math.max(0, Math.min(1, (z - FRONT_Z) / (0.95 - FRONT_Z))); + if (t <= 0) { + return null; + } + const alpha = bright ? 0.55 + 0.45 * t : 0.35 + 0.5 * t; + const rgb = bright ? '219,231,246' : '231,236,243'; + return { + color: 'rgba(' + rgb + ',' + alpha.toFixed(3) + ')', + width: Math.max(bright ? 3 : 2, scale * (bright ? 0.009 : 0.006)) * (0.5 + 0.5 * t), + }; +} + +function meridianStyle(prime, scale, z) { + const t = Math.max(0, Math.min(1, (z - FRONT_Z) / (0.95 - FRONT_Z))); + if (t <= 0) { + return null; + } + const alpha = prime ? 0.5 + 0.48 * t : 0.3 + 0.45 * t; + return { + color: 'rgba(238,245,255,' + alpha.toFixed(3) + ')', + width: Math.max(prime ? 3 : 2.5, scale * (prime ? 0.0095 : 0.008)) * (0.45 + 0.55 * t), + }; +} + +function strokeBodyRing(ctx, cx, cy, r, rotY, bodies, styleAt) { + let run = []; + + function flush() { + if (run.length < 2) { + run = []; + return; + } + let zSum = 0; + for (let i = 0; i < run.length; i++) { + zSum += run[i].z; + } + const style = styleAt(zSum / run.length); + if (!style) { + run = []; + return; + } + ctx.beginPath(); + ctx.moveTo(run[0].sx, run[0].sy); + for (let i = 1; i < run.length; i++) { + ctx.lineTo(run[i].sx, run[i].sy); + } + ctx.strokeStyle = style.color; + ctx.lineWidth = style.width; + ctx.lineCap = 'round'; + ctx.lineJoin = 'round'; + ctx.stroke(); + run = []; + } + + for (let i = 0; i < bodies.length; i++) { + const view = bodyToView(bodies[i], rotY); + if (view.z <= FRONT_Z) { + flush(); + continue; + } + run.push({ + sx: cx + view.x * r, + sy: cy - view.y * r, + z: view.z, + }); + } + flush(); +} + +/** Hub SVG grid: E–W ellipses + N–S meridian paths (matches globe3d=0 artwork geometry). */ +function drawHubGrid(ctx, cx, cy, r, rotY, layoutScale) { + ctx.save(); + ctx.beginPath(); + ctx.arc(cx, cy, r, 0, Math.PI * 2); + ctx.clip(); + + HUB_EW_PARALLELS.forEach(function (ellipse) { + strokeBodyRing(ctx, cx, cy, r, rotY, ellipseBodyRing(ellipse, AXIS_STEPS), function (z) { + return parallelStyle(ellipse.bright, layoutScale, z); + }); + }); + + HUB_NS_MERIDIANS.forEach(function (mer) { + strokeBodyRing(ctx, cx, cy, r, rotY, hubPointsToBodyRing(mer.points), function (z) { + return meridianStyle(mer.prime, layoutScale, z); + }); + }); + + ctx.restore(); +} + +function sampleHub(layer, tex) { + const hp = { + x: GLOBE_VIEW.cx + tex.x * GLOBE_VIEW.r, + y: GLOBE_VIEW.cy - tex.y * GLOBE_VIEW.r, + }; + const sx = (hp.x / GLOBE_VIEW.imgW) * (layer.w - 1); + const sy = (hp.y / GLOBE_VIEW.imgH) * (layer.h - 1); + return sampleImageDataBilinear(layer.data, layer.w, layer.h, sx, sy); +} + +function texLonLat(tex) { + return { + lon: Math.atan2(tex.x, tex.z), + lat: Math.asin(Math.max(-1, Math.min(1, tex.y))), + }; +} + +function sampleMercFlat(mercFlat, lon, lat) { + const u = ((lon + Math.PI) / (2 * Math.PI)) * (mercFlat.w - 1); + const v = (0.5 - lat / Math.PI) * (mercFlat.h - 1); + return sampleImageDataBilinear(mercFlat.data, mercFlat.w, mercFlat.h, u, v); +} + +function isLandPixel(r, g, b, a) { + return a > 10 && r > 100 && g < 140 && b < 140; +} + +/** Light hub grid strokes baked into hub-logo-fragment-globe.svg (vector grid drawn separately). */ +function isGridPixel(r, g, b, a) { + if (a < 12) { + return false; + } + const lum = r * 0.299 + g * 0.587 + b * 0.114; + if (lum < 125) { + return false; + } + if (g < 155 || b < 155) { + return false; + } + return Math.max(r, g, b) - Math.min(r, g, b) < 85; +} + +function sampleOceanRgba(globe, tex) { + if (tex.z <= FRONT_Z) { + return [OCEAN_FALLBACK.r, OCEAN_FALLBACK.g, OCEAN_FALLBACK.b, 255]; + } + const s = sampleHub(globe, tex); + if (s[3] > 8 && !isGridPixel(s[0], s[1], s[2], s[3])) { + return [s[0], s[1], s[2], 255]; + } + return [OCEAN_FALLBACK.r, OCEAN_FALLBACK.g, OCEAN_FALLBACK.b, 255]; +} + +function sampleLandRgba(continents, mercFlat, tex) { + if (tex.z > FRONT_Z) { + const ortho = sampleHub(continents, tex); + if (ortho[3] > 6) { + return ortho; + } + return null; + } + if (tex.z > -FRONT_Z) { + return null; + } + const ll = texLonLat(tex); + const flat = sampleMercFlat(mercFlat, ll.lon, ll.lat); + if (isLandPixel(flat[0], flat[1], flat[2], flat[3])) { + return [flat[0], flat[1], flat[2], Math.min(255, flat[3])]; + } + return null; +} + +function fillDiskRegion(ctx, cx, cy, r, rotY, fn) { + const r2 = r * r; + const x0 = Math.max(0, Math.floor(cx - r)); + const y0 = Math.max(0, Math.floor(cy - r)); + const x1 = Math.min(ctx.canvas.width - 1, Math.ceil(cx + r)); + const y1 = Math.min(ctx.canvas.height - 1, Math.ceil(cy + r)); + const w = x1 - x0 + 1; + const h = y1 - y0 + 1; + if (w <= 0 || h <= 0) { + return null; + } + + const out = ctx.createImageData(w, h); + const px = out.data; + let p = 0; + + for (let dy = y0; dy <= y1; dy++) { + for (let dx = x0; dx <= x1; dx++) { + const ox = dx - cx; + const oy = dy - cy; + if (ox * ox + oy * oy > r2) { + px[p++] = 0; + px[p++] = 0; + px[p++] = 0; + px[p++] = 0; + continue; + } + const nx = ox / r; + const ny = oy / r; + const nz = Math.sqrt(Math.max(0, 1 - nx * nx - ny * ny)); + const tex = bodyToTex(inverseRotateY(nx, ny, nz, rotY)); + const rgba = fn(tex); + px[p++] = rgba[0]; + px[p++] = rgba[1]; + px[p++] = rgba[2]; + px[p++] = rgba[3] !== undefined ? rgba[3] : 255; + } + } + + return { out, x0, y0 }; +} + +function blitLayer(ctx, cx, cy, r, layer) { + if (!layer) { + return; + } + const { out, x0, y0 } = layer; + const w = out.width; + const h = out.height; + const src = out.data; + + ctx.save(); + ctx.beginPath(); + ctx.arc(cx, cy, r, 0, Math.PI * 2); + ctx.clip(); + + const existing = ctx.getImageData(x0, y0, w, h); + const dst = existing.data; + for (let i = 0; i < src.length; i += 4) { + const sa = src[i + 3]; + if (sa === 0) { + continue; + } + if (sa === 255) { + dst[i] = src[i]; + dst[i + 1] = src[i + 1]; + dst[i + 2] = src[i + 2]; + dst[i + 3] = 255; + continue; + } + const a = sa / 255; + dst[i] = Math.round(src[i] * a + dst[i] * (1 - a)); + dst[i + 1] = Math.round(src[i + 1] * a + dst[i + 1] * (1 - a)); + dst[i + 2] = Math.round(src[i + 2] * a + dst[i + 2] * (1 - a)); + dst[i + 3] = 255; + } + ctx.putImageData(existing, x0, y0); + ctx.restore(); +} + +function drawRim(ctx, globeImg, cx, cy, r, rim, layoutScale) { + const drawW = GLOBE_VIEW.imgW * layoutScale; + const drawH = GLOBE_VIEW.imgH * layoutScale; + const dx = cx - GLOBE_VIEW.cx * layoutScale; + const dy = cy - GLOBE_VIEW.cy * layoutScale; + + ctx.save(); + ctx.beginPath(); + ctx.arc(cx, cy, rim, 0, Math.PI * 2); + ctx.arc(cx, cy, r, 0, Math.PI * 2, true); + ctx.clip(); + ctx.drawImage(globeImg, 0, 0, GLOBE_VIEW.imgW, GLOBE_VIEW.imgH, dx, dy, drawW, drawH); + ctx.restore(); +} + +export async function mountHubGlobe(stage, opts) { + const build = opts.build || 'earth3d'; + const reducedMotion = !!opts.reducedMotion; + + const canvas = document.createElement('canvas'); + canvas.className = 'hub-globe-canvas'; + canvas.setAttribute('aria-hidden', 'true'); + stage.appendChild(canvas); + + const urls = { + globe: hubAsset('assets/hub-logo-fragment-globe.svg', build), + continents: hubAsset('assets/hub-logo-continents-mercator-globe.svg', build), + mercatorFlat: hubAsset('assets/hub-logo-continents-mercator-flat.svg', build), + }; + + let globeImg; + let continentsImg; + let mercatorFlatImg; + try { + [globeImg, continentsImg, mercatorFlatImg] = await Promise.all([ + loadImage(urls.globe), + loadImage(urls.continents), + loadImage(urls.mercatorFlat), + ]); + } catch (e) { + console.warn('HubGlobe: asset load failed', e); + canvas.remove(); + return null; + } + + const globe = rasterizeImage(globeImg, GLOBE_VIEW.imgW, GLOBE_VIEW.imgH, RASTER_SCALE); + const continents = rasterizeImage(continentsImg, GLOBE_VIEW.imgW, GLOBE_VIEW.imgH, RASTER_SCALE); + const mercW = (mercatorFlatImg.naturalWidth || 800) * 2; + const mercH = (mercatorFlatImg.naturalHeight || 519) * 2; + const mercFlat = rasterizeImage(mercatorFlatImg, mercW, mercH, 1); + + let rotation = typeof opts.initialRotationY === 'number' ? opts.initialRotationY : 0; + let angularVelocity = reducedMotion ? 0 : AUTO_SPIN_RAD_S; + let dragging = false; + let lastPointerX = 0; + let lastPointerTime = 0; + let raf = 0; + let lastFrame = performance.now(); + + const ctx = canvas.getContext('2d', { willReadFrequently: true }); + + const resize = () => { + const rect = globeCoverRect(); + const dpr = Math.min(window.devicePixelRatio || 1, 2); + const px = Math.max(64, Math.floor(rect.width * dpr)); + canvas.style.left = rect.left + 'px'; + canvas.style.top = rect.top + 'px'; + canvas.style.width = rect.width + 'px'; + canvas.style.height = rect.height + 'px'; + canvas.width = px; + canvas.height = px; + return { rect, dpr, px }; + }; + + let layout = resize(); + window.addEventListener('resize', () => { + layout = resize(); + }); + + const render = () => { + const { rect, dpr, px } = layout; + const cx = (rect.cx - rect.left) * dpr; + const cy = (rect.cy - rect.top) * dpr; + const r = rect.r * dpr; + const rim = rect.rim * dpr; + const layoutScale = rect.scale * dpr; + + ctx.clearRect(0, 0, px, px); + blitLayer( + ctx, + cx, + cy, + r, + fillDiskRegion(ctx, cx, cy, r, rotation, function (tex) { + return sampleOceanRgba(globe, tex); + }) + ); + blitLayer( + ctx, + cx, + cy, + r, + fillDiskRegion(ctx, cx, cy, r, rotation, function (tex) { + const l = sampleLandRgba(continents, mercFlat, tex); + return l || [0, 0, 0, 0]; + }) + ); + drawHubGrid(ctx, cx, cy, r, rotation, layoutScale); + drawRim(ctx, globeImg, cx, cy, r, rim, layoutScale); + ctx.save(); + ctx.beginPath(); + ctx.arc(cx, cy, r, 0, Math.PI * 2); + ctx.strokeStyle = 'rgba(10,14,20,0.55)'; + ctx.lineWidth = Math.max(2, layoutScale * 0.006); + ctx.stroke(); + ctx.restore(); + }; + + const onPointerDown = (ev) => { + if (ev.button !== 0) return; + dragging = true; + lastPointerX = ev.clientX; + lastPointerTime = performance.now(); + canvas.setPointerCapture(ev.pointerId); + canvas.classList.add('is-dragging'); + ev.preventDefault(); + }; + + const onPointerMove = (ev) => { + if (!dragging) return; + const now = performance.now(); + const dx = ev.clientX - lastPointerX; + rotation += dx * DRAG_ROTATION_PER_PX; + if (now > lastPointerTime) { + const inst = (dx * DRAG_ROTATION_PER_PX) / ((now - lastPointerTime) / 1000); + angularVelocity = Math.max(-2.5, Math.min(2.5, inst)); + } + lastPointerX = ev.clientX; + lastPointerTime = now; + ev.preventDefault(); + }; + + const endDrag = (ev) => { + if (!dragging) return; + dragging = false; + canvas.classList.remove('is-dragging'); + try { + canvas.releasePointerCapture(ev.pointerId); + } catch (ignored) {} + }; + + canvas.addEventListener('pointerdown', onPointerDown); + canvas.addEventListener('pointermove', onPointerMove); + canvas.addEventListener('pointerup', endDrag); + canvas.addEventListener('pointercancel', endDrag); + + const tick = (now) => { + raf = requestAnimationFrame(tick); + const dt = Math.min(0.05, (now - lastFrame) / 1000); + lastFrame = now; + + if (!dragging) { + if (!reducedMotion) { + const target = AUTO_SPIN_RAD_S; + angularVelocity += (target - angularVelocity) * 1.2 * dt; + if (Math.abs(angularVelocity - target) < 0.004) angularVelocity = target; + } else { + angularVelocity *= Math.exp(-4 * dt); + } + rotation += angularVelocity * dt; + } + + render(); + }; + + raf = requestAnimationFrame(tick); + stage.dataset.globe3d = 'active'; + stage.dataset.globeAxis = 'ew-ns-grid'; + + return { + destroy() { + cancelAnimationFrame(raf); + window.removeEventListener('resize', resize); + canvas.remove(); + delete stage.dataset.globe3d; + delete stage.dataset.globeAxis; + }, + }; +} diff --git a/assets/hub-i18n.js b/assets/hub-i18n.js new file mode 100644 index 0000000..afd13ad --- /dev/null +++ b/assets/hub-i18n.js @@ -0,0 +1,111 @@ +(function (global) { + 'use strict'; + var STORAGE_KEY = 'crash_console_lang'; + var SUPPORTED = ['en', 'ru']; + var DEFAULT_LANG = 'en'; + var LANG_DISPLAY = { en: { flag: '\uD83C\uDDEC\uD83C\uDDE7', code: 'EN' }, ru: { flag: '\uD83C\uDDF7\uD83C\uDDFA', code: 'RU' } }; + var lang = DEFAULT_LANG; + var catalog = {}; + var fallback = {}; + + function hubAsset(rel) { + var link = document.querySelector('link[href*="hub.css"]'); + var base = link ? (link.getAttribute('href') || '').replace(/[^/]*$/, '') : ''; + return base + rel; + } + + function storedLang() { + try { + var v = localStorage.getItem(STORAGE_KEY); + return SUPPORTED.indexOf(v) >= 0 ? v : DEFAULT_LANG; + } catch (e) { + return DEFAULT_LANG; + } + } + + function t(key, params) { + var s = catalog[key] || fallback[key] || key; + if (params) { + Object.keys(params).forEach(function (k) { + s = s.split('{' + k + '}').join(String(params[k])); + }); + } + return s; + } + + function apply(root) { + var scope = root || document; + scope.querySelectorAll('[data-i18n]').forEach(function (el) { + var key = el.getAttribute('data-i18n'); + if (!key) return; + el.textContent = t(key); + }); + scope.querySelectorAll('[data-i18n-placeholder]').forEach(function (el) { + var key = el.getAttribute('data-i18n-placeholder'); + if (key) el.setAttribute('placeholder', t(key)); + }); + scope.querySelectorAll('[data-i18n-aria]').forEach(function (el) { + var key = el.getAttribute('data-i18n-aria'); + if (key) el.setAttribute('aria-label', t(key)); + }); + scope.querySelectorAll('[data-i18n-title]').forEach(function (el) { + var key = el.getAttribute('data-i18n-title'); + if (key) el.setAttribute('title', t(key)); + }); + var disp = LANG_DISPLAY[lang] || LANG_DISPLAY.en; + document.querySelectorAll('.locale-flag').forEach(function (el) { + el.textContent = disp.flag; + }); + document.querySelectorAll('.lang-select').forEach(function (sel) { + SUPPORTED.forEach(function (code) { + var meta = LANG_DISPLAY[code] || LANG_DISPLAY.en; + var opt = sel.querySelector('option[value="' + code + '"]'); + if (opt) opt.textContent = meta.flag + ' ' + meta.code; + }); + sel.value = lang; + }); + document.documentElement.setAttribute('lang', lang); + var footerLeft = document.querySelector('.platform-footer__left[data-i18n]'); + if (footerLeft) { + var holder = footerLeft.getAttribute('data-holder') || 'Anton Afanaasyeu'; + var year = footerLeft.getAttribute('data-year') || String(new Date().getFullYear()); + footerLeft.textContent = t('footer.copyright', { holder: holder, year: year }); + } + } + + function load(code) { + lang = SUPPORTED.indexOf(code) >= 0 ? code : DEFAULT_LANG; + try { localStorage.setItem(STORAGE_KEY, lang); } catch (e) {} + return fetch(hubAsset('assets/i18n/hub-' + lang + '.json'), { credentials: 'same-origin' }) + .then(function (r) { return r.json(); }) + .then(function (json) { + catalog = json || {}; + if (lang !== DEFAULT_LANG) { + return fetch(hubAsset('assets/i18n/hub-en.json'), { credentials: 'same-origin' }) + .then(function (r) { return r.json(); }) + .then(function (fb) { fallback = fb || {}; }); + } + fallback = catalog; + }) + .then(function () { apply(document); }); + } + + function init() { + var sel = document.getElementById('lang-select'); + lang = storedLang(); + if (sel) sel.value = lang; + load(lang).then(function () { + if (sel) { + sel.addEventListener('change', function () { load(sel.value); }); + } + }); + } + + global.HubI18n = { t: t, apply: apply, load: load, init: init }; + + if (document.readyState === 'loading') { + document.addEventListener('DOMContentLoaded', init); + } else { + init(); + } +})(window); diff --git a/assets/hub-landing.js b/assets/hub-landing.js new file mode 100644 index 0000000..70dfa77 --- /dev/null +++ b/assets/hub-landing.js @@ -0,0 +1,160 @@ +(function () { + 'use strict'; + + var PAGE_COUNT = 10; + var scrollEl = null; + var railEl = null; + var currentPage = 1; + + function pageEl(n) { + return document.getElementById('landing-page-' + n); + } + + function setActivePage(n, opts) { + n = Math.max(1, Math.min(PAGE_COUNT, n | 0)); + currentPage = n; + var page = pageEl(n); + if (page && scrollEl) { + if (!opts || !opts.skipScroll) { + page.scrollIntoView({ behavior: 'smooth', block: 'start' }); + } + } + document.querySelectorAll('.landing-rail-dot').forEach(function (dot) { + var p = Number(dot.getAttribute('data-page')); + dot.classList.toggle('is-active', p === n); + dot.setAttribute('aria-current', p === n ? 'true' : 'false'); + }); + document.querySelectorAll('[data-goto-page]').forEach(function (el) { + var p = Number(el.getAttribute('data-goto-page')); + el.classList.toggle('is-active', p === n); + }); + if (window.history && window.history.replaceState) { + var url = new URL(window.location.href); + if (n <= 1) { + url.searchParams.delete('page'); + } else { + url.searchParams.set('page', String(n)); + } + window.history.replaceState({ page: n }, '', url.toString()); + } + } + + function pageFromScroll() { + if (!scrollEl) return 1; + var mid = scrollEl.scrollTop + scrollEl.clientHeight * 0.4; + var best = 1; + var bestDist = Infinity; + for (var i = 1; i <= PAGE_COUNT; i++) { + var el = pageEl(i); + if (!el) continue; + var dist = Math.abs(el.offsetTop - mid); + if (dist < bestDist) { + bestDist = dist; + best = i; + } + } + return best; + } + + function bindScrollSync() { + if (!scrollEl) return; + var ticking = false; + scrollEl.addEventListener('scroll', function () { + if (ticking) return; + ticking = true; + requestAnimationFrame(function () { + ticking = false; + var p = pageFromScroll(); + if (p !== currentPage) { + setActivePage(p, { skipScroll: true }); + } + }); + }, { passive: true }); + } + + function bindRail() { + railEl = document.getElementById('landing-rail'); + var handle = document.getElementById('landing-rail-handle'); + if (handle && railEl) { + handle.addEventListener('mouseenter', function () { + railEl.classList.add('is-visible'); + }); + handle.addEventListener('focus', function () { + railEl.classList.add('is-visible'); + }); + var dragY = 0; + handle.addEventListener('pointerdown', function (ev) { + dragY = ev.clientY; + handle.setPointerCapture(ev.pointerId); + railEl.classList.add('is-visible'); + }); + handle.addEventListener('pointermove', function (ev) { + if (!handle.hasPointerCapture(ev.pointerId)) return; + var dy = ev.clientY - dragY; + if (Math.abs(dy) > 40) { + setActivePage(currentPage + (dy > 0 ? 1 : -1)); + dragY = ev.clientY; + } + }); + } + document.querySelectorAll('.landing-rail-dot').forEach(function (dot) { + dot.addEventListener('click', function () { + setActivePage(Number(dot.getAttribute('data-page'))); + }); + }); + } + + function bindGotoLinks() { + document.body.addEventListener('click', function (ev) { + var t = ev.target.closest('[data-goto-page]'); + if (!t) return; + if (t.tagName === 'A' && t.getAttribute('href') === '#') { + ev.preventDefault(); + } + setActivePage(Number(t.getAttribute('data-goto-page'))); + }); + } + + function bindLeftNav() { + /* nav_shell.js handles #landing-nav-pane / #landing-nav-handle */ + } + + function initFromUrl() { + var params = new URLSearchParams(window.location.search); + var p = parseInt(params.get('page') || '1', 10); + if (p >= 1 && p <= PAGE_COUNT) { + setTimeout(function () { + setActivePage(p); + }, 80); + } else { + setActivePage(1, { skipScroll: true }); + } + } + + function init() { + scrollEl = document.getElementById('landing-scroll'); + bindScrollSync(); + bindRail(); + bindGotoLinks(); + bindLeftNav(); + initFromUrl(); + window.addEventListener('keydown', function (ev) { + if (ev.target && /input|textarea|select/i.test(ev.target.tagName)) return; + if (ev.key === 'PageDown' || ev.key === 'ArrowDown') { + ev.preventDefault(); + setActivePage(currentPage + 1); + } else if (ev.key === 'PageUp' || ev.key === 'ArrowUp') { + ev.preventDefault(); + setActivePage(currentPage - 1); + } + }); + } + + if (document.readyState === 'loading') { + document.addEventListener('DOMContentLoaded', init); + } else { + init(); + } + + window.LandingNav = { goTo: setActivePage }; +})(); diff --git a/assets/hub-logo-continents-mercator-flat.svg b/assets/hub-logo-continents-mercator-flat.svg new file mode 100644 index 0000000..fc0f862 --- /dev/null +++ b/assets/hub-logo-continents-mercator-flat.svg @@ -0,0 +1,13 @@ +<svg xmlns="http://www.w3.org/2000/svg" width="800" height="519" viewBox="0 0 800 519" role="img" aria-label="Extracted continents (flat Mercator plate)"> + <rect width="100%" height="100%" fill="#b8d4e8"/> + <g id="continents-inner-layer" fill="#9ab3cc" fill-opacity="0.82" stroke="#dce8f6" stroke-opacity="0.78" stroke-width="1.1"> + <path id="continent-4" data-area="78439" d="M 591.0 1.0 L 595.0 1.0 L 599.0 1.0 L 603.0 1.0 L 607.0 1.0 L 611.0 1.0 L 615.0 1.0 L 619.0 1.0 L 623.0 1.0 L 627.0 1.0 L 631.0 1.0 L 635.0 1.0 L 639.0 1.0 L 643.0 1.0 L 647.0 1.0 L 650.0 3.0 L 650.0 7.0 L 647.0 9.0 L 650.0 11.0 L 654.0 13.0 L 658.0 13.0 L 662.0 13.0 L 665.0 16.0 L 667.0 19.0 L 670.0 16.0 L 672.0 13.0 L 676.0 13.0 L 680.0 13.0 L 684.0 15.0 L 686.0 18.0 L 685.0 22.0 L 686.0 26.0 L 688.0 29.0 L 691.0 27.0 L 695.0 27.0 L 699.0 28.0 L 703.0 29.0 L 705.0 26.0 L 705.0 22.0 L 708.0 20.0 L 712.0 19.0 L 716.0 19.0 L 719.0 21.0 L 723.0 21.0 L 726.0 23.0 L 730.0 24.0 L 732.0 27.0 L 734.0 30.0 L 737.0 32.0 L 741.0 32.0 L 745.0 32.0 L 749.0 33.0 L 752.0 35.0 L 754.0 38.0 L 756.0 41.0 L 760.0 41.0 L 764.0 41.0 L 768.0 41.0 L 772.0 41.0 L 775.0 39.0 L 779.0 39.0 L 783.0 39.0 L 787.0 39.0 L 791.0 40.0 L 794.0 42.0 L 797.0 44.0 L 798.0 48.0 L 798.0 52.0 L 798.0 56.0 L 798.0 60.0 L 798.0 64.0 L 798.0 68.0 L 798.0 72.0 L 797.0 76.0 L 797.0 80.0 L 797.0 84.0 L 793.0 84.0 L 790.0 86.0 L 786.0 88.0 L 783.0 91.0 L 780.0 94.0 L 776.0 95.0 L 772.0 94.0 L 768.0 95.0 L 764.0 95.0 L 762.0 98.0 L 762.0 102.0 L 762.0 106.0 L 762.0 110.0 L 760.0 114.0 L 758.0 118.0 L 755.0 120.0 L 753.0 123.0 L 752.0 127.0 L 749.0 129.0 L 745.0 129.0 L 743.0 126.0 L 741.0 123.0 L 740.0 119.0 L 740.0 115.0 L 740.0 111.0 L 741.0 107.0 L 742.0 103.0 L 745.0 101.0 L 748.0 99.0 L 750.0 96.0 L 752.0 93.0 L 751.0 89.0 L 747.0 90.0 L 746.0 94.0 L 743.0 96.0 L 741.0 100.0 L 737.0 100.0 L 733.0 100.0 L 730.0 98.0 L 726.0 98.0 L 722.0 98.0 L 718.0 98.0 L 715.0 100.0 L 713.0 103.0 L 711.0 106.0 L 708.0 109.0 L 705.0 112.0 L 705.0 116.0 L 709.0 116.0 L 713.0 116.0 L 716.0 118.0 L 719.0 120.0 L 719.0 124.0 L 720.0 128.0 L 720.0 132.0 L 719.0 136.0 L 719.0 140.0 L 719.0 144.0 L 719.0 148.0 L 722.0 150.0 L 722.0 154.0 L 721.0 158.0 L 717.0 159.0 L 716.0 163.0 L 715.0 167.0 L 714.0 171.0 L 712.0 174.0 L 712.0 178.0 L 709.0 180.0 L 705.0 182.0 L 701.0 182.0 L 698.0 184.0 L 694.0 184.0 L 692.0 187.0 L 689.0 189.0 L 685.0 189.0 L 685.0 185.0 L 685.0 181.0 L 681.0 180.0 L 677.0 180.0 L 676.0 176.0 L 675.0 172.0 L 673.0 169.0 L 671.0 172.0 L 668.0 174.0 L 666.0 177.0 L 668.0 180.0 L 670.0 183.0 L 670.0 187.0 L 670.0 191.0 L 670.0 195.0 L 668.0 198.0 L 669.0 202.0 L 670.0 206.0 L 669.0 210.0 L 665.0 210.0 L 662.0 208.0 L 659.0 210.0 L 656.0 212.0 L 652.0 212.0 L 649.0 214.0 L 646.0 216.0 L 644.0 219.0 L 642.0 222.0 L 643.0 226.0 L 643.0 230.0 L 642.0 234.0 L 641.0 238.0 L 638.0 240.0 L 634.0 241.0 L 630.0 241.0 L 630.0 245.0 L 631.0 249.0 L 631.0 253.0 L 631.0 257.0 L 633.0 260.0 L 636.0 263.0 L 637.0 267.0 L 640.0 269.0 L 640.0 265.0 L 639.0 261.0 L 637.0 258.0 L 637.0 254.0 L 641.0 253.0 L 644.0 251.0 L 646.0 248.0 L 649.0 246.0 L 651.0 243.0 L 654.0 241.0 L 658.0 241.0 L 662.0 243.0 L 664.0 246.0 L 664.0 250.0 L 663.0 254.0 L 663.0 258.0 L 666.0 260.0 L 670.0 260.0 L 672.0 263.0 L 672.0 267.0 L 672.0 271.0 L 668.0 271.0 L 664.0 270.0 L 663.0 266.0 L 663.0 262.0 L 661.0 265.0 L 658.0 267.0 L 656.0 270.0 L 652.0 270.0 L 649.0 272.0 L 653.0 273.0 L 653.0 277.0 L 650.0 279.0 L 646.0 278.0 L 642.0 278.0 L 638.0 278.0 L 634.0 278.0 L 632.0 275.0 L 628.0 274.0 L 625.0 272.0 L 622.0 270.0 L 620.0 266.0 L 617.0 263.0 L 615.0 260.0 L 613.0 256.0 L 610.0 254.0 L 609.0 250.0 L 609.0 246.0 L 613.0 245.0 L 617.0 244.0 L 615.0 241.0 L 615.0 237.0 L 614.0 233.0 L 613.0 229.0 L 611.0 226.0 L 607.0 225.0 L 606.0 221.0 L 604.0 217.0 L 602.0 214.0 L 598.0 214.0 L 594.0 216.0 L 591.0 219.0 L 588.0 222.0 L 585.0 224.0 L 582.0 226.0 L 580.0 229.0 L 580.0 233.0 L 578.0 236.0 L 582.0 238.0 L 582.0 242.0 L 582.0 246.0 L 579.0 248.0 L 575.0 247.0 L 573.0 244.0 L 570.0 242.0 L 567.0 240.0 L 565.0 236.0 L 563.0 232.0 L 561.0 228.0 L 559.0 225.0 L 559.0 221.0 L 559.0 217.0 L 557.0 214.0 L 553.0 214.0 L 551.0 211.0 L 548.0 209.0 L 545.0 207.0 L 542.0 205.0 L 538.0 204.0 L 534.0 206.0 L 534.0 210.0 L 533.0 214.0 L 531.0 217.0 L 528.0 220.0 L 526.0 223.0 L 522.0 224.0 L 518.0 225.0 L 515.0 227.0 L 511.0 228.0 L 508.0 230.0 L 512.0 231.0 L 516.0 232.0 L 516.0 236.0 L 514.0 239.0 L 514.0 243.0 L 512.0 246.0 L 510.0 249.0 L 507.0 252.0 L 505.0 255.0 L 502.0 257.0 L 499.0 259.0 L 495.0 261.0 L 494.0 265.0 L 492.0 268.0 L 490.0 271.0 L 490.0 275.0 L 492.0 279.0 L 492.0 283.0 L 493.0 287.0 L 494.0 291.0 L 498.0 291.0 L 502.0 290.0 L 504.0 287.0 L 507.0 285.0 L 511.0 285.0 L 514.0 287.0 L 514.0 291.0 L 514.0 295.0 L 512.0 299.0 L 512.0 303.0 L 510.0 306.0 L 509.0 310.0 L 508.0 314.0 L 506.0 317.0 L 504.0 320.0 L 500.0 320.0 L 496.0 319.0 L 495.0 315.0 L 493.0 312.0 L 493.0 308.0 L 494.0 304.0 L 495.0 300.0 L 495.0 296.0 L 492.0 294.0 L 491.0 298.0 L 488.0 300.0 L 485.0 302.0 L 482.0 305.0 L 481.0 309.0 L 481.0 313.0 L 479.0 317.0 L 476.0 319.0 L 474.0 322.0 L 474.0 326.0 L 472.0 329.0 L 468.0 330.0 L 468.0 334.0 L 466.0 337.0 L 464.0 340.0 L 461.0 342.0 L 457.0 342.0 L 453.0 342.0 L 449.0 342.0 L 445.0 342.0 L 441.0 342.0 L 438.0 339.0 L 437.0 335.0 L 437.0 331.0 L 435.0 328.0 L 432.0 326.0 L 431.0 322.0 L 431.0 318.0 L 430.0 314.0 L 429.0 310.0 L 427.0 306.0 L 425.0 303.0 L 424.0 299.0 L 424.0 295.0 L 425.0 291.0 L 427.0 287.0 L 427.0 283.0 L 427.0 279.0 L 427.0 275.0 L 424.0 273.0 L 422.0 269.0 L 419.0 266.0 L 419.0 262.0 L 419.0 258.0 L 419.0 254.0 L 416.0 252.0 L 412.0 252.0 L 409.0 249.0 L 405.0 249.0 L 401.0 250.0 L 397.0 250.0 L 393.0 250.0 L 389.0 251.0 L 385.0 252.0 L 381.0 252.0 L 378.0 250.0 L 375.0 247.0 L 371.0 245.0 L 369.0 242.0 L 367.0 239.0 L 365.0 236.0 L 362.0 234.0 L 361.0 230.0 L 360.0 226.0 L 360.0 222.0 L 362.0 219.0 L 362.0 215.0 L 361.0 211.0 L 361.0 207.0 L 362.0 203.0 L 365.0 201.0 L 367.0 197.0 L 369.0 194.0 L 372.0 191.0 L 375.0 189.0 L 378.0 187.0 L 378.0 183.0 L 378.0 179.0 L 382.0 177.0 L 381.0 173.0 L 377.0 172.0 L 377.0 168.0 L 377.0 164.0 L 377.0 160.0 L 379.0 156.0 L 379.0 152.0 L 381.0 149.0 L 385.0 149.0 L 389.0 151.0 L 393.0 150.0 L 395.0 147.0 L 393.0 144.0 L 390.0 142.0 L 388.0 139.0 L 389.0 135.0 L 388.0 131.0 L 386.0 128.0 L 382.0 129.0 L 378.0 128.0 L 375.0 126.0 L 375.0 122.0 L 375.0 118.0 L 377.0 115.0 L 380.0 112.0 L 384.0 111.0 L 385.0 107.0 L 385.0 103.0 L 387.0 100.0 L 389.0 97.0 L 393.0 97.0 L 395.0 100.0 L 398.0 102.0 L 398.0 106.0 L 398.0 110.0 L 401.0 113.0 L 402.0 117.0 L 404.0 120.0 L 408.0 121.0 L 410.0 118.0 L 414.0 117.0 L 415.0 113.0 L 415.0 109.0 L 415.0 105.0 L 411.0 103.0 L 411.0 99.0 L 411.0 95.0 L 409.0 92.0 L 409.0 88.0 L 409.0 84.0 L 410.0 80.0 L 413.0 77.0 L 417.0 75.0 L 420.0 72.0 L 422.0 69.0 L 425.0 67.0 L 425.0 63.0 L 426.0 59.0 L 428.0 56.0 L 431.0 53.0 L 433.0 50.0 L 435.0 47.0 L 437.0 44.0 L 440.0 42.0 L 444.0 40.0 L 446.0 37.0 L 450.0 37.0 L 451.0 33.0 L 455.0 33.0 L 459.0 33.0 L 463.0 33.0 L 467.0 33.0 L 468.0 37.0 L 471.0 39.0 L 475.0 40.0 L 477.0 43.0 L 481.0 43.0 L 484.0 45.0 L 487.0 47.0 L 490.0 50.0 L 493.0 53.0 L 495.0 50.0 L 497.0 47.0 L 501.0 47.0 L 504.0 50.0 L 508.0 50.0 L 511.0 47.0 L 515.0 47.0 L 519.0 47.0 L 523.0 47.0 L 527.0 46.0 L 530.0 44.0 L 530.0 40.0 L 534.0 39.0 L 538.0 39.0 L 541.0 41.0 L 545.0 41.0 L 545.0 37.0 L 545.0 33.0 L 547.0 29.0 L 549.0 25.0 L 550.0 21.0 L 553.0 19.0 L 557.0 19.0 L 561.0 19.0 L 564.0 22.0 L 568.0 23.0 L 572.0 24.0 L 575.0 22.0 L 575.0 18.0 L 575.0 14.0 L 578.0 12.0 L 582.0 12.0 L 586.0 13.0 L 589.0 10.0 L 589.0 6.0 L 590.0 2.0 L 591.0 1.0 Z"/> + <path id="continent-1" data-area="42423" d="M 148.0 1.0 L 152.0 1.0 L 156.0 1.0 L 160.0 1.0 L 160.0 5.0 L 157.0 8.0 L 154.0 10.0 L 150.0 10.0 L 146.0 11.0 L 147.0 15.0 L 151.0 15.0 L 153.0 19.0 L 157.0 19.0 L 160.0 16.0 L 164.0 15.0 L 168.0 16.0 L 170.0 19.0 L 172.0 23.0 L 173.0 19.0 L 176.0 17.0 L 177.0 13.0 L 179.0 10.0 L 183.0 10.0 L 187.0 11.0 L 189.0 8.0 L 193.0 7.0 L 196.0 5.0 L 196.0 1.0 L 200.0 1.0 L 204.0 1.0 L 208.0 1.0 L 212.0 1.0 L 216.0 1.0 L 220.0 1.0 L 224.0 1.0 L 225.0 5.0 L 223.0 8.0 L 219.0 8.0 L 215.0 9.0 L 218.0 11.0 L 222.0 11.0 L 225.0 14.0 L 226.0 18.0 L 230.0 19.0 L 234.0 19.0 L 237.0 21.0 L 239.0 25.0 L 241.0 29.0 L 245.0 30.0 L 248.0 32.0 L 251.0 34.0 L 253.0 38.0 L 255.0 41.0 L 255.0 45.0 L 255.0 49.0 L 259.0 51.0 L 261.0 54.0 L 264.0 56.0 L 267.0 58.0 L 267.0 62.0 L 266.0 66.0 L 264.0 70.0 L 260.0 71.0 L 260.0 75.0 L 260.0 79.0 L 257.0 81.0 L 256.0 85.0 L 252.0 85.0 L 248.0 86.0 L 250.0 89.0 L 251.0 93.0 L 252.0 97.0 L 255.0 94.0 L 257.0 91.0 L 261.0 91.0 L 263.0 94.0 L 265.0 98.0 L 267.0 101.0 L 268.0 105.0 L 270.0 108.0 L 272.0 111.0 L 276.0 111.0 L 277.0 115.0 L 280.0 117.0 L 281.0 121.0 L 281.0 125.0 L 280.0 129.0 L 283.0 131.0 L 286.0 134.0 L 286.0 138.0 L 286.0 142.0 L 283.0 144.0 L 279.0 144.0 L 276.0 142.0 L 272.0 142.0 L 268.0 142.0 L 268.0 146.0 L 265.0 148.0 L 263.0 151.0 L 261.0 154.0 L 257.0 154.0 L 253.0 154.0 L 253.0 150.0 L 250.0 152.0 L 248.0 155.0 L 247.0 159.0 L 244.0 162.0 L 241.0 164.0 L 238.0 166.0 L 236.0 170.0 L 236.0 174.0 L 236.0 178.0 L 233.0 180.0 L 230.0 183.0 L 227.0 185.0 L 224.0 187.0 L 225.0 191.0 L 226.0 195.0 L 226.0 199.0 L 226.0 203.0 L 228.0 206.0 L 232.0 207.0 L 235.0 209.0 L 237.0 212.0 L 241.0 212.0 L 245.0 212.0 L 249.0 213.0 L 249.0 217.0 L 247.0 221.0 L 243.0 222.0 L 239.0 222.0 L 237.0 219.0 L 236.0 215.0 L 232.0 216.0 L 228.0 216.0 L 225.0 214.0 L 221.0 213.0 L 217.0 212.0 L 214.0 210.0 L 214.0 206.0 L 217.0 204.0 L 217.0 200.0 L 217.0 196.0 L 215.0 193.0 L 212.0 191.0 L 208.0 191.0 L 204.0 191.0 L 200.0 191.0 L 196.0 191.0 L 194.0 194.0 L 191.0 196.0 L 189.0 199.0 L 188.0 203.0 L 188.0 207.0 L 190.0 211.0 L 192.0 214.0 L 196.0 214.0 L 198.0 211.0 L 201.0 209.0 L 204.0 207.0 L 208.0 207.0 L 211.0 210.0 L 211.0 214.0 L 210.0 218.0 L 212.0 221.0 L 216.0 221.0 L 219.0 224.0 L 220.0 228.0 L 219.0 232.0 L 221.0 235.0 L 225.0 235.0 L 229.0 236.0 L 232.0 233.0 L 236.0 231.0 L 239.0 229.0 L 243.0 229.0 L 246.0 231.0 L 250.0 231.0 L 254.0 233.0 L 258.0 233.0 L 262.0 233.0 L 266.0 233.0 L 269.0 236.0 L 272.0 238.0 L 275.0 241.0 L 278.0 243.0 L 282.0 243.0 L 286.0 244.0 L 289.0 246.0 L 291.0 249.0 L 292.0 253.0 L 293.0 257.0 L 297.0 257.0 L 301.0 258.0 L 304.0 260.0 L 307.0 262.0 L 311.0 262.0 L 315.0 262.0 L 318.0 264.0 L 321.0 266.0 L 325.0 267.0 L 325.0 271.0 L 325.0 275.0 L 325.0 279.0 L 325.0 283.0 L 321.0 285.0 L 319.0 289.0 L 318.0 293.0 L 317.0 297.0 L 316.0 301.0 L 316.0 305.0 L 314.0 308.0 L 311.0 311.0 L 309.0 314.0 L 305.0 314.0 L 301.0 315.0 L 298.0 318.0 L 296.0 321.0 L 296.0 325.0 L 294.0 328.0 L 290.0 330.0 L 290.0 334.0 L 288.0 338.0 L 285.0 340.0 L 282.0 342.0 L 278.0 343.0 L 278.0 347.0 L 277.0 351.0 L 273.0 352.0 L 269.0 353.0 L 266.0 355.0 L 265.0 359.0 L 261.0 359.0 L 260.0 363.0 L 260.0 367.0 L 258.0 371.0 L 257.0 375.0 L 257.0 379.0 L 255.0 383.0 L 254.0 387.0 L 252.0 390.0 L 253.0 394.0 L 255.0 397.0 L 256.0 401.0 L 256.0 405.0 L 252.0 406.0 L 248.0 406.0 L 244.0 405.0 L 244.0 401.0 L 240.0 400.0 L 237.0 398.0 L 236.0 394.0 L 234.0 391.0 L 234.0 387.0 L 235.0 383.0 L 235.0 379.0 L 233.0 376.0 L 232.0 372.0 L 234.0 368.0 L 237.0 366.0 L 236.0 362.0 L 235.0 358.0 L 235.0 354.0 L 236.0 350.0 L 237.0 346.0 L 237.0 342.0 L 238.0 338.0 L 239.0 334.0 L 241.0 331.0 L 241.0 327.0 L 241.0 323.0 L 241.0 319.0 L 242.0 315.0 L 243.0 311.0 L 243.0 307.0 L 243.0 303.0 L 241.0 300.0 L 238.0 298.0 L 236.0 295.0 L 232.0 294.0 L 230.0 291.0 L 229.0 287.0 L 227.0 284.0 L 225.0 281.0 L 223.0 278.0 L 221.0 275.0 L 219.0 272.0 L 219.0 268.0 L 219.0 264.0 L 219.0 260.0 L 221.0 257.0 L 222.0 253.0 L 224.0 250.0 L 227.0 248.0 L 225.0 245.0 L 221.0 245.0 L 217.0 245.0 L 214.0 243.0 L 211.0 241.0 L 209.0 238.0 L 207.0 235.0 L 204.0 233.0 L 200.0 231.0 L 198.0 228.0 L 194.0 228.0 L 190.0 226.0 L 186.0 226.0 L 182.0 226.0 L 179.0 224.0 L 176.0 222.0 L 172.0 220.0 L 168.0 218.0 L 166.0 215.0 L 166.0 211.0 L 163.0 209.0 L 159.0 210.0 L 155.0 208.0 L 152.0 206.0 L 150.0 202.0 L 147.0 200.0 L 145.0 196.0 L 145.0 192.0 L 141.0 190.0 L 140.0 186.0 L 137.0 183.0 L 134.0 181.0 L 131.0 178.0 L 129.0 175.0 L 127.0 172.0 L 125.0 169.0 L 124.0 165.0 L 124.0 161.0 L 124.0 157.0 L 124.0 153.0 L 123.0 149.0 L 124.0 145.0 L 123.0 141.0 L 121.0 138.0 L 119.0 135.0 L 118.0 131.0 L 116.0 128.0 L 115.0 124.0 L 112.0 122.0 L 111.0 118.0 L 109.0 115.0 L 107.0 111.0 L 105.0 108.0 L 104.0 104.0 L 101.0 102.0 L 97.0 102.0 L 93.0 101.0 L 91.0 98.0 L 88.0 96.0 L 84.0 95.0 L 80.0 95.0 L 76.0 94.0 L 72.0 94.0 L 70.0 97.0 L 66.0 97.0 L 63.0 100.0 L 66.0 102.0 L 66.0 106.0 L 63.0 108.0 L 59.0 108.0 L 55.0 109.0 L 52.0 111.0 L 50.0 114.0 L 46.0 114.0 L 42.0 115.0 L 39.0 113.0 L 39.0 109.0 L 43.0 108.0 L 45.0 105.0 L 48.0 103.0 L 45.0 101.0 L 42.0 99.0 L 40.0 96.0 L 36.0 94.0 L 34.0 90.0 L 32.0 87.0 L 32.0 83.0 L 33.0 79.0 L 36.0 77.0 L 40.0 76.0 L 37.0 74.0 L 33.0 74.0 L 31.0 71.0 L 29.0 68.0 L 25.0 69.0 L 23.0 72.0 L 27.0 73.0 L 28.0 77.0 L 25.0 79.0 L 22.0 77.0 L 20.0 74.0 L 16.0 74.0 L 12.0 72.0 L 10.0 69.0 L 6.0 68.0 L 2.0 68.0 L 1.0 64.0 L 1.0 60.0 L 1.0 56.0 L 1.0 52.0 L 1.0 48.0 L 4.0 46.0 L 8.0 47.0 L 12.0 48.0 L 14.0 51.0 L 16.0 54.0 L 20.0 55.0 L 24.0 55.0 L 27.0 57.0 L 29.0 60.0 L 33.0 61.0 L 37.0 59.0 L 34.0 56.0 L 32.0 53.0 L 31.0 49.0 L 32.0 45.0 L 36.0 45.0 L 37.0 41.0 L 39.0 38.0 L 41.0 35.0 L 45.0 34.0 L 48.0 32.0 L 51.0 30.0 L 55.0 30.0 L 59.0 31.0 L 63.0 31.0 L 66.0 33.0 L 70.0 35.0 L 74.0 35.0 L 78.0 36.0 L 82.0 37.0 L 86.0 37.0 L 90.0 38.0 L 93.0 40.0 L 96.0 42.0 L 100.0 43.0 L 103.0 41.0 L 106.0 39.0 L 110.0 38.0 L 114.0 38.0 L 116.0 34.0 L 120.0 34.0 L 123.0 37.0 L 125.0 40.0 L 129.0 39.0 L 133.0 39.0 L 137.0 39.0 L 139.0 42.0 L 139.0 38.0 L 139.0 34.0 L 137.0 31.0 L 134.0 34.0 L 130.0 34.0 L 126.0 34.0 L 124.0 31.0 L 121.0 28.0 L 121.0 24.0 L 123.0 20.0 L 123.0 16.0 L 124.0 12.0 L 123.0 8.0 L 125.0 5.0 L 129.0 5.0 L 133.0 5.0 L 137.0 5.0 L 140.0 7.0 L 144.0 8.0 L 146.0 5.0 L 148.0 1.0 Z"/> + <path id="continent-12" data-area="21849" d="M 694.0 446.0 L 698.0 446.0 L 700.0 449.0 L 703.0 451.0 L 707.0 453.0 L 711.0 454.0 L 715.0 455.0 L 718.0 457.0 L 722.0 457.0 L 725.0 460.0 L 728.0 463.0 L 731.0 465.0 L 734.0 467.0 L 738.0 467.0 L 742.0 467.0 L 745.0 469.0 L 749.0 470.0 L 752.0 472.0 L 755.0 474.0 L 758.0 477.0 L 762.0 477.0 L 765.0 479.0 L 769.0 479.0 L 772.0 481.0 L 775.0 483.0 L 778.0 486.0 L 779.0 490.0 L 779.0 494.0 L 778.0 498.0 L 776.0 501.0 L 774.0 504.0 L 770.0 505.0 L 768.0 508.0 L 766.0 511.0 L 764.0 514.0 L 761.0 516.0 L 757.0 516.0 L 753.0 516.0 L 749.0 516.0 L 745.0 516.0 L 741.0 516.0 L 737.0 516.0 L 733.0 516.0 L 729.0 516.0 L 725.0 516.0 L 721.0 516.0 L 717.0 516.0 L 713.0 516.0 L 709.0 516.0 L 705.0 516.0 L 701.0 516.0 L 697.0 516.0 L 693.0 516.0 L 689.0 516.0 L 685.0 516.0 L 681.0 516.0 L 677.0 516.0 L 673.0 516.0 L 669.0 516.0 L 665.0 516.0 L 661.0 516.0 L 657.0 516.0 L 653.0 516.0 L 649.0 516.0 L 645.0 516.0 L 641.0 516.0 L 637.0 516.0 L 633.0 516.0 L 629.0 516.0 L 625.0 516.0 L 621.0 516.0 L 617.0 516.0 L 613.0 516.0 L 609.0 516.0 L 605.0 516.0 L 601.0 516.0 L 597.0 516.0 L 593.0 516.0 L 589.0 516.0 L 585.0 516.0 L 581.0 516.0 L 577.0 516.0 L 573.0 516.0 L 569.0 516.0 L 565.0 516.0 L 561.0 516.0 L 557.0 516.0 L 553.0 516.0 L 549.0 516.0 L 545.0 516.0 L 541.0 516.0 L 537.0 516.0 L 533.0 516.0 L 529.0 516.0 L 525.0 516.0 L 521.0 516.0 L 517.0 516.0 L 513.0 516.0 L 509.0 516.0 L 505.0 516.0 L 501.0 516.0 L 497.0 516.0 L 493.0 516.0 L 489.0 516.0 L 485.0 516.0 L 481.0 516.0 L 477.0 516.0 L 473.0 516.0 L 469.0 516.0 L 465.0 516.0 L 461.0 516.0 L 457.0 516.0 L 453.0 516.0 L 449.0 516.0 L 445.0 516.0 L 441.0 516.0 L 437.0 516.0 L 433.0 516.0 L 429.0 516.0 L 425.0 516.0 L 421.0 516.0 L 417.0 516.0 L 413.0 516.0 L 409.0 516.0 L 405.0 516.0 L 401.0 516.0 L 397.0 516.0 L 393.0 516.0 L 389.0 516.0 L 385.0 516.0 L 381.0 516.0 L 377.0 516.0 L 373.0 516.0 L 369.0 516.0 L 365.0 516.0 L 361.0 516.0 L 360.0 512.0 L 361.0 508.0 L 361.0 504.0 L 361.0 500.0 L 364.0 498.0 L 367.0 496.0 L 369.0 493.0 L 371.0 490.0 L 371.0 486.0 L 373.0 483.0 L 377.0 482.0 L 381.0 481.0 L 384.0 479.0 L 388.0 479.0 L 390.0 482.0 L 394.0 483.0 L 398.0 483.0 L 402.0 481.0 L 406.0 480.0 L 410.0 479.0 L 413.0 476.0 L 417.0 475.0 L 421.0 475.0 L 425.0 476.0 L 429.0 475.0 L 433.0 475.0 L 437.0 475.0 L 441.0 474.0 L 445.0 474.0 L 449.0 476.0 L 453.0 477.0 L 457.0 476.0 L 460.0 474.0 L 464.0 474.0 L 467.0 471.0 L 470.0 469.0 L 472.0 466.0 L 476.0 465.0 L 480.0 466.0 L 482.0 470.0 L 485.0 468.0 L 488.0 466.0 L 492.0 464.0 L 495.0 462.0 L 498.0 459.0 L 502.0 459.0 L 506.0 457.0 L 509.0 455.0 L 511.0 452.0 L 515.0 451.0 L 519.0 451.0 L 523.0 451.0 L 527.0 452.0 L 529.0 455.0 L 532.0 457.0 L 536.0 458.0 L 540.0 459.0 L 543.0 461.0 L 547.0 461.0 L 551.0 461.0 L 555.0 461.0 L 557.0 464.0 L 557.0 468.0 L 556.0 472.0 L 557.0 476.0 L 560.0 474.0 L 563.0 471.0 L 567.0 469.0 L 569.0 466.0 L 571.0 463.0 L 574.0 461.0 L 576.0 458.0 L 580.0 457.0 L 583.0 455.0 L 587.0 455.0 L 591.0 454.0 L 595.0 454.0 L 599.0 454.0 L 603.0 454.0 L 607.0 454.0 L 611.0 454.0 L 615.0 454.0 L 619.0 452.0 L 623.0 451.0 L 627.0 451.0 L 631.0 451.0 L 635.0 451.0 L 638.0 453.0 L 642.0 451.0 L 646.0 451.0 L 650.0 451.0 L 654.0 452.0 L 658.0 453.0 L 662.0 454.0 L 666.0 455.0 L 669.0 453.0 L 673.0 453.0 L 677.0 454.0 L 681.0 454.0 L 685.0 453.0 L 689.0 453.0 L 692.0 451.0 L 692.0 447.0 L 694.0 446.0 Z"/> + <path id="continent-2" data-area="5520" d="M 272.0 1.0 L 276.0 1.0 L 280.0 1.0 L 284.0 1.0 L 288.0 1.0 L 292.0 1.0 L 296.0 1.0 L 300.0 1.0 L 304.0 1.0 L 308.0 1.0 L 312.0 1.0 L 316.0 1.0 L 320.0 1.0 L 324.0 1.0 L 328.0 1.0 L 332.0 1.0 L 336.0 1.0 L 340.0 1.0 L 344.0 1.0 L 348.0 1.0 L 352.0 1.0 L 356.0 1.0 L 360.0 2.0 L 361.0 6.0 L 361.0 10.0 L 358.0 13.0 L 357.0 17.0 L 355.0 20.0 L 351.0 20.0 L 352.0 24.0 L 353.0 28.0 L 355.0 31.0 L 355.0 35.0 L 355.0 39.0 L 352.0 41.0 L 350.0 45.0 L 348.0 48.0 L 346.0 51.0 L 342.0 52.0 L 338.0 52.0 L 334.0 53.0 L 331.0 55.0 L 329.0 58.0 L 329.0 62.0 L 327.0 65.0 L 323.0 67.0 L 319.0 67.0 L 316.0 69.0 L 314.0 72.0 L 313.0 76.0 L 313.0 80.0 L 310.0 83.0 L 310.0 87.0 L 310.0 91.0 L 308.0 94.0 L 304.0 95.0 L 300.0 95.0 L 296.0 93.0 L 292.0 91.0 L 290.0 88.0 L 289.0 84.0 L 286.0 81.0 L 285.0 77.0 L 283.0 74.0 L 283.0 70.0 L 281.0 67.0 L 281.0 63.0 L 281.0 59.0 L 281.0 55.0 L 283.0 51.0 L 284.0 47.0 L 283.0 43.0 L 281.0 40.0 L 281.0 36.0 L 279.0 33.0 L 276.0 31.0 L 275.0 27.0 L 275.0 23.0 L 275.0 19.0 L 275.0 15.0 L 273.0 12.0 L 273.0 8.0 L 272.0 4.0 L 272.0 1.0 Z"/> + <path id="continent-8" data-area="5428" d="M 689.0 259.0 L 693.0 259.0 L 697.0 259.0 L 698.0 263.0 L 701.0 261.0 L 705.0 260.0 L 709.0 260.0 L 713.0 261.0 L 716.0 263.0 L 720.0 264.0 L 723.0 267.0 L 726.0 269.0 L 728.0 272.0 L 730.0 275.0 L 731.0 279.0 L 731.0 283.0 L 727.0 284.0 L 723.0 284.0 L 721.0 281.0 L 718.0 283.0 L 719.0 287.0 L 721.0 290.0 L 723.0 294.0 L 724.0 298.0 L 727.0 300.0 L 730.0 302.0 L 732.0 305.0 L 732.0 309.0 L 735.0 311.0 L 738.0 313.0 L 740.0 316.0 L 741.0 320.0 L 741.0 324.0 L 740.0 328.0 L 739.0 332.0 L 739.0 336.0 L 736.0 339.0 L 736.0 343.0 L 732.0 344.0 L 732.0 348.0 L 732.0 352.0 L 728.0 352.0 L 724.0 353.0 L 720.0 353.0 L 716.0 353.0 L 712.0 353.0 L 708.0 351.0 L 706.0 348.0 L 704.0 344.0 L 700.0 343.0 L 696.0 341.0 L 694.0 338.0 L 691.0 336.0 L 687.0 336.0 L 683.0 337.0 L 679.0 338.0 L 676.0 340.0 L 672.0 340.0 L 668.0 339.0 L 666.0 342.0 L 662.0 342.0 L 658.0 342.0 L 654.0 342.0 L 652.0 339.0 L 652.0 335.0 L 652.0 331.0 L 650.0 328.0 L 649.0 324.0 L 648.0 320.0 L 648.0 316.0 L 648.0 312.0 L 648.0 308.0 L 650.0 305.0 L 653.0 303.0 L 657.0 303.0 L 660.0 301.0 L 664.0 300.0 L 666.0 297.0 L 668.0 294.0 L 671.0 292.0 L 674.0 290.0 L 677.0 288.0 L 681.0 288.0 L 685.0 286.0 L 688.0 284.0 L 691.0 282.0 L 695.0 282.0 L 699.0 282.0 L 703.0 283.0 L 703.0 287.0 L 705.0 291.0 L 708.0 293.0 L 710.0 289.0 L 711.0 285.0 L 711.0 281.0 L 707.0 281.0 L 703.0 280.0 L 702.0 276.0 L 700.0 272.0 L 696.0 272.0 L 693.0 270.0 L 691.0 267.0 L 689.0 264.0 L 689.0 260.0 L 689.0 259.0 Z"/> + <path id="continent-11" data-area="3434" d="M 269.0 437.0 L 273.0 437.0 L 275.0 440.0 L 275.0 444.0 L 272.0 446.0 L 269.0 448.0 L 267.0 452.0 L 265.0 455.0 L 263.0 459.0 L 260.0 461.0 L 261.0 465.0 L 264.0 467.0 L 264.0 471.0 L 265.0 475.0 L 266.0 479.0 L 268.0 482.0 L 269.0 486.0 L 269.0 490.0 L 269.0 494.0 L 269.0 498.0 L 268.0 502.0 L 268.0 506.0 L 268.0 510.0 L 266.0 513.0 L 264.0 516.0 L 260.0 516.0 L 256.0 516.0 L 252.0 516.0 L 248.0 516.0 L 244.0 516.0 L 240.0 516.0 L 236.0 516.0 L 232.0 516.0 L 228.0 516.0 L 224.0 516.0 L 220.0 516.0 L 216.0 516.0 L 212.0 516.0 L 208.0 516.0 L 204.0 516.0 L 200.0 516.0 L 196.0 516.0 L 192.0 516.0 L 188.0 516.0 L 184.0 516.0 L 180.0 516.0 L 176.0 516.0 L 175.0 512.0 L 173.0 509.0 L 172.0 505.0 L 170.0 502.0 L 170.0 498.0 L 172.0 495.0 L 174.0 492.0 L 174.0 488.0 L 178.0 487.0 L 182.0 487.0 L 186.0 487.0 L 190.0 489.0 L 191.0 493.0 L 193.0 496.0 L 197.0 496.0 L 201.0 496.0 L 205.0 496.0 L 209.0 498.0 L 213.0 498.0 L 216.0 500.0 L 219.0 498.0 L 223.0 497.0 L 227.0 497.0 L 230.0 500.0 L 234.0 501.0 L 237.0 499.0 L 238.0 495.0 L 235.0 492.0 L 232.0 490.0 L 232.0 486.0 L 234.0 483.0 L 238.0 482.0 L 239.0 478.0 L 238.0 474.0 L 238.0 470.0 L 240.0 467.0 L 244.0 467.0 L 248.0 468.0 L 249.0 464.0 L 249.0 460.0 L 250.0 456.0 L 252.0 452.0 L 255.0 449.0 L 257.0 446.0 L 259.0 443.0 L 263.0 442.0 L 267.0 441.0 L 269.0 438.0 L 269.0 437.0 Z"/> + <path id="continent-3" data-area="546" d="M 523.0 1.0 L 527.0 1.0 L 531.0 1.0 L 534.0 3.0 L 534.0 7.0 L 533.0 11.0 L 532.0 15.0 L 529.0 18.0 L 526.0 20.0 L 526.0 24.0 L 526.0 28.0 L 527.0 32.0 L 527.0 36.0 L 524.0 38.0 L 520.0 38.0 L 517.0 36.0 L 515.0 33.0 L 511.0 32.0 L 511.0 28.0 L 512.0 24.0 L 514.0 21.0 L 515.0 17.0 L 517.0 14.0 L 518.0 10.0 L 521.0 7.0 L 523.0 3.0 L 523.0 1.0 Z"/> + <path id="continent-9" data-area="540" d="M 781.0 340.0 L 785.0 340.0 L 787.0 343.0 L 791.0 345.0 L 794.0 347.0 L 796.0 350.0 L 796.0 354.0 L 793.0 357.0 L 791.0 361.0 L 787.0 361.0 L 785.0 365.0 L 783.0 368.0 L 780.0 370.0 L 778.0 373.0 L 777.0 377.0 L 773.0 377.0 L 769.0 376.0 L 766.0 374.0 L 766.0 370.0 L 769.0 367.0 L 769.0 363.0 L 773.0 361.0 L 776.0 358.0 L 779.0 356.0 L 782.0 354.0 L 782.0 350.0 L 781.0 346.0 L 781.0 342.0 L 781.0 340.0 Z"/> + </g> +</svg> diff --git a/assets/hub-logo-continents-mercator-globe.snapshot-vertical.svg b/assets/hub-logo-continents-mercator-globe.snapshot-vertical.svg new file mode 100644 index 0000000..cdacd04 --- /dev/null +++ b/assets/hub-logo-continents-mercator-globe.snapshot-vertical.svg @@ -0,0 +1,28 @@ +<svg xmlns="http://www.w3.org/2000/svg" width="1920" height="1080" viewBox="0 0 1920 1080" preserveAspectRatio="xMidYMid slice" role="img" aria-label="Continents vertical-fit snapshot"> + <defs> + <clipPath id="globeClip"><circle cx="720" cy="560" r="322"/></clipPath> + <radialGradient id="continentRelief" cx="34%" cy="22%" r="78%"> + <stop offset="0%" stop-color="#dbe7f6" stop-opacity="0.45"/> + <stop offset="58%" stop-color="#9ab3cc" stop-opacity="0.22"/> + <stop offset="100%" stop-color="#6a7f97" stop-opacity="0.18"/> + </radialGradient> + <filter id="continentDepth" x="-30%" y="-30%" width="160%" height="160%"> + <feDropShadow dx="-4" dy="-6" stdDeviation="3" flood-color="#f4fbff" flood-opacity="0.2"/> + <feDropShadow dx="4" dy="6" stdDeviation="4" flood-color="#0a1220" flood-opacity="0.28"/> + </filter> + </defs> + <g id="continents-outer-layer" clip-path="url(#globeClip)" transform="translate(720 560) scale(1.000 1.000) translate(-720 -560)"> + <g id="continents-inner-layer" transform="translate(0.00 238.00) scale(1.2408 1.2408)"> + <g id="continents-flat" fill="url(#continentRelief)" fill-opacity="0.9" stroke="#dce8f6" stroke-opacity="0.78" stroke-width="1.2" filter="url(#continentDepth)"> + <path id="continent-4" data-area="78439" d="M 591.0 1.0 L 595.0 1.0 L 599.0 1.0 L 603.0 1.0 L 607.0 1.0 L 611.0 1.0 L 615.0 1.0 L 619.0 1.0 L 623.0 1.0 L 627.0 1.0 L 631.0 1.0 L 635.0 1.0 L 639.0 1.0 L 643.0 1.0 L 647.0 1.0 L 650.0 3.0 L 650.0 7.0 L 647.0 9.0 L 650.0 11.0 L 654.0 13.0 L 658.0 13.0 L 662.0 13.0 L 665.0 16.0 L 667.0 19.0 L 670.0 16.0 L 672.0 13.0 L 676.0 13.0 L 680.0 13.0 L 684.0 15.0 L 686.0 18.0 L 685.0 22.0 L 686.0 26.0 L 688.0 29.0 L 691.0 27.0 L 695.0 27.0 L 699.0 28.0 L 703.0 29.0 L 705.0 26.0 L 705.0 22.0 L 708.0 20.0 L 712.0 19.0 L 716.0 19.0 L 719.0 21.0 L 723.0 21.0 L 726.0 23.0 L 730.0 24.0 L 732.0 27.0 L 734.0 30.0 L 737.0 32.0 L 741.0 32.0 L 745.0 32.0 L 749.0 33.0 L 752.0 35.0 L 754.0 38.0 L 756.0 41.0 L 760.0 41.0 L 764.0 41.0 L 768.0 41.0 L 772.0 41.0 L 775.0 39.0 L 779.0 39.0 L 783.0 39.0 L 787.0 39.0 L 791.0 40.0 L 794.0 42.0 L 797.0 44.0 L 798.0 48.0 L 798.0 52.0 L 798.0 56.0 L 798.0 60.0 L 798.0 64.0 L 798.0 68.0 L 798.0 72.0 L 797.0 76.0 L 797.0 80.0 L 797.0 84.0 L 793.0 84.0 L 790.0 86.0 L 786.0 88.0 L 783.0 91.0 L 780.0 94.0 L 776.0 95.0 L 772.0 94.0 L 768.0 95.0 L 764.0 95.0 L 762.0 98.0 L 762.0 102.0 L 762.0 106.0 L 762.0 110.0 L 760.0 114.0 L 758.0 118.0 L 755.0 120.0 L 753.0 123.0 L 752.0 127.0 L 749.0 129.0 L 745.0 129.0 L 743.0 126.0 L 741.0 123.0 L 740.0 119.0 L 740.0 115.0 L 740.0 111.0 L 741.0 107.0 L 742.0 103.0 L 745.0 101.0 L 748.0 99.0 L 750.0 96.0 L 752.0 93.0 L 751.0 89.0 L 747.0 90.0 L 746.0 94.0 L 743.0 96.0 L 741.0 100.0 L 737.0 100.0 L 733.0 100.0 L 730.0 98.0 L 726.0 98.0 L 722.0 98.0 L 718.0 98.0 L 715.0 100.0 L 713.0 103.0 L 711.0 106.0 L 708.0 109.0 L 705.0 112.0 L 705.0 116.0 L 709.0 116.0 L 713.0 116.0 L 716.0 118.0 L 719.0 120.0 L 719.0 124.0 L 720.0 128.0 L 720.0 132.0 L 719.0 136.0 L 719.0 140.0 L 719.0 144.0 L 719.0 148.0 L 722.0 150.0 L 722.0 154.0 L 721.0 158.0 L 717.0 159.0 L 716.0 163.0 L 715.0 167.0 L 714.0 171.0 L 712.0 174.0 L 712.0 178.0 L 709.0 180.0 L 705.0 182.0 L 701.0 182.0 L 698.0 184.0 L 694.0 184.0 L 692.0 187.0 L 689.0 189.0 L 685.0 189.0 L 685.0 185.0 L 685.0 181.0 L 681.0 180.0 L 677.0 180.0 L 676.0 176.0 L 675.0 172.0 L 673.0 169.0 L 671.0 172.0 L 668.0 174.0 L 666.0 177.0 L 668.0 180.0 L 670.0 183.0 L 670.0 187.0 L 670.0 191.0 L 670.0 195.0 L 668.0 198.0 L 669.0 202.0 L 670.0 206.0 L 669.0 210.0 L 665.0 210.0 L 662.0 208.0 L 659.0 210.0 L 656.0 212.0 L 652.0 212.0 L 649.0 214.0 L 646.0 216.0 L 644.0 219.0 L 642.0 222.0 L 643.0 226.0 L 643.0 230.0 L 642.0 234.0 L 641.0 238.0 L 638.0 240.0 L 634.0 241.0 L 630.0 241.0 L 630.0 245.0 L 631.0 249.0 L 631.0 253.0 L 631.0 257.0 L 633.0 260.0 L 636.0 263.0 L 637.0 267.0 L 640.0 269.0 L 640.0 265.0 L 639.0 261.0 L 637.0 258.0 L 637.0 254.0 L 641.0 253.0 L 644.0 251.0 L 646.0 248.0 L 649.0 246.0 L 651.0 243.0 L 654.0 241.0 L 658.0 241.0 L 662.0 243.0 L 664.0 246.0 L 664.0 250.0 L 663.0 254.0 L 663.0 258.0 L 666.0 260.0 L 670.0 260.0 L 672.0 263.0 L 672.0 267.0 L 672.0 271.0 L 668.0 271.0 L 664.0 270.0 L 663.0 266.0 L 663.0 262.0 L 661.0 265.0 L 658.0 267.0 L 656.0 270.0 L 652.0 270.0 L 649.0 272.0 L 653.0 273.0 L 653.0 277.0 L 650.0 279.0 L 646.0 278.0 L 642.0 278.0 L 638.0 278.0 L 634.0 278.0 L 632.0 275.0 L 628.0 274.0 L 625.0 272.0 L 622.0 270.0 L 620.0 266.0 L 617.0 263.0 L 615.0 260.0 L 613.0 256.0 L 610.0 254.0 L 609.0 250.0 L 609.0 246.0 L 613.0 245.0 L 617.0 244.0 L 615.0 241.0 L 615.0 237.0 L 614.0 233.0 L 613.0 229.0 L 611.0 226.0 L 607.0 225.0 L 606.0 221.0 L 604.0 217.0 L 602.0 214.0 L 598.0 214.0 L 594.0 216.0 L 591.0 219.0 L 588.0 222.0 L 585.0 224.0 L 582.0 226.0 L 580.0 229.0 L 580.0 233.0 L 578.0 236.0 L 582.0 238.0 L 582.0 242.0 L 582.0 246.0 L 579.0 248.0 L 575.0 247.0 L 573.0 244.0 L 570.0 242.0 L 567.0 240.0 L 565.0 236.0 L 563.0 232.0 L 561.0 228.0 L 559.0 225.0 L 559.0 221.0 L 559.0 217.0 L 557.0 214.0 L 553.0 214.0 L 551.0 211.0 L 548.0 209.0 L 545.0 207.0 L 542.0 205.0 L 538.0 204.0 L 534.0 206.0 L 534.0 210.0 L 533.0 214.0 L 531.0 217.0 L 528.0 220.0 L 526.0 223.0 L 522.0 224.0 L 518.0 225.0 L 515.0 227.0 L 511.0 228.0 L 508.0 230.0 L 512.0 231.0 L 516.0 232.0 L 516.0 236.0 L 514.0 239.0 L 514.0 243.0 L 512.0 246.0 L 510.0 249.0 L 507.0 252.0 L 505.0 255.0 L 502.0 257.0 L 499.0 259.0 L 495.0 261.0 L 494.0 265.0 L 492.0 268.0 L 490.0 271.0 L 490.0 275.0 L 492.0 279.0 L 492.0 283.0 L 493.0 287.0 L 494.0 291.0 L 498.0 291.0 L 502.0 290.0 L 504.0 287.0 L 507.0 285.0 L 511.0 285.0 L 514.0 287.0 L 514.0 291.0 L 514.0 295.0 L 512.0 299.0 L 512.0 303.0 L 510.0 306.0 L 509.0 310.0 L 508.0 314.0 L 506.0 317.0 L 504.0 320.0 L 500.0 320.0 L 496.0 319.0 L 495.0 315.0 L 493.0 312.0 L 493.0 308.0 L 494.0 304.0 L 495.0 300.0 L 495.0 296.0 L 492.0 294.0 L 491.0 298.0 L 488.0 300.0 L 485.0 302.0 L 482.0 305.0 L 481.0 309.0 L 481.0 313.0 L 479.0 317.0 L 476.0 319.0 L 474.0 322.0 L 474.0 326.0 L 472.0 329.0 L 468.0 330.0 L 468.0 334.0 L 466.0 337.0 L 464.0 340.0 L 461.0 342.0 L 457.0 342.0 L 453.0 342.0 L 449.0 342.0 L 445.0 342.0 L 441.0 342.0 L 438.0 339.0 L 437.0 335.0 L 437.0 331.0 L 435.0 328.0 L 432.0 326.0 L 431.0 322.0 L 431.0 318.0 L 430.0 314.0 L 429.0 310.0 L 427.0 306.0 L 425.0 303.0 L 424.0 299.0 L 424.0 295.0 L 425.0 291.0 L 427.0 287.0 L 427.0 283.0 L 427.0 279.0 L 427.0 275.0 L 424.0 273.0 L 422.0 269.0 L 419.0 266.0 L 419.0 262.0 L 419.0 258.0 L 419.0 254.0 L 416.0 252.0 L 412.0 252.0 L 409.0 249.0 L 405.0 249.0 L 401.0 250.0 L 397.0 250.0 L 393.0 250.0 L 389.0 251.0 L 385.0 252.0 L 381.0 252.0 L 378.0 250.0 L 375.0 247.0 L 371.0 245.0 L 369.0 242.0 L 367.0 239.0 L 365.0 236.0 L 362.0 234.0 L 361.0 230.0 L 360.0 226.0 L 360.0 222.0 L 362.0 219.0 L 362.0 215.0 L 361.0 211.0 L 361.0 207.0 L 362.0 203.0 L 365.0 201.0 L 367.0 197.0 L 369.0 194.0 L 372.0 191.0 L 375.0 189.0 L 378.0 187.0 L 378.0 183.0 L 378.0 179.0 L 382.0 177.0 L 381.0 173.0 L 377.0 172.0 L 377.0 168.0 L 377.0 164.0 L 377.0 160.0 L 379.0 156.0 L 379.0 152.0 L 381.0 149.0 L 385.0 149.0 L 389.0 151.0 L 393.0 150.0 L 395.0 147.0 L 393.0 144.0 L 390.0 142.0 L 388.0 139.0 L 389.0 135.0 L 388.0 131.0 L 386.0 128.0 L 382.0 129.0 L 378.0 128.0 L 375.0 126.0 L 375.0 122.0 L 375.0 118.0 L 377.0 115.0 L 380.0 112.0 L 384.0 111.0 L 385.0 107.0 L 385.0 103.0 L 387.0 100.0 L 389.0 97.0 L 393.0 97.0 L 395.0 100.0 L 398.0 102.0 L 398.0 106.0 L 398.0 110.0 L 401.0 113.0 L 402.0 117.0 L 404.0 120.0 L 408.0 121.0 L 410.0 118.0 L 414.0 117.0 L 415.0 113.0 L 415.0 109.0 L 415.0 105.0 L 411.0 103.0 L 411.0 99.0 L 411.0 95.0 L 409.0 92.0 L 409.0 88.0 L 409.0 84.0 L 410.0 80.0 L 413.0 77.0 L 417.0 75.0 L 420.0 72.0 L 422.0 69.0 L 425.0 67.0 L 425.0 63.0 L 426.0 59.0 L 428.0 56.0 L 431.0 53.0 L 433.0 50.0 L 435.0 47.0 L 437.0 44.0 L 440.0 42.0 L 444.0 40.0 L 446.0 37.0 L 450.0 37.0 L 451.0 33.0 L 455.0 33.0 L 459.0 33.0 L 463.0 33.0 L 467.0 33.0 L 468.0 37.0 L 471.0 39.0 L 475.0 40.0 L 477.0 43.0 L 481.0 43.0 L 484.0 45.0 L 487.0 47.0 L 490.0 50.0 L 493.0 53.0 L 495.0 50.0 L 497.0 47.0 L 501.0 47.0 L 504.0 50.0 L 508.0 50.0 L 511.0 47.0 L 515.0 47.0 L 519.0 47.0 L 523.0 47.0 L 527.0 46.0 L 530.0 44.0 L 530.0 40.0 L 534.0 39.0 L 538.0 39.0 L 541.0 41.0 L 545.0 41.0 L 545.0 37.0 L 545.0 33.0 L 547.0 29.0 L 549.0 25.0 L 550.0 21.0 L 553.0 19.0 L 557.0 19.0 L 561.0 19.0 L 564.0 22.0 L 568.0 23.0 L 572.0 24.0 L 575.0 22.0 L 575.0 18.0 L 575.0 14.0 L 578.0 12.0 L 582.0 12.0 L 586.0 13.0 L 589.0 10.0 L 589.0 6.0 L 590.0 2.0 L 591.0 1.0 Z"/> + <path id="continent-1" data-area="42423" d="M 148.0 1.0 L 152.0 1.0 L 156.0 1.0 L 160.0 1.0 L 160.0 5.0 L 157.0 8.0 L 154.0 10.0 L 150.0 10.0 L 146.0 11.0 L 147.0 15.0 L 151.0 15.0 L 153.0 19.0 L 157.0 19.0 L 160.0 16.0 L 164.0 15.0 L 168.0 16.0 L 170.0 19.0 L 172.0 23.0 L 173.0 19.0 L 176.0 17.0 L 177.0 13.0 L 179.0 10.0 L 183.0 10.0 L 187.0 11.0 L 189.0 8.0 L 193.0 7.0 L 196.0 5.0 L 196.0 1.0 L 200.0 1.0 L 204.0 1.0 L 208.0 1.0 L 212.0 1.0 L 216.0 1.0 L 220.0 1.0 L 224.0 1.0 L 225.0 5.0 L 223.0 8.0 L 219.0 8.0 L 215.0 9.0 L 218.0 11.0 L 222.0 11.0 L 225.0 14.0 L 226.0 18.0 L 230.0 19.0 L 234.0 19.0 L 237.0 21.0 L 239.0 25.0 L 241.0 29.0 L 245.0 30.0 L 248.0 32.0 L 251.0 34.0 L 253.0 38.0 L 255.0 41.0 L 255.0 45.0 L 255.0 49.0 L 259.0 51.0 L 261.0 54.0 L 264.0 56.0 L 267.0 58.0 L 267.0 62.0 L 266.0 66.0 L 264.0 70.0 L 260.0 71.0 L 260.0 75.0 L 260.0 79.0 L 257.0 81.0 L 256.0 85.0 L 252.0 85.0 L 248.0 86.0 L 250.0 89.0 L 251.0 93.0 L 252.0 97.0 L 255.0 94.0 L 257.0 91.0 L 261.0 91.0 L 263.0 94.0 L 265.0 98.0 L 267.0 101.0 L 268.0 105.0 L 270.0 108.0 L 272.0 111.0 L 276.0 111.0 L 277.0 115.0 L 280.0 117.0 L 281.0 121.0 L 281.0 125.0 L 280.0 129.0 L 283.0 131.0 L 286.0 134.0 L 286.0 138.0 L 286.0 142.0 L 283.0 144.0 L 279.0 144.0 L 276.0 142.0 L 272.0 142.0 L 268.0 142.0 L 268.0 146.0 L 265.0 148.0 L 263.0 151.0 L 261.0 154.0 L 257.0 154.0 L 253.0 154.0 L 253.0 150.0 L 250.0 152.0 L 248.0 155.0 L 247.0 159.0 L 244.0 162.0 L 241.0 164.0 L 238.0 166.0 L 236.0 170.0 L 236.0 174.0 L 236.0 178.0 L 233.0 180.0 L 230.0 183.0 L 227.0 185.0 L 224.0 187.0 L 225.0 191.0 L 226.0 195.0 L 226.0 199.0 L 226.0 203.0 L 228.0 206.0 L 232.0 207.0 L 235.0 209.0 L 237.0 212.0 L 241.0 212.0 L 245.0 212.0 L 249.0 213.0 L 249.0 217.0 L 247.0 221.0 L 243.0 222.0 L 239.0 222.0 L 237.0 219.0 L 236.0 215.0 L 232.0 216.0 L 228.0 216.0 L 225.0 214.0 L 221.0 213.0 L 217.0 212.0 L 214.0 210.0 L 214.0 206.0 L 217.0 204.0 L 217.0 200.0 L 217.0 196.0 L 215.0 193.0 L 212.0 191.0 L 208.0 191.0 L 204.0 191.0 L 200.0 191.0 L 196.0 191.0 L 194.0 194.0 L 191.0 196.0 L 189.0 199.0 L 188.0 203.0 L 188.0 207.0 L 190.0 211.0 L 192.0 214.0 L 196.0 214.0 L 198.0 211.0 L 201.0 209.0 L 204.0 207.0 L 208.0 207.0 L 211.0 210.0 L 211.0 214.0 L 210.0 218.0 L 212.0 221.0 L 216.0 221.0 L 219.0 224.0 L 220.0 228.0 L 219.0 232.0 L 221.0 235.0 L 225.0 235.0 L 229.0 236.0 L 232.0 233.0 L 236.0 231.0 L 239.0 229.0 L 243.0 229.0 L 246.0 231.0 L 250.0 231.0 L 254.0 233.0 L 258.0 233.0 L 262.0 233.0 L 266.0 233.0 L 269.0 236.0 L 272.0 238.0 L 275.0 241.0 L 278.0 243.0 L 282.0 243.0 L 286.0 244.0 L 289.0 246.0 L 291.0 249.0 L 292.0 253.0 L 293.0 257.0 L 297.0 257.0 L 301.0 258.0 L 304.0 260.0 L 307.0 262.0 L 311.0 262.0 L 315.0 262.0 L 318.0 264.0 L 321.0 266.0 L 325.0 267.0 L 325.0 271.0 L 325.0 275.0 L 325.0 279.0 L 325.0 283.0 L 321.0 285.0 L 319.0 289.0 L 318.0 293.0 L 317.0 297.0 L 316.0 301.0 L 316.0 305.0 L 314.0 308.0 L 311.0 311.0 L 309.0 314.0 L 305.0 314.0 L 301.0 315.0 L 298.0 318.0 L 296.0 321.0 L 296.0 325.0 L 294.0 328.0 L 290.0 330.0 L 290.0 334.0 L 288.0 338.0 L 285.0 340.0 L 282.0 342.0 L 278.0 343.0 L 278.0 347.0 L 277.0 351.0 L 273.0 352.0 L 269.0 353.0 L 266.0 355.0 L 265.0 359.0 L 261.0 359.0 L 260.0 363.0 L 260.0 367.0 L 258.0 371.0 L 257.0 375.0 L 257.0 379.0 L 255.0 383.0 L 254.0 387.0 L 252.0 390.0 L 253.0 394.0 L 255.0 397.0 L 256.0 401.0 L 256.0 405.0 L 252.0 406.0 L 248.0 406.0 L 244.0 405.0 L 244.0 401.0 L 240.0 400.0 L 237.0 398.0 L 236.0 394.0 L 234.0 391.0 L 234.0 387.0 L 235.0 383.0 L 235.0 379.0 L 233.0 376.0 L 232.0 372.0 L 234.0 368.0 L 237.0 366.0 L 236.0 362.0 L 235.0 358.0 L 235.0 354.0 L 236.0 350.0 L 237.0 346.0 L 237.0 342.0 L 238.0 338.0 L 239.0 334.0 L 241.0 331.0 L 241.0 327.0 L 241.0 323.0 L 241.0 319.0 L 242.0 315.0 L 243.0 311.0 L 243.0 307.0 L 243.0 303.0 L 241.0 300.0 L 238.0 298.0 L 236.0 295.0 L 232.0 294.0 L 230.0 291.0 L 229.0 287.0 L 227.0 284.0 L 225.0 281.0 L 223.0 278.0 L 221.0 275.0 L 219.0 272.0 L 219.0 268.0 L 219.0 264.0 L 219.0 260.0 L 221.0 257.0 L 222.0 253.0 L 224.0 250.0 L 227.0 248.0 L 225.0 245.0 L 221.0 245.0 L 217.0 245.0 L 214.0 243.0 L 211.0 241.0 L 209.0 238.0 L 207.0 235.0 L 204.0 233.0 L 200.0 231.0 L 198.0 228.0 L 194.0 228.0 L 190.0 226.0 L 186.0 226.0 L 182.0 226.0 L 179.0 224.0 L 176.0 222.0 L 172.0 220.0 L 168.0 218.0 L 166.0 215.0 L 166.0 211.0 L 163.0 209.0 L 159.0 210.0 L 155.0 208.0 L 152.0 206.0 L 150.0 202.0 L 147.0 200.0 L 145.0 196.0 L 145.0 192.0 L 141.0 190.0 L 140.0 186.0 L 137.0 183.0 L 134.0 181.0 L 131.0 178.0 L 129.0 175.0 L 127.0 172.0 L 125.0 169.0 L 124.0 165.0 L 124.0 161.0 L 124.0 157.0 L 124.0 153.0 L 123.0 149.0 L 124.0 145.0 L 123.0 141.0 L 121.0 138.0 L 119.0 135.0 L 118.0 131.0 L 116.0 128.0 L 115.0 124.0 L 112.0 122.0 L 111.0 118.0 L 109.0 115.0 L 107.0 111.0 L 105.0 108.0 L 104.0 104.0 L 101.0 102.0 L 97.0 102.0 L 93.0 101.0 L 91.0 98.0 L 88.0 96.0 L 84.0 95.0 L 80.0 95.0 L 76.0 94.0 L 72.0 94.0 L 70.0 97.0 L 66.0 97.0 L 63.0 100.0 L 66.0 102.0 L 66.0 106.0 L 63.0 108.0 L 59.0 108.0 L 55.0 109.0 L 52.0 111.0 L 50.0 114.0 L 46.0 114.0 L 42.0 115.0 L 39.0 113.0 L 39.0 109.0 L 43.0 108.0 L 45.0 105.0 L 48.0 103.0 L 45.0 101.0 L 42.0 99.0 L 40.0 96.0 L 36.0 94.0 L 34.0 90.0 L 32.0 87.0 L 32.0 83.0 L 33.0 79.0 L 36.0 77.0 L 40.0 76.0 L 37.0 74.0 L 33.0 74.0 L 31.0 71.0 L 29.0 68.0 L 25.0 69.0 L 23.0 72.0 L 27.0 73.0 L 28.0 77.0 L 25.0 79.0 L 22.0 77.0 L 20.0 74.0 L 16.0 74.0 L 12.0 72.0 L 10.0 69.0 L 6.0 68.0 L 2.0 68.0 L 1.0 64.0 L 1.0 60.0 L 1.0 56.0 L 1.0 52.0 L 1.0 48.0 L 4.0 46.0 L 8.0 47.0 L 12.0 48.0 L 14.0 51.0 L 16.0 54.0 L 20.0 55.0 L 24.0 55.0 L 27.0 57.0 L 29.0 60.0 L 33.0 61.0 L 37.0 59.0 L 34.0 56.0 L 32.0 53.0 L 31.0 49.0 L 32.0 45.0 L 36.0 45.0 L 37.0 41.0 L 39.0 38.0 L 41.0 35.0 L 45.0 34.0 L 48.0 32.0 L 51.0 30.0 L 55.0 30.0 L 59.0 31.0 L 63.0 31.0 L 66.0 33.0 L 70.0 35.0 L 74.0 35.0 L 78.0 36.0 L 82.0 37.0 L 86.0 37.0 L 90.0 38.0 L 93.0 40.0 L 96.0 42.0 L 100.0 43.0 L 103.0 41.0 L 106.0 39.0 L 110.0 38.0 L 114.0 38.0 L 116.0 34.0 L 120.0 34.0 L 123.0 37.0 L 125.0 40.0 L 129.0 39.0 L 133.0 39.0 L 137.0 39.0 L 139.0 42.0 L 139.0 38.0 L 139.0 34.0 L 137.0 31.0 L 134.0 34.0 L 130.0 34.0 L 126.0 34.0 L 124.0 31.0 L 121.0 28.0 L 121.0 24.0 L 123.0 20.0 L 123.0 16.0 L 124.0 12.0 L 123.0 8.0 L 125.0 5.0 L 129.0 5.0 L 133.0 5.0 L 137.0 5.0 L 140.0 7.0 L 144.0 8.0 L 146.0 5.0 L 148.0 1.0 Z"/> + <path id="continent-12" data-area="21849" d="M 694.0 446.0 L 698.0 446.0 L 700.0 449.0 L 703.0 451.0 L 707.0 453.0 L 711.0 454.0 L 715.0 455.0 L 718.0 457.0 L 722.0 457.0 L 725.0 460.0 L 728.0 463.0 L 731.0 465.0 L 734.0 467.0 L 738.0 467.0 L 742.0 467.0 L 745.0 469.0 L 749.0 470.0 L 752.0 472.0 L 755.0 474.0 L 758.0 477.0 L 762.0 477.0 L 765.0 479.0 L 769.0 479.0 L 772.0 481.0 L 775.0 483.0 L 778.0 486.0 L 779.0 490.0 L 779.0 494.0 L 778.0 498.0 L 776.0 501.0 L 774.0 504.0 L 770.0 505.0 L 768.0 508.0 L 766.0 511.0 L 764.0 514.0 L 761.0 516.0 L 757.0 516.0 L 753.0 516.0 L 749.0 516.0 L 745.0 516.0 L 741.0 516.0 L 737.0 516.0 L 733.0 516.0 L 729.0 516.0 L 725.0 516.0 L 721.0 516.0 L 717.0 516.0 L 713.0 516.0 L 709.0 516.0 L 705.0 516.0 L 701.0 516.0 L 697.0 516.0 L 693.0 516.0 L 689.0 516.0 L 685.0 516.0 L 681.0 516.0 L 677.0 516.0 L 673.0 516.0 L 669.0 516.0 L 665.0 516.0 L 661.0 516.0 L 657.0 516.0 L 653.0 516.0 L 649.0 516.0 L 645.0 516.0 L 641.0 516.0 L 637.0 516.0 L 633.0 516.0 L 629.0 516.0 L 625.0 516.0 L 621.0 516.0 L 617.0 516.0 L 613.0 516.0 L 609.0 516.0 L 605.0 516.0 L 601.0 516.0 L 597.0 516.0 L 593.0 516.0 L 589.0 516.0 L 585.0 516.0 L 581.0 516.0 L 577.0 516.0 L 573.0 516.0 L 569.0 516.0 L 565.0 516.0 L 561.0 516.0 L 557.0 516.0 L 553.0 516.0 L 549.0 516.0 L 545.0 516.0 L 541.0 516.0 L 537.0 516.0 L 533.0 516.0 L 529.0 516.0 L 525.0 516.0 L 521.0 516.0 L 517.0 516.0 L 513.0 516.0 L 509.0 516.0 L 505.0 516.0 L 501.0 516.0 L 497.0 516.0 L 493.0 516.0 L 489.0 516.0 L 485.0 516.0 L 481.0 516.0 L 477.0 516.0 L 473.0 516.0 L 469.0 516.0 L 465.0 516.0 L 461.0 516.0 L 457.0 516.0 L 453.0 516.0 L 449.0 516.0 L 445.0 516.0 L 441.0 516.0 L 437.0 516.0 L 433.0 516.0 L 429.0 516.0 L 425.0 516.0 L 421.0 516.0 L 417.0 516.0 L 413.0 516.0 L 409.0 516.0 L 405.0 516.0 L 401.0 516.0 L 397.0 516.0 L 393.0 516.0 L 389.0 516.0 L 385.0 516.0 L 381.0 516.0 L 377.0 516.0 L 373.0 516.0 L 369.0 516.0 L 365.0 516.0 L 361.0 516.0 L 360.0 512.0 L 361.0 508.0 L 361.0 504.0 L 361.0 500.0 L 364.0 498.0 L 367.0 496.0 L 369.0 493.0 L 371.0 490.0 L 371.0 486.0 L 373.0 483.0 L 377.0 482.0 L 381.0 481.0 L 384.0 479.0 L 388.0 479.0 L 390.0 482.0 L 394.0 483.0 L 398.0 483.0 L 402.0 481.0 L 406.0 480.0 L 410.0 479.0 L 413.0 476.0 L 417.0 475.0 L 421.0 475.0 L 425.0 476.0 L 429.0 475.0 L 433.0 475.0 L 437.0 475.0 L 441.0 474.0 L 445.0 474.0 L 449.0 476.0 L 453.0 477.0 L 457.0 476.0 L 460.0 474.0 L 464.0 474.0 L 467.0 471.0 L 470.0 469.0 L 472.0 466.0 L 476.0 465.0 L 480.0 466.0 L 482.0 470.0 L 485.0 468.0 L 488.0 466.0 L 492.0 464.0 L 495.0 462.0 L 498.0 459.0 L 502.0 459.0 L 506.0 457.0 L 509.0 455.0 L 511.0 452.0 L 515.0 451.0 L 519.0 451.0 L 523.0 451.0 L 527.0 452.0 L 529.0 455.0 L 532.0 457.0 L 536.0 458.0 L 540.0 459.0 L 543.0 461.0 L 547.0 461.0 L 551.0 461.0 L 555.0 461.0 L 557.0 464.0 L 557.0 468.0 L 556.0 472.0 L 557.0 476.0 L 560.0 474.0 L 563.0 471.0 L 567.0 469.0 L 569.0 466.0 L 571.0 463.0 L 574.0 461.0 L 576.0 458.0 L 580.0 457.0 L 583.0 455.0 L 587.0 455.0 L 591.0 454.0 L 595.0 454.0 L 599.0 454.0 L 603.0 454.0 L 607.0 454.0 L 611.0 454.0 L 615.0 454.0 L 619.0 452.0 L 623.0 451.0 L 627.0 451.0 L 631.0 451.0 L 635.0 451.0 L 638.0 453.0 L 642.0 451.0 L 646.0 451.0 L 650.0 451.0 L 654.0 452.0 L 658.0 453.0 L 662.0 454.0 L 666.0 455.0 L 669.0 453.0 L 673.0 453.0 L 677.0 454.0 L 681.0 454.0 L 685.0 453.0 L 689.0 453.0 L 692.0 451.0 L 692.0 447.0 L 694.0 446.0 Z"/> + <path id="continent-2" data-area="5520" d="M 272.0 1.0 L 276.0 1.0 L 280.0 1.0 L 284.0 1.0 L 288.0 1.0 L 292.0 1.0 L 296.0 1.0 L 300.0 1.0 L 304.0 1.0 L 308.0 1.0 L 312.0 1.0 L 316.0 1.0 L 320.0 1.0 L 324.0 1.0 L 328.0 1.0 L 332.0 1.0 L 336.0 1.0 L 340.0 1.0 L 344.0 1.0 L 348.0 1.0 L 352.0 1.0 L 356.0 1.0 L 360.0 2.0 L 361.0 6.0 L 361.0 10.0 L 358.0 13.0 L 357.0 17.0 L 355.0 20.0 L 351.0 20.0 L 352.0 24.0 L 353.0 28.0 L 355.0 31.0 L 355.0 35.0 L 355.0 39.0 L 352.0 41.0 L 350.0 45.0 L 348.0 48.0 L 346.0 51.0 L 342.0 52.0 L 338.0 52.0 L 334.0 53.0 L 331.0 55.0 L 329.0 58.0 L 329.0 62.0 L 327.0 65.0 L 323.0 67.0 L 319.0 67.0 L 316.0 69.0 L 314.0 72.0 L 313.0 76.0 L 313.0 80.0 L 310.0 83.0 L 310.0 87.0 L 310.0 91.0 L 308.0 94.0 L 304.0 95.0 L 300.0 95.0 L 296.0 93.0 L 292.0 91.0 L 290.0 88.0 L 289.0 84.0 L 286.0 81.0 L 285.0 77.0 L 283.0 74.0 L 283.0 70.0 L 281.0 67.0 L 281.0 63.0 L 281.0 59.0 L 281.0 55.0 L 283.0 51.0 L 284.0 47.0 L 283.0 43.0 L 281.0 40.0 L 281.0 36.0 L 279.0 33.0 L 276.0 31.0 L 275.0 27.0 L 275.0 23.0 L 275.0 19.0 L 275.0 15.0 L 273.0 12.0 L 273.0 8.0 L 272.0 4.0 L 272.0 1.0 Z"/> + <path id="continent-8" data-area="5428" d="M 689.0 259.0 L 693.0 259.0 L 697.0 259.0 L 698.0 263.0 L 701.0 261.0 L 705.0 260.0 L 709.0 260.0 L 713.0 261.0 L 716.0 263.0 L 720.0 264.0 L 723.0 267.0 L 726.0 269.0 L 728.0 272.0 L 730.0 275.0 L 731.0 279.0 L 731.0 283.0 L 727.0 284.0 L 723.0 284.0 L 721.0 281.0 L 718.0 283.0 L 719.0 287.0 L 721.0 290.0 L 723.0 294.0 L 724.0 298.0 L 727.0 300.0 L 730.0 302.0 L 732.0 305.0 L 732.0 309.0 L 735.0 311.0 L 738.0 313.0 L 740.0 316.0 L 741.0 320.0 L 741.0 324.0 L 740.0 328.0 L 739.0 332.0 L 739.0 336.0 L 736.0 339.0 L 736.0 343.0 L 732.0 344.0 L 732.0 348.0 L 732.0 352.0 L 728.0 352.0 L 724.0 353.0 L 720.0 353.0 L 716.0 353.0 L 712.0 353.0 L 708.0 351.0 L 706.0 348.0 L 704.0 344.0 L 700.0 343.0 L 696.0 341.0 L 694.0 338.0 L 691.0 336.0 L 687.0 336.0 L 683.0 337.0 L 679.0 338.0 L 676.0 340.0 L 672.0 340.0 L 668.0 339.0 L 666.0 342.0 L 662.0 342.0 L 658.0 342.0 L 654.0 342.0 L 652.0 339.0 L 652.0 335.0 L 652.0 331.0 L 650.0 328.0 L 649.0 324.0 L 648.0 320.0 L 648.0 316.0 L 648.0 312.0 L 648.0 308.0 L 650.0 305.0 L 653.0 303.0 L 657.0 303.0 L 660.0 301.0 L 664.0 300.0 L 666.0 297.0 L 668.0 294.0 L 671.0 292.0 L 674.0 290.0 L 677.0 288.0 L 681.0 288.0 L 685.0 286.0 L 688.0 284.0 L 691.0 282.0 L 695.0 282.0 L 699.0 282.0 L 703.0 283.0 L 703.0 287.0 L 705.0 291.0 L 708.0 293.0 L 710.0 289.0 L 711.0 285.0 L 711.0 281.0 L 707.0 281.0 L 703.0 280.0 L 702.0 276.0 L 700.0 272.0 L 696.0 272.0 L 693.0 270.0 L 691.0 267.0 L 689.0 264.0 L 689.0 260.0 L 689.0 259.0 Z"/> + <path id="continent-11" data-area="3434" d="M 269.0 437.0 L 273.0 437.0 L 275.0 440.0 L 275.0 444.0 L 272.0 446.0 L 269.0 448.0 L 267.0 452.0 L 265.0 455.0 L 263.0 459.0 L 260.0 461.0 L 261.0 465.0 L 264.0 467.0 L 264.0 471.0 L 265.0 475.0 L 266.0 479.0 L 268.0 482.0 L 269.0 486.0 L 269.0 490.0 L 269.0 494.0 L 269.0 498.0 L 268.0 502.0 L 268.0 506.0 L 268.0 510.0 L 266.0 513.0 L 264.0 516.0 L 260.0 516.0 L 256.0 516.0 L 252.0 516.0 L 248.0 516.0 L 244.0 516.0 L 240.0 516.0 L 236.0 516.0 L 232.0 516.0 L 228.0 516.0 L 224.0 516.0 L 220.0 516.0 L 216.0 516.0 L 212.0 516.0 L 208.0 516.0 L 204.0 516.0 L 200.0 516.0 L 196.0 516.0 L 192.0 516.0 L 188.0 516.0 L 184.0 516.0 L 180.0 516.0 L 176.0 516.0 L 175.0 512.0 L 173.0 509.0 L 172.0 505.0 L 170.0 502.0 L 170.0 498.0 L 172.0 495.0 L 174.0 492.0 L 174.0 488.0 L 178.0 487.0 L 182.0 487.0 L 186.0 487.0 L 190.0 489.0 L 191.0 493.0 L 193.0 496.0 L 197.0 496.0 L 201.0 496.0 L 205.0 496.0 L 209.0 498.0 L 213.0 498.0 L 216.0 500.0 L 219.0 498.0 L 223.0 497.0 L 227.0 497.0 L 230.0 500.0 L 234.0 501.0 L 237.0 499.0 L 238.0 495.0 L 235.0 492.0 L 232.0 490.0 L 232.0 486.0 L 234.0 483.0 L 238.0 482.0 L 239.0 478.0 L 238.0 474.0 L 238.0 470.0 L 240.0 467.0 L 244.0 467.0 L 248.0 468.0 L 249.0 464.0 L 249.0 460.0 L 250.0 456.0 L 252.0 452.0 L 255.0 449.0 L 257.0 446.0 L 259.0 443.0 L 263.0 442.0 L 267.0 441.0 L 269.0 438.0 L 269.0 437.0 Z"/> + <path id="continent-3" data-area="546" d="M 523.0 1.0 L 527.0 1.0 L 531.0 1.0 L 534.0 3.0 L 534.0 7.0 L 533.0 11.0 L 532.0 15.0 L 529.0 18.0 L 526.0 20.0 L 526.0 24.0 L 526.0 28.0 L 527.0 32.0 L 527.0 36.0 L 524.0 38.0 L 520.0 38.0 L 517.0 36.0 L 515.0 33.0 L 511.0 32.0 L 511.0 28.0 L 512.0 24.0 L 514.0 21.0 L 515.0 17.0 L 517.0 14.0 L 518.0 10.0 L 521.0 7.0 L 523.0 3.0 L 523.0 1.0 Z"/> + <path id="continent-9" data-area="540" d="M 781.0 340.0 L 785.0 340.0 L 787.0 343.0 L 791.0 345.0 L 794.0 347.0 L 796.0 350.0 L 796.0 354.0 L 793.0 357.0 L 791.0 361.0 L 787.0 361.0 L 785.0 365.0 L 783.0 368.0 L 780.0 370.0 L 778.0 373.0 L 777.0 377.0 L 773.0 377.0 L 769.0 376.0 L 766.0 374.0 L 766.0 370.0 L 769.0 367.0 L 769.0 363.0 L 773.0 361.0 L 776.0 358.0 L 779.0 356.0 L 782.0 354.0 L 782.0 350.0 L 781.0 346.0 L 781.0 342.0 L 781.0 340.0 Z"/> + </g> + </g> + </g> +</svg> diff --git a/assets/hub-logo-continents-mercator-globe.svg b/assets/hub-logo-continents-mercator-globe.svg new file mode 100644 index 0000000..ab6ddf3 --- /dev/null +++ b/assets/hub-logo-continents-mercator-globe.svg @@ -0,0 +1,28 @@ +<svg xmlns="http://www.w3.org/2000/svg" width="1920" height="1080" viewBox="0 0 1920 1080" preserveAspectRatio="xMidYMid slice" role="img" aria-label="Continents layered Mercator overlay"> + <defs> + <clipPath id="globeClip"><circle cx="720" cy="560" r="322"/></clipPath> + <radialGradient id="continentRelief" cx="34%" cy="22%" r="78%"> + <stop offset="0%" stop-color="#dbe7f6" stop-opacity="0.45"/> + <stop offset="58%" stop-color="#9ab3cc" stop-opacity="0.22"/> + <stop offset="100%" stop-color="#6a7f97" stop-opacity="0.18"/> + </radialGradient> + <filter id="continentDepth" x="-30%" y="-30%" width="160%" height="160%"> + <feDropShadow dx="-4" dy="-6" stdDeviation="3" flood-color="#f4fbff" flood-opacity="0.2"/> + <feDropShadow dx="4" dy="6" stdDeviation="4" flood-color="#0a1220" flood-opacity="0.28"/> + </filter> + </defs> + <g id="continents-outer-layer" clip-path="url(#globeClip)" transform="translate(720 560) scale(1.000 1.000) translate(-720 -560)"> + <g id="continents-inner-layer" transform="translate(223.66 238.00) scale(1.2408 1.2408)"> + <g id="continents-flat" fill="url(#continentRelief)" fill-opacity="0.9" stroke="#dce8f6" stroke-opacity="0.78" stroke-width="1.2" filter="url(#continentDepth)"> + <path id="continent-4" data-area="78439" d="M 591.0 1.0 L 595.0 1.0 L 599.0 1.0 L 603.0 1.0 L 607.0 1.0 L 611.0 1.0 L 615.0 1.0 L 619.0 1.0 L 623.0 1.0 L 627.0 1.0 L 631.0 1.0 L 635.0 1.0 L 639.0 1.0 L 643.0 1.0 L 647.0 1.0 L 650.0 3.0 L 650.0 7.0 L 647.0 9.0 L 650.0 11.0 L 654.0 13.0 L 658.0 13.0 L 662.0 13.0 L 665.0 16.0 L 667.0 19.0 L 670.0 16.0 L 672.0 13.0 L 676.0 13.0 L 680.0 13.0 L 684.0 15.0 L 686.0 18.0 L 685.0 22.0 L 686.0 26.0 L 688.0 29.0 L 691.0 27.0 L 695.0 27.0 L 699.0 28.0 L 703.0 29.0 L 705.0 26.0 L 705.0 22.0 L 708.0 20.0 L 712.0 19.0 L 716.0 19.0 L 719.0 21.0 L 723.0 21.0 L 726.0 23.0 L 730.0 24.0 L 732.0 27.0 L 734.0 30.0 L 737.0 32.0 L 741.0 32.0 L 745.0 32.0 L 749.0 33.0 L 752.0 35.0 L 754.0 38.0 L 756.0 41.0 L 760.0 41.0 L 764.0 41.0 L 768.0 41.0 L 772.0 41.0 L 775.0 39.0 L 779.0 39.0 L 783.0 39.0 L 787.0 39.0 L 791.0 40.0 L 794.0 42.0 L 797.0 44.0 L 798.0 48.0 L 798.0 52.0 L 798.0 56.0 L 798.0 60.0 L 798.0 64.0 L 798.0 68.0 L 798.0 72.0 L 797.0 76.0 L 797.0 80.0 L 797.0 84.0 L 793.0 84.0 L 790.0 86.0 L 786.0 88.0 L 783.0 91.0 L 780.0 94.0 L 776.0 95.0 L 772.0 94.0 L 768.0 95.0 L 764.0 95.0 L 762.0 98.0 L 762.0 102.0 L 762.0 106.0 L 762.0 110.0 L 760.0 114.0 L 758.0 118.0 L 755.0 120.0 L 753.0 123.0 L 752.0 127.0 L 749.0 129.0 L 745.0 129.0 L 743.0 126.0 L 741.0 123.0 L 740.0 119.0 L 740.0 115.0 L 740.0 111.0 L 741.0 107.0 L 742.0 103.0 L 745.0 101.0 L 748.0 99.0 L 750.0 96.0 L 752.0 93.0 L 751.0 89.0 L 747.0 90.0 L 746.0 94.0 L 743.0 96.0 L 741.0 100.0 L 737.0 100.0 L 733.0 100.0 L 730.0 98.0 L 726.0 98.0 L 722.0 98.0 L 718.0 98.0 L 715.0 100.0 L 713.0 103.0 L 711.0 106.0 L 708.0 109.0 L 705.0 112.0 L 705.0 116.0 L 709.0 116.0 L 713.0 116.0 L 716.0 118.0 L 719.0 120.0 L 719.0 124.0 L 720.0 128.0 L 720.0 132.0 L 719.0 136.0 L 719.0 140.0 L 719.0 144.0 L 719.0 148.0 L 722.0 150.0 L 722.0 154.0 L 721.0 158.0 L 717.0 159.0 L 716.0 163.0 L 715.0 167.0 L 714.0 171.0 L 712.0 174.0 L 712.0 178.0 L 709.0 180.0 L 705.0 182.0 L 701.0 182.0 L 698.0 184.0 L 694.0 184.0 L 692.0 187.0 L 689.0 189.0 L 685.0 189.0 L 685.0 185.0 L 685.0 181.0 L 681.0 180.0 L 677.0 180.0 L 676.0 176.0 L 675.0 172.0 L 673.0 169.0 L 671.0 172.0 L 668.0 174.0 L 666.0 177.0 L 668.0 180.0 L 670.0 183.0 L 670.0 187.0 L 670.0 191.0 L 670.0 195.0 L 668.0 198.0 L 669.0 202.0 L 670.0 206.0 L 669.0 210.0 L 665.0 210.0 L 662.0 208.0 L 659.0 210.0 L 656.0 212.0 L 652.0 212.0 L 649.0 214.0 L 646.0 216.0 L 644.0 219.0 L 642.0 222.0 L 643.0 226.0 L 643.0 230.0 L 642.0 234.0 L 641.0 238.0 L 638.0 240.0 L 634.0 241.0 L 630.0 241.0 L 630.0 245.0 L 631.0 249.0 L 631.0 253.0 L 631.0 257.0 L 633.0 260.0 L 636.0 263.0 L 637.0 267.0 L 640.0 269.0 L 640.0 265.0 L 639.0 261.0 L 637.0 258.0 L 637.0 254.0 L 641.0 253.0 L 644.0 251.0 L 646.0 248.0 L 649.0 246.0 L 651.0 243.0 L 654.0 241.0 L 658.0 241.0 L 662.0 243.0 L 664.0 246.0 L 664.0 250.0 L 663.0 254.0 L 663.0 258.0 L 666.0 260.0 L 670.0 260.0 L 672.0 263.0 L 672.0 267.0 L 672.0 271.0 L 668.0 271.0 L 664.0 270.0 L 663.0 266.0 L 663.0 262.0 L 661.0 265.0 L 658.0 267.0 L 656.0 270.0 L 652.0 270.0 L 649.0 272.0 L 653.0 273.0 L 653.0 277.0 L 650.0 279.0 L 646.0 278.0 L 642.0 278.0 L 638.0 278.0 L 634.0 278.0 L 632.0 275.0 L 628.0 274.0 L 625.0 272.0 L 622.0 270.0 L 620.0 266.0 L 617.0 263.0 L 615.0 260.0 L 613.0 256.0 L 610.0 254.0 L 609.0 250.0 L 609.0 246.0 L 613.0 245.0 L 617.0 244.0 L 615.0 241.0 L 615.0 237.0 L 614.0 233.0 L 613.0 229.0 L 611.0 226.0 L 607.0 225.0 L 606.0 221.0 L 604.0 217.0 L 602.0 214.0 L 598.0 214.0 L 594.0 216.0 L 591.0 219.0 L 588.0 222.0 L 585.0 224.0 L 582.0 226.0 L 580.0 229.0 L 580.0 233.0 L 578.0 236.0 L 582.0 238.0 L 582.0 242.0 L 582.0 246.0 L 579.0 248.0 L 575.0 247.0 L 573.0 244.0 L 570.0 242.0 L 567.0 240.0 L 565.0 236.0 L 563.0 232.0 L 561.0 228.0 L 559.0 225.0 L 559.0 221.0 L 559.0 217.0 L 557.0 214.0 L 553.0 214.0 L 551.0 211.0 L 548.0 209.0 L 545.0 207.0 L 542.0 205.0 L 538.0 204.0 L 534.0 206.0 L 534.0 210.0 L 533.0 214.0 L 531.0 217.0 L 528.0 220.0 L 526.0 223.0 L 522.0 224.0 L 518.0 225.0 L 515.0 227.0 L 511.0 228.0 L 508.0 230.0 L 512.0 231.0 L 516.0 232.0 L 516.0 236.0 L 514.0 239.0 L 514.0 243.0 L 512.0 246.0 L 510.0 249.0 L 507.0 252.0 L 505.0 255.0 L 502.0 257.0 L 499.0 259.0 L 495.0 261.0 L 494.0 265.0 L 492.0 268.0 L 490.0 271.0 L 490.0 275.0 L 492.0 279.0 L 492.0 283.0 L 493.0 287.0 L 494.0 291.0 L 498.0 291.0 L 502.0 290.0 L 504.0 287.0 L 507.0 285.0 L 511.0 285.0 L 514.0 287.0 L 514.0 291.0 L 514.0 295.0 L 512.0 299.0 L 512.0 303.0 L 510.0 306.0 L 509.0 310.0 L 508.0 314.0 L 506.0 317.0 L 504.0 320.0 L 500.0 320.0 L 496.0 319.0 L 495.0 315.0 L 493.0 312.0 L 493.0 308.0 L 494.0 304.0 L 495.0 300.0 L 495.0 296.0 L 492.0 294.0 L 491.0 298.0 L 488.0 300.0 L 485.0 302.0 L 482.0 305.0 L 481.0 309.0 L 481.0 313.0 L 479.0 317.0 L 476.0 319.0 L 474.0 322.0 L 474.0 326.0 L 472.0 329.0 L 468.0 330.0 L 468.0 334.0 L 466.0 337.0 L 464.0 340.0 L 461.0 342.0 L 457.0 342.0 L 453.0 342.0 L 449.0 342.0 L 445.0 342.0 L 441.0 342.0 L 438.0 339.0 L 437.0 335.0 L 437.0 331.0 L 435.0 328.0 L 432.0 326.0 L 431.0 322.0 L 431.0 318.0 L 430.0 314.0 L 429.0 310.0 L 427.0 306.0 L 425.0 303.0 L 424.0 299.0 L 424.0 295.0 L 425.0 291.0 L 427.0 287.0 L 427.0 283.0 L 427.0 279.0 L 427.0 275.0 L 424.0 273.0 L 422.0 269.0 L 419.0 266.0 L 419.0 262.0 L 419.0 258.0 L 419.0 254.0 L 416.0 252.0 L 412.0 252.0 L 409.0 249.0 L 405.0 249.0 L 401.0 250.0 L 397.0 250.0 L 393.0 250.0 L 389.0 251.0 L 385.0 252.0 L 381.0 252.0 L 378.0 250.0 L 375.0 247.0 L 371.0 245.0 L 369.0 242.0 L 367.0 239.0 L 365.0 236.0 L 362.0 234.0 L 361.0 230.0 L 360.0 226.0 L 360.0 222.0 L 362.0 219.0 L 362.0 215.0 L 361.0 211.0 L 361.0 207.0 L 362.0 203.0 L 365.0 201.0 L 367.0 197.0 L 369.0 194.0 L 372.0 191.0 L 375.0 189.0 L 378.0 187.0 L 378.0 183.0 L 378.0 179.0 L 382.0 177.0 L 381.0 173.0 L 377.0 172.0 L 377.0 168.0 L 377.0 164.0 L 377.0 160.0 L 379.0 156.0 L 379.0 152.0 L 381.0 149.0 L 385.0 149.0 L 389.0 151.0 L 393.0 150.0 L 395.0 147.0 L 393.0 144.0 L 390.0 142.0 L 388.0 139.0 L 389.0 135.0 L 388.0 131.0 L 386.0 128.0 L 382.0 129.0 L 378.0 128.0 L 375.0 126.0 L 375.0 122.0 L 375.0 118.0 L 377.0 115.0 L 380.0 112.0 L 384.0 111.0 L 385.0 107.0 L 385.0 103.0 L 387.0 100.0 L 389.0 97.0 L 393.0 97.0 L 395.0 100.0 L 398.0 102.0 L 398.0 106.0 L 398.0 110.0 L 401.0 113.0 L 402.0 117.0 L 404.0 120.0 L 408.0 121.0 L 410.0 118.0 L 414.0 117.0 L 415.0 113.0 L 415.0 109.0 L 415.0 105.0 L 411.0 103.0 L 411.0 99.0 L 411.0 95.0 L 409.0 92.0 L 409.0 88.0 L 409.0 84.0 L 410.0 80.0 L 413.0 77.0 L 417.0 75.0 L 420.0 72.0 L 422.0 69.0 L 425.0 67.0 L 425.0 63.0 L 426.0 59.0 L 428.0 56.0 L 431.0 53.0 L 433.0 50.0 L 435.0 47.0 L 437.0 44.0 L 440.0 42.0 L 444.0 40.0 L 446.0 37.0 L 450.0 37.0 L 451.0 33.0 L 455.0 33.0 L 459.0 33.0 L 463.0 33.0 L 467.0 33.0 L 468.0 37.0 L 471.0 39.0 L 475.0 40.0 L 477.0 43.0 L 481.0 43.0 L 484.0 45.0 L 487.0 47.0 L 490.0 50.0 L 493.0 53.0 L 495.0 50.0 L 497.0 47.0 L 501.0 47.0 L 504.0 50.0 L 508.0 50.0 L 511.0 47.0 L 515.0 47.0 L 519.0 47.0 L 523.0 47.0 L 527.0 46.0 L 530.0 44.0 L 530.0 40.0 L 534.0 39.0 L 538.0 39.0 L 541.0 41.0 L 545.0 41.0 L 545.0 37.0 L 545.0 33.0 L 547.0 29.0 L 549.0 25.0 L 550.0 21.0 L 553.0 19.0 L 557.0 19.0 L 561.0 19.0 L 564.0 22.0 L 568.0 23.0 L 572.0 24.0 L 575.0 22.0 L 575.0 18.0 L 575.0 14.0 L 578.0 12.0 L 582.0 12.0 L 586.0 13.0 L 589.0 10.0 L 589.0 6.0 L 590.0 2.0 L 591.0 1.0 Z"/> + <path id="continent-1" data-area="42423" d="M 148.0 1.0 L 152.0 1.0 L 156.0 1.0 L 160.0 1.0 L 160.0 5.0 L 157.0 8.0 L 154.0 10.0 L 150.0 10.0 L 146.0 11.0 L 147.0 15.0 L 151.0 15.0 L 153.0 19.0 L 157.0 19.0 L 160.0 16.0 L 164.0 15.0 L 168.0 16.0 L 170.0 19.0 L 172.0 23.0 L 173.0 19.0 L 176.0 17.0 L 177.0 13.0 L 179.0 10.0 L 183.0 10.0 L 187.0 11.0 L 189.0 8.0 L 193.0 7.0 L 196.0 5.0 L 196.0 1.0 L 200.0 1.0 L 204.0 1.0 L 208.0 1.0 L 212.0 1.0 L 216.0 1.0 L 220.0 1.0 L 224.0 1.0 L 225.0 5.0 L 223.0 8.0 L 219.0 8.0 L 215.0 9.0 L 218.0 11.0 L 222.0 11.0 L 225.0 14.0 L 226.0 18.0 L 230.0 19.0 L 234.0 19.0 L 237.0 21.0 L 239.0 25.0 L 241.0 29.0 L 245.0 30.0 L 248.0 32.0 L 251.0 34.0 L 253.0 38.0 L 255.0 41.0 L 255.0 45.0 L 255.0 49.0 L 259.0 51.0 L 261.0 54.0 L 264.0 56.0 L 267.0 58.0 L 267.0 62.0 L 266.0 66.0 L 264.0 70.0 L 260.0 71.0 L 260.0 75.0 L 260.0 79.0 L 257.0 81.0 L 256.0 85.0 L 252.0 85.0 L 248.0 86.0 L 250.0 89.0 L 251.0 93.0 L 252.0 97.0 L 255.0 94.0 L 257.0 91.0 L 261.0 91.0 L 263.0 94.0 L 265.0 98.0 L 267.0 101.0 L 268.0 105.0 L 270.0 108.0 L 272.0 111.0 L 276.0 111.0 L 277.0 115.0 L 280.0 117.0 L 281.0 121.0 L 281.0 125.0 L 280.0 129.0 L 283.0 131.0 L 286.0 134.0 L 286.0 138.0 L 286.0 142.0 L 283.0 144.0 L 279.0 144.0 L 276.0 142.0 L 272.0 142.0 L 268.0 142.0 L 268.0 146.0 L 265.0 148.0 L 263.0 151.0 L 261.0 154.0 L 257.0 154.0 L 253.0 154.0 L 253.0 150.0 L 250.0 152.0 L 248.0 155.0 L 247.0 159.0 L 244.0 162.0 L 241.0 164.0 L 238.0 166.0 L 236.0 170.0 L 236.0 174.0 L 236.0 178.0 L 233.0 180.0 L 230.0 183.0 L 227.0 185.0 L 224.0 187.0 L 225.0 191.0 L 226.0 195.0 L 226.0 199.0 L 226.0 203.0 L 228.0 206.0 L 232.0 207.0 L 235.0 209.0 L 237.0 212.0 L 241.0 212.0 L 245.0 212.0 L 249.0 213.0 L 249.0 217.0 L 247.0 221.0 L 243.0 222.0 L 239.0 222.0 L 237.0 219.0 L 236.0 215.0 L 232.0 216.0 L 228.0 216.0 L 225.0 214.0 L 221.0 213.0 L 217.0 212.0 L 214.0 210.0 L 214.0 206.0 L 217.0 204.0 L 217.0 200.0 L 217.0 196.0 L 215.0 193.0 L 212.0 191.0 L 208.0 191.0 L 204.0 191.0 L 200.0 191.0 L 196.0 191.0 L 194.0 194.0 L 191.0 196.0 L 189.0 199.0 L 188.0 203.0 L 188.0 207.0 L 190.0 211.0 L 192.0 214.0 L 196.0 214.0 L 198.0 211.0 L 201.0 209.0 L 204.0 207.0 L 208.0 207.0 L 211.0 210.0 L 211.0 214.0 L 210.0 218.0 L 212.0 221.0 L 216.0 221.0 L 219.0 224.0 L 220.0 228.0 L 219.0 232.0 L 221.0 235.0 L 225.0 235.0 L 229.0 236.0 L 232.0 233.0 L 236.0 231.0 L 239.0 229.0 L 243.0 229.0 L 246.0 231.0 L 250.0 231.0 L 254.0 233.0 L 258.0 233.0 L 262.0 233.0 L 266.0 233.0 L 269.0 236.0 L 272.0 238.0 L 275.0 241.0 L 278.0 243.0 L 282.0 243.0 L 286.0 244.0 L 289.0 246.0 L 291.0 249.0 L 292.0 253.0 L 293.0 257.0 L 297.0 257.0 L 301.0 258.0 L 304.0 260.0 L 307.0 262.0 L 311.0 262.0 L 315.0 262.0 L 318.0 264.0 L 321.0 266.0 L 325.0 267.0 L 325.0 271.0 L 325.0 275.0 L 325.0 279.0 L 325.0 283.0 L 321.0 285.0 L 319.0 289.0 L 318.0 293.0 L 317.0 297.0 L 316.0 301.0 L 316.0 305.0 L 314.0 308.0 L 311.0 311.0 L 309.0 314.0 L 305.0 314.0 L 301.0 315.0 L 298.0 318.0 L 296.0 321.0 L 296.0 325.0 L 294.0 328.0 L 290.0 330.0 L 290.0 334.0 L 288.0 338.0 L 285.0 340.0 L 282.0 342.0 L 278.0 343.0 L 278.0 347.0 L 277.0 351.0 L 273.0 352.0 L 269.0 353.0 L 266.0 355.0 L 265.0 359.0 L 261.0 359.0 L 260.0 363.0 L 260.0 367.0 L 258.0 371.0 L 257.0 375.0 L 257.0 379.0 L 255.0 383.0 L 254.0 387.0 L 252.0 390.0 L 253.0 394.0 L 255.0 397.0 L 256.0 401.0 L 256.0 405.0 L 252.0 406.0 L 248.0 406.0 L 244.0 405.0 L 244.0 401.0 L 240.0 400.0 L 237.0 398.0 L 236.0 394.0 L 234.0 391.0 L 234.0 387.0 L 235.0 383.0 L 235.0 379.0 L 233.0 376.0 L 232.0 372.0 L 234.0 368.0 L 237.0 366.0 L 236.0 362.0 L 235.0 358.0 L 235.0 354.0 L 236.0 350.0 L 237.0 346.0 L 237.0 342.0 L 238.0 338.0 L 239.0 334.0 L 241.0 331.0 L 241.0 327.0 L 241.0 323.0 L 241.0 319.0 L 242.0 315.0 L 243.0 311.0 L 243.0 307.0 L 243.0 303.0 L 241.0 300.0 L 238.0 298.0 L 236.0 295.0 L 232.0 294.0 L 230.0 291.0 L 229.0 287.0 L 227.0 284.0 L 225.0 281.0 L 223.0 278.0 L 221.0 275.0 L 219.0 272.0 L 219.0 268.0 L 219.0 264.0 L 219.0 260.0 L 221.0 257.0 L 222.0 253.0 L 224.0 250.0 L 227.0 248.0 L 225.0 245.0 L 221.0 245.0 L 217.0 245.0 L 214.0 243.0 L 211.0 241.0 L 209.0 238.0 L 207.0 235.0 L 204.0 233.0 L 200.0 231.0 L 198.0 228.0 L 194.0 228.0 L 190.0 226.0 L 186.0 226.0 L 182.0 226.0 L 179.0 224.0 L 176.0 222.0 L 172.0 220.0 L 168.0 218.0 L 166.0 215.0 L 166.0 211.0 L 163.0 209.0 L 159.0 210.0 L 155.0 208.0 L 152.0 206.0 L 150.0 202.0 L 147.0 200.0 L 145.0 196.0 L 145.0 192.0 L 141.0 190.0 L 140.0 186.0 L 137.0 183.0 L 134.0 181.0 L 131.0 178.0 L 129.0 175.0 L 127.0 172.0 L 125.0 169.0 L 124.0 165.0 L 124.0 161.0 L 124.0 157.0 L 124.0 153.0 L 123.0 149.0 L 124.0 145.0 L 123.0 141.0 L 121.0 138.0 L 119.0 135.0 L 118.0 131.0 L 116.0 128.0 L 115.0 124.0 L 112.0 122.0 L 111.0 118.0 L 109.0 115.0 L 107.0 111.0 L 105.0 108.0 L 104.0 104.0 L 101.0 102.0 L 97.0 102.0 L 93.0 101.0 L 91.0 98.0 L 88.0 96.0 L 84.0 95.0 L 80.0 95.0 L 76.0 94.0 L 72.0 94.0 L 70.0 97.0 L 66.0 97.0 L 63.0 100.0 L 66.0 102.0 L 66.0 106.0 L 63.0 108.0 L 59.0 108.0 L 55.0 109.0 L 52.0 111.0 L 50.0 114.0 L 46.0 114.0 L 42.0 115.0 L 39.0 113.0 L 39.0 109.0 L 43.0 108.0 L 45.0 105.0 L 48.0 103.0 L 45.0 101.0 L 42.0 99.0 L 40.0 96.0 L 36.0 94.0 L 34.0 90.0 L 32.0 87.0 L 32.0 83.0 L 33.0 79.0 L 36.0 77.0 L 40.0 76.0 L 37.0 74.0 L 33.0 74.0 L 31.0 71.0 L 29.0 68.0 L 25.0 69.0 L 23.0 72.0 L 27.0 73.0 L 28.0 77.0 L 25.0 79.0 L 22.0 77.0 L 20.0 74.0 L 16.0 74.0 L 12.0 72.0 L 10.0 69.0 L 6.0 68.0 L 2.0 68.0 L 1.0 64.0 L 1.0 60.0 L 1.0 56.0 L 1.0 52.0 L 1.0 48.0 L 4.0 46.0 L 8.0 47.0 L 12.0 48.0 L 14.0 51.0 L 16.0 54.0 L 20.0 55.0 L 24.0 55.0 L 27.0 57.0 L 29.0 60.0 L 33.0 61.0 L 37.0 59.0 L 34.0 56.0 L 32.0 53.0 L 31.0 49.0 L 32.0 45.0 L 36.0 45.0 L 37.0 41.0 L 39.0 38.0 L 41.0 35.0 L 45.0 34.0 L 48.0 32.0 L 51.0 30.0 L 55.0 30.0 L 59.0 31.0 L 63.0 31.0 L 66.0 33.0 L 70.0 35.0 L 74.0 35.0 L 78.0 36.0 L 82.0 37.0 L 86.0 37.0 L 90.0 38.0 L 93.0 40.0 L 96.0 42.0 L 100.0 43.0 L 103.0 41.0 L 106.0 39.0 L 110.0 38.0 L 114.0 38.0 L 116.0 34.0 L 120.0 34.0 L 123.0 37.0 L 125.0 40.0 L 129.0 39.0 L 133.0 39.0 L 137.0 39.0 L 139.0 42.0 L 139.0 38.0 L 139.0 34.0 L 137.0 31.0 L 134.0 34.0 L 130.0 34.0 L 126.0 34.0 L 124.0 31.0 L 121.0 28.0 L 121.0 24.0 L 123.0 20.0 L 123.0 16.0 L 124.0 12.0 L 123.0 8.0 L 125.0 5.0 L 129.0 5.0 L 133.0 5.0 L 137.0 5.0 L 140.0 7.0 L 144.0 8.0 L 146.0 5.0 L 148.0 1.0 Z"/> + <path id="continent-12" data-area="21849" d="M 694.0 446.0 L 698.0 446.0 L 700.0 449.0 L 703.0 451.0 L 707.0 453.0 L 711.0 454.0 L 715.0 455.0 L 718.0 457.0 L 722.0 457.0 L 725.0 460.0 L 728.0 463.0 L 731.0 465.0 L 734.0 467.0 L 738.0 467.0 L 742.0 467.0 L 745.0 469.0 L 749.0 470.0 L 752.0 472.0 L 755.0 474.0 L 758.0 477.0 L 762.0 477.0 L 765.0 479.0 L 769.0 479.0 L 772.0 481.0 L 775.0 483.0 L 778.0 486.0 L 779.0 490.0 L 779.0 494.0 L 778.0 498.0 L 776.0 501.0 L 774.0 504.0 L 770.0 505.0 L 768.0 508.0 L 766.0 511.0 L 764.0 514.0 L 761.0 516.0 L 757.0 516.0 L 753.0 516.0 L 749.0 516.0 L 745.0 516.0 L 741.0 516.0 L 737.0 516.0 L 733.0 516.0 L 729.0 516.0 L 725.0 516.0 L 721.0 516.0 L 717.0 516.0 L 713.0 516.0 L 709.0 516.0 L 705.0 516.0 L 701.0 516.0 L 697.0 516.0 L 693.0 516.0 L 689.0 516.0 L 685.0 516.0 L 681.0 516.0 L 677.0 516.0 L 673.0 516.0 L 669.0 516.0 L 665.0 516.0 L 661.0 516.0 L 657.0 516.0 L 653.0 516.0 L 649.0 516.0 L 645.0 516.0 L 641.0 516.0 L 637.0 516.0 L 633.0 516.0 L 629.0 516.0 L 625.0 516.0 L 621.0 516.0 L 617.0 516.0 L 613.0 516.0 L 609.0 516.0 L 605.0 516.0 L 601.0 516.0 L 597.0 516.0 L 593.0 516.0 L 589.0 516.0 L 585.0 516.0 L 581.0 516.0 L 577.0 516.0 L 573.0 516.0 L 569.0 516.0 L 565.0 516.0 L 561.0 516.0 L 557.0 516.0 L 553.0 516.0 L 549.0 516.0 L 545.0 516.0 L 541.0 516.0 L 537.0 516.0 L 533.0 516.0 L 529.0 516.0 L 525.0 516.0 L 521.0 516.0 L 517.0 516.0 L 513.0 516.0 L 509.0 516.0 L 505.0 516.0 L 501.0 516.0 L 497.0 516.0 L 493.0 516.0 L 489.0 516.0 L 485.0 516.0 L 481.0 516.0 L 477.0 516.0 L 473.0 516.0 L 469.0 516.0 L 465.0 516.0 L 461.0 516.0 L 457.0 516.0 L 453.0 516.0 L 449.0 516.0 L 445.0 516.0 L 441.0 516.0 L 437.0 516.0 L 433.0 516.0 L 429.0 516.0 L 425.0 516.0 L 421.0 516.0 L 417.0 516.0 L 413.0 516.0 L 409.0 516.0 L 405.0 516.0 L 401.0 516.0 L 397.0 516.0 L 393.0 516.0 L 389.0 516.0 L 385.0 516.0 L 381.0 516.0 L 377.0 516.0 L 373.0 516.0 L 369.0 516.0 L 365.0 516.0 L 361.0 516.0 L 360.0 512.0 L 361.0 508.0 L 361.0 504.0 L 361.0 500.0 L 364.0 498.0 L 367.0 496.0 L 369.0 493.0 L 371.0 490.0 L 371.0 486.0 L 373.0 483.0 L 377.0 482.0 L 381.0 481.0 L 384.0 479.0 L 388.0 479.0 L 390.0 482.0 L 394.0 483.0 L 398.0 483.0 L 402.0 481.0 L 406.0 480.0 L 410.0 479.0 L 413.0 476.0 L 417.0 475.0 L 421.0 475.0 L 425.0 476.0 L 429.0 475.0 L 433.0 475.0 L 437.0 475.0 L 441.0 474.0 L 445.0 474.0 L 449.0 476.0 L 453.0 477.0 L 457.0 476.0 L 460.0 474.0 L 464.0 474.0 L 467.0 471.0 L 470.0 469.0 L 472.0 466.0 L 476.0 465.0 L 480.0 466.0 L 482.0 470.0 L 485.0 468.0 L 488.0 466.0 L 492.0 464.0 L 495.0 462.0 L 498.0 459.0 L 502.0 459.0 L 506.0 457.0 L 509.0 455.0 L 511.0 452.0 L 515.0 451.0 L 519.0 451.0 L 523.0 451.0 L 527.0 452.0 L 529.0 455.0 L 532.0 457.0 L 536.0 458.0 L 540.0 459.0 L 543.0 461.0 L 547.0 461.0 L 551.0 461.0 L 555.0 461.0 L 557.0 464.0 L 557.0 468.0 L 556.0 472.0 L 557.0 476.0 L 560.0 474.0 L 563.0 471.0 L 567.0 469.0 L 569.0 466.0 L 571.0 463.0 L 574.0 461.0 L 576.0 458.0 L 580.0 457.0 L 583.0 455.0 L 587.0 455.0 L 591.0 454.0 L 595.0 454.0 L 599.0 454.0 L 603.0 454.0 L 607.0 454.0 L 611.0 454.0 L 615.0 454.0 L 619.0 452.0 L 623.0 451.0 L 627.0 451.0 L 631.0 451.0 L 635.0 451.0 L 638.0 453.0 L 642.0 451.0 L 646.0 451.0 L 650.0 451.0 L 654.0 452.0 L 658.0 453.0 L 662.0 454.0 L 666.0 455.0 L 669.0 453.0 L 673.0 453.0 L 677.0 454.0 L 681.0 454.0 L 685.0 453.0 L 689.0 453.0 L 692.0 451.0 L 692.0 447.0 L 694.0 446.0 Z"/> + <path id="continent-2" data-area="5520" d="M 272.0 1.0 L 276.0 1.0 L 280.0 1.0 L 284.0 1.0 L 288.0 1.0 L 292.0 1.0 L 296.0 1.0 L 300.0 1.0 L 304.0 1.0 L 308.0 1.0 L 312.0 1.0 L 316.0 1.0 L 320.0 1.0 L 324.0 1.0 L 328.0 1.0 L 332.0 1.0 L 336.0 1.0 L 340.0 1.0 L 344.0 1.0 L 348.0 1.0 L 352.0 1.0 L 356.0 1.0 L 360.0 2.0 L 361.0 6.0 L 361.0 10.0 L 358.0 13.0 L 357.0 17.0 L 355.0 20.0 L 351.0 20.0 L 352.0 24.0 L 353.0 28.0 L 355.0 31.0 L 355.0 35.0 L 355.0 39.0 L 352.0 41.0 L 350.0 45.0 L 348.0 48.0 L 346.0 51.0 L 342.0 52.0 L 338.0 52.0 L 334.0 53.0 L 331.0 55.0 L 329.0 58.0 L 329.0 62.0 L 327.0 65.0 L 323.0 67.0 L 319.0 67.0 L 316.0 69.0 L 314.0 72.0 L 313.0 76.0 L 313.0 80.0 L 310.0 83.0 L 310.0 87.0 L 310.0 91.0 L 308.0 94.0 L 304.0 95.0 L 300.0 95.0 L 296.0 93.0 L 292.0 91.0 L 290.0 88.0 L 289.0 84.0 L 286.0 81.0 L 285.0 77.0 L 283.0 74.0 L 283.0 70.0 L 281.0 67.0 L 281.0 63.0 L 281.0 59.0 L 281.0 55.0 L 283.0 51.0 L 284.0 47.0 L 283.0 43.0 L 281.0 40.0 L 281.0 36.0 L 279.0 33.0 L 276.0 31.0 L 275.0 27.0 L 275.0 23.0 L 275.0 19.0 L 275.0 15.0 L 273.0 12.0 L 273.0 8.0 L 272.0 4.0 L 272.0 1.0 Z"/> + <path id="continent-8" data-area="5428" d="M 689.0 259.0 L 693.0 259.0 L 697.0 259.0 L 698.0 263.0 L 701.0 261.0 L 705.0 260.0 L 709.0 260.0 L 713.0 261.0 L 716.0 263.0 L 720.0 264.0 L 723.0 267.0 L 726.0 269.0 L 728.0 272.0 L 730.0 275.0 L 731.0 279.0 L 731.0 283.0 L 727.0 284.0 L 723.0 284.0 L 721.0 281.0 L 718.0 283.0 L 719.0 287.0 L 721.0 290.0 L 723.0 294.0 L 724.0 298.0 L 727.0 300.0 L 730.0 302.0 L 732.0 305.0 L 732.0 309.0 L 735.0 311.0 L 738.0 313.0 L 740.0 316.0 L 741.0 320.0 L 741.0 324.0 L 740.0 328.0 L 739.0 332.0 L 739.0 336.0 L 736.0 339.0 L 736.0 343.0 L 732.0 344.0 L 732.0 348.0 L 732.0 352.0 L 728.0 352.0 L 724.0 353.0 L 720.0 353.0 L 716.0 353.0 L 712.0 353.0 L 708.0 351.0 L 706.0 348.0 L 704.0 344.0 L 700.0 343.0 L 696.0 341.0 L 694.0 338.0 L 691.0 336.0 L 687.0 336.0 L 683.0 337.0 L 679.0 338.0 L 676.0 340.0 L 672.0 340.0 L 668.0 339.0 L 666.0 342.0 L 662.0 342.0 L 658.0 342.0 L 654.0 342.0 L 652.0 339.0 L 652.0 335.0 L 652.0 331.0 L 650.0 328.0 L 649.0 324.0 L 648.0 320.0 L 648.0 316.0 L 648.0 312.0 L 648.0 308.0 L 650.0 305.0 L 653.0 303.0 L 657.0 303.0 L 660.0 301.0 L 664.0 300.0 L 666.0 297.0 L 668.0 294.0 L 671.0 292.0 L 674.0 290.0 L 677.0 288.0 L 681.0 288.0 L 685.0 286.0 L 688.0 284.0 L 691.0 282.0 L 695.0 282.0 L 699.0 282.0 L 703.0 283.0 L 703.0 287.0 L 705.0 291.0 L 708.0 293.0 L 710.0 289.0 L 711.0 285.0 L 711.0 281.0 L 707.0 281.0 L 703.0 280.0 L 702.0 276.0 L 700.0 272.0 L 696.0 272.0 L 693.0 270.0 L 691.0 267.0 L 689.0 264.0 L 689.0 260.0 L 689.0 259.0 Z"/> + <path id="continent-11" data-area="3434" d="M 269.0 437.0 L 273.0 437.0 L 275.0 440.0 L 275.0 444.0 L 272.0 446.0 L 269.0 448.0 L 267.0 452.0 L 265.0 455.0 L 263.0 459.0 L 260.0 461.0 L 261.0 465.0 L 264.0 467.0 L 264.0 471.0 L 265.0 475.0 L 266.0 479.0 L 268.0 482.0 L 269.0 486.0 L 269.0 490.0 L 269.0 494.0 L 269.0 498.0 L 268.0 502.0 L 268.0 506.0 L 268.0 510.0 L 266.0 513.0 L 264.0 516.0 L 260.0 516.0 L 256.0 516.0 L 252.0 516.0 L 248.0 516.0 L 244.0 516.0 L 240.0 516.0 L 236.0 516.0 L 232.0 516.0 L 228.0 516.0 L 224.0 516.0 L 220.0 516.0 L 216.0 516.0 L 212.0 516.0 L 208.0 516.0 L 204.0 516.0 L 200.0 516.0 L 196.0 516.0 L 192.0 516.0 L 188.0 516.0 L 184.0 516.0 L 180.0 516.0 L 176.0 516.0 L 175.0 512.0 L 173.0 509.0 L 172.0 505.0 L 170.0 502.0 L 170.0 498.0 L 172.0 495.0 L 174.0 492.0 L 174.0 488.0 L 178.0 487.0 L 182.0 487.0 L 186.0 487.0 L 190.0 489.0 L 191.0 493.0 L 193.0 496.0 L 197.0 496.0 L 201.0 496.0 L 205.0 496.0 L 209.0 498.0 L 213.0 498.0 L 216.0 500.0 L 219.0 498.0 L 223.0 497.0 L 227.0 497.0 L 230.0 500.0 L 234.0 501.0 L 237.0 499.0 L 238.0 495.0 L 235.0 492.0 L 232.0 490.0 L 232.0 486.0 L 234.0 483.0 L 238.0 482.0 L 239.0 478.0 L 238.0 474.0 L 238.0 470.0 L 240.0 467.0 L 244.0 467.0 L 248.0 468.0 L 249.0 464.0 L 249.0 460.0 L 250.0 456.0 L 252.0 452.0 L 255.0 449.0 L 257.0 446.0 L 259.0 443.0 L 263.0 442.0 L 267.0 441.0 L 269.0 438.0 L 269.0 437.0 Z"/> + <path id="continent-3" data-area="546" d="M 523.0 1.0 L 527.0 1.0 L 531.0 1.0 L 534.0 3.0 L 534.0 7.0 L 533.0 11.0 L 532.0 15.0 L 529.0 18.0 L 526.0 20.0 L 526.0 24.0 L 526.0 28.0 L 527.0 32.0 L 527.0 36.0 L 524.0 38.0 L 520.0 38.0 L 517.0 36.0 L 515.0 33.0 L 511.0 32.0 L 511.0 28.0 L 512.0 24.0 L 514.0 21.0 L 515.0 17.0 L 517.0 14.0 L 518.0 10.0 L 521.0 7.0 L 523.0 3.0 L 523.0 1.0 Z"/> + <path id="continent-9" data-area="540" d="M 781.0 340.0 L 785.0 340.0 L 787.0 343.0 L 791.0 345.0 L 794.0 347.0 L 796.0 350.0 L 796.0 354.0 L 793.0 357.0 L 791.0 361.0 L 787.0 361.0 L 785.0 365.0 L 783.0 368.0 L 780.0 370.0 L 778.0 373.0 L 777.0 377.0 L 773.0 377.0 L 769.0 376.0 L 766.0 374.0 L 766.0 370.0 L 769.0 367.0 L 769.0 363.0 L 773.0 361.0 L 776.0 358.0 L 779.0 356.0 L 782.0 354.0 L 782.0 350.0 L 781.0 346.0 L 781.0 342.0 L 781.0 340.0 Z"/> + </g> + </g> + </g> +</svg> diff --git a/assets/hub-logo-fragment-compass.svg b/assets/hub-logo-fragment-compass.svg new file mode 100644 index 0000000..c849047 --- /dev/null +++ b/assets/hub-logo-fragment-compass.svg @@ -0,0 +1,14 @@ +<svg xmlns="http://www.w3.org/2000/svg" width="1920" height="1080" viewBox="0 0 1920 1080" preserveAspectRatio="xMidYMid slice" role="img" aria-label="Compass layer"> + <g id="globe-compass" transform="translate(1050 820)"> + <circle cx="0" cy="0" r="52" fill="#0a0e14" fill-opacity="0.42" stroke="#c7d3e1" stroke-opacity="0.52" stroke-width="2"/> + <circle cx="0" cy="0" r="40" fill="none" stroke="#dbe5f1" stroke-opacity="0.64" stroke-width="1.5"/> + <path d="M 0 -38 L 9 0 L 0 38 L -9 0 Z" fill="#e7ecf3" fill-opacity="0.9"/> + <path d="M -38 0 L 0 -9 L 38 0 L 0 9 Z" fill="#8ea1b9" fill-opacity="0.86"/> + <path d="M 0 -28 L 6 0 L 0 28 L -6 0 Z" fill="#223246" fill-opacity="0.9"/> + <circle cx="0" cy="0" r="4.2" fill="#e7ecf3" fill-opacity="0.92"/> + <text x="0" y="-56" text-anchor="middle" fill="#e7ecf3" fill-opacity="0.72" font-size="12" font-family="Segoe UI, sans-serif">N</text> + <text x="0" y="68" text-anchor="middle" fill="#a9bbce" fill-opacity="0.68" font-size="12" font-family="Segoe UI, sans-serif">S</text> + <text x="-66" y="4" text-anchor="middle" fill="#a9bbce" fill-opacity="0.68" font-size="12" font-family="Segoe UI, sans-serif">W</text> + <text x="66" y="4" text-anchor="middle" fill="#a9bbce" fill-opacity="0.68" font-size="12" font-family="Segoe UI, sans-serif">E</text> + </g> +</svg> diff --git a/assets/hub-logo-fragment-globe-4x4.svg b/assets/hub-logo-fragment-globe-4x4.svg new file mode 100644 index 0000000..2a39497 --- /dev/null +++ b/assets/hub-logo-fragment-globe-4x4.svg @@ -0,0 +1,24 @@ +<svg xmlns="http://www.w3.org/2000/svg" width="1920" height="1080" viewBox="0 0 1920 1080" preserveAspectRatio="xMidYMid slice" role="img" aria-label="Globe fragment 4x4"> + <defs> + <radialGradient id="globeOcean" cx="36%" cy="28%" r="74%"> + <stop offset="0%" stop-color="#2a3d56"/> + <stop offset="45%" stop-color="#1a2332"/> + <stop offset="100%" stop-color="#0a0e14"/> + </radialGradient> + <clipPath id="gridClip"><circle cx="720" cy="560" r="322"/></clipPath> + </defs> + + <circle id="globe-body" cx="720" cy="560" r="330" fill="url(#globeOcean)"/> + + <!-- Mercator-style 4x4 grid: 3 vertical + 3 horizontal lines --> + <g id="globe-grid" clip-path="url(#gridClip)" fill="none" stroke="#e7ecf3" stroke-opacity="0.92" stroke-width="7.5" stroke-linecap="round"> + <path d="M 580 248 Q 510 560 580 872"/> + <path d="M 720 238 Q 720 560 720 882"/> + <path d="M 860 248 Q 930 560 860 872"/> + <ellipse cx="720" cy="395" rx="275" ry="80"/> + <ellipse cx="720" cy="560" rx="320" ry="105"/> + <ellipse cx="720" cy="725" rx="275" ry="80"/> + </g> + + <circle id="globe-border" cx="720" cy="560" r="330" fill="none" stroke="#e7ecf3" stroke-width="15"/> +</svg> diff --git a/assets/hub-logo-fragment-globe-grid-overlay.svg b/assets/hub-logo-fragment-globe-grid-overlay.svg new file mode 100644 index 0000000..489ddc7 --- /dev/null +++ b/assets/hub-logo-fragment-globe-grid-overlay.svg @@ -0,0 +1,34 @@ +<svg xmlns="http://www.w3.org/2000/svg" width="1920" height="1080" viewBox="0 0 1920 1080" preserveAspectRatio="xMidYMid slice" role="img" aria-label="Globe grid overlay build 20260527j"> + <defs> + <linearGradient id="gradNorthPole" x1="830" y1="432" x2="610" y2="358" gradientUnits="userSpaceOnUse"> + <stop offset="0%" stop-color="#e7ecf3" stop-opacity="0.02"/> + <stop offset="100%" stop-color="#e7ecf3" stop-opacity="1"/> + </linearGradient> + <linearGradient id="gradSouthPole" x1="830" y1="754" x2="610" y2="680" gradientUnits="userSpaceOnUse"> + <stop offset="0%" stop-color="#e7ecf3" stop-opacity="0.02"/> + <stop offset="100%" stop-color="#e7ecf3" stop-opacity="1"/> + </linearGradient> + <linearGradient id="gradEquator" x1="1040" y1="560" x2="400" y2="560" gradientUnits="userSpaceOnUse"> + <stop offset="0%" stop-color="#e7ecf3" stop-opacity="0.02"/> + <stop offset="50%" stop-color="#e7ecf3" stop-opacity="1"/> + <stop offset="100%" stop-color="#e7ecf3" stop-opacity="0.02"/> + </linearGradient> + <linearGradient id="meridianSun" x1="390" y1="560" x2="1050" y2="560" gradientUnits="userSpaceOnUse"> + <stop offset="0%" stop-color="#f2f6fc" stop-opacity="0.95"/> + <stop offset="52%" stop-color="#d7e0ec" stop-opacity="0.78"/> + <stop offset="100%" stop-color="#4f6178" stop-opacity="0.92"/> + </linearGradient> + <clipPath id="gridClip"><circle cx="720" cy="560" r="322"/></clipPath> + </defs> + + <g id="globe-grid" clip-path="url(#gridClip)" fill="none" stroke-linecap="round" stroke-linejoin="round"> + <circle id="globe-pivot" cx="720" cy="560" r="7" fill="#5eead4" stroke="#0a0e14" stroke-width="1.5"/> + <path id="globe-meridian-west" d="M 620 248 Q 358 560 620 872" stroke="url(#meridianSun)" stroke-opacity="0.98" stroke-width="8"/> + <path id="globe-meridian-prime" d="M 720 248 L 720 872" stroke="url(#meridianSun)" stroke-opacity="0.98" stroke-width="7.5"/> + <path id="globe-meridian-east" d="M 820 248 Q 1082 560 820 872" stroke="url(#meridianSun)" stroke-opacity="0.98" stroke-width="8"/> + <ellipse id="globe-equator" cx="720" cy="560" rx="318" ry="11" stroke="url(#gradEquator)" stroke-width="7.5"/> + <ellipse id="globe-north-pole" cx="720" cy="392" rx="260" ry="39" stroke="url(#gradNorthPole)" stroke-width="7.5"/> + <ellipse id="globe-south-pole" cx="720" cy="728" rx="260" ry="39" stroke="url(#gradSouthPole)" stroke-width="7.5"/> + </g> + +</svg> diff --git a/assets/hub-logo-fragment-globe-snapshot-20260526e.svg b/assets/hub-logo-fragment-globe-snapshot-20260526e.svg new file mode 100644 index 0000000..bec4c73 --- /dev/null +++ b/assets/hub-logo-fragment-globe-snapshot-20260526e.svg @@ -0,0 +1,4 @@ +<svg xmlns="http://www.w3.org/2000/svg" width="1920" height="1080" viewBox="0 0 1920 1080" preserveAspectRatio="xMidYMid slice" role="img" aria-label="Internal snapshot globe 20260526e"> + <!-- Internal snapshot pointer for build 20260526e --> + <image href="hub-logo-fragment-globe.svg?v=20260526e" x="0" y="0" width="1920" height="1080"/> +</svg> diff --git a/assets/hub-logo-fragment-globe-snapshot-20260527g.svg b/assets/hub-logo-fragment-globe-snapshot-20260527g.svg new file mode 100644 index 0000000..c61188d --- /dev/null +++ b/assets/hub-logo-fragment-globe-snapshot-20260527g.svg @@ -0,0 +1,4 @@ +<svg xmlns="http://www.w3.org/2000/svg" width="1920" height="1080" viewBox="0 0 1920 1080" preserveAspectRatio="xMidYMid slice" role="img" aria-label="Internal snapshot globe 20260527g"> + <!-- Internal snapshot pointer for build 20260527g --> + <image href="hub-logo-fragment-globe.svg?v=20260527g" x="0" y="0" width="1920" height="1080"/> +</svg> diff --git a/assets/hub-logo-fragment-globe-snapshot-20260527i.svg b/assets/hub-logo-fragment-globe-snapshot-20260527i.svg new file mode 100644 index 0000000..9878e2f --- /dev/null +++ b/assets/hub-logo-fragment-globe-snapshot-20260527i.svg @@ -0,0 +1,4 @@ +<svg xmlns="http://www.w3.org/2000/svg" width="1920" height="1080" viewBox="0 0 1920 1080" preserveAspectRatio="xMidYMid slice" role="img" aria-label="Internal snapshot globe 20260527i"> + <!-- Internal snapshot pointer for build 20260527i --> + <image href="hub-logo-fragment-globe.svg?v=20260527i" x="0" y="0" width="1920" height="1080"/> +</svg> diff --git a/assets/hub-logo-fragment-globe-snapshot-20260527j.svg b/assets/hub-logo-fragment-globe-snapshot-20260527j.svg new file mode 100644 index 0000000..83778c7 --- /dev/null +++ b/assets/hub-logo-fragment-globe-snapshot-20260527j.svg @@ -0,0 +1,4 @@ +<svg xmlns="http://www.w3.org/2000/svg" width="1920" height="1080" viewBox="0 0 1920 1080" preserveAspectRatio="xMidYMid slice" role="img" aria-label="Internal snapshot globe 20260527j"> + <!-- Internal snapshot pointer for build 20260527j --> + <image href="hub-logo-fragment-globe.svg?v=20260527j" x="0" y="0" width="1920" height="1080"/> +</svg> diff --git a/assets/hub-logo-fragment-globe-snapshot-20260530b.svg b/assets/hub-logo-fragment-globe-snapshot-20260530b.svg new file mode 100644 index 0000000..4fd8c26 --- /dev/null +++ b/assets/hub-logo-fragment-globe-snapshot-20260530b.svg @@ -0,0 +1,4 @@ +<svg xmlns="http://www.w3.org/2000/svg" width="1920" height="1080" viewBox="0 0 1920 1080" preserveAspectRatio="xMidYMid slice" role="img" aria-label="Internal snapshot globe 20260530b"> + <!-- Internal snapshot pointer for build 20260530b  vertical nav dock + Clockopia clock --> + <image href="hub-logo-fragment-globe.svg?v=20260530b" x="0" y="0" width="1920" height="1080"/> +</svg> diff --git a/assets/hub-logo-fragment-globe.svg b/assets/hub-logo-fragment-globe.svg new file mode 100644 index 0000000..d7ce631 --- /dev/null +++ b/assets/hub-logo-fragment-globe.svg @@ -0,0 +1,58 @@ +<svg xmlns="http://www.w3.org/2000/svg" width="1920" height="1080" viewBox="0 0 1920 1080" preserveAspectRatio="xMidYMid slice" role="img" aria-label="Globe fragment 3x3 build 20260527i"> + <!-- build=20260527i: thunder title pass + darker oceans with separate continent layer --> + <defs> + <radialGradient id="globeOcean" cx="24%" cy="18%" r="86%"> + <stop offset="0%" stop-color="#466287"/> + <stop offset="42%" stop-color="#16263c"/> + <stop offset="100%" stop-color="#04060b"/> + </radialGradient> + + <linearGradient id="gradNorthPole" x1="830" y1="432" x2="610" y2="358" gradientUnits="userSpaceOnUse"> + <stop offset="0%" stop-color="#e7ecf3" stop-opacity="0.02"/> + <stop offset="100%" stop-color="#e7ecf3" stop-opacity="1"/> + </linearGradient> + + <linearGradient id="gradSouthPole" x1="830" y1="754" x2="610" y2="680" gradientUnits="userSpaceOnUse"> + <stop offset="0%" stop-color="#e7ecf3" stop-opacity="0.02"/> + <stop offset="100%" stop-color="#e7ecf3" stop-opacity="1"/> + </linearGradient> + + <linearGradient id="gradEquator" x1="1040" y1="560" x2="400" y2="560" gradientUnits="userSpaceOnUse"> + <stop offset="0%" stop-color="#e7ecf3" stop-opacity="0.02"/> + <stop offset="50%" stop-color="#e7ecf3" stop-opacity="1"/> + <stop offset="100%" stop-color="#e7ecf3" stop-opacity="0.02"/> + </linearGradient> + <linearGradient id="meridianSun" x1="390" y1="560" x2="1050" y2="560" gradientUnits="userSpaceOnUse"> + <stop offset="0%" stop-color="#f2f6fc" stop-opacity="0.95"/> + <stop offset="52%" stop-color="#d7e0ec" stop-opacity="0.78"/> + <stop offset="100%" stop-color="#4f6178" stop-opacity="0.92"/> + </linearGradient> + <linearGradient id="sunRim" x1="390" y1="560" x2="1050" y2="560" gradientUnits="userSpaceOnUse"> + <stop offset="0%" stop-color="#f5f8ff" stop-opacity="0.98"/> + <stop offset="38%" stop-color="#dce7f5" stop-opacity="0.82"/> + <stop offset="100%" stop-color="#4a5c72" stop-opacity="0.7"/> + </linearGradient> + <filter id="sunRimGlow" x="-20%" y="-20%" width="140%" height="140%"> + <feGaussianBlur stdDeviation="3.2"/> + </filter> + + <clipPath id="gridClip"><circle cx="720" cy="560" r="322"/></clipPath> + </defs> + + <circle id="globe-body" cx="720" cy="560" r="330" fill="url(#globeOcean)"/> + + <g id="globe-grid" clip-path="url(#gridClip)" fill="none" stroke-linecap="round" stroke-linejoin="round"> + <circle id="globe-pivot" cx="720" cy="560" r="7" fill="#5eead4" stroke="#0a0e14" stroke-width="1.5"/> + + <path id="globe-meridian-west" d="M 620 248 Q 358 560 620 872" stroke="url(#meridianSun)" stroke-opacity="0.98" stroke-width="8"/> + <path id="globe-meridian-prime" d="M 720 248 L 720 872" stroke="url(#meridianSun)" stroke-opacity="0.98" stroke-width="7.5"/> + <path id="globe-meridian-east" d="M 820 248 Q 1082 560 820 872" stroke="url(#meridianSun)" stroke-opacity="0.98" stroke-width="8"/> + + <ellipse id="globe-equator" cx="720" cy="560" rx="318" ry="11" stroke="url(#gradEquator)" stroke-width="7.5"/> + <ellipse id="globe-north-pole" cx="720" cy="392" rx="260" ry="39" stroke="url(#gradNorthPole)" stroke-width="7.5"/> + <ellipse id="globe-south-pole" cx="720" cy="728" rx="260" ry="39" stroke="url(#gradSouthPole)" stroke-width="7.5"/> + </g> + + <circle id="globe-border-glow" cx="720" cy="560" r="330" fill="none" stroke="url(#sunRim)" stroke-opacity="0.75" stroke-width="20" filter="url(#sunRimGlow)"/> + <circle id="globe-border" cx="720" cy="560" r="330" fill="none" stroke="url(#sunRim)" stroke-width="14"/> +</svg> diff --git a/assets/hub-logo-fragment-rocket.svg b/assets/hub-logo-fragment-rocket.svg new file mode 100644 index 0000000..6d8099d --- /dev/null +++ b/assets/hub-logo-fragment-rocket.svg @@ -0,0 +1,110 @@ +<svg xmlns="http://www.w3.org/2000/svg" width="1920" height="1080" viewBox="0 0 1920 1080" preserveAspectRatio="xMidYMid slice" role="img" aria-label="Rocket fragment"> + <defs> + <linearGradient id="hullTop" x1="0%" y1="0%" x2="0%" y2="100%"> + <stop offset="0%" stop-color="#ffffff"/> + <stop offset="40%" stop-color="#e7ecf3"/> + <stop offset="100%" stop-color="#9aadc4"/> + </linearGradient> + <linearGradient id="hullSide" x1="0%" y1="0%" x2="0%" y2="100%"> + <stop offset="0%" stop-color="#c5d0df"/> + <stop offset="55%" stop-color="#7f92a8"/> + <stop offset="100%" stop-color="#3a4a5e"/> + </linearGradient> + <linearGradient id="hullShadow" x1="0%" y1="0%" x2="100%" y2="0%"> + <stop offset="0%" stop-color="#1a2332" stop-opacity="0.55"/> + <stop offset="100%" stop-color="#1a2332" stop-opacity="0"/> + </linearGradient> + <linearGradient id="stripeBlue" x1="0%" y1="0%" x2="0%" y2="100%"> + <stop offset="0%" stop-color="#5ba3ff"/> + <stop offset="100%" stop-color="#1e4a8a"/> + </linearGradient> + <linearGradient id="wingGrad" x1="0%" y1="0%" x2="100%" y2="100%"> + <stop offset="0%" stop-color="#4f9bff"/> + <stop offset="100%" stop-color="#1a2332"/> + </linearGradient> + <linearGradient id="glassGrad" x1="0%" y1="0%" x2="0%" y2="100%"> + <stop offset="0%" stop-color="#0f1a28"/> + <stop offset="100%" stop-color="#243044"/> + </linearGradient> + <radialGradient id="engineGlow" cx="50%" cy="50%" r="50%"> + <stop offset="0%" stop-color="#ffffff"/> + <stop offset="25%" stop-color="#5eead4"/> + <stop offset="55%" stop-color="#3d8bfd"/> + <stop offset="100%" stop-color="#3d8bfd" stop-opacity="0"/> + </radialGradient> + <filter id="engineBloom" x="-120%" y="-120%" width="340%" height="340%"> + <feGaussianBlur stdDeviation="16" result="b"/> + <feMerge><feMergeNode in="b"/><feMergeNode in="b"/><feMergeNode in="SourceGraphic"/></feMerge> + </filter> + <filter id="softShadow" x="-30%" y="-30%" width="160%" height="160%"> + <feDropShadow dx="4" dy="8" stdDeviation="6" flood-color="#000" flood-opacity="0.45"/> + </filter> + </defs> + + <g id="rocketship" transform="translate(1180,355) rotate(-30) scale(1,-1)" filter="url(#softShadow)"> + <!-- Belly shadow --> + <path d="M -455 18 L -120 28 L 40 14 L -120 -4 Z" fill="url(#hullShadow)" opacity="0.65"/> + + <!-- Lower hull --> + <path d="M -455 14 L -118 26 L 42 12 L 118 2 L 42 -8 L -118 -18 L -455 -8 Z" fill="url(#hullSide)" stroke="#2d3a4f" stroke-width="1.2"/> + + <!-- Upper hull --> + <path d="M -118 -18 L 42 -8 L 118 2 L 42 12 L -118 26 L -420 22 L -455 14 L -420 6 L -118 -18 Z" fill="url(#hullTop)" stroke="#8b9cb3" stroke-width="1"/> + + <!-- Side blue stripe --> + <path d="M -400 4 L -150 8 L -80 6 L -150 2 L -400 -2 Z" fill="url(#stripeBlue)"/> + + <!-- Panel lines --> + <g stroke="#8b9cb3" stroke-opacity="0.45" stroke-width="0.75" fill="none"> + <path d="M -380 6 L -380 -6"/><path d="M -300 8 L -300 -8"/><path d="M -220 10 L -220 -10"/> + <path d="M -140 10 L -140 -10"/><path d="M -60 8 L -60 -8"/> + <path d="M -380 -6 Q -250 -4 -118 -8"/><path d="M -380 6 Q -250 4 -118 10"/> + </g> + + <!-- Nose cone --> + <path d="M 42 -8 L 118 2 L 42 12 L 8 10 L 8 -4 Z" fill="#f4f7fb" stroke="#9aadc4" stroke-width="1"/> + <path d="M 42 -6 L 96 2 L 42 10 L 18 8 L 18 -2 Z" fill="#ffffff" opacity="0.45"/> + + <!-- Top canopy (rocketship2) --> + <path d="M -80 -14 L 72 -8 L 96 2 L 72 6 L -80 2 L -110 -4 Z" fill="url(#glassGrad)" stroke="#3d8bfd" stroke-width="0.9"/> + <g fill="#5eead4" opacity="0.9"> + <circle cx="-52" cy="-6" r="2.2"/><circle cx="-28" cy="-5" r="2"/><circle cx="-4" cy="-4" r="1.8"/> + <circle cx="20" cy="-3" r="1.6"/><circle cx="44" cy="-2" r="1.4"/> + </g> + + <!-- Belly observation windows --> + <path d="M -220 16 L -120 18 L -90 24 L -120 30 L -220 28 L -250 24 Z" fill="url(#glassGrad)" stroke="#3d8bfd" stroke-width="0.8" opacity="0.95"/> + <g stroke="#5eead4" stroke-width="0.6" opacity="0.7"> + <line x1="-210" y1="22" x2="-210" y2="26"/><line x1="-180" y1="22" x2="-180" y2="26"/> + <line x1="-150" y1="23" x2="-150" y2="27"/><line x1="-130" y1="24" x2="-130" y2="28"/> + </g> + + <!-- Main swept wings --> + <path d="M -340 26 L -190 28 L -118 118 L -300 98 Z" fill="url(#wingGrad)" stroke="#1a2332" stroke-width="1"/> + <path d="M -340 26 L -190 28 L -150 78" fill="none" stroke="#5eead4" stroke-width="1.2" opacity="0.55"/> + <path d="M -280 48 L -200 50 L -168 88 L -258 76 Z" fill="#243044" opacity="0.5"/> + + <!-- Dorsal fin --> + <path d="M -320 -26 L -210 -24 L -188 -68 L -292 -56 Z" fill="#3d8bfd" stroke="#1a2332" stroke-width="1"/> + <path d="M -320 -26 L -230 -24 L -205 -48" fill="none" stroke="#5eead4" stroke-width="1" opacity="0.5"/> + + <!-- Tail V-stabilizers --> + <path d="M -430 6 L -468 -8 L -458 -32 L -422 -20 Z" fill="#4a5a6e" stroke="#2d3a4f" stroke-width="0.9"/> + <path d="M -430 22 L -468 36 L -458 58 L -422 44 Z" fill="#4a5a6e" stroke="#2d3a4f" stroke-width="0.9"/> + + <!-- Engine housing --> + <path d="M -448 -16 L -478 -20 L -486 -4 L -456 0 Z" fill="#2d3a4f" stroke="#8b9cb3" stroke-width="0.8"/> + <path d="M -448 16 L -478 20 L -486 4 L -456 0 Z" fill="#2d3a4f" stroke="#8b9cb3" stroke-width="0.8"/> + <ellipse cx="-478" cy="0" rx="22" ry="18" fill="#1a2332" stroke="#8b9cb3" stroke-width="1"/> + <ellipse cx="-488" cy="0" rx="14" ry="11" fill="#0a0e14"/> + + <!-- Engine glow --> + <g filter="url(#engineBloom)"> + <ellipse cx="-458" cy="0" rx="28" ry="24" fill="url(#engineGlow)" opacity="0.95"/> + <ellipse cx="-472" cy="0" rx="44" ry="36" fill="url(#engineGlow)" opacity="0.5"/> + </g> + <ellipse cx="-458" cy="0" rx="11" ry="9" fill="#ffffff" opacity="0.98"/> + + <circle cx="100" cy="6" r="3" fill="#5eead4"/> + </g> +</svg> diff --git a/assets/hub-logo-fragment-space.svg b/assets/hub-logo-fragment-space.svg new file mode 100644 index 0000000..4c68538 --- /dev/null +++ b/assets/hub-logo-fragment-space.svg @@ -0,0 +1,75 @@ +<svg xmlns="http://www.w3.org/2000/svg" width="1920" height="1080" viewBox="0 0 1920 1080" preserveAspectRatio="xMidYMid slice" role="img" aria-label="Space fragment"> + <!-- Static vector sky (not runtime-generated). Editable: #space-bg, #nebula-*, #stars-layer, #stars-blinks --> + <defs> + <radialGradient id="spaceBgGrad" cx="52%" cy="48%" r="78%"> + <stop offset="0%" stop-color="#1a2332"/> + <stop offset="55%" stop-color="#0a0e14"/> + <stop offset="100%" stop-color="#060810"/> + </radialGradient> + <radialGradient id="nebulaAmber" cx="50%" cy="50%" r="50%"> + <stop offset="0%" stop-color="#b45309" stop-opacity="0.26"/> + <stop offset="55%" stop-color="#92400e" stop-opacity="0.12"/> + <stop offset="100%" stop-color="#78350f" stop-opacity="0"/> + </radialGradient> + <radialGradient id="nebulaBlue" cx="50%" cy="50%" r="50%"> + <stop offset="0%" stop-color="#3d8bfd" stop-opacity="0.22"/> + <stop offset="55%" stop-color="#1e3a5f" stop-opacity="0.11"/> + <stop offset="100%" stop-color="#0f172a" stop-opacity="0"/> + </radialGradient> + <radialGradient id="nebulaTeal" cx="50%" cy="50%" r="50%"> + <stop offset="0%" stop-color="#5eead4" stop-opacity="0.14"/> + <stop offset="100%" stop-color="#5eead4" stop-opacity="0"/> + </radialGradient> + <filter id="starBlink" x="-300%" y="-300%" width="700%" height="700%"> + <feGaussianBlur stdDeviation="2.2" result="b"/> + <feMerge><feMergeNode in="b"/><feMergeNode in="SourceGraphic"/></feMerge> + </filter> + </defs> + + <rect id="space-bg" width="1920" height="1080" fill="url(#spaceBgGrad)"/> + + <ellipse id="nebula-amber" cx="280" cy="210" rx="420" ry="290" fill="url(#nebulaAmber)" transform="rotate(-16 280 210)"/> + <ellipse id="nebula-blue" cx="1660" cy="860" rx="460" ry="320" fill="url(#nebulaBlue)" transform="rotate(14 1660 860)"/> + <ellipse id="nebula-teal" cx="1180" cy="180" rx="300" ry="200" fill="url(#nebulaTeal)" transform="rotate(8 1180 180)"/> + + <g id="stars-layer" fill="#e7ecf3"> + <circle cx="48" cy="42" r="0.9" opacity="0.5"/><circle cx="132" cy="96" r="0.7" opacity="0.42"/> + <circle cx="204" cy="24" r="1.0" opacity="0.55"/><circle cx="292" cy="78" r="0.8" opacity="0.4"/> + <circle cx="388" cy="52" r="0.9" opacity="0.48"/><circle cx="472" cy="114" r="0.7" opacity="0.44"/> + <circle cx="562" cy="28" r="1.1" opacity="0.58"/><circle cx="652" cy="82" r="0.8" opacity="0.4"/> + <circle cx="748" cy="46" r="0.9" opacity="0.46"/><circle cx="836" cy="108" r="0.7" opacity="0.42"/> + <circle cx="928" cy="34" r="1.0" opacity="0.56"/><circle cx="1024" cy="88" r="0.8" opacity="0.45"/> + <circle cx="1124" cy="22" r="0.9" opacity="0.5"/><circle cx="1216" cy="94" r="1.0" opacity="0.54"/> + <circle cx="1324" cy="48" r="0.8" opacity="0.42"/><circle cx="1416" cy="116" r="0.9" opacity="0.48"/> + <circle cx="1524" cy="62" r="0.8" opacity="0.44"/><circle cx="1632" cy="30" r="1.1" opacity="0.58"/> + <circle cx="1736" cy="86" r="0.9" opacity="0.46"/><circle cx="1824" cy="148" r="0.8" opacity="0.4"/> + <circle cx="1888" cy="64" r="1.0" opacity="0.52"/> + <circle cx="72" cy="198" r="0.8" opacity="0.42"/><circle cx="156" cy="268" r="0.9" opacity="0.46"/> + <circle cx="248" cy="318" r="0.7" opacity="0.38"/><circle cx="92" cy="418" r="1.0" opacity="0.52"/> + <circle cx="168" cy="538" r="0.8" opacity="0.4"/><circle cx="58" cy="628" r="0.9" opacity="0.45"/> + <circle cx="138" cy="728" r="0.7" opacity="0.38"/><circle cx="68" cy="838" r="1.0" opacity="0.5"/> + <circle cx="212" cy="898" r="0.8" opacity="0.42"/><circle cx="324" cy="978" r="0.9" opacity="0.48"/> + <circle cx="456" cy="1024" r="0.7" opacity="0.38"/><circle cx="588" cy="986" r="1.0" opacity="0.54"/> + <circle cx="704" cy="1052" r="0.8" opacity="0.4"/><circle cx="848" cy="1014" r="0.9" opacity="0.46"/> + <circle cx="968" cy="1062" r="0.7" opacity="0.36"/><circle cx="1088" cy="1026" r="1.0" opacity="0.52"/> + <circle cx="1228" cy="996" r="0.8" opacity="0.42"/><circle cx="1368" cy="1046" r="0.9" opacity="0.48"/> + <circle cx="1508" cy="1012" r="0.7" opacity="0.38"/><circle cx="1628" cy="1058" r="1.0" opacity="0.52"/> + <circle cx="1752" cy="1024" r="0.8" opacity="0.42"/><circle cx="1868" cy="996" r="0.9" opacity="0.46"/> + <circle cx="1724" cy="208" r="0.9" opacity="0.5"/><circle cx="1848" cy="328" r="0.8" opacity="0.42"/> + <circle cx="1904" cy="458" r="1.0" opacity="0.54"/><circle cx="1796" cy="588" r="0.8" opacity="0.4"/> + <circle cx="1876" cy="712" r="0.9" opacity="0.46"/><circle cx="1768" cy="832" r="0.7" opacity="0.38"/> + <circle cx="118" cy="156" r="1.4" opacity="0.66"/><circle cx="392" cy="188" r="1.5" opacity="0.68"/> + <circle cx="528" cy="944" r="1.4" opacity="0.62"/><circle cx="1176" cy="164" r="1.6" opacity="0.7"/> + <circle cx="1476" cy="886" r="1.4" opacity="0.64"/><circle cx="1776" cy="388" r="1.5" opacity="0.66"/> + <circle cx="172" cy="312" r="2.1" opacity="0.78"/><circle cx="1692" cy="146" r="1.9" opacity="0.74"/> + <circle cx="992" cy="928" r="2.0" opacity="0.72"/> + </g> + + <g id="stars-blinks" filter="url(#starBlink)" opacity="0.85"> + <path d="M 228 146 L 231 134 L 234 146 L 246 149 L 234 152 L 231 164 L 228 152 L 216 149 Z" fill="#e7ecf3"/> + <path d="M 1544 218 L 1547 208 L 1550 218 L 1562 221 L 1550 224 L 1547 234 L 1544 224 L 1532 221 Z" fill="#5eead4"/> + <path d="M 1824 818 L 1827 808 L 1830 818 L 1842 821 L 1830 824 L 1827 834 L 1824 824 L 1812 821 Z" fill="#e7ecf3"/> + <path d="M 1384 78 L 1386 72 L 1388 78 L 1396 80 L 1388 82 L 1386 88 L 1384 82 L 1376 80 Z" fill="#3d8bfd"/> + <path d="M 468 842 L 470 837 L 472 842 L 478 844 L 472 846 L 470 851 L 468 846 L 462 844 Z" fill="#e7ecf3"/> + </g> +</svg> diff --git a/assets/hub-logo-fragment-tail.svg b/assets/hub-logo-fragment-tail.svg new file mode 100644 index 0000000..09c2813 --- /dev/null +++ b/assets/hub-logo-fragment-tail.svg @@ -0,0 +1,58 @@ +<svg xmlns="http://www.w3.org/2000/svg" width="1920" height="1080" viewBox="0 0 1920 1080" preserveAspectRatio="xMidYMid slice" role="img" aria-label="Tail fragment"> + <defs> + <linearGradient id="plumeOuter" x1="0%" y1="50%" x2="100%" y2="50%"> + <stop offset="0%" stop-color="#5eead4" stop-opacity="0"/> + <stop offset="15%" stop-color="#5eead4" stop-opacity="0.18"/> + <stop offset="45%" stop-color="#3d8bfd" stop-opacity="0.48"/> + <stop offset="75%" stop-color="#5eead4" stop-opacity="0.78"/> + <stop offset="100%" stop-color="#ffffff" stop-opacity="0.95"/> + </linearGradient> + <linearGradient id="plumeMid" x1="0%" y1="50%" x2="100%" y2="50%"> + <stop offset="0%" stop-color="#3d8bfd" stop-opacity="0"/> + <stop offset="50%" stop-color="#5eead4" stop-opacity="0.55"/> + <stop offset="100%" stop-color="#ffffff" stop-opacity="0.88"/> + </linearGradient> + <radialGradient id="nozzleBloom" cx="100%" cy="50%" r="40%"> + <stop offset="0%" stop-color="#ffffff"/> + <stop offset="35%" stop-color="#5eead4" stop-opacity="0.9"/> + <stop offset="100%" stop-color="#3d8bfd" stop-opacity="0"/> + </radialGradient> + <filter id="plumeBlur" x="-50%" y="-100%" width="200%" height="300%"> + <feGaussianBlur stdDeviation="12" result="b"/> + <feMerge><feMergeNode in="b"/><feMergeNode in="SourceGraphic"/></feMerge> + </filter> + </defs> + + <g id="exhaust-tail" filter="url(#plumeBlur)"> + <!-- Rounded volumetric plume: thin at Earth limb, wide at nozzle (~804,584) --> + <path d=" + M 372 832 + C 452 778, 538 718, 628 658 + C 712 602, 772 572, 804 584 + C 818 590, 826 598, 832 606 + C 768 618, 688 668, 598 728 + C 508 788, 428 842, 358 868 + Z" fill="url(#plumeOuter)" opacity="0.7"/> + + <path d=" + M 388 840 + C 468 788, 558 728, 648 672 + C 718 624, 778 592, 802 584 + C 810 586, 814 590, 818 594 + C 758 602, 688 642, 618 688 + C 538 738, 458 788, 392 812 + Z" fill="url(#plumeMid)" opacity="0.82"/> + + <!-- Inner hot core --> + <path d=" + M 620 668 + Q 710 612, 788 588 + Q 798 584, 804 584 + Q 798 588, 788 592 + Q 710 618, 628 672 + Z" fill="#ffffff" opacity="0.55"/> + </g> + + <ellipse id="exhaust-nozzle-bloom" cx="812" cy="592" rx="48" ry="32" fill="url(#nozzleBloom)" opacity="0.9"/> + <ellipse cx="804" cy="584" rx="16" ry="12" fill="#ffffff" opacity="0.95"/> +</svg> diff --git a/assets/hub-logo-transparent.svg b/assets/hub-logo-transparent.svg new file mode 100644 index 0000000..9c1be94 --- /dev/null +++ b/assets/hub-logo-transparent.svg @@ -0,0 +1,3 @@ +<svg xmlns="http://www.w3.org/2000/svg" width="1920" height="1080" viewBox="0 0 1920 1080" preserveAspectRatio="xMidYMid slice" role="img" aria-label="Android Cast logo mark"> + <image href="hub-logo-fragment-globe.svg" x="0" y="0" width="1920" height="1080"/> +</svg> diff --git a/assets/hub-thunder.svg b/assets/hub-thunder.svg new file mode 100644 index 0000000..8029789 --- /dev/null +++ b/assets/hub-thunder.svg @@ -0,0 +1,14 @@ +<svg xmlns="http://www.w3.org/2000/svg" width="340" height="46" viewBox="0 0 340 46" role="img" aria-label="Thunder schematic underline"> + <defs> + <linearGradient id="thunderFill" x1="0%" y1="50%" x2="100%" y2="50%"> + <stop offset="0%" stop-color="#8ecfff" stop-opacity="0.22"/> + <stop offset="18%" stop-color="#c9ecff" stop-opacity="0.98"/> + <stop offset="50%" stop-color="#ffffff" stop-opacity="1"/> + <stop offset="82%" stop-color="#c9ecff" stop-opacity="0.98"/> + <stop offset="100%" stop-color="#8ecfff" stop-opacity="0.22"/> + </linearGradient> + </defs> + <path d="M 10 9 L 196 9" fill="none" stroke="url(#thunderFill)" stroke-width="5.5" stroke-linecap="round"/> + <path d="M 196 9 L 248 31" fill="none" stroke="url(#thunderFill)" stroke-width="5.5" stroke-linecap="round"/> + <path d="M 248 31 L 330 31" fill="none" stroke="url(#thunderFill)" stroke-width="5.5" stroke-linecap="round"/> +</svg> diff --git a/assets/hub-widget-resize-arrow.svg b/assets/hub-widget-resize-arrow.svg new file mode 100644 index 0000000..1f95c7b --- /dev/null +++ b/assets/hub-widget-resize-arrow.svg @@ -0,0 +1,7 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 45.279 45.279" aria-hidden="true"> + <symbol id="resizeArrow" viewBox="0 0 45.279 45.279"> + <path d="M44.106,42.943H3.987L44.933,1.995c0.456-0.455,0.456-1.196,0-1.651c-0.452-0.455-1.195-0.455-1.651,0L2.336,41.292V1.168 + C2.336,0.524,1.81,0,1.168,0C0.523,0,0,0.524,0,1.168v44.111h44.111c0.644,0,1.168-0.522,1.168-1.168 + C45.279,43.469,44.755,42.943,44.106,42.943z"/> + </symbol> +</svg> diff --git a/assets/i18n/hub-en.json b/assets/i18n/hub-en.json new file mode 100644 index 0000000..37bd09e --- /dev/null +++ b/assets/i18n/hub-en.json @@ -0,0 +1,62 @@ +{ + "nav.androidcast": "AndroidCast", + "nav.about": "About", + "nav.why": "Why", + "nav.tech": "Technologies", + "nav.resources": "Resources", + "nav.people": "People", + "nav.culture": "Culture", + "nav.pricing": "Pricing", + "nav.contact": "Contact us", + "nav.console": "Console", + "nav.git": "Git", + "nav.issues": "Issues", + "nav.tickets": "Tickets", + "nav.crashes": "Crashes", + "nav.graphs": "Analytics", + "nav.live_sessions": "Live sessions", + "nav.education": "Education (demo)", + "nav.remote": "Remote access", + "nav.short_links": "Short links", + "nav.short_links_desc": "Mint bearer tokens and shorten URLs for s.f0xx.org.", + "nav.console_desc": "Issue triage home and workspace cards.", + "nav.git_desc": "Browse repos, branches, and tags.", + "nav.issues_desc": "Browse and triage issues.", + "nav.tickets_desc": "Roadmap tasks, QA items, and tags.", + "nav.graphs_desc": "Sessions, live cast stats, and device activity.", + "nav.live_sessions_desc": "Cast intents, join stats, session history.", + "nav.education_desc": "Browser screen-share trial (5 min).", + "nav.remote_desc": "WireGuard sessions and device reachability.", + "nav.builder_desc": "Docker CI for APK baking and OTA artifacts.", + "nav.builder": "Builder", + "nav.toggle": "Navigation", + "nav.security": "Security", + "nav.logout": "Logout", + "nav.sign_in": "Sign in", + "lang.label": "Language", + "theme.label": "Theme", + "rail.label": "Page navigation", + "rail.handle": "Show page navigation", + "page1.title": "Android Cast", + "page1.lead": "Screen casting, crash intelligence, and CI — one ecosystem.", + "page1.cta": "Explore AndroidCast", + "page2.title": "AndroidCast", + "page2.lead": "Mirror Android screens with low latency, native codecs, and operator-grade tooling.", + "page3.title": "About", + "page3.lead": "Android Cast connects devices, backends, and operators across your stack.", + "page4.title": "Why AndroidCast", + "page4.lead": "Built for teams who need reliability, observability, and control — not another black box.", + "page5.title": "Technologies", + "page5.lead": "WebRTC, Opus/Speex, WireGuard remote access, PHP consoles, and Docker CI pipelines.", + "page6.title": "Resources", + "page6.lead": "Documentation, deployment guides, and integration patterns for your environment.", + "page7.title": "People", + "page7.lead": "Engineers and operators shipping cast, crash, and build workflows every day.", + "page8.title": "Culture", + "page8.lead": "Open tooling, green master branches, and honest postmortems.", + "page9.title": "Pricing", + "page9.lead": "Self-hosted core; enterprise options for SLA, SSO, and dedicated builders.", + "page10.title": "Contact us", + "page10.lead": "Reach the maintainer for partnerships, support, or deployment help.", + "footer.copyright": "© {holder}, {year}" +} diff --git a/assets/i18n/hub-ru.json b/assets/i18n/hub-ru.json new file mode 100644 index 0000000..b9cd1c4 --- /dev/null +++ b/assets/i18n/hub-ru.json @@ -0,0 +1,62 @@ +{ + "nav.androidcast": "AndroidCast", + "nav.about": "О проекте", + "nav.why": "Зачем", + "nav.tech": "Технологии", + "nav.resources": "Ресурсы", + "nav.people": "Люди", + "nav.culture": "Культура", + "nav.pricing": "Цены", + "nav.contact": "Контакты", + "nav.console": "Консоль", + "nav.git": "Git", + "nav.issues": "Проблемы", + "nav.tickets": "Тикеты", + "nav.crashes": "Крэши", + "nav.graphs": "Аналитика", + "nav.live_sessions": "Live-сессии", + "nav.education": "Education (demo)", + "nav.remote": "Удалённый доступ", + "nav.short_links": "Короткие ссылки", + "nav.short_links_desc": "Токены и сокращение URL для s.f0xx.org.", + "nav.console_desc": "Главная консоли и карточки разделов.", + "nav.git_desc": "Репозитории, ветки и теги.", + "nav.issues_desc": "Просмотр и разбор issues.", + "nav.tickets_desc": "Задачи roadmap, QA и теги.", + "nav.graphs_desc": "Сессии, live cast и активность устройств.", + "nav.live_sessions_desc": "Intent, join-статистика, история сессий.", + "nav.education_desc": "Пробный screen-share в браузере (5 мин).", + "nav.remote_desc": "Сессии WireGuard и доступ к устройствам.", + "nav.builder_desc": "Docker CI для сборки APK и OTA.", + "nav.builder": "Сборщик", + "nav.toggle": "Навигация", + "nav.security": "Безопасность", + "nav.logout": "Выход", + "nav.sign_in": "Вход", + "lang.label": "Язык", + "theme.label": "Тема", + "rail.label": "Навигация по страницам", + "rail.handle": "Показать навигацию", + "page1.title": "Android Cast", + "page1.lead": "Трансляция экрана, аналитика сбоев и CI — одна экосистема.", + "page1.cta": "Узнать об AndroidCast", + "page2.title": "AndroidCast", + "page2.lead": "Зеркалирование Android с низкой задержкой, нативными кодеками и инструментами оператора.", + "page3.title": "О проекте", + "page3.lead": "Android Cast связывает устройства, бэкенды и операторов в едином стеке.", + "page4.title": "Зачем AndroidCast", + "page4.lead": "Для команд, которым нужны надёжность, наблюдаемость и контроль — не чёрный ящик.", + "page5.title": "Технологии", + "page5.lead": "WebRTC, Opus/Speex, WireGuard, PHP-консоли и Docker CI.", + "page6.title": "Ресурсы", + "page6.lead": "Документация, деплой и паттерны интеграции для вашей среды.", + "page7.title": "Люди", + "page7.lead": "Инженеры и операторы, которые каждый день развивают cast, crash и сборки.", + "page8.title": "Культура", + "page8.lead": "Открытые инструменты, зелёный master и честные postmortem.", + "page9.title": "Цены", + "page9.lead": "Self-hosted ядро; enterprise — SLA, SSO и выделенные builder-ы.", + "page10.title": "Контакты", + "page10.lead": "Связь с maintainer: партнёрство, поддержка, помощь с деплоем.", + "footer.copyright": "© {holder}, {year}" +} diff --git a/assets/mercator-source.jpg b/assets/mercator-source.jpg new file mode 100644 index 0000000000000000000000000000000000000000..c51e2eae730d25b9a108ee9c70166e68f08cc002 GIT binary patch literal 64097 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 a<P+*QDnyty)e!_*nc%8G0<rn;p??7AGn3T- literal 0 HcmV?d00001 diff --git a/assets/overtime-01-alphabet.svg b/assets/overtime-01-alphabet.svg new file mode 100644 index 0000000..be1bddc --- /dev/null +++ b/assets/overtime-01-alphabet.svg @@ -0,0 +1,46 @@ +<svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" style="position:absolute;width:0;height:0;overflow:hidden"> + <!-- Overtime Bold style 7-segment LCD (full alphabet) --> + <defs> + <symbol id="ot-space" viewBox="0 0 8 32"></symbol> + <symbol id="ot-0" viewBox="0 0 20 32"><rect x="3" y="1" width="14" height="3" rx="1"/><rect x="16" y="4" width="3" height="11" rx="1"/><rect x="16" y="17" width="3" height="11" rx="1"/><rect x="3" y="28" width="14" height="3" rx="1"/><rect x="1" y="17" width="3" height="11" rx="1"/><rect x="1" y="4" width="3" height="11" rx="1"/></symbol> + <symbol id="ot-1" viewBox="0 0 20 32"><rect x="16" y="4" width="3" height="11" rx="1"/><rect x="16" y="17" width="3" height="11" rx="1"/></symbol> + <symbol id="ot-2" viewBox="0 0 20 32"><rect x="3" y="1" width="14" height="3" rx="1"/><rect x="1" y="4" width="3" height="11" rx="1"/><rect x="3" y="15" width="14" height="3" rx="1"/><rect x="16" y="17" width="3" height="11" rx="1"/><rect x="3" y="28" width="14" height="3" rx="1"/></symbol> + <symbol id="ot-3" viewBox="0 0 20 32"><rect x="3" y="1" width="14" height="3" rx="1"/><rect x="16" y="4" width="3" height="11" rx="1"/><rect x="3" y="15" width="14" height="3" rx="1"/><rect x="16" y="17" width="3" height="11" rx="1"/><rect x="3" y="28" width="14" height="3" rx="1"/></symbol> + <symbol id="ot-4" viewBox="0 0 20 32"><rect x="1" y="4" width="3" height="11" rx="1"/><rect x="3" y="15" width="14" height="3" rx="1"/><rect x="16" y="4" width="3" height="11" rx="1"/><rect x="16" y="17" width="3" height="11" rx="1"/></symbol> + <symbol id="ot-5" viewBox="0 0 20 32"><rect x="3" y="1" width="14" height="3" rx="1"/><rect x="1" y="4" width="3" height="11" rx="1"/><rect x="3" y="15" width="14" height="3" rx="1"/><rect x="16" y="17" width="3" height="11" rx="1"/><rect x="3" y="28" width="14" height="3" rx="1"/></symbol> + <symbol id="ot-6" viewBox="0 0 20 32"><rect x="3" y="1" width="14" height="3" rx="1"/><rect x="1" y="4" width="3" height="11" rx="1"/><rect x="3" y="15" width="14" height="3" rx="1"/><rect x="1" y="17" width="3" height="11" rx="1"/><rect x="16" y="17" width="3" height="11" rx="1"/><rect x="3" y="28" width="14" height="3" rx="1"/></symbol> + <symbol id="ot-7" viewBox="0 0 20 32"><rect x="3" y="1" width="14" height="3" rx="1"/><rect x="16" y="4" width="3" height="11" rx="1"/><rect x="16" y="17" width="3" height="11" rx="1"/></symbol> + <symbol id="ot-8" viewBox="0 0 20 32"><rect x="3" y="1" width="14" height="3" rx="1"/><rect x="1" y="4" width="3" height="11" rx="1"/><rect x="16" y="4" width="3" height="11" rx="1"/><rect x="3" y="15" width="14" height="3" rx="1"/><rect x="1" y="17" width="3" height="11" rx="1"/><rect x="16" y="17" width="3" height="11" rx="1"/><rect x="3" y="28" width="14" height="3" rx="1"/></symbol> + <symbol id="ot-9" viewBox="0 0 20 32"><rect x="3" y="1" width="14" height="3" rx="1"/><rect x="1" y="4" width="3" height="11" rx="1"/><rect x="3" y="15" width="14" height="3" rx="1"/><rect x="16" y="4" width="3" height="11" rx="1"/><rect x="16" y="17" width="3" height="11" rx="1"/><rect x="3" y="28" width="14" height="3" rx="1"/></symbol> + <symbol id="ot-A" viewBox="0 0 20 32"><rect x="3.00" y="1.00" width="14.00" height="3.00" rx="1"/><rect x="1.00" y="4.00" width="3.00" height="11.00" rx="1"/><rect x="16.00" y="4.00" width="3.00" height="11.00" rx="1"/><rect x="3.00" y="15.00" width="14.00" height="3.00" rx="1"/><rect x="1.00" y="17.00" width="3.00" height="11.00" rx="1"/><rect x="16.00" y="17.00" width="3.00" height="11.00" rx="1"/></symbol> + <symbol id="ot-B" viewBox="0 0 20 32"><rect x="3.00" y="1.00" width="14.00" height="3.00" rx="1"/><rect x="1.00" y="4.00" width="3.00" height="11.00" rx="1"/><rect x="16.00" y="4.00" width="3.00" height="11.00" rx="1"/><rect x="3.00" y="15.00" width="14.00" height="3.00" rx="1"/><rect x="16.00" y="17.00" width="3.00" height="11.00" rx="1"/><rect x="3.00" y="28.00" width="14.00" height="3.00" rx="1"/></symbol> + <symbol id="ot-C" viewBox="0 0 20 32"><rect x="3.00" y="1.00" width="14.00" height="3.00" rx="1"/><rect x="1.00" y="4.00" width="3.00" height="11.00" rx="1"/><rect x="1.00" y="17.00" width="3.00" height="11.00" rx="1"/><rect x="3.00" y="28.00" width="14.00" height="3.00" rx="1"/></symbol> + <symbol id="ot-D" viewBox="0 0 20 32"><rect x="1.00" y="4.00" width="3.00" height="11.00" rx="1"/><rect x="16.00" y="4.00" width="3.00" height="11.00" rx="1"/><rect x="3.00" y="15.00" width="14.00" height="3.00" rx="1"/><rect x="16.00" y="17.00" width="3.00" height="11.00" rx="1"/><rect x="3.00" y="28.00" width="14.00" height="3.00" rx="1"/></symbol> + <symbol id="ot-E" viewBox="0 0 20 32"><rect x="3.00" y="1.00" width="14.00" height="3.00" rx="1"/><rect x="3.00" y="15.00" width="14.00" height="3.00" rx="1"/><rect x="1.00" y="17.00" width="3.00" height="11.00" rx="1"/><rect x="16.00" y="17.00" width="3.00" height="11.00" rx="1"/><rect x="3.00" y="28.00" width="14.00" height="3.00" rx="1"/></symbol> + <symbol id="ot-F" viewBox="0 0 20 32"><rect x="3.00" y="1.00" width="14.00" height="3.00" rx="1"/><rect x="3.00" y="15.00" width="14.00" height="3.00" rx="1"/><rect x="1.00" y="17.00" width="3.00" height="11.00" rx="1"/><rect x="16.00" y="17.00" width="3.00" height="11.00" rx="1"/></symbol> + <symbol id="ot-G" viewBox="0 0 20 32"><rect x="3" y="1" width="14" height="3" rx="1"/><rect x="1" y="4" width="3" height="11" rx="1"/><rect x="1" y="17" width="3" height="11" rx="1"/><rect x="3" y="28" width="14" height="3" rx="1"/><rect x="16" y="17" width="3" height="11" rx="1"/><rect x="10" y="15" width="9" height="3" rx="1"/></symbol> + <symbol id="ot-H" viewBox="0 0 20 32"><rect x="1.00" y="4.00" width="3.00" height="11.00" rx="1"/><rect x="16.00" y="4.00" width="3.00" height="11.00" rx="1"/><rect x="3.00" y="15.00" width="14.00" height="3.00" rx="1"/><rect x="1.00" y="17.00" width="3.00" height="11.00" rx="1"/><rect x="16.00" y="17.00" width="3.00" height="11.00" rx="1"/></symbol> + <symbol id="ot-I" viewBox="0 0 20 32"><rect x="3.00" y="1.00" width="14.00" height="3.00" rx="1"/><rect x="3.00" y="28.00" width="14.00" height="3.00" rx="1"/></symbol> + <symbol id="ot-J" viewBox="0 0 20 32"><rect x="1.00" y="4.00" width="3.00" height="11.00" rx="1"/><rect x="16.00" y="4.00" width="3.00" height="11.00" rx="1"/><rect x="1.00" y="17.00" width="3.00" height="11.00" rx="1"/><rect x="16.00" y="17.00" width="3.00" height="11.00" rx="1"/><rect x="3.00" y="28.00" width="14.00" height="3.00" rx="1"/></symbol> + <symbol id="ot-K" viewBox="0 0 24 32"><rect x="1.00" y="4.00" width="3.00" height="11.00" rx="1"/><rect x="3.00" y="15.00" width="14.00" height="3.00" rx="1"/><rect x="1.00" y="17.00" width="3.00" height="11.00" rx="1"/><rect x="16.00" y="17.00" width="3.00" height="11.00" rx="1"/><rect x="10" y="4" width="2.2" height="11" rx="1" transform="rotate(-30 11.1 9.5)"/><rect x="10" y="17" width="2.2" height="11" rx="1" transform="rotate(30 11.1 22.5)"/></symbol> + <symbol id="ot-L" viewBox="0 0 20 32"><rect x="1.00" y="17.00" width="3.00" height="11.00" rx="1"/><rect x="16.00" y="17.00" width="3.00" height="11.00" rx="1"/><rect x="3.00" y="28.00" width="14.00" height="3.00" rx="1"/></symbol> + <symbol id="ot-M" viewBox="0 0 24 32"><rect x="1" y="4" width="3" height="24" rx="1"/><rect x="20" y="4" width="3" height="24" rx="1"/><rect x="7.1" y="5" width="2.6" height="13.2" rx="1" transform="rotate(28 8.4 11.6)"/><rect x="14.3" y="5" width="2.6" height="13.2" rx="1" transform="rotate(-28 15.6 11.6)"/></symbol> + <symbol id="ot-N" viewBox="0 0 24 32"><rect x="1.00" y="4.00" width="3.00" height="11.00" rx="1"/><rect x="16.00" y="4.00" width="3.00" height="11.00" rx="1"/><rect x="1.00" y="17.00" width="3.00" height="11.00" rx="1"/><rect x="16.00" y="17.00" width="3.00" height="11.00" rx="1"/><rect x="6.5" y="6" width="2.4" height="12" rx="1" transform="rotate(32 7.7 12)"/><rect x="14.8" y="14" width="2.4" height="12" rx="1" transform="rotate(32 16 20)"/></symbol> + <symbol id="ot-O" viewBox="0 0 20 32"><rect x="3.00" y="1.00" width="14.00" height="3.00" rx="1"/><rect x="1.00" y="4.00" width="3.00" height="11.00" rx="1"/><rect x="16.00" y="4.00" width="3.00" height="11.00" rx="1"/><rect x="1.00" y="17.00" width="3.00" height="11.00" rx="1"/><rect x="16.00" y="17.00" width="3.00" height="11.00" rx="1"/><rect x="3.00" y="28.00" width="14.00" height="3.00" rx="1"/></symbol> + <symbol id="ot-P" viewBox="0 0 20 32"><rect x="3.00" y="1.00" width="14.00" height="3.00" rx="1"/><rect x="1.00" y="4.00" width="3.00" height="11.00" rx="1"/><rect x="16.00" y="4.00" width="3.00" height="11.00" rx="1"/><rect x="3.00" y="15.00" width="14.00" height="3.00" rx="1"/><rect x="1.00" y="17.00" width="3.00" height="11.00" rx="1"/></symbol> + <symbol id="ot-Q" viewBox="0 0 24 32"><rect x="3.00" y="1.00" width="14.00" height="3.00" rx="1"/><rect x="1.00" y="4.00" width="3.00" height="11.00" rx="1"/><rect x="16.00" y="4.00" width="3.00" height="11.00" rx="1"/><rect x="1.00" y="17.00" width="3.00" height="11.00" rx="1"/><rect x="16.00" y="17.00" width="3.00" height="11.00" rx="1"/><rect x="3.00" y="28.00" width="14.00" height="3.00" rx="1"/><rect x="14" y="18" width="2.2" height="10" rx="1" transform="rotate(38 15.1 23)"/></symbol> + <symbol id="ot-R" viewBox="0 0 24 32"><rect x="3.00" y="1.00" width="14.00" height="3.00" rx="1"/><rect x="1.00" y="4.00" width="3.00" height="11.00" rx="1"/><rect x="16.00" y="4.00" width="3.00" height="11.00" rx="1"/><rect x="3.00" y="15.00" width="14.00" height="3.00" rx="1"/><rect x="1.00" y="17.00" width="3.00" height="11.00" rx="1"/><rect x="16.00" y="17.00" width="3.00" height="11.00" rx="1"/><rect x="12" y="17" width="2.2" height="10" rx="1" transform="rotate(38 13.1 22)"/></symbol> + <symbol id="ot-S" viewBox="0 0 20 32"><rect x="3.00" y="1.00" width="14.00" height="3.00" rx="1"/><rect x="16.00" y="4.00" width="3.00" height="11.00" rx="1"/><rect x="3.00" y="15.00" width="14.00" height="3.00" rx="1"/><rect x="16.00" y="17.00" width="3.00" height="11.00" rx="1"/><rect x="3.00" y="28.00" width="14.00" height="3.00" rx="1"/></symbol> + <symbol id="ot-T" viewBox="0 0 20 32"><rect x="3" y="1" width="14" height="3" rx="1"/><rect x="8" y="4" width="4" height="24" rx="1"/></symbol> + <symbol id="ot-U" viewBox="0 0 20 32"><rect x="1.00" y="4.00" width="3.00" height="11.00" rx="1"/><rect x="16.00" y="4.00" width="3.00" height="11.00" rx="1"/><rect x="1.00" y="17.00" width="3.00" height="11.00" rx="1"/><rect x="16.00" y="17.00" width="3.00" height="11.00" rx="1"/><rect x="3.00" y="28.00" width="14.00" height="3.00" rx="1"/></symbol> + <symbol id="ot-V" viewBox="0 0 20 32"><rect x="1.00" y="4.00" width="3.00" height="11.00" rx="1"/><rect x="1.00" y="17.00" width="3.00" height="11.00" rx="1"/><rect x="16.00" y="17.00" width="3.00" height="11.00" rx="1"/><rect x="7" y="17" width="2.2" height="12" rx="1" transform="rotate(24 8.1 23)"/><rect x="12" y="17" width="2.2" height="12" rx="1" transform="rotate(-24 13.1 23)"/></symbol> + <symbol id="ot-W" viewBox="0 0 24 32"><rect x="1.00" y="4.00" width="3.00" height="11.00" rx="1"/><rect x="16.00" y="4.00" width="3.00" height="11.00" rx="1"/><rect x="1.00" y="17.00" width="3.00" height="11.00" rx="1"/><rect x="16.00" y="17.00" width="3.00" height="11.00" rx="1"/><rect x="3.00" y="28.00" width="14.00" height="3.00" rx="1"/><rect x="5" y="17" width="2" height="11" rx="1" transform="rotate(18 6 22.5)"/><rect x="9.5" y="17" width="2" height="11" rx="1" transform="rotate(-18 10.5 22.5)"/><rect x="14" y="17" width="2" height="11" rx="1" transform="rotate(18 15 22.5)"/></symbol> + <symbol id="ot-X" viewBox="0 0 24 32"><rect x="1.00" y="4.00" width="3.00" height="11.00" rx="1"/><rect x="16.00" y="4.00" width="3.00" height="11.00" rx="1"/><rect x="1.00" y="17.00" width="3.00" height="11.00" rx="1"/><rect x="16.00" y="17.00" width="3.00" height="11.00" rx="1"/><rect x="7" y="5" width="2.2" height="11" rx="1" transform="rotate(32 8.1 10.5)"/><rect x="11" y="16" width="2.2" height="11" rx="1" transform="rotate(-32 12.1 21.5)"/></symbol> + <symbol id="ot-Y" viewBox="0 0 20 32"><rect x="1" y="4" width="3" height="11" rx="1"/><rect x="16" y="4" width="3" height="11" rx="1"/><rect x="8" y="15" width="4" height="14" rx="1"/></symbol> + <symbol id="ot-Z" viewBox="0 0 20 32"><rect x="3.00" y="1.00" width="14.00" height="3.00" rx="1"/><rect x="1.00" y="4.00" width="3.00" height="11.00" rx="1"/><rect x="1.00" y="17.00" width="3.00" height="11.00" rx="1"/><rect x="3.00" y="28.00" width="14.00" height="3.00" rx="1"/></symbol> + <symbol id="ot-colon" viewBox="0 0 12 32"><rect x="4" y="10" width="4" height="4" rx="1"/><rect x="4" y="20" width="4" height="4" rx="1"/></symbol> + <symbol id="ot-plus" viewBox="0 0 16 32"><rect x="6" y="8" width="4" height="16" rx="1"/><rect x="2" y="14" width="12" height="4" rx="1"/></symbol> + <symbol id="ot-minus" viewBox="0 0 16 32"><rect x="2" y="14" width="12" height="4" rx="1"/></symbol> + <symbol id="ot-slash" viewBox="0 0 14 32"><rect x="11" y="5" width="2.2" height="10" rx="1" transform="rotate(52 12.1 10)"/><rect x="4" y="19" width="2.2" height="10" rx="1" transform="rotate(52 5.1 24)"/></symbol> + </defs> +</svg> diff --git a/assets/quartz-alphabet.svg b/assets/quartz-alphabet.svg new file mode 100644 index 0000000..321f1fd --- /dev/null +++ b/assets/quartz-alphabet.svg @@ -0,0 +1,46 @@ +<svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" style="position:absolute;width:0;height:0;overflow:hidden"> + <!-- Quartz (TS) style 7-segment LCD (full alphabet) --> + <defs> + <symbol id="qz-space" viewBox="0 0 8 32"></symbol> + <symbol id="qz-0" viewBox="0 0 20 32"><rect x="2.40" y="1.28" width="15.20" height="2.88" rx="1"/><rect x="1.08" y="4.16" width="2.80" height="10.56" rx="1"/><rect x="16.12" y="4.16" width="2.80" height="10.56" rx="1"/><rect x="1.08" y="16.77" width="2.80" height="10.56" rx="1"/><rect x="16.12" y="16.77" width="2.80" height="10.56" rx="1"/><rect x="2.40" y="27.52" width="15.20" height="2.88" rx="1"/></symbol> + <symbol id="qz-1" viewBox="0 0 20 32"><rect x="16.12" y="4.16" width="2.80" height="10.56" rx="1"/><rect x="16.12" y="16.77" width="2.80" height="10.56" rx="1"/></symbol> + <symbol id="qz-2" viewBox="0 0 20 32"><rect x="2.40" y="1.28" width="15.20" height="2.88" rx="1"/><rect x="1.08" y="4.16" width="2.80" height="10.56" rx="1"/><rect x="2.40" y="15.04" width="15.20" height="2.88" rx="1"/><rect x="16.12" y="16.77" width="2.80" height="10.56" rx="1"/><rect x="2.40" y="27.52" width="15.20" height="2.88" rx="1"/></symbol> + <symbol id="qz-3" viewBox="0 0 20 32"><rect x="2.40" y="1.28" width="15.20" height="2.88" rx="1"/><rect x="16.12" y="4.16" width="2.80" height="10.56" rx="1"/><rect x="2.40" y="15.04" width="15.20" height="2.88" rx="1"/><rect x="16.12" y="16.77" width="2.80" height="10.56" rx="1"/><rect x="2.40" y="27.52" width="15.20" height="2.88" rx="1"/></symbol> + <symbol id="qz-4" viewBox="0 0 20 32"><rect x="1.08" y="4.16" width="2.80" height="10.56" rx="1"/><rect x="16.12" y="4.16" width="2.80" height="10.56" rx="1"/><rect x="2.40" y="15.04" width="15.20" height="2.88" rx="1"/><rect x="16.12" y="16.77" width="2.80" height="10.56" rx="1"/></symbol> + <symbol id="qz-5" viewBox="0 0 20 32"><rect x="2.40" y="1.28" width="15.20" height="2.88" rx="1"/><rect x="16.12" y="4.16" width="2.80" height="10.56" rx="1"/><rect x="2.40" y="15.04" width="15.20" height="2.88" rx="1"/><rect x="16.12" y="16.77" width="2.80" height="10.56" rx="1"/><rect x="2.40" y="27.52" width="15.20" height="2.88" rx="1"/></symbol> + <symbol id="qz-6" viewBox="0 0 20 32"><rect x="2.40" y="1.28" width="15.20" height="2.88" rx="1"/><rect x="16.12" y="4.16" width="2.80" height="10.56" rx="1"/><rect x="2.40" y="15.04" width="15.20" height="2.88" rx="1"/><rect x="1.08" y="16.77" width="2.80" height="10.56" rx="1"/><rect x="16.12" y="16.77" width="2.80" height="10.56" rx="1"/><rect x="2.40" y="27.52" width="15.20" height="2.88" rx="1"/></symbol> + <symbol id="qz-7" viewBox="0 0 20 32"><rect x="2.40" y="1.28" width="15.20" height="2.88" rx="1"/><rect x="1.08" y="4.16" width="2.80" height="10.56" rx="1"/><rect x="16.12" y="4.16" width="2.80" height="10.56" rx="1"/></symbol> + <symbol id="qz-8" viewBox="0 0 20 32"><rect x="2.40" y="1.28" width="15.20" height="2.88" rx="1"/><rect x="1.08" y="4.16" width="2.80" height="10.56" rx="1"/><rect x="16.12" y="4.16" width="2.80" height="10.56" rx="1"/><rect x="2.40" y="15.04" width="15.20" height="2.88" rx="1"/><rect x="1.08" y="16.77" width="2.80" height="10.56" rx="1"/><rect x="16.12" y="16.77" width="2.80" height="10.56" rx="1"/><rect x="2.40" y="27.52" width="15.20" height="2.88" rx="1"/></symbol> + <symbol id="qz-9" viewBox="0 0 20 32"><rect x="2.40" y="1.28" width="15.20" height="2.88" rx="1"/><rect x="1.08" y="4.16" width="2.80" height="10.56" rx="1"/><rect x="16.12" y="4.16" width="2.80" height="10.56" rx="1"/><rect x="2.40" y="15.04" width="15.20" height="2.88" rx="1"/><rect x="16.12" y="16.77" width="2.80" height="10.56" rx="1"/><rect x="2.40" y="27.52" width="15.20" height="2.88" rx="1"/></symbol> + <symbol id="qz-A" viewBox="0 0 20 32"><rect x="2.40" y="1.28" width="15.20" height="2.88" rx="1"/><rect x="1.08" y="4.16" width="2.80" height="10.56" rx="1"/><rect x="16.12" y="4.16" width="2.80" height="10.56" rx="1"/><rect x="2.40" y="15.04" width="15.20" height="2.88" rx="1"/><rect x="1.08" y="16.77" width="2.80" height="10.56" rx="1"/><rect x="16.12" y="16.77" width="2.80" height="10.56" rx="1"/></symbol> + <symbol id="qz-B" viewBox="0 0 20 32"><rect x="2.40" y="1.28" width="15.20" height="2.88" rx="1"/><rect x="1.08" y="4.16" width="2.80" height="10.56" rx="1"/><rect x="16.12" y="4.16" width="2.80" height="10.56" rx="1"/><rect x="2.40" y="15.04" width="15.20" height="2.88" rx="1"/><rect x="16.12" y="16.77" width="2.80" height="10.56" rx="1"/><rect x="2.40" y="27.52" width="15.20" height="2.88" rx="1"/></symbol> + <symbol id="qz-C" viewBox="0 0 20 32"><rect x="2.40" y="1.28" width="15.20" height="2.88" rx="1"/><rect x="1.08" y="4.16" width="2.80" height="10.56" rx="1"/><rect x="1.08" y="16.77" width="2.80" height="10.56" rx="1"/><rect x="2.40" y="27.52" width="15.20" height="2.88" rx="1"/></symbol> + <symbol id="qz-D" viewBox="0 0 20 32"><rect x="1.08" y="4.16" width="2.80" height="10.56" rx="1"/><rect x="16.12" y="4.16" width="2.80" height="10.56" rx="1"/><rect x="2.40" y="15.04" width="15.20" height="2.88" rx="1"/><rect x="16.12" y="16.77" width="2.80" height="10.56" rx="1"/><rect x="2.40" y="27.52" width="15.20" height="2.88" rx="1"/></symbol> + <symbol id="qz-E" viewBox="0 0 20 32"><rect x="2.40" y="1.28" width="15.20" height="2.88" rx="1"/><rect x="2.40" y="15.04" width="15.20" height="2.88" rx="1"/><rect x="1.08" y="16.77" width="2.80" height="10.56" rx="1"/><rect x="16.12" y="16.77" width="2.80" height="10.56" rx="1"/><rect x="2.40" y="27.52" width="15.20" height="2.88" rx="1"/></symbol> + <symbol id="qz-F" viewBox="0 0 20 32"><rect x="2.40" y="1.28" width="15.20" height="2.88" rx="1"/><rect x="2.40" y="15.04" width="15.20" height="2.88" rx="1"/><rect x="1.08" y="16.77" width="2.80" height="10.56" rx="1"/><rect x="16.12" y="16.77" width="2.80" height="10.56" rx="1"/></symbol> + <symbol id="qz-G" viewBox="0 0 20 32"><rect x="2.40" y="1.28" width="15.20" height="2.88" rx="1"/><rect x="16.12" y="4.16" width="2.80" height="10.56" rx="1"/><rect x="1.08" y="16.77" width="2.80" height="10.56" rx="1"/><rect x="16.12" y="16.77" width="2.80" height="10.56" rx="1"/><rect x="2.40" y="27.52" width="15.20" height="2.88" rx="1"/></symbol> + <symbol id="qz-H" viewBox="0 0 20 32"><rect x="1.08" y="4.16" width="2.80" height="10.56" rx="1"/><rect x="16.12" y="4.16" width="2.80" height="10.56" rx="1"/><rect x="2.40" y="15.04" width="15.20" height="2.88" rx="1"/><rect x="1.08" y="16.77" width="2.80" height="10.56" rx="1"/><rect x="16.12" y="16.77" width="2.80" height="10.56" rx="1"/></symbol> + <symbol id="qz-I" viewBox="0 0 20 32"><rect x="2.40" y="1.28" width="15.20" height="2.88" rx="1"/><rect x="2.40" y="27.52" width="15.20" height="2.88" rx="1"/></symbol> + <symbol id="qz-J" viewBox="0 0 20 32"><rect x="1.08" y="4.16" width="2.80" height="10.56" rx="1"/><rect x="16.12" y="4.16" width="2.80" height="10.56" rx="1"/><rect x="1.08" y="16.77" width="2.80" height="10.56" rx="1"/><rect x="16.12" y="16.77" width="2.80" height="10.56" rx="1"/><rect x="2.40" y="27.52" width="15.20" height="2.88" rx="1"/></symbol> + <symbol id="qz-K" viewBox="0 0 24 32"><rect x="1.30" y="4.16" width="3.36" height="10.56" rx="1"/><rect x="2.88" y="15.04" width="18.24" height="2.88" rx="1"/><rect x="1.30" y="16.77" width="3.36" height="10.56" rx="1"/><rect x="19.34" y="16.77" width="3.36" height="10.56" rx="1"/><rect x="10" y="4" width="2.2" height="11" rx="1" transform="rotate(-30 11.1 9.5)"/><rect x="10" y="17" width="2.2" height="11" rx="1" transform="rotate(30 11.1 22.5)"/></symbol> + <symbol id="qz-L" viewBox="0 0 20 32"><rect x="1.08" y="16.77" width="2.80" height="10.56" rx="1"/><rect x="16.12" y="16.77" width="2.80" height="10.56" rx="1"/><rect x="2.40" y="27.52" width="15.20" height="2.88" rx="1"/></symbol> + <symbol id="qz-M" viewBox="0 0 24 32"><rect x="2.88" y="1.28" width="18.24" height="2.88" rx="1"/><rect x="1.30" y="4.16" width="3.36" height="10.56" rx="1"/><rect x="19.34" y="4.16" width="3.36" height="10.56" rx="1"/><rect x="1.30" y="16.77" width="3.36" height="10.56" rx="1"/><rect x="19.34" y="16.77" width="3.36" height="10.56" rx="1"/><rect x="7.1" y="5" width="2.6" height="13.2" rx="1" transform="rotate(28 8.4 11.6)"/><rect x="14.3" y="5" width="2.6" height="13.2" rx="1" transform="rotate(-28 15.6 11.6)"/></symbol> + <symbol id="qz-N" viewBox="0 0 24 32"><rect x="1.30" y="4.16" width="3.36" height="10.56" rx="1"/><rect x="19.34" y="4.16" width="3.36" height="10.56" rx="1"/><rect x="1.30" y="16.77" width="3.36" height="10.56" rx="1"/><rect x="19.34" y="16.77" width="3.36" height="10.56" rx="1"/><rect x="6.5" y="6" width="2.4" height="12" rx="1" transform="rotate(32 7.7 12)"/><rect x="14.8" y="14" width="2.4" height="12" rx="1" transform="rotate(32 16 20)"/></symbol> + <symbol id="qz-O" viewBox="0 0 20 32"><rect x="2.40" y="1.28" width="15.20" height="2.88" rx="1"/><rect x="1.08" y="4.16" width="2.80" height="10.56" rx="1"/><rect x="16.12" y="4.16" width="2.80" height="10.56" rx="1"/><rect x="1.08" y="16.77" width="2.80" height="10.56" rx="1"/><rect x="16.12" y="16.77" width="2.80" height="10.56" rx="1"/><rect x="2.40" y="27.52" width="15.20" height="2.88" rx="1"/></symbol> + <symbol id="qz-P" viewBox="0 0 20 32"><rect x="2.40" y="1.28" width="15.20" height="2.88" rx="1"/><rect x="1.08" y="4.16" width="2.80" height="10.56" rx="1"/><rect x="16.12" y="4.16" width="2.80" height="10.56" rx="1"/><rect x="2.40" y="15.04" width="15.20" height="2.88" rx="1"/><rect x="1.08" y="16.77" width="2.80" height="10.56" rx="1"/></symbol> + <symbol id="qz-Q" viewBox="0 0 24 32"><rect x="2.88" y="1.28" width="18.24" height="2.88" rx="1"/><rect x="1.30" y="4.16" width="3.36" height="10.56" rx="1"/><rect x="19.34" y="4.16" width="3.36" height="10.56" rx="1"/><rect x="1.30" y="16.77" width="3.36" height="10.56" rx="1"/><rect x="19.34" y="16.77" width="3.36" height="10.56" rx="1"/><rect x="2.88" y="27.52" width="18.24" height="2.88" rx="1"/><rect x="14" y="18" width="2.2" height="10" rx="1" transform="rotate(38 15.1 23)"/></symbol> + <symbol id="qz-R" viewBox="0 0 24 32"><rect x="2.88" y="1.28" width="18.24" height="2.88" rx="1"/><rect x="1.30" y="4.16" width="3.36" height="10.56" rx="1"/><rect x="19.34" y="4.16" width="3.36" height="10.56" rx="1"/><rect x="2.88" y="15.04" width="18.24" height="2.88" rx="1"/><rect x="1.30" y="16.77" width="3.36" height="10.56" rx="1"/><rect x="19.34" y="16.77" width="3.36" height="10.56" rx="1"/><rect x="12" y="17" width="2.2" height="10" rx="1" transform="rotate(38 13.1 22)"/></symbol> + <symbol id="qz-S" viewBox="0 0 20 32"><rect x="2.40" y="1.28" width="15.20" height="2.88" rx="1"/><rect x="16.12" y="4.16" width="2.80" height="10.56" rx="1"/><rect x="2.40" y="15.04" width="15.20" height="2.88" rx="1"/><rect x="16.12" y="16.77" width="2.80" height="10.56" rx="1"/><rect x="2.40" y="27.52" width="15.20" height="2.88" rx="1"/></symbol> + <symbol id="qz-T" viewBox="0 0 20 32"><rect x="2.40" y="1.28" width="15.20" height="2.88" rx="1"/><rect x="2.40" y="15.04" width="15.20" height="2.88" rx="1"/><rect x="2.40" y="27.52" width="15.20" height="2.88" rx="1"/></symbol> + <symbol id="qz-U" viewBox="0 0 20 32"><rect x="1.08" y="4.16" width="2.80" height="10.56" rx="1"/><rect x="16.12" y="4.16" width="2.80" height="10.56" rx="1"/><rect x="1.08" y="16.77" width="2.80" height="10.56" rx="1"/><rect x="16.12" y="16.77" width="2.80" height="10.56" rx="1"/><rect x="2.40" y="27.52" width="15.20" height="2.88" rx="1"/></symbol> + <symbol id="qz-V" viewBox="0 0 20 32"><rect x="1.08" y="4.16" width="2.80" height="10.56" rx="1"/><rect x="1.08" y="16.77" width="2.80" height="10.56" rx="1"/><rect x="16.12" y="16.77" width="2.80" height="10.56" rx="1"/><rect x="7" y="17" width="2.2" height="12" rx="1" transform="rotate(24 8.1 23)"/><rect x="12" y="17" width="2.2" height="12" rx="1" transform="rotate(-24 13.1 23)"/></symbol> + <symbol id="qz-W" viewBox="0 0 24 32"><rect x="1.30" y="4.16" width="3.36" height="10.56" rx="1"/><rect x="19.34" y="4.16" width="3.36" height="10.56" rx="1"/><rect x="1.30" y="16.77" width="3.36" height="10.56" rx="1"/><rect x="19.34" y="16.77" width="3.36" height="10.56" rx="1"/><rect x="2.88" y="27.52" width="18.24" height="2.88" rx="1"/><rect x="5" y="17" width="2" height="11" rx="1" transform="rotate(18 6 22.5)"/><rect x="9.5" y="17" width="2" height="11" rx="1" transform="rotate(-18 10.5 22.5)"/><rect x="14" y="17" width="2" height="11" rx="1" transform="rotate(18 15 22.5)"/></symbol> + <symbol id="qz-X" viewBox="0 0 24 32"><rect x="1.30" y="4.16" width="3.36" height="10.56" rx="1"/><rect x="19.34" y="4.16" width="3.36" height="10.56" rx="1"/><rect x="1.30" y="16.77" width="3.36" height="10.56" rx="1"/><rect x="19.34" y="16.77" width="3.36" height="10.56" rx="1"/><rect x="7" y="5" width="2.2" height="11" rx="1" transform="rotate(32 8.1 10.5)"/><rect x="11" y="16" width="2.2" height="11" rx="1" transform="rotate(-32 12.1 21.5)"/></symbol> + <symbol id="qz-Y" viewBox="0 0 20 32"><rect x="1.08" y="4.16" width="2.80" height="10.56" rx="1"/><rect x="16.12" y="4.16" width="2.80" height="10.56" rx="1"/><rect x="2.40" y="15.04" width="15.20" height="2.88" rx="1"/></symbol> + <symbol id="qz-Z" viewBox="0 0 20 32"><rect x="2.40" y="1.28" width="15.20" height="2.88" rx="1"/><rect x="1.08" y="4.16" width="2.80" height="10.56" rx="1"/><rect x="1.08" y="16.77" width="2.80" height="10.56" rx="1"/><rect x="2.40" y="27.52" width="15.20" height="2.88" rx="1"/></symbol> + <symbol id="qz-colon" viewBox="0 0 12 32"><rect x="4" y="10" width="4" height="4" rx="1"/><rect x="4" y="20" width="4" height="4" rx="1"/></symbol> + <symbol id="qz-plus" viewBox="0 0 16 32"><rect x="6" y="8" width="4" height="16" rx="1"/><rect x="2" y="14" width="12" height="4" rx="1"/></symbol> + <symbol id="qz-minus" viewBox="0 0 16 32"><rect x="2" y="14" width="12" height="4" rx="1"/></symbol> + <symbol id="qz-slash" viewBox="0 0 14 32"><rect x="13" y="4" width="2.2" height="10" rx="1" transform="rotate(52 14.1 9)"/><rect x="5" y="18" width="2.2" height="10" rx="1" transform="rotate(52 6.1 23)"/></symbol> + </defs> +</svg> diff --git a/clock-widget.html b/clock-widget.html new file mode 100644 index 0000000..e142823 --- /dev/null +++ b/clock-widget.html @@ -0,0 +1,482 @@ +<!DOCTYPE html> +<html lang="en"> +<head> + <meta charset="UTF-8"> + <meta name="viewport" content="width=device-width, initial-scale=1.0"> + <title>Clock Widget + + + +
+
+
+
+
+ 00 + : + 00 + 00 +
+
+
+ +
+
+
+
+
MON 01 JAN 2026
+
+ +
+
+ + + + diff --git a/deploy/BE-apps-hub.conf.snippet b/deploy/BE-apps-hub.conf.snippet new file mode 100644 index 0000000..28f0d4c --- /dev/null +++ b/deploy/BE-apps-hub.conf.snippet @@ -0,0 +1,15 @@ +# Replace the broken hub block in /etc/nginx/conf.d/apps.conf on Alpine BE. +# Remove duplicate "return 301 .../crashes/" and alias-to-index.html lines. + +location = /app/androidcast_project { + return 301 /app/androidcast_project/; +} + +location /app/androidcast_project/ { + alias /var/www/localhost/htdocs/apps/app/androidcast_project/; + index index.php index.html; +} + +location ^~ /app/androidcast_project/crashes/assets/ { + alias /var/www/localhost/htdocs/apps/app/androidcast_project/android_cast/examples/crash_reporter/backend/public/assets/; +} diff --git a/hub-landing.css b/hub-landing.css new file mode 100644 index 0000000..22b94b5 --- /dev/null +++ b/hub-landing.css @@ -0,0 +1,476 @@ +/* Multipage landing shell — f0xx.org / lovable-style layout on hub tokens */ + +.hub-landing { + --landing-header-h: 56px; + --landing-footer-h: 40px; + --landing-left-w: 56px; + --landing-rail-w: 44px; + width: 100%; + max-width: 100%; + height: 100vh; + height: 100dvh; + overflow: hidden; +} + +/* (1) Top header */ +.landing-top { + position: fixed; + top: 0; + left: 0; + right: 0; + z-index: 20; + height: var(--landing-header-h); + display: flex; + align-items: center; + gap: 16px; + padding: 0 16px 0 12px; + background: rgba(15, 20, 25, 0.72); + backdrop-filter: blur(12px); + border-bottom: 1px solid rgba(45, 58, 79, 0.65); + box-shadow: 0 4px 24px rgba(0, 0, 0, 0.25); +} +[data-theme="light"] .landing-top { + background: rgba(255, 255, 255, 0.82); + border-bottom-color: rgba(197, 208, 224, 0.9); +} + +.landing-top-logo { + display: flex; + align-items: center; + gap: 10px; + flex-shrink: 0; + text-decoration: none; + color: var(--text); +} +.landing-top-logo:hover { color: var(--text); text-decoration: none; } +.landing-top-logo img { + width: 36px; + height: 27px; +} +.landing-top-logo strong { + font-size: 1.05rem; + font-weight: 800; + letter-spacing: -0.02em; +} + +.landing-top-nav { + flex: 1; + display: flex; + justify-content: center; + align-items: center; + gap: 4px; + min-width: 0; +} + +.landing-menu-item { + position: relative; +} +.landing-menu-btn, +.landing-menu-link { + display: inline-flex; + align-items: center; + gap: 6px; + padding: 8px 14px; + border: none; + border-radius: 8px; + background: transparent; + color: var(--text); + font: inherit; + font-size: 0.92rem; + cursor: pointer; + text-decoration: none; + transition: background 0.15s ease, box-shadow 0.15s ease; +} +.landing-menu-link:hover, +.landing-menu-btn:hover, +.landing-menu-item:focus-within > .landing-menu-btn { + background: rgba(61, 139, 253, 0.14); + text-decoration: none; +} +.landing-menu-btn::after { + content: ''; + width: 0; + height: 0; + border-left: 4px solid transparent; + border-right: 4px solid transparent; + border-top: 5px solid currentColor; + opacity: 0.7; +} +.landing-menu-link::after { display: none; } + +.landing-dropdown { + position: absolute; + top: calc(100% + 4px); + left: 50%; + transform: translateX(-50%) translateY(6px); + min-width: 168px; + padding: 6px; + border-radius: 10px; + background: var(--surface); + border: 1px solid var(--border); + box-shadow: 0 12px 32px rgba(0, 0, 0, 0.35), 0 0 20px rgba(61, 139, 253, 0.12); + opacity: 0; + visibility: hidden; + pointer-events: none; + transition: opacity 0.16s ease, transform 0.16s ease, visibility 0.16s; + z-index: 30; +} +.landing-menu-item:hover .landing-dropdown, +.landing-menu-item:focus-within .landing-dropdown, +.landing-menu-item.is-open .landing-dropdown { + opacity: 1; + visibility: visible; + pointer-events: auto; + transform: translateX(-50%) translateY(0); +} +.landing-dropdown a { + display: block; + padding: 8px 12px; + border-radius: 6px; + color: var(--text); + text-decoration: none; + font-size: 0.9rem; +} +.landing-dropdown a:hover, +.landing-dropdown a.is-active { + background: rgba(61, 139, 253, 0.16); + color: var(--accent); +} + +.landing-top-tools { + display: flex; + align-items: center; + gap: 10px; + flex-shrink: 0; +} +.landing-top-tools .toolbar-select { + font-size: 13px; +} + +/* Frame: (2) left + (3) body + space for (4) rail */ +.landing-frame { + position: fixed; + top: var(--landing-header-h); + left: 0; + right: 0; + bottom: var(--landing-footer-h); + display: flex; + z-index: 5; + pointer-events: none; +} + +/* (2) Left shell — console nav-pane */ +.landing-left.nav-pane { + position: relative; + display: flex; + flex-direction: column; + flex: 0 0 var(--landing-left-w); + width: var(--landing-left-w); + height: 100%; + max-height: 100%; + overflow: hidden; + z-index: 3; + pointer-events: auto; + border-right: 1px solid var(--border); + background: var(--surface); +} +.landing-left .nav-list { + flex: 1 1 auto; + min-height: 0; + overflow-y: auto; +} +.landing-left .nav-user { + margin-top: auto; + border-top: 1px solid var(--border); +} +.landing-left.nav-pane.open { + width: 240px; + flex-basis: 240px; +} + +/* (3) Body — full viewport pages, scroll snap */ +.landing-scroll { + flex: 1; + min-width: 0; + height: 100%; + overflow-y: auto; + overflow-x: hidden; + scroll-snap-type: y mandatory; + scroll-behavior: smooth; + pointer-events: auto; + scrollbar-width: none; + -ms-overflow-style: none; +} +.landing-scroll::-webkit-scrollbar { + display: none; + width: 0; + height: 0; +} + +.landing-page { + scroll-snap-align: start; + scroll-snap-stop: always; + min-height: 100%; + height: 100%; + box-sizing: border-box; + display: flex; + align-items: center; + justify-content: center; + padding: 32px 48px 32px 24px; + position: relative; +} + +.landing-page-inner { + width: min(920px, 100%); + max-height: 100%; + overflow-y: auto; + padding: 8px 4px; +} + +.landing-page-inner.card.card--lift { + padding: 28px 32px; + background: rgba(26, 35, 50, 0.78); + backdrop-filter: blur(8px); + border: 1px solid rgba(45, 58, 79, 0.85); + box-shadow: 0 16px 48px rgba(0, 0, 0, 0.35), 0 0 32px rgba(61, 139, 253, 0.08); +} +[data-theme="light"] .landing-page-inner.card.card--lift { + background: rgba(255, 255, 255, 0.88); +} + +.landing-page h2 { + margin: 0 0 12px; + font-size: clamp(1.75rem, 4vw, 2.5rem); + font-weight: 800; + letter-spacing: -0.02em; +} +.landing-page .landing-lead { + margin: 0 0 20px; + font-size: 1.08rem; + line-height: 1.55; + color: var(--muted); + max-width: 52ch; +} +.landing-page .btn { margin-left: 0; } + +.landing-gallery { + display: grid; + grid-template-columns: repeat(auto-fit, minmax(140px, 1fr)); + gap: 12px; + margin-top: 20px; +} +.landing-gallery img { + width: 100%; + aspect-ratio: 4 / 3; + object-fit: cover; + border-radius: 10px; + border: 1px solid var(--border); +} + +.landing-feature-grid { + display: grid; + grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); + gap: 14px; + margin-top: 20px; +} +.landing-feature-grid .card { + padding: 16px; + margin: 0; +} + +.landing-price-grid { + display: grid; + grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); + gap: 16px; + margin-top: 20px; +} +.landing-price-card { + padding: 20px; + border-radius: 12px; + border: 1px solid var(--border); + background: var(--surface2); +} +.landing-price-card h3 { margin: 0 0 8px; } +.landing-price-card .price { + font-size: 1.75rem; + font-weight: 800; + color: var(--accent); + margin-bottom: 12px; +} + +.landing-contact-form { + display: grid; + gap: 12px; + max-width: 420px; + margin-top: 16px; +} +.landing-contact-form label { + display: grid; + gap: 4px; + font-size: 0.9rem; +} +.landing-contact-form input, +.landing-contact-form textarea { + padding: 10px 12px; + border-radius: 8px; + border: 1px solid var(--border); + background: var(--surface2); + color: var(--text); + font: inherit; +} + +/* Page 1 hero — lighter card, more globe visible */ +.landing-page--hero .landing-page-inner { + background: transparent; + border: none; + box-shadow: none; + backdrop-filter: none; + text-align: center; + max-width: 640px; +} +.landing-page--hero h2 { + font-size: clamp(2rem, 5vw, 3rem); +} + +/* (4) Right page rail — hidden until handle hover/drag */ +.landing-rail { + position: fixed; + top: var(--landing-header-h); + right: 0; + bottom: var(--landing-footer-h); + width: var(--landing-rail-w); + z-index: 15; + pointer-events: none; + transform: translateX(calc(var(--landing-rail-w) - 6px)); + transition: transform 0.22s ease; +} +.landing-rail.is-visible, +.landing-rail:hover, +.landing-rail:focus-within { + transform: translateX(0); + pointer-events: auto; +} + +.landing-rail-handle { + position: absolute; + left: 0; + top: 50%; + transform: translateY(-50%); + width: 14px; + height: 72px; + padding: 0; + border: 1px solid var(--border); + border-right: none; + border-radius: 10px 0 0 10px; + background: rgba(26, 35, 50, 0.92); + cursor: grab; + pointer-events: auto; + box-shadow: -4px 0 16px rgba(0, 0, 0, 0.25); +} +.landing-rail-handle:active { cursor: grabbing; } +.landing-rail-handle::before { + content: ''; + display: block; + width: 4px; + height: 28px; + margin: 0 auto; + border-radius: 2px; + background: repeating-linear-gradient( + to bottom, + var(--muted) 0, + var(--muted) 4px, + transparent 4px, + transparent 7px + ); +} + +.landing-rail-dots { + position: absolute; + right: 8px; + top: 50%; + transform: translateY(-50%); + display: flex; + flex-direction: column; + gap: 10px; + padding: 12px 6px; + border-radius: 12px; + background: rgba(15, 20, 25, 0.82); + border: 1px solid var(--border); + backdrop-filter: blur(8px); +} +.landing-rail-dot { + width: 10px; + height: 10px; + padding: 0; + border: 2px solid var(--muted); + border-radius: 50%; + background: transparent; + cursor: pointer; + transition: border-color 0.15s, background 0.15s, transform 0.15s; +} +.landing-rail-dot:hover { + border-color: var(--accent); + transform: scale(1.15); +} +.landing-rail-dot.is-active { + background: var(--accent); + border-color: var(--accent); + box-shadow: 0 0 10px rgba(61, 139, 253, 0.55); +} + +/* (5) Footer stays platform-footer; lift above globe */ +.hub-landing .bottom-bar.platform-footer { + position: fixed; + bottom: 0; + left: 0; + right: 0; + z-index: 12; + height: var(--landing-footer-h); + min-height: var(--landing-footer-h); + max-height: var(--landing-footer-h); + pointer-events: none; +} +.hub-landing .bottom-bar.platform-footer a, +.hub-landing .bottom-bar.platform-footer button { + pointer-events: auto; +} + +/* Clock widget below header */ +.hub-landing .hub-clock-widget { + top: calc(var(--landing-header-h) + 12px); + z-index: 18; +} + +@media (max-width: 900px) { + .landing-top-nav { display: none; } + .landing-page { padding: 24px 16px 24px 12px; } + .landing-rail { --landing-rail-w: 36px; } +} + +.landing-top-tools .hub-locale { + margin: 0; +} +.landing-top-tools .hub-locale .locale-flag { + font-size: 1rem; + line-height: 1; +} +.landing-top-tools .hub-locale select { + padding: 6px 8px; + border-radius: 6px; + border: 1px solid var(--border); + background: var(--bg); + color: var(--text); + font-size: 13px; + font-weight: 600; + cursor: pointer; +} + +/* Globe stays fixed behind all landing chrome */ +.hub-landing #hub-logo-stage { + z-index: 0; +} + +@media (prefers-reduced-motion: reduce) { + .landing-scroll { scroll-behavior: auto; } + .landing-rail { transition: none; } +} diff --git a/hub-logo-layers.css b/hub-logo-layers.css new file mode 100644 index 0000000..943ae3d --- /dev/null +++ b/hub-logo-layers.css @@ -0,0 +1,92 @@ +/* Logo stage: fragments are injected as layers (same box, object-fit: cover). */ + +.hub-logo-stage { + position: fixed; + inset: 0; + z-index: 0; + pointer-events: none; + overflow: hidden; + opacity: 0.75; +} + +.hub-logo-stage[hidden] { + display: none; +} + +.hub-logo-layer { + position: absolute; + inset: 0; + width: 100%; + height: 100%; + object-fit: cover; + object-position: center center; +} + +.hub-logo-layer--space { + z-index: 1; +} + +/* Interactive globe canvas replaces globe + continents + gridOverlay when globe3d=1 */ +.hub-globe-canvas { + position: fixed; + z-index: 1; + pointer-events: none; + cursor: grab; + touch-action: none; + border-radius: 50%; +} + +.hub-globe-canvas.is-dragging { + pointer-events: auto; + cursor: grabbing; +} + +.hub-logo-layer--globe { + z-index: 2; +} + +.hub-logo-layer--gridOverlay { + z-index: 4; +} + +.hub-logo-layer--continents { + z-index: 5; +} + +.hub-logo-layer--compass { + z-index: 6; + left: 54.7%; + top: 75.9%; + width: 11.5%; + height: auto; + inset: auto; + transform: translate(-50%, -50%); + pointer-events: auto; + cursor: pointer; + transition: transform 0.22s ease, filter 0.22s ease; +} + +.hub-logo-layer--compass:hover, +.hub-logo-layer--compass:focus-visible { + transform: translate(-50%, -50%) scale(1.12); + filter: drop-shadow(0 0 16px rgba(186, 228, 255, 0.55)); + outline: none; +} + +.hub-logo-layer--tail { + z-index: 5; +} + +.hub-logo-layer--rocket { + z-index: 6; +} + +[data-theme="light"] .hub-logo-stage { + opacity: 0.75; +} + +@media (prefers-reduced-motion: reduce) { + .hub-globe-canvas { + cursor: default; + } +} diff --git a/hub.css b/hub.css new file mode 100644 index 0000000..eb43e1b --- /dev/null +++ b/hub.css @@ -0,0 +1,1100 @@ +/* Project hub — matches crash console tokens (app.css) */ + +@font-face { + font-family: "Clockopia"; + src: url("assets/fonts/Clockopia.ttf") format("truetype"); + font-weight: normal; + font-style: normal; + font-display: swap; +} + +/* Clockopia kept for legacy only; hub clock uses DSEG14 (see .hub-clock-widget rules). */ + +@font-face { + font-family: "DSEG14 Classic"; + src: url("assets/fonts/DSEG14Classic-Regular.ttf") format("truetype"); + font-weight: normal; + font-style: normal; + font-display: swap; +} + +@font-face { + font-family: "DSEG14 Modern"; + src: url("assets/fonts/DSEG14Modern-Regular.ttf") format("truetype"); + font-weight: normal; + font-style: normal; + font-display: swap; +} + +@font-face { + font-family: "DS-Digital"; + src: url("assets/fonts/DS-Digital.ttf") format("truetype"); + font-weight: normal; + font-style: normal; + font-display: swap; +} + +@font-face { + font-family: "Digital-7 Mono Italic"; + src: url("assets/fonts/digital-7-mono-italic.ttf") format("truetype"); + font-weight: normal; + font-style: normal; + font-display: swap; +} + +.hub-page { + min-height: 100vh; + display: flex; + flex-direction: column; + position: relative; + isolation: isolate; +} + +/* Logo background is injected on demand into #hub-logo-stage (see index.html). */ + +.hub-shell { + flex: 1; + min-height: calc(100vh - 40px); + position: relative; + z-index: 1; +} + +.hub-main { + display: flex; + flex-direction: column; + align-items: center; + justify-content: flex-start; + min-height: calc(100vh - 40px); + padding: 32px 28px 48px; + box-sizing: border-box; +} + +.hub-header { + text-align: center; + margin-bottom: 36px; +} + +.hub-brand { + display: flex; + flex-direction: column; + align-items: center; + gap: 12px; + margin-bottom: 8px; +} + +.hub-title-with-thunder { + position: relative; + display: inline-block; + max-width: 100%; +} + +.hub-title-with-thunder .hub-title { + margin: 0; + position: relative; + z-index: 1; +} + +.hub-logo-mark { + width: 56px; + height: 42px; + color: var(--accent); +} + +.hub-title { + margin: 0 0 4px; + font-size: 2.45rem; + font-weight: 800; + line-height: 1.02; + letter-spacing: -0.015em; +} + +.hub-thunder { + position: absolute; + left: 50%; + top: 50px; + width: 150%; + height: auto; + margin: 0; + transform: translateX(-50%); + z-index: 0; + pointer-events: none; + filter: drop-shadow(0 0 8px rgba(170, 220, 255, 0.35)); +} + +.hub-subtitle { + margin: 0 0 16px; +} + +.hub-theme { + justify-content: center; +} + +.hub-nav-dock, +#hub-nav-dock { + position: fixed; + z-index: 2; + display: flex !important; + flex-direction: column !important; + flex-wrap: nowrap !important; + justify-content: flex-end; + align-items: stretch; + gap: 5px; + margin: 0; + padding: 0; + box-sizing: border-box; + pointer-events: none; + grid-template-columns: none !important; + grid-auto-flow: row !important; + max-width: none; + width: auto; +} + +/* app.css .cards { display:grid } must not flatten the dock if classes linger */ +#hub-nav-dock.cards, +#hub-nav-dock.hub-cards, +.hub-nav-dock.cards, +.hub-nav-dock.hub-cards { + display: flex !important; + flex-direction: column !important; + grid-template-columns: none !important; +} + +.hub-nav-dock .hub-card, +#hub-nav-dock .hub-card, +#hub-nav-dock > a { + display: flex !important; + flex-direction: row !important; + align-items: center; + gap: 14px; + padding: 14px 16px; + width: 100% !important; + max-width: 100%; + flex: 0 0 auto !important; + margin: 0 !important; + opacity: 0.85; + pointer-events: auto; + color: var(--text); + text-decoration: none; + cursor: pointer; + transition: transform 0.22s ease, box-shadow 0.22s ease, border-color 0.22s ease, filter 0.22s ease; +} + +#hub-nav-dock > .hub-card + .hub-card, +.hub-nav-dock > .hub-card + .hub-card { + margin-top: 0 !important; +} + +.hub-nav-dock .hub-card:hover, +.hub-nav-dock .hub-card:focus-visible { + opacity: 1; + color: var(--text); + text-decoration: none; + outline: none; + transform: translateY(-2px); + border-color: rgba(160, 220, 255, 0.95); + box-shadow: + 0 0 18px rgba(120, 200, 255, 0.55), + 0 0 36px rgba(90, 170, 255, 0.35), + 0 10px 28px rgba(0, 0, 0, 0.42); + filter: drop-shadow(0 0 10px rgba(140, 210, 255, 0.45)); +} + +[data-theme="light"] .hub-nav-dock .hub-card:hover, +[data-theme="light"] .hub-nav-dock .hub-card:focus-visible { + box-shadow: + 0 0 16px rgba(70, 130, 210, 0.45), + 0 0 30px rgba(60, 120, 200, 0.28), + 0 10px 24px rgba(26, 35, 50, 0.22); +} + +.hub-cards { + display: grid; + grid-template-columns: repeat(3, minmax(200px, 1fr)); + gap: 24px; + width: 100%; + max-width: 1080px; + margin: 0; +} + +.hub-card { + display: flex; + flex-direction: row; + align-items: center; + gap: 14px; + padding: 22px 24px; + color: var(--text); + text-decoration: none; + cursor: pointer; +} + +.hub-card:hover, +.hub-card:focus-visible { + color: var(--text); + text-decoration: none; + outline: none; +} + +.hub-cards .hub-card { + transition: transform 0.2s ease, box-shadow 0.2s ease, border-color 0.2s ease; +} + +.hub-cards .hub-card:hover, +.hub-cards .hub-card:focus-visible { + transform: translateY(-10px); + box-shadow: 0 20px 48px rgba(0, 0, 0, 0.44); + border-color: var(--accent); +} + +[data-theme="light"] .hub-cards .hub-card:hover, +[data-theme="light"] .hub-cards .hub-card:focus-visible { + box-shadow: 0 20px 44px rgba(26, 35, 50, 0.28); +} + +.hub-card-icon { + display: flex; + align-items: center; + justify-content: center; + flex-shrink: 0; + width: 40px; + height: 40px; + color: var(--accent); +} + +.hub-card-icon .nav-icon { + position: relative; +} + +.hub-card-label { + font-size: 14px; + font-weight: 500; + line-height: 1.25; + text-align: left; +} + +.nav-icon--git { + width: 18px; + height: 18px; +} + +.nav-icon--git::before { + content: ""; + position: absolute; + left: 2px; + top: 2px; + width: 7px; + height: 7px; + border: 2px solid currentColor; + border-radius: 50%; + box-sizing: border-box; +} + +.nav-icon--git::after { + content: ""; + position: absolute; + left: 8px; + top: 5px; + width: 10px; + height: 10px; + border: 2px solid currentColor; + border-left: none; + border-bottom: none; + border-radius: 0 6px 0 0; + box-sizing: border-box; +} + +.nav-icon--builder { + width: 18px; + height: 18px; + border: 2px solid currentColor; + border-radius: 3px; + box-sizing: border-box; + position: relative; +} + +.nav-icon--builder::before { + content: ""; + position: absolute; + left: 3px; + top: 7px; + width: 10px; + height: 2px; + background: currentColor; + box-shadow: 0 -4px 0 currentColor, 0 4px 0 currentColor; +} + +.nav-icon--graphs { + width: 16px; + height: 16px; + border-left: 2px solid currentColor; + border-bottom: 2px solid currentColor; + position: relative; +} +.nav-icon--graphs::before, +.nav-icon--graphs::after { + content: ""; + position: absolute; + bottom: 0; + width: 3px; + background: currentColor; + border-radius: 1px 1px 0 0; +} +.nav-icon--graphs::before { left: 4px; height: 8px; } +.nav-icon--graphs::after { left: 10px; height: 12px; } + +.hub-page .bottom-bar { + position: relative; + z-index: 1; +} +.hub-page .platform-footer { + flex-direction: column; + align-items: stretch; + justify-content: center; + height: auto; + min-height: 40px; + padding: 6px 16px; + gap: 4px; +} +.hub-page .platform-footer__top, +.hub-page .platform-footer__bottom { + width: 100%; + text-align: center; + line-height: 1.35; +} +.hub-page .platform-footer__main { + display: flex; + align-items: center; + justify-content: space-between; + gap: 16px; + width: 100%; + min-height: 24px; +} +.hub-page .platform-footer--single-row .platform-footer__main { + justify-content: flex-start; +} +.hub-page .platform-footer__left { + flex: 1 1 auto; + min-width: 0; +} +.hub-page .platform-footer__right { + flex: 0 0 auto; + text-align: right; + max-width: 50%; +} + +.hub-clock-widget { + --cw-lcd-x: 24px; + position: fixed; + right: 24px; + top: 24px; + left: auto; + width: 567px; + z-index: 3; + border: 1px solid rgba(255, 255, 255, 0.72); + box-shadow: 0 10px 30px rgba(0, 0, 0, 0.48); + border-radius: 18px; + overflow: visible; + background: rgba(18, 24, 34, 0.88); + backdrop-filter: blur(1.5px); + transition: + transform 0.22s ease, + box-shadow 0.28s ease, + border-color 0.28s ease, + filter 0.22s ease; + cursor: move; + user-select: none; + touch-action: none; + padding: 28px 32px; + box-sizing: border-box; + display: flex; + flex-direction: column; + font-family: "Clockopia", "Consolas", monospace; +} + +.cw-clock-inner { + flex: 1; + width: 100%; + min-width: 0; + max-width: 100%; + box-sizing: border-box; + display: flex; + flex-direction: column; + align-items: stretch; + border-radius: 12px; + overflow: hidden; + background: linear-gradient(180deg, rgba(18, 24, 34, 0.92), rgba(13, 18, 28, 0.9)); +} + +.cw-clock-inner > * { + width: 100%; + max-width: 100%; + box-sizing: border-box; +} + +.cw-line { + width: 100%; + max-width: 100%; + box-sizing: border-box; + text-align: center; +} + +.hub-clock-widget:hover { + transform: scale(1.035); + border-color: rgba(165, 225, 255, 0.98); + box-shadow: + 0 16px 42px rgba(0, 0, 0, 0.62), + 0 0 0 1px rgba(140, 210, 255, 0.55), + 0 0 22px rgba(120, 200, 255, 0.52), + 0 0 44px rgba(90, 175, 255, 0.32), + inset 0 0 14px rgba(120, 200, 255, 0.07); + filter: saturate(1.06); +} + +.hub-clock-widget.is-dragging { + opacity: 0.25; + transition: opacity 0.12s ease; +} + +.hub-clock-widget.is-dragging:hover { + transform: none; +} + +.cw-primary-block { + padding: 0; + display: grid; + grid-template-rows: auto auto auto; + align-content: start; + row-gap: 0; + overflow: hidden; + background: transparent; +} + +.cw-row-tz { + margin-top: 15px; /* 15dip between line 1 and line 2 */ +} + +.cw-row-date { + margin-top: 5px; /* 5dip between line 2 and line 3 */ +} + +.cw-row { + width: 100%; + min-height: 0; + box-sizing: border-box; +} + +.cw-row-clock { + display: flex; + justify-content: center; + align-items: end; + overflow: hidden; + container-type: inline-size; + padding: 12px 0 4px; +} + +.cw-line-time .cw-time-main { + font-weight: 800; +} + +.cw-row-tz, +.cw-row-date { + display: flex; + align-items: flex-end; + justify-content: center; + min-height: 0; + line-height: 1; + padding: 0; +} + +.cw-time-main { + display: inline-flex; + align-items: baseline; + justify-content: center; + column-gap: 4px; + line-height: 1; + font-weight: 400; + width: fit-content; + max-width: 100%; + margin: 0 auto; + overflow: hidden; + border: 0; + border-radius: 0; + padding: 0; + font-family: "DSEG14 Classic", "Consolas", monospace; + font-variant-numeric: tabular-nums; + color: #d8f6b8; + text-shadow: 0 0 10px rgba(190, 240, 150, 0.42); +} + +#cw-hm-lcd { + font-size: clamp(2.4rem, 4.8vw, 3.6rem); + letter-spacing: 0.04em; +} + +#cw-colon-lcd, +#cw-ss-lcd { + font-size: clamp(1.6rem, 3.2vw, 2.4rem); +} + +#cw-tz-text { + font-size: clamp(0.95rem, 1.6vw, 1.15rem); + margin-left: 10px; + opacity: 0.92; +} + +.ot-lcd-line { + display: inline; +} + +#cw-hm-lcd .ot-glyph { + height: calc(var(--cw-lcd-x) * 2); + width: auto; + max-width: 100%; +} + +#cw-colon-lcd .ot-glyph, +.ot-lcd-sec .ot-glyph, +.ot-lcd-tz .ot-glyph { + height: var(--cw-lcd-x); + width: auto; +} + +@container (max-width: 300px) { + .hub-clock-widget { + --cw-lcd-x: 20px; + } +} + +.ot-lcd-sec { + margin-left: 0; +} + +.ot-lcd-sec .ot-glyph-wrap:first-child { + margin-right: 0; +} + +.ot-lcd-tz { + margin-left: calc(var(--cw-lcd-x) * 2); +} + +.ot-lcd-subline { + display: inline-flex; + align-items: flex-end; + justify-content: center; + flex-wrap: wrap; + gap: 2px; + line-height: 1; +} + +.cw-line-region.ot-lcd-subline .ot-glyph { + height: calc(var(--cw-lcd-x) * 0.5); + width: auto; +} + +.cw-line-date.ot-lcd-subline .ot-glyph { + height: var(--cw-lcd-x); + width: auto; +} + +.ot-glyph-wrap { + display: inline-block; + line-height: 0; + transform-origin: bottom center; +} + +.ot-glyph-wrap--bold { + transform: scale(1.06, 1.1); + transform-origin: bottom center; +} + +.ot-glyph { + fill: #d8f6b8; + filter: drop-shadow(0 0 5px rgba(190, 240, 150, 0.38)); +} + +.ot-glyph .lcd-active, +.ot-glyph path { + fill: #d8f6b8; +} + +.ot-fallback-char { + display: inline-flex; + align-items: flex-end; + justify-content: center; + min-width: 0.62em; + color: #d8f6b8; + font-family: "Consolas", "Menlo", "Monaco", monospace; + font-size: 1em; + line-height: 1; + letter-spacing: 0.02em; + text-shadow: 0 0 5px rgba(190, 240, 150, 0.42); +} + +.ot-fallback-char--bold { + font-weight: 700; +} + +.ot-glyph .ot-grid rect { + fill: rgba(20, 30, 24, 0.85); + filter: drop-shadow(0 0 1.4px rgba(135, 205, 255, 0.5)); +} + +.ot-glyph .ot-active { + fill: #d8f6b8; +} + +.ot-colon-blink { + animation: cwBlink 1.25s linear infinite; +} + +.cw-line-region { + color: #b8c2d4; + font-size: clamp(0.62rem, 1vw, 0.75rem); + letter-spacing: 0.16em; + font-weight: 400; + text-transform: uppercase; + font-family: "Digital-7 Mono Italic", "Consolas", monospace; +} + +.cw-line-date { + color: #c5d0e2; + font-size: clamp(0.95rem, 1.6vw, 1.15rem); + letter-spacing: 0.12em; + font-weight: 400; + text-transform: uppercase; + font-family: "Digital-7 Mono Italic", "Consolas", monospace; +} + +.cw-separator { + margin: 5px 0; + height: 2px; + width: 100%; + border: 0; + background: linear-gradient( + 90deg, + rgba(239, 243, 252, 0) 0%, + rgba(239, 243, 252, 0.5) 50%, + rgba(239, 243, 252, 0) 100% + ); +} + +.cw-world-section { + display: grid; + grid-template-columns: repeat(3, minmax(0, 1fr)); + width: 100%; + max-width: 100%; + border-top: 0; + justify-items: center; + background: transparent; +} + +.cw-world-cell { + min-width: 0; + width: 100%; + min-height: 200px; + display: flex; + flex-direction: column; + align-items: center; + justify-content: center; + padding: 16px 4px; + background: rgba(20, 28, 40, 0.62); + border-left: 1px solid rgba(255, 255, 255, 0.22); +} + +.cw-world-cell:first-child { + border-left: 0; +} + +.cw-world-stack { + display: flex; + flex-direction: column; + align-items: center; + gap: 20px; +} + +.cw-world-label { + color: #c5d0e2; + font-size: clamp(0.95rem, 1.6vw, 1.15rem); + letter-spacing: 0.12em; + font-weight: 400; + text-transform: uppercase; + margin: 0; + line-height: 1; + flex: 0 0 auto; + font-family: "Digital-7 Mono Italic", "Consolas", monospace; +} + +.cw-dial { + --cw-dial-size: 90px; + --cw-roman-orbit: 28px; + width: var(--cw-dial-size); + max-width: var(--cw-dial-size); + height: var(--cw-dial-size); + flex: 0 0 auto; + margin: 0; + border-radius: 50%; + position: relative; + border: none; + background: + radial-gradient(circle at 35% 30%, rgba(255, 255, 255, 0.36), rgba(255, 255, 255, 0) 36%), + #edf2fb; + box-shadow: + 0 0 0 4px #b8c6d8, + 0 0 0 5px rgba(244, 248, 253, 0.94), + 0 0 0 6px #7f94aa, + 0 2px 8px rgba(0, 0, 0, 0.38), + inset 0 1px 2px rgba(255, 255, 255, 0.55), + inset 0 -2px 4px rgba(70, 86, 108, 0.22), + inset -4px -4px 8px rgba(0, 0, 0, 0.12), + inset 5px 6px 8px rgba(255, 255, 255, 0.38); +} + +.cw-roman { + position: absolute; + left: 50%; + top: 50%; + width: 14px; + height: 14px; + margin: -7px; + transform: rotate(calc(var(--i) * 30deg)) translateY(calc(-1 * var(--cw-roman-orbit))) rotate(calc(var(--i) * -30deg)); + font-family: "Clockopia", "Consolas", monospace; + font-size: 9px; + font-weight: 700; + color: #223147; + text-align: center; + line-height: 1; +} + +.cw-roman-major { + font-size: 11px; + opacity: 1; +} + +.cw-roman-minor { + font-size: 3px; + opacity: 0.25; +} + +/* Mixed clock typography: line 1 DSEG14, lines 2–3 Digital-7, rest Clockopia */ +.hub-clock-widget .cw-line-time, +.hub-clock-widget .cw-line-time .cw-lcd-text, +.hub-clock-widget .cw-time-main, +.hub-clock-widget .cw-time-main .cw-lcd-text { + font-family: "DSEG14 Classic", "Consolas", monospace !important; + font-variant-numeric: tabular-nums; +} + +.hub-clock-widget .cw-line-region, +.hub-clock-widget .cw-line-region.cw-lcd-text, +.hub-clock-widget .cw-line-date, +.hub-clock-widget .cw-line-date.cw-lcd-text, +.hub-clock-widget .cw-world-label { + font-family: "Digital-7 Mono Italic", "Consolas", monospace !important; + font-variant-numeric: tabular-nums; +} + +.hub-clock-widget .cw-world-section, +.hub-clock-widget .cw-roman { + font-family: "Clockopia", "Consolas", monospace !important; +} + +.cw-resize-handle { + display: none !important; + background: none !important; + border: 0 !important; + box-shadow: none !important; +} + +.hub-clock-widget:hover .cw-resize-handle { + display: flex !important; + background: transparent !important; +} + +.cw-resize-handle-visual { + width: 5px; + height: 5px; + flex-shrink: 0; + display: flex; + align-items: center; + justify-content: center; + overflow: hidden; +} + +.cw-resize-handle-visual svg { + width: 100%; + height: 100%; + fill: currentColor; + pointer-events: none; +} + +.cw-resize-sw { + left: 0; + bottom: 0; + cursor: nesw-resize; +} + +.cw-resize-sw .cw-resize-handle-visual { + transform: none; +} + +.cw-resize-nw { + left: 0; + top: 0; + cursor: nwse-resize; +} + +.cw-resize-nw .cw-resize-handle-visual { + transform: scaleY(-1); +} + +.cw-resize-ne { + right: 0; + top: 0; + cursor: nesw-resize; +} + +.cw-resize-ne .cw-resize-handle-visual { + transform: scale(-1, -1); +} + +.cw-resize-se { + right: 0; + bottom: 0; + cursor: nwse-resize; +} + +.cw-resize-se .cw-resize-handle-visual { + transform: scaleX(-1); +} + +.cw-hand { + position: absolute; + left: 50%; + top: 50%; + transform-origin: 50% 100%; + transform: translate(-50%, -100%) rotate(0deg); + border-radius: 99px; +} + +.cw-hour { width: 4px; height: 26%; background: #1f2f46; } +.cw-minute { width: 3px; height: 35%; background: #2e4767; } +.cw-second { width: 1.5px; height: 39%; background: #b63b3b; } + +.cw-pin { + position: absolute; + left: 50%; + top: 50%; + width: 7px; + height: 7px; + margin-left: -3.5px; + margin-top: -3.5px; + border-radius: 50%; + background: #101928; + border: 1px solid #f3f6ff; +} + + +@keyframes cwBlink { + 0%, 20% { opacity: 0; } + 20.01%, 60% { opacity: 1; } + 60.01%, 100% { opacity: 0; } +} + +.hub-docs-modal { + position: fixed; + inset: 0; + z-index: 20; +} +.hub-docs-modal[hidden] { + display: none !important; + pointer-events: none !important; +} + +.hub-docs-backdrop { + position: absolute; + inset: 0; + background: rgba(4, 8, 14, 0.66); + pointer-events: auto; +} +.hub-docs-modal[hidden] .hub-docs-backdrop { + pointer-events: none; +} + +.hub-docs-panel { + position: absolute; + left: 50%; + top: 50%; + transform: translate(-50%, -50%); + width: 90vw; + height: 90vh; + max-width: 90vw; + max-height: 90vh; + display: flex; + flex-direction: column; +} + +.hub-docs-layout { + display: grid; + grid-template-columns: minmax(220px, 28%) 1fr; + gap: 0; + flex: 1; + min-height: 0; + border-top: 1px solid var(--border); +} + +.hub-docs-toc { + margin: 0; + border-radius: 0; + border: 0; + border-right: 1px solid var(--border); + overflow: auto; + padding: 10px; +} + +.hub-docs-toc-title { + margin: 0 0 8px; + font-size: 12px; + letter-spacing: 0.08em; + text-transform: uppercase; +} + +.hub-docs-toc-group + .hub-docs-toc-group { + margin-top: 10px; + padding-top: 8px; + border-top: 1px solid var(--border); +} + +.hub-docs-toc-head, +.hub-docs-toc-leaf { + display: block; + width: 100%; + text-align: left; + border: 0; + background: transparent; + color: var(--text); + cursor: pointer; + padding: 8px 10px; + border-radius: 8px; + font: inherit; +} + +.hub-docs-toc-head { + font-weight: 700; + letter-spacing: 0.04em; +} + +.hub-docs-toc-leaf { + margin-left: 8px; + font-weight: 600; + font-size: 13px; +} + +.hub-docs-toc-head:hover, +.hub-docs-toc-leaf:hover, +.hub-docs-toc-head:focus-visible, +.hub-docs-toc-leaf:focus-visible { + background: var(--row-hover); + outline: none; +} + +.hub-docs-panels { + overflow: auto; + padding: 10px 12px 14px; + min-height: 0; +} + +.hub-docs-section .detail-tree-body { + font-size: 14px; + line-height: 1.5; +} + +.hub-docs-header { + display: flex; + align-items: center; + justify-content: space-between; + gap: 12px; + padding: 14px 16px 10px; + border-bottom: 1px solid var(--border); +} + +.hub-docs-header h2 { + margin: 0; + font-size: 1.15rem; + font-weight: 700; +} + +.hub-docs-close { + border: 1px solid var(--border); + background: var(--bg2); + color: var(--text); + border-radius: 8px; + width: 32px; + height: 32px; + cursor: pointer; +} + +.hub-docs-body { + overflow: auto; + padding: 16px; + font-size: 14px; + line-height: 1.5; +} + +.hub-docs-body h3 { + margin: 16px 0 8px; + font-size: 1.03rem; +} + +.hub-docs-body h4 { + margin: 12px 0 6px; + font-size: 0.96rem; +} + +.hub-docs-body table { + width: 100%; + border-collapse: collapse; + margin: 10px 0 14px; +} + +.hub-docs-body th, +.hub-docs-body td { + border: 1px solid var(--border); + padding: 8px; + text-align: left; + vertical-align: top; +} + +.hub-docs-body a[data-doc-link] { + color: var(--accent); + text-decoration: underline; + cursor: pointer; +} + +@media (max-width: 860px) { + .hub-clock-widget { + left: auto; + right: 10px; + top: 10px; + width: min(94vw, 567px); + min-width: 0; + } + .hub-nav-dock .hub-card { + padding: 14px 16px; + } +} + +@media (prefers-reduced-motion: reduce) { + .hub-nav-dock .hub-card { + transition: border-color 0.15s ease, box-shadow 0.15s ease; + } + .hub-nav-dock .hub-card:hover, + .hub-nav-dock .hub-card:focus-visible { + transform: none; + } + .hub-cards .hub-card { + transition: border-color 0.15s ease, box-shadow 0.15s ease; + } + .hub-cards .hub-card:hover, + .hub-cards .hub-card:focus-visible { + transform: none; + } +} diff --git a/index.html b/index.html new file mode 100644 index 0000000..16f891d --- /dev/null +++ b/index.html @@ -0,0 +1 @@ +Redirect

Continue

diff --git a/index.php b/index.php new file mode 100644 index 0000000..e3a6531 --- /dev/null +++ b/index.php @@ -0,0 +1,1154 @@ + + + + + + + Android Cast — Landing + + + + + + + + + + + + + + + + + + +
+
+
+
+ + + + + + +
+
EUROPE/WARSAW
+
WED 27 MAY 2026
+
+ +
+
+
+ +
+ + +
+ + +
+
+ +
+ + +
+ +
+
+ + + + + false, + 'extra_class' => 'bottom-bar', + ]); ?> + + + + diff --git a/landing-pages.inc.php b/landing-pages.inc.php new file mode 100644 index 0000000..cbfe49b --- /dev/null +++ b/landing-pages.inc.php @@ -0,0 +1,130 @@ + +
+
+

Android Cast

+

Screen casting, crash intelligence, and CI — one ecosystem.

+ +
+
+ +
+
+

AndroidCast

+

Mirror Android screens with low latency, native codecs, and operator-grade tooling.

+
+
+

Cast

+

Wi‑Fi and USB transport with adaptive bitrate and session metrics.

+
+
+

Issues

+

Ingest, triage tickets, and correlate fingerprints across releases.

+
+
+

Builder

+

Docker CI for APK baking, OTA artifacts, and pipeline history.

+
+
+
+
+ +
+
+

About

+

Android Cast connects devices, backends, and operators across your stack.

+ +
+
+ +
+
+

Why AndroidCast

+

Built for teams who need reliability, observability, and control — not another black box.

+
    +
  • Self-hosted consoles on your BE — no mandatory cloud lock-in
  • +
  • Graphs, remote access, and builder share one auth and theme
  • +
  • Green master git flow with tagged releases
  • +
+
+
+ +
+
+

Technologies

+

WebRTC, Opus/Speex, WireGuard remote access, PHP consoles, and Docker CI pipelines.

+
+
WebRTC / UDP

Low-latency mirror paths

+
Opus · Speex

Native codec validation

+
WireGuard

Remote device sessions

+
PHP · SQLite

Crash + ticket console

+
+
+
+ +
+
+

Resources

+

Documentation, deployment guides, and integration patterns for your environment.

+

Issues console Builder Git browser

+
+
+ +
+
+

People

+

Engineers and operators shipping cast, crash, and build workflows every day.

+ +
+
+ +
+
+

Culture

+

Open tooling, green master branches, and honest postmortems.

+

We ship on next, tag on master, and keep infra docs next to the code.

+
+
+ +
+
+

Pricing

+

Self-hosted core; enterprise options for SLA, SSO, and dedicated builders.

+
+
+

Community

+
$0
+

Full source, self-hosted BE, community support.

+
+
+

Team

+
Custom
+

Priority fixes, deployment assistance, staging builders.

+
+
+

Enterprise

+
Custom
+

SLA, SSO, dedicated infra review, on-call options.

+
+
+
+
+ +
+
+

Contact us

+

Reach the maintainer for partnerships, support, or deployment help.

+
+ + + + +
+
+
diff --git a/partials/cookie_consent.php b/partials/cookie_consent.php new file mode 100644 index 0000000..0a0e5ed --- /dev/null +++ b/partials/cookie_consent.php @@ -0,0 +1,15 @@ + + diff --git a/scripts/sync-landing-to-be.sh b/scripts/sync-landing-to-be.sh new file mode 100755 index 0000000..00d6276 --- /dev/null +++ b/scripts/sync-landing-to-be.sh @@ -0,0 +1,100 @@ +#!/usr/bin/env bash +# Sync multipage landing from repo to BE hub root. +# Usage: +# ./scripts/sync-landing-to-be.sh +# ./scripts/sync-landing-to-be.sh /path/to/BE/.../androidcast_project +# REMOTE=alpine-be ./scripts/sync-landing-to-be.sh +# +# After sync, verify: +# curl -sS 'https://apps.f0xx.org/app/androidcast_project/' | head -20 +# Expect: title "Android Cast — Landing", link hub-landing.css, body hub-landing +set -euo pipefail + +SRC="$(cd "$(dirname "$0")/.." && pwd)" +REPO="$(cd "$SRC/../.." && pwd)" +DEFAULT_DEST="$REPO/tmp/BE_alpine/var/www/localhost/htdocs/apps/app/androidcast_project" +DEST="${1:-$DEFAULT_DEST}" +REMOTE="${REMOTE:-}" + +hub_files=( + index.php + index.html + hub.css + hub-logo-layers.css + hub-landing.css + landing-pages.inc.php +) + +asset_files=( + assets/hub-landing.js + assets/hub-i18n.js + assets/hub-globe.js + assets/analytics.config.js + assets/i18n/hub-en.json + assets/i18n/hub-ru.json +) + +sync_local() { + local dest="$1" + if [[ ! -d "$dest" ]]; then + echo "DEST not found: $dest" >&2 + echo "Mount BE sshfs or pass the BE androidcast_project path as arg 1." >&2 + exit 1 + fi + mkdir -p "$dest/assets/i18n" "$dest/partials" + for f in "${hub_files[@]}"; do + install -m 0644 "$SRC/$f" "$dest/$f" + echo " $f" + done + install -D -m 0644 "$SRC/partials/cookie_consent.php" "$dest/partials/cookie_consent.php" + echo " partials/cookie_consent.php" + for f in "${asset_files[@]}"; do + install -D -m 0644 "$SRC/$f" "$dest/$f" + echo " $f" + done + PLATFORM_SRC="$REPO/examples/platform" + PLATFORM_DEST="$dest/android_cast/examples/platform" + if [[ -d "$PLATFORM_SRC" ]]; then + mkdir -p "$PLATFORM_DEST" + rsync -a --no-group --no-owner "$PLATFORM_SRC/" "$PLATFORM_DEST/" + echo " platform/ (footer)" + fi +} + +verify_hint() { + cat <<'EOF' + +Verify on BE or public URL: + curl -sS 'https://apps.f0xx.org/app/androidcast_project/' | grep -E 'Landing|hub-landing|landing-top' + curl -sS -o /dev/null -w '%{http_code}\n' 'https://apps.f0xx.org/app/androidcast_project/hub-landing.css' + +Expect: title "Android Cast — Landing", HTTP 200 for hub-landing.css. +Then hard-refresh the browser (Ctrl+Shift+R). +EOF +} + +echo "Sync landing hub → $DEST" +if [[ -n "$REMOTE" ]]; then + tmp="$(mktemp -d)" + trap 'rm -rf "$tmp"' EXIT + for f in "${hub_files[@]}"; do cp "$SRC/$f" "$tmp/"; done + mkdir -p "$tmp/assets/i18n" + for f in "${asset_files[@]}"; do + mkdir -p "$tmp/$(dirname "$f")" + cp "$SRC/$f" "$tmp/$f" + done + scp "$tmp/index.php" "$tmp/index.html" "$tmp/hub.css" "$tmp/hub-logo-layers.css" \ + "$tmp/hub-landing.css" "$tmp/landing-pages.inc.php" \ + "$REMOTE:/var/www/localhost/htdocs/apps/app/androidcast_project/" + scp "$SRC/partials/cookie_consent.php" \ + "$REMOTE:/var/www/localhost/htdocs/apps/app/androidcast_project/partials/" + scp -r "$tmp/assets/hub-landing.js" "$tmp/assets/hub-i18n.js" "$tmp/assets/hub-globe.js" \ + "$tmp/assets/analytics.config.js" "$tmp/assets/i18n" \ + "$REMOTE:/var/www/localhost/htdocs/apps/app/androidcast_project/assets/" + echo "Remote sync via $REMOTE complete." +else + sync_local "$DEST" + echo "Local sync complete." +fi + +verify_hint