Spaces:
Running
Running
Update index.html
Browse files- index.html +1254 -19
index.html
CHANGED
|
@@ -1,19 +1,1254 @@
|
|
| 1 |
-
<!
|
| 2 |
-
<html>
|
| 3 |
-
|
| 4 |
-
|
| 5 |
-
|
| 6 |
-
|
| 7 |
-
|
| 8 |
-
|
| 9 |
-
|
| 10 |
-
|
| 11 |
-
|
| 12 |
-
|
| 13 |
-
|
| 14 |
-
|
| 15 |
-
|
| 16 |
-
|
| 17 |
-
|
| 18 |
-
|
| 19 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<!DOCTYPE html>
|
| 2 |
+
<html lang="en">
|
| 3 |
+
<head>
|
| 4 |
+
<meta charset="UTF-8"/>
|
| 5 |
+
<meta name="viewport" content="width=device-width, initial-scale=1.0"/>
|
| 6 |
+
<title>Matrix Vexa — Crystalline Intelligence</title>
|
| 7 |
+
<link href="https://fonts.googleapis.com/css2?family=Playfair+Display:ital,wght@0,400;0,700;0,900;1,400;1,700&family=DM+Sans:wght@300;400;500&family=Fira+Code:wght@300;400&display=swap" rel="stylesheet">
|
| 8 |
+
<style>
|
| 9 |
+
:root {
|
| 10 |
+
--bg: #fdf8f5;
|
| 11 |
+
--bg2: #faf3ee;
|
| 12 |
+
--pink: #f4a7c3;
|
| 13 |
+
--lavender: #c4b5f4;
|
| 14 |
+
--mint: #a8e6cf;
|
| 15 |
+
--peach: #ffcba4;
|
| 16 |
+
--sky: #a8d8ea;
|
| 17 |
+
--rose: #f9c6cf;
|
| 18 |
+
--gold: #f7d794;
|
| 19 |
+
--lilac: #dbb8f5;
|
| 20 |
+
--text: #5a4a5a;
|
| 21 |
+
--text-soft: #9a8a9a;
|
| 22 |
+
--white: #fff;
|
| 23 |
+
--panel: rgba(255,255,255,0.6);
|
| 24 |
+
--border: rgba(196,181,244,0.25);
|
| 25 |
+
}
|
| 26 |
+
*{box-sizing:border-box;margin:0;padding:0;}
|
| 27 |
+
html{scroll-behavior:smooth;}
|
| 28 |
+
body{
|
| 29 |
+
background:var(--bg);
|
| 30 |
+
font-family:'DM Sans',sans-serif;
|
| 31 |
+
color:var(--text);
|
| 32 |
+
overflow-x:hidden;
|
| 33 |
+
cursor:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20'%3E%3Cpolygon points='10,1 13,8 20,8 14,13 16,20 10,16 4,20 6,13 0,8 7,8' fill='%23f4a7c3' opacity='0.8'/%3E%3C/svg%3E") 10 10, auto;
|
| 34 |
+
}
|
| 35 |
+
|
| 36 |
+
/* ── Dreamy gradient bg ── */
|
| 37 |
+
body::before {
|
| 38 |
+
content:'';
|
| 39 |
+
position:fixed;inset:0;
|
| 40 |
+
background:
|
| 41 |
+
radial-gradient(ellipse 70% 50% at 15% 20%, rgba(244,167,195,0.18) 0%, transparent 60%),
|
| 42 |
+
radial-gradient(ellipse 60% 70% at 85% 80%, rgba(196,181,244,0.18) 0%, transparent 60%),
|
| 43 |
+
radial-gradient(ellipse 50% 40% at 50% 50%, rgba(168,230,207,0.10) 0%, transparent 55%),
|
| 44 |
+
radial-gradient(ellipse 40% 60% at 80% 15%, rgba(255,203,164,0.14) 0%, transparent 50%);
|
| 45 |
+
pointer-events:none;z-index:0;
|
| 46 |
+
animation:bgShift 12s ease-in-out infinite alternate;
|
| 47 |
+
}
|
| 48 |
+
@keyframes bgShift {
|
| 49 |
+
0%{filter:hue-rotate(0deg);}
|
| 50 |
+
100%{filter:hue-rotate(20deg);}
|
| 51 |
+
}
|
| 52 |
+
|
| 53 |
+
/* Rain canvas */
|
| 54 |
+
#rainCanvas{position:fixed;top:0;left:0;width:100%;height:100%;pointer-events:none;z-index:0;opacity:0.7;}
|
| 55 |
+
|
| 56 |
+
::-webkit-scrollbar{width:6px;}
|
| 57 |
+
::-webkit-scrollbar-track{background:var(--bg);}
|
| 58 |
+
::-webkit-scrollbar-thumb{background:var(--lavender);border-radius:3px;}
|
| 59 |
+
|
| 60 |
+
.wrap{position:relative;z-index:1;max-width:1200px;margin:0 auto;padding:0 36px 120px;}
|
| 61 |
+
|
| 62 |
+
/* ── HERO ── */
|
| 63 |
+
.hero{
|
| 64 |
+
min-height:100vh;
|
| 65 |
+
display:flex;flex-direction:column;
|
| 66 |
+
justify-content:center;align-items:center;
|
| 67 |
+
text-align:center;
|
| 68 |
+
padding:100px 0 60px;
|
| 69 |
+
position:relative;
|
| 70 |
+
}
|
| 71 |
+
|
| 72 |
+
.hero-crystal{
|
| 73 |
+
width:200px;height:200px;
|
| 74 |
+
position:relative;margin-bottom:32px;
|
| 75 |
+
animation:crystalFloat 4s ease-in-out infinite;
|
| 76 |
+
}
|
| 77 |
+
@keyframes crystalFloat{
|
| 78 |
+
0%,100%{transform:translateY(0) rotate(0deg);}
|
| 79 |
+
50%{transform:translateY(-16px) rotate(8deg);}
|
| 80 |
+
}
|
| 81 |
+
|
| 82 |
+
.hero-badge{
|
| 83 |
+
display:inline-flex;align-items:center;gap:8px;
|
| 84 |
+
padding:8px 20px;
|
| 85 |
+
background:rgba(244,167,195,0.15);
|
| 86 |
+
border:1px solid rgba(244,167,195,0.4);
|
| 87 |
+
border-radius:100px;
|
| 88 |
+
font-family:'Fira Code',monospace;font-size:10px;
|
| 89 |
+
color:var(--pink);letter-spacing:3px;
|
| 90 |
+
margin-bottom:24px;
|
| 91 |
+
animation:badgePulse 3s ease-in-out infinite;
|
| 92 |
+
}
|
| 93 |
+
@keyframes badgePulse{
|
| 94 |
+
0%,100%{box-shadow:0 0 0 0 rgba(244,167,195,0.3);}
|
| 95 |
+
50%{box-shadow:0 0 0 12px rgba(244,167,195,0);}
|
| 96 |
+
}
|
| 97 |
+
|
| 98 |
+
.hero-title{
|
| 99 |
+
font-family:'Playfair Display',serif;
|
| 100 |
+
font-size:clamp(64px,12vw,140px);
|
| 101 |
+
font-weight:900;
|
| 102 |
+
line-height:0.9;
|
| 103 |
+
margin-bottom:16px;
|
| 104 |
+
background:linear-gradient(135deg,
|
| 105 |
+
var(--pink) 0%,
|
| 106 |
+
var(--lavender) 35%,
|
| 107 |
+
var(--sky) 65%,
|
| 108 |
+
var(--mint) 100%);
|
| 109 |
+
-webkit-background-clip:text;-webkit-text-fill-color:transparent;
|
| 110 |
+
background-clip:text;
|
| 111 |
+
filter:drop-shadow(0 4px 24px rgba(196,181,244,0.4));
|
| 112 |
+
animation:titleGlow 3s ease-in-out infinite alternate;
|
| 113 |
+
background-size:200% 200%;
|
| 114 |
+
}
|
| 115 |
+
@keyframes titleGlow{
|
| 116 |
+
0%{filter:drop-shadow(0 4px 24px rgba(244,167,195,0.4));background-position:0% 50%;}
|
| 117 |
+
100%{filter:drop-shadow(0 4px 40px rgba(196,181,244,0.6));background-position:100% 50%;}
|
| 118 |
+
}
|
| 119 |
+
|
| 120 |
+
.hero-sub{
|
| 121 |
+
font-family:'Playfair Display',serif;
|
| 122 |
+
font-size:clamp(14px,2vw,20px);
|
| 123 |
+
font-style:italic;
|
| 124 |
+
color:var(--text-soft);
|
| 125 |
+
margin-bottom:32px;
|
| 126 |
+
letter-spacing:1px;
|
| 127 |
+
}
|
| 128 |
+
|
| 129 |
+
.hero-desc{
|
| 130 |
+
font-size:15px;color:var(--text);line-height:1.9;
|
| 131 |
+
max-width:580px;margin:0 auto 48px;font-weight:300;
|
| 132 |
+
}
|
| 133 |
+
.hero-desc strong{color:var(--lavender);font-weight:500;}
|
| 134 |
+
|
| 135 |
+
.hero-pills{
|
| 136 |
+
display:flex;flex-wrap:wrap;gap:8px;
|
| 137 |
+
justify-content:center;margin-bottom:56px;
|
| 138 |
+
}
|
| 139 |
+
.pill{
|
| 140 |
+
padding:7px 18px;border-radius:100px;
|
| 141 |
+
font-size:11px;font-weight:500;letter-spacing:0.5px;
|
| 142 |
+
backdrop-filter:blur(8px);
|
| 143 |
+
transition:transform 0.2s,box-shadow 0.2s;
|
| 144 |
+
}
|
| 145 |
+
.pill:hover{transform:translateY(-2px);box-shadow:0 8px 24px rgba(0,0,0,0.1);}
|
| 146 |
+
.p1{background:rgba(244,167,195,0.2);border:1px solid rgba(244,167,195,0.4);color:#c4617f;}
|
| 147 |
+
.p2{background:rgba(196,181,244,0.2);border:1px solid rgba(196,181,244,0.4);color:#7c5cbf;}
|
| 148 |
+
.p3{background:rgba(168,230,207,0.2);border:1px solid rgba(168,230,207,0.4);color:#4a9b75;}
|
| 149 |
+
.p4{background:rgba(255,203,164,0.2);border:1px solid rgba(255,203,164,0.4);color:#c47a3a;}
|
| 150 |
+
.p5{background:rgba(168,216,234,0.2);border:1px solid rgba(168,216,234,0.4);color:#3a7a9b;}
|
| 151 |
+
|
| 152 |
+
.scroll-down{
|
| 153 |
+
font-family:'Fira Code',monospace;font-size:10px;
|
| 154 |
+
color:var(--text-soft);letter-spacing:3px;
|
| 155 |
+
animation:scrollHint 2s ease-in-out infinite;
|
| 156 |
+
}
|
| 157 |
+
@keyframes scrollHint{0%,100%{opacity:0.4;transform:translateY(0);}50%{opacity:1;transform:translateY(6px);}}
|
| 158 |
+
|
| 159 |
+
/* ── SECTION SYSTEM ── */
|
| 160 |
+
.sec{margin-top:100px;opacity:0;transform:translateY(32px);transition:opacity 0.8s ease,transform 0.8s ease;}
|
| 161 |
+
.sec.vis{opacity:1;transform:translateY(0);}
|
| 162 |
+
|
| 163 |
+
.sec-label{
|
| 164 |
+
font-family:'Fira Code',monospace;font-size:10px;
|
| 165 |
+
color:var(--pink);letter-spacing:4px;
|
| 166 |
+
margin-bottom:8px;text-align:center;
|
| 167 |
+
}
|
| 168 |
+
.sec-title{
|
| 169 |
+
font-family:'Playfair Display',serif;
|
| 170 |
+
font-size:clamp(32px,5vw,56px);
|
| 171 |
+
font-weight:700;text-align:center;
|
| 172 |
+
color:var(--text);margin-bottom:12px;
|
| 173 |
+
}
|
| 174 |
+
.sec-title em{
|
| 175 |
+
font-style:italic;
|
| 176 |
+
background:linear-gradient(135deg,var(--pink),var(--lavender));
|
| 177 |
+
-webkit-background-clip:text;-webkit-text-fill-color:transparent;
|
| 178 |
+
background-clip:text;
|
| 179 |
+
}
|
| 180 |
+
.sec-sub{
|
| 181 |
+
font-size:14px;color:var(--text-soft);text-align:center;
|
| 182 |
+
max-width:560px;margin:0 auto 48px;line-height:1.8;
|
| 183 |
+
}
|
| 184 |
+
.sec-rule{
|
| 185 |
+
width:80px;height:2px;margin:16px auto 48px;
|
| 186 |
+
background:linear-gradient(90deg,var(--pink),var(--lavender),var(--mint));
|
| 187 |
+
border-radius:1px;
|
| 188 |
+
}
|
| 189 |
+
|
| 190 |
+
/* ── GLASS CARDS ── */
|
| 191 |
+
.glass{
|
| 192 |
+
background:rgba(255,255,255,0.55);
|
| 193 |
+
backdrop-filter:blur(16px);
|
| 194 |
+
border:1px solid rgba(255,255,255,0.7);
|
| 195 |
+
border-radius:20px;
|
| 196 |
+
box-shadow:0 8px 32px rgba(196,181,244,0.12), 0 2px 8px rgba(244,167,195,0.08);
|
| 197 |
+
transition:transform 0.3s,box-shadow 0.3s;
|
| 198 |
+
}
|
| 199 |
+
.glass:hover{
|
| 200 |
+
transform:translateY(-4px);
|
| 201 |
+
box-shadow:0 16px 48px rgba(196,181,244,0.2), 0 4px 16px rgba(244,167,195,0.12);
|
| 202 |
+
}
|
| 203 |
+
|
| 204 |
+
/* ── GLYPH ANATOMY ── */
|
| 205 |
+
.anatomy-grid{display:grid;grid-template-columns:1fr 1fr;gap:32px;align-items:start;}
|
| 206 |
+
.glyph-canvas-wrap{
|
| 207 |
+
border-radius:20px;overflow:hidden;
|
| 208 |
+
background:rgba(255,255,255,0.4);
|
| 209 |
+
border:1px solid rgba(255,255,255,0.7);
|
| 210 |
+
height:440px;position:relative;
|
| 211 |
+
}
|
| 212 |
+
.glyph-canvas-wrap canvas{width:100%;height:100%;}
|
| 213 |
+
.gc-label{
|
| 214 |
+
position:absolute;top:16px;left:16px;
|
| 215 |
+
font-family:'Fira Code',monospace;font-size:9px;
|
| 216 |
+
color:var(--lavender);letter-spacing:3px;
|
| 217 |
+
}
|
| 218 |
+
|
| 219 |
+
.fields-list{display:flex;flex-direction:column;gap:6px;}
|
| 220 |
+
.field-row{
|
| 221 |
+
display:grid;grid-template-columns:110px 100px 1fr;
|
| 222 |
+
align-items:center;gap:12px;
|
| 223 |
+
padding:12px 16px;
|
| 224 |
+
border-radius:12px;
|
| 225 |
+
background:rgba(255,255,255,0.6);
|
| 226 |
+
border:1px solid rgba(255,255,255,0.8);
|
| 227 |
+
transition:all 0.2s;
|
| 228 |
+
}
|
| 229 |
+
.field-row:hover{background:rgba(255,255,255,0.9);transform:translateX(4px);}
|
| 230 |
+
.fr-name{font-family:'Fira Code',monospace;font-size:10px;font-weight:400;}
|
| 231 |
+
.fr-type{font-family:'Fira Code',monospace;font-size:9px;color:var(--text-soft);}
|
| 232 |
+
.fr-desc{font-size:10px;color:var(--text);line-height:1.5;}
|
| 233 |
+
.fr-c1 .fr-name{color:#c4617f;}
|
| 234 |
+
.fr-c2 .fr-name{color:#7c5cbf;}
|
| 235 |
+
.fr-c3 .fr-name{color:#4a9b75;}
|
| 236 |
+
.fr-c4 .fr-name{color:#c47a3a;}
|
| 237 |
+
.fr-c5 .fr-name{color:#3a7a9b;}
|
| 238 |
+
|
| 239 |
+
/* ── EDGES ── */
|
| 240 |
+
.edges-wrap{display:grid;grid-template-columns:repeat(5,1fr);gap:10px;}
|
| 241 |
+
.edge-card{
|
| 242 |
+
padding:16px 14px;border-radius:16px;
|
| 243 |
+
background:rgba(255,255,255,0.6);
|
| 244 |
+
border:1px solid rgba(255,255,255,0.8);
|
| 245 |
+
text-align:center;
|
| 246 |
+
transition:all 0.2s;
|
| 247 |
+
}
|
| 248 |
+
.edge-card:hover{transform:translateY(-4px);background:rgba(255,255,255,0.9);}
|
| 249 |
+
.ec-gem{font-size:24px;margin-bottom:8px;}
|
| 250 |
+
.ec-name{font-family:'Fira Code',monospace;font-size:9px;letter-spacing:1px;margin-bottom:4px;}
|
| 251 |
+
.ec-ex{font-size:9px;color:var(--text-soft);font-style:italic;margin-bottom:4px;}
|
| 252 |
+
.ec-desc{font-size:9px;color:var(--text);line-height:1.5;}
|
| 253 |
+
|
| 254 |
+
/* ── CRYSTALLIZATION ── */
|
| 255 |
+
.cryst-grid{display:grid;grid-template-columns:1fr 320px;gap:32px;}
|
| 256 |
+
.phase-list{display:flex;flex-direction:column;gap:8px;}
|
| 257 |
+
.phase-card{
|
| 258 |
+
display:grid;grid-template-columns:64px 1fr;
|
| 259 |
+
border-radius:16px;overflow:hidden;
|
| 260 |
+
background:rgba(255,255,255,0.55);
|
| 261 |
+
border:1px solid rgba(255,255,255,0.8);
|
| 262 |
+
transition:all 0.2s;
|
| 263 |
+
}
|
| 264 |
+
.phase-card:hover{transform:translateX(4px);background:rgba(255,255,255,0.85);}
|
| 265 |
+
.phase-left{
|
| 266 |
+
display:flex;flex-direction:column;align-items:center;justify-content:center;
|
| 267 |
+
padding:16px 8px;
|
| 268 |
+
font-family:'Playfair Display',serif;
|
| 269 |
+
}
|
| 270 |
+
.pl-num{font-size:28px;font-weight:900;line-height:1;}
|
| 271 |
+
.pl-time{font-family:'Fira Code',monospace;font-size:7px;color:var(--text-soft);letter-spacing:1px;margin-top:2px;}
|
| 272 |
+
.phase-right{padding:16px 20px;}
|
| 273 |
+
.pr-name{font-size:13px;font-weight:600;color:var(--text);margin-bottom:4px;}
|
| 274 |
+
.pr-desc{font-size:10px;color:var(--text-soft);line-height:1.7;}
|
| 275 |
+
|
| 276 |
+
.ph1 .phase-left{background:rgba(244,167,195,0.12);} .ph1 .pl-num{color:var(--pink);}
|
| 277 |
+
.ph2 .phase-left{background:rgba(196,181,244,0.12);} .ph2 .pl-num{color:var(--lavender);}
|
| 278 |
+
.ph3 .phase-left{background:rgba(168,230,207,0.12);} .ph3 .pl-num{color:var(--mint);}
|
| 279 |
+
.ph4 .phase-left{background:rgba(255,203,164,0.12);} .ph4 .pl-num{color:var(--peach);}
|
| 280 |
+
.ph5 .phase-left{background:rgba(168,216,234,0.12);} .ph5 .pl-num{color:var(--sky);}
|
| 281 |
+
|
| 282 |
+
/* Crystal timer */
|
| 283 |
+
.crystal-timer{
|
| 284 |
+
border-radius:20px;
|
| 285 |
+
background:rgba(255,255,255,0.6);
|
| 286 |
+
border:1px solid rgba(255,255,255,0.8);
|
| 287 |
+
padding:28px 24px;
|
| 288 |
+
position:sticky;top:32px;
|
| 289 |
+
text-align:center;
|
| 290 |
+
}
|
| 291 |
+
.ct-gem{font-size:48px;margin-bottom:8px;animation:gemSpin 6s linear infinite;}
|
| 292 |
+
@keyframes gemSpin{0%{transform:rotateY(0);}100%{transform:rotateY(360deg);}}
|
| 293 |
+
.ct-title{
|
| 294 |
+
font-family:'Playfair Display',serif;font-size:13px;
|
| 295 |
+
color:var(--text-soft);margin-bottom:16px;letter-spacing:1px;
|
| 296 |
+
}
|
| 297 |
+
.ct-time{
|
| 298 |
+
font-family:'Playfair Display',serif;
|
| 299 |
+
font-size:56px;font-weight:900;
|
| 300 |
+
background:linear-gradient(135deg,var(--pink),var(--lavender));
|
| 301 |
+
-webkit-background-clip:text;-webkit-text-fill-color:transparent;
|
| 302 |
+
background-clip:text;
|
| 303 |
+
line-height:1;margin-bottom:4px;
|
| 304 |
+
}
|
| 305 |
+
.ct-unit{font-size:10px;color:var(--text-soft);letter-spacing:3px;margin-bottom:20px;font-family:'Fira Code',monospace;}
|
| 306 |
+
.ct-bars{display:flex;flex-direction:column;gap:8px;margin-bottom:16px;}
|
| 307 |
+
.cb-row{text-align:left;}
|
| 308 |
+
.cb-labels{display:flex;justify-content:space-between;font-size:9px;margin-bottom:3px;}
|
| 309 |
+
.cb-k{color:var(--text-soft);}
|
| 310 |
+
.cb-v{font-family:'Fira Code',monospace;}
|
| 311 |
+
.cb-track{height:6px;background:rgba(196,181,244,0.15);border-radius:3px;overflow:hidden;}
|
| 312 |
+
.cb-fill{height:100%;border-radius:3px;transition:width 0.1s linear;}
|
| 313 |
+
.cf1{background:linear-gradient(90deg,var(--pink),var(--rose));}
|
| 314 |
+
.cf2{background:linear-gradient(90deg,var(--lavender),var(--lilac));}
|
| 315 |
+
.cf3{background:linear-gradient(90deg,var(--mint),var(--sky));}
|
| 316 |
+
.cf4{background:linear-gradient(90deg,var(--peach),var(--gold));}
|
| 317 |
+
.cf5{background:linear-gradient(90deg,var(--sky),var(--mint));}
|
| 318 |
+
.ct-btn{
|
| 319 |
+
width:100%;padding:12px;border-radius:12px;
|
| 320 |
+
background:linear-gradient(135deg,var(--pink),var(--lavender));
|
| 321 |
+
border:none;color:white;
|
| 322 |
+
font-family:'DM Sans',sans-serif;font-size:12px;font-weight:500;
|
| 323 |
+
cursor:pointer;letter-spacing:1px;
|
| 324 |
+
transition:all 0.2s;box-shadow:0 4px 16px rgba(196,181,244,0.3);
|
| 325 |
+
}
|
| 326 |
+
.ct-btn:hover{transform:translateY(-2px);box-shadow:0 8px 24px rgba(196,181,244,0.4);}
|
| 327 |
+
.ct-stats{margin-top:16px;display:flex;flex-direction:column;gap:4px;}
|
| 328 |
+
.cs-row{display:flex;justify-content:space-between;font-size:10px;padding:5px 0;border-bottom:1px solid rgba(196,181,244,0.1);}
|
| 329 |
+
.cs-k{color:var(--text-soft);}
|
| 330 |
+
.cs-v{font-family:'Fira Code',monospace;color:var(--lavender);}
|
| 331 |
+
|
| 332 |
+
/* ── LATTICE ── */
|
| 333 |
+
.lattice-wrap{display:grid;grid-template-columns:1fr 1fr;gap:32px;}
|
| 334 |
+
.lattice-canvas-box{
|
| 335 |
+
border-radius:20px;height:480px;overflow:hidden;
|
| 336 |
+
background:rgba(255,255,255,0.4);
|
| 337 |
+
border:1px solid rgba(255,255,255,0.7);
|
| 338 |
+
position:relative;
|
| 339 |
+
}
|
| 340 |
+
.lattice-canvas-box canvas{width:100%;height:100%;}
|
| 341 |
+
.lc-tag{
|
| 342 |
+
position:absolute;top:16px;left:16px;
|
| 343 |
+
font-family:'Fira Code',monospace;font-size:9px;
|
| 344 |
+
color:var(--lavender);letter-spacing:3px;
|
| 345 |
+
}
|
| 346 |
+
.lc-legend{
|
| 347 |
+
position:absolute;bottom:16px;left:16px;
|
| 348 |
+
display:flex;flex-direction:column;gap:6px;
|
| 349 |
+
}
|
| 350 |
+
.ll{display:flex;align-items:center;gap:6px;font-size:9px;color:var(--text-soft);}
|
| 351 |
+
.ll-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0;}
|
| 352 |
+
|
| 353 |
+
.density-cards{display:flex;flex-direction:column;gap:8px;}
|
| 354 |
+
.dc{
|
| 355 |
+
display:grid;grid-template-columns:80px 1fr 70px 80px;
|
| 356 |
+
align-items:center;gap:12px;
|
| 357 |
+
padding:14px 16px;border-radius:14px;
|
| 358 |
+
background:rgba(255,255,255,0.55);
|
| 359 |
+
border:1px solid rgba(255,255,255,0.8);
|
| 360 |
+
transition:all 0.2s;
|
| 361 |
+
}
|
| 362 |
+
.dc:hover{background:rgba(255,255,255,0.9);transform:translateX(4px);}
|
| 363 |
+
.dc.header{
|
| 364 |
+
background:rgba(196,181,244,0.08);
|
| 365 |
+
border-color:rgba(196,181,244,0.2);
|
| 366 |
+
font-family:'Fira Code',monospace;font-size:9px;
|
| 367 |
+
color:var(--lavender);letter-spacing:2px;
|
| 368 |
+
}
|
| 369 |
+
.dc-tier{font-weight:600;color:var(--text);}
|
| 370 |
+
.dc-glyphs{font-family:'Fira Code',monospace;font-size:11px;color:var(--lavender);}
|
| 371 |
+
.dc-ram{font-family:'Fira Code',monospace;font-size:11px;color:var(--mint);}
|
| 372 |
+
.dc-use{font-size:10px;color:var(--text-soft);}
|
| 373 |
+
.dc.max .dc-tier{color:var(--pink);}
|
| 374 |
+
.dc.max .dc-glyphs{color:var(--pink);}
|
| 375 |
+
|
| 376 |
+
/* ── LUME ── */
|
| 377 |
+
.lume-grid{display:grid;grid-template-columns:1fr 1fr;gap:32px;}
|
| 378 |
+
.lume-box{
|
| 379 |
+
border-radius:20px;overflow:hidden;
|
| 380 |
+
background:rgba(255,255,255,0.5);
|
| 381 |
+
border:1px solid rgba(255,255,255,0.8);
|
| 382 |
+
}
|
| 383 |
+
.lume-tabbar{
|
| 384 |
+
display:flex;background:rgba(255,255,255,0.6);
|
| 385 |
+
border-bottom:1px solid rgba(196,181,244,0.15);
|
| 386 |
+
}
|
| 387 |
+
.ltab{
|
| 388 |
+
padding:10px 18px;font-family:'Fira Code',monospace;
|
| 389 |
+
font-size:9px;letter-spacing:2px;color:var(--text-soft);
|
| 390 |
+
cursor:pointer;border-bottom:2px solid transparent;
|
| 391 |
+
transition:all 0.15s;
|
| 392 |
+
}
|
| 393 |
+
.ltab:hover{color:var(--text);}
|
| 394 |
+
.ltab.on{color:var(--lavender);border-bottom-color:var(--lavender);}
|
| 395 |
+
.lume-code{
|
| 396 |
+
padding:24px;font-family:'Fira Code',monospace;
|
| 397 |
+
font-size:11px;line-height:2;min-height:380px;
|
| 398 |
+
overflow-x:auto;
|
| 399 |
+
}
|
| 400 |
+
.lc-b{display:none;} .lc-b.on{display:block;}
|
| 401 |
+
.lkw{color:#c4617f;} .lid{color:#7c5cbf;} .lstr{color:#4a9b75;}
|
| 402 |
+
.lnum{color:#c47a3a;} .lcm{color:#c0b4c0;font-style:italic;} .lprop{color:#3a7a9b;}
|
| 403 |
+
|
| 404 |
+
.lume-explain{display:flex;flex-direction:column;gap:8px;}
|
| 405 |
+
.le{
|
| 406 |
+
padding:16px 18px;border-radius:14px;
|
| 407 |
+
background:rgba(255,255,255,0.55);
|
| 408 |
+
border:1px solid rgba(255,255,255,0.8);
|
| 409 |
+
border-left:3px solid;
|
| 410 |
+
transition:all 0.2s;
|
| 411 |
+
}
|
| 412 |
+
.le:hover{transform:translateX(4px);background:rgba(255,255,255,0.9);}
|
| 413 |
+
.le-n{font-family:'Fira Code',monospace;font-size:10px;margin-bottom:4px;}
|
| 414 |
+
.le-d{font-size:10px;color:var(--text-soft);line-height:1.7;}
|
| 415 |
+
.le.e1{border-left-color:var(--pink);} .le.e1 .le-n{color:#c4617f;}
|
| 416 |
+
.le.e2{border-left-color:var(--lavender);} .le.e2 .le-n{color:#7c5cbf;}
|
| 417 |
+
.le.e3{border-left-color:var(--mint);} .le.e3 .le-n{color:#4a9b75;}
|
| 418 |
+
.le.e4{border-left-color:var(--peach);} .le.e4 .le-n{color:#c47a3a;}
|
| 419 |
+
.le.e5{border-left-color:var(--sky);} .le.e5 .le-n{color:#3a7a9b;}
|
| 420 |
+
.le.e6{border-left-color:var(--lilac);} .le.e6 .le-n{color:#9c5cbf;}
|
| 421 |
+
.le.e7{border-left-color:var(--gold);} .le.e7 .le-n{color:#b47a2a;}
|
| 422 |
+
|
| 423 |
+
/* ── THREADS ── */
|
| 424 |
+
.threads-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;}
|
| 425 |
+
.thread-card{
|
| 426 |
+
padding:28px 24px;border-radius:20px;
|
| 427 |
+
background:rgba(255,255,255,0.55);
|
| 428 |
+
border:1px solid rgba(255,255,255,0.8);
|
| 429 |
+
position:relative;overflow:hidden;
|
| 430 |
+
transition:all 0.3s;
|
| 431 |
+
}
|
| 432 |
+
.thread-card:hover{transform:translateY(-6px);background:rgba(255,255,255,0.85);}
|
| 433 |
+
.thread-card::before{
|
| 434 |
+
content:'';position:absolute;top:0;left:0;right:0;height:4px;
|
| 435 |
+
}
|
| 436 |
+
.tc1::before{background:linear-gradient(90deg,var(--pink),var(--rose));}
|
| 437 |
+
.tc2::before{background:linear-gradient(90deg,var(--lavender),var(--lilac));}
|
| 438 |
+
.tc3::before{background:linear-gradient(90deg,var(--gold),var(--peach));}
|
| 439 |
+
.tc-pulse{
|
| 440 |
+
position:absolute;top:20px;right:20px;
|
| 441 |
+
width:10px;height:10px;border-radius:50%;
|
| 442 |
+
}
|
| 443 |
+
.tcp1{background:var(--pink);animation:tcPulse 1.5s ease-in-out infinite;}
|
| 444 |
+
.tcp2{background:var(--lavender);animation:tcPulse 1.5s ease-in-out infinite 0.5s;}
|
| 445 |
+
.tcp3{background:var(--gold);animation:tcPulse 1.5s ease-in-out infinite 1s;}
|
| 446 |
+
@keyframes tcPulse{
|
| 447 |
+
0%,100%{transform:scale(1);opacity:1;box-shadow:0 0 0 0 currentColor;}
|
| 448 |
+
50%{transform:scale(1.4);opacity:0.6;box-shadow:0 0 0 6px transparent;}
|
| 449 |
+
}
|
| 450 |
+
.tc-icon{font-size:32px;margin-bottom:12px;}
|
| 451 |
+
.tc-name{font-family:'Playfair Display',serif;font-size:18px;font-weight:700;color:var(--text);margin-bottom:8px;}
|
| 452 |
+
.tc-desc{font-size:11px;color:var(--text-soft);line-height:1.8;margin-bottom:16px;}
|
| 453 |
+
.tc-stats{display:flex;flex-direction:column;gap:4px;}
|
| 454 |
+
.ts{display:flex;justify-content:space-between;font-size:10px;padding:5px 0;border-bottom:1px solid rgba(196,181,244,0.1);}
|
| 455 |
+
.ts-k{color:var(--text-soft);}
|
| 456 |
+
.ts-v{font-family:'Fira Code',monospace;}
|
| 457 |
+
.tc1 .ts-v{color:#c4617f;} .tc2 .ts-v{color:#7c5cbf;} .tc3 .ts-v{color:#b47a2a;}
|
| 458 |
+
|
| 459 |
+
/* ── COMPARE ── */
|
| 460 |
+
.compare-table{width:100%;border-collapse:collapse;border-radius:16px;overflow:hidden;}
|
| 461 |
+
.compare-table th{
|
| 462 |
+
font-size:10px;letter-spacing:2px;padding:14px 16px;
|
| 463 |
+
text-align:left;background:rgba(196,181,244,0.12);
|
| 464 |
+
color:var(--lavender);font-weight:500;font-family:'Fira Code',monospace;
|
| 465 |
+
border-bottom:1px solid rgba(196,181,244,0.2);
|
| 466 |
+
}
|
| 467 |
+
.compare-table td{
|
| 468 |
+
padding:12px 16px;border-bottom:1px solid rgba(196,181,244,0.08);
|
| 469 |
+
font-size:11px;
|
| 470 |
+
background:rgba(255,255,255,0.5);
|
| 471 |
+
}
|
| 472 |
+
.compare-table tr:hover td{background:rgba(255,255,255,0.85);}
|
| 473 |
+
.td-prop{color:var(--text);font-weight:500;}
|
| 474 |
+
.td-llm{color:#c47a7a;}
|
| 475 |
+
.td-vexa{color:#4a9b75;}
|
| 476 |
+
|
| 477 |
+
/* ── BRIDGE ── */
|
| 478 |
+
.bridge-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:24px;}
|
| 479 |
+
.bridge-card{
|
| 480 |
+
padding:18px 16px;border-radius:14px;
|
| 481 |
+
background:rgba(255,255,255,0.55);
|
| 482 |
+
border:1px solid rgba(255,255,255,0.8);
|
| 483 |
+
transition:all 0.2s;
|
| 484 |
+
}
|
| 485 |
+
.bridge-card:hover{transform:translateY(-3px);background:rgba(255,255,255,0.9);}
|
| 486 |
+
.bc-name{font-weight:600;color:var(--text);margin-bottom:4px;font-size:13px;}
|
| 487 |
+
.bc-method{font-family:'Fira Code',monospace;font-size:9px;color:var(--text-soft);margin-bottom:10px;}
|
| 488 |
+
.bc-badge{
|
| 489 |
+
display:inline-block;padding:3px 10px;border-radius:100px;
|
| 490 |
+
font-size:8px;letter-spacing:1px;
|
| 491 |
+
background:rgba(168,230,207,0.2);border:1px solid rgba(168,230,207,0.4);color:#4a9b75;
|
| 492 |
+
}
|
| 493 |
+
|
| 494 |
+
.bridge-flow{
|
| 495 |
+
border-radius:16px;padding:24px;
|
| 496 |
+
background:rgba(255,255,255,0.5);
|
| 497 |
+
border:1px solid rgba(255,255,255,0.8);
|
| 498 |
+
}
|
| 499 |
+
.bf-row{
|
| 500 |
+
display:flex;align-items:flex-start;gap:14px;
|
| 501 |
+
padding:10px 0;border-bottom:1px solid rgba(196,181,244,0.08);
|
| 502 |
+
font-size:11px;
|
| 503 |
+
}
|
| 504 |
+
.bf-n{
|
| 505 |
+
width:24px;height:24px;border-radius:50%;flex-shrink:0;
|
| 506 |
+
display:flex;align-items:center;justify-content:center;
|
| 507 |
+
font-family:'Fira Code',monospace;font-size:9px;font-weight:500;color:white;
|
| 508 |
+
}
|
| 509 |
+
.bf-1 .bf-n{background:var(--pink);}
|
| 510 |
+
.bf-2 .bf-n{background:var(--lavender);}
|
| 511 |
+
.bf-3 .bf-n{background:var(--mint);}
|
| 512 |
+
.bf-4 .bf-n{background:var(--peach);}
|
| 513 |
+
.bf-5 .bf-n{background:var(--sky);}
|
| 514 |
+
.bf-6 .bf-n{background:var(--lilac);}
|
| 515 |
+
.bf-t{color:var(--text);line-height:1.6;}
|
| 516 |
+
.bf-t strong{color:var(--lavender);}
|
| 517 |
+
.bf-arr{text-align:center;color:var(--lavender);opacity:0.4;padding:4px 0;font-size:14px;}
|
| 518 |
+
|
| 519 |
+
/* ── HF PLAN ── */
|
| 520 |
+
.hf-list{display:flex;flex-direction:column;gap:8px;}
|
| 521 |
+
.hf-card{
|
| 522 |
+
display:grid;grid-template-columns:1fr auto;
|
| 523 |
+
align-items:center;gap:16px;
|
| 524 |
+
padding:16px 20px;border-radius:14px;
|
| 525 |
+
background:rgba(255,255,255,0.55);
|
| 526 |
+
border:1px solid rgba(255,255,255,0.8);
|
| 527 |
+
transition:all 0.2s;
|
| 528 |
+
}
|
| 529 |
+
.hf-card:hover{transform:translateX(4px);background:rgba(255,255,255,0.9);}
|
| 530 |
+
.hf-name{font-family:'Fira Code',monospace;font-size:11px;color:var(--lavender);margin-bottom:4px;}
|
| 531 |
+
.hf-desc{font-size:10px;color:var(--text-soft);}
|
| 532 |
+
.hf-badge{
|
| 533 |
+
padding:4px 12px;border-radius:100px;
|
| 534 |
+
font-size:8px;letter-spacing:1px;white-space:nowrap;
|
| 535 |
+
background:rgba(168,230,207,0.2);border:1px solid rgba(168,230,207,0.4);color:#4a9b75;
|
| 536 |
+
}
|
| 537 |
+
|
| 538 |
+
/* ── FOOTER ── */
|
| 539 |
+
.footer{
|
| 540 |
+
margin-top:100px;padding:32px 0;
|
| 541 |
+
border-top:1px solid rgba(196,181,244,0.2);
|
| 542 |
+
display:flex;justify-content:space-between;align-items:center;
|
| 543 |
+
flex-wrap:wrap;gap:16px;
|
| 544 |
+
}
|
| 545 |
+
.footer-l{font-size:10px;color:var(--text-soft);line-height:2;font-family:'Fira Code',monospace;letter-spacing:2px;}
|
| 546 |
+
.footer-r{
|
| 547 |
+
font-family:'Playfair Display',serif;font-size:22px;font-style:italic;
|
| 548 |
+
background:linear-gradient(135deg,var(--pink),var(--lavender));
|
| 549 |
+
-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;
|
| 550 |
+
}
|
| 551 |
+
|
| 552 |
+
@media(max-width:900px){
|
| 553 |
+
.anatomy-grid,.lume-grid,.lattice-wrap,.cryst-grid{grid-template-columns:1fr;}
|
| 554 |
+
.edges-wrap{grid-template-columns:repeat(2,1fr);}
|
| 555 |
+
.threads-grid{grid-template-columns:1fr;}
|
| 556 |
+
.bridge-grid{grid-template-columns:1fr 1fr;}
|
| 557 |
+
}
|
| 558 |
+
</style>
|
| 559 |
+
</head>
|
| 560 |
+
<body>
|
| 561 |
+
<canvas id="rainCanvas"></canvas>
|
| 562 |
+
<div class="wrap">
|
| 563 |
+
|
| 564 |
+
<!-- ══ HERO ══ -->
|
| 565 |
+
<div class="hero">
|
| 566 |
+
<div class="hero-badge">✦ NOT AN AI — A NEW PARADIGM ✦</div>
|
| 567 |
+
|
| 568 |
+
<div class="hero-crystal">
|
| 569 |
+
<svg viewBox="0 0 200 200" fill="none" xmlns="http://www.w3.org/2000/svg">
|
| 570 |
+
<defs>
|
| 571 |
+
<linearGradient id="cg1" x1="0%" y1="0%" x2="100%" y2="100%">
|
| 572 |
+
<stop offset="0%" stop-color="#f4a7c3"/>
|
| 573 |
+
<stop offset="50%" stop-color="#c4b5f4"/>
|
| 574 |
+
<stop offset="100%" stop-color="#a8e6cf"/>
|
| 575 |
+
</linearGradient>
|
| 576 |
+
<linearGradient id="cg2" x1="100%" y1="0%" x2="0%" y2="100%">
|
| 577 |
+
<stop offset="0%" stop-color="#ffcba4" stop-opacity="0.6"/>
|
| 578 |
+
<stop offset="100%" stop-color="#a8d8ea" stop-opacity="0.6"/>
|
| 579 |
+
</linearGradient>
|
| 580 |
+
<filter id="glow"><feGaussianBlur stdDeviation="3" result="blur"/><feMerge><feMergeNode in="blur"/><feMergeNode in="SourceGraphic"/></feMerge></filter>
|
| 581 |
+
</defs>
|
| 582 |
+
<!-- Main crystal body -->
|
| 583 |
+
<polygon points="100,10 160,60 170,130 100,190 30,130 40,60" fill="url(#cg1)" opacity="0.7" filter="url(#glow)"/>
|
| 584 |
+
<polygon points="100,10 160,60 170,130 100,190 30,130 40,60" fill="none" stroke="white" stroke-width="1.5" opacity="0.8"/>
|
| 585 |
+
<!-- Inner facets -->
|
| 586 |
+
<polygon points="100,10 160,60 100,80" fill="white" opacity="0.2"/>
|
| 587 |
+
<polygon points="100,10 40,60 100,80" fill="url(#cg2)" opacity="0.3"/>
|
| 588 |
+
<polygon points="100,80 160,60 170,130 100,190" fill="url(#cg1)" opacity="0.4"/>
|
| 589 |
+
<polygon points="100,80 40,60 30,130 100,190" fill="white" opacity="0.15"/>
|
| 590 |
+
<!-- Center line -->
|
| 591 |
+
<line x1="100" y1="10" x2="100" y2="190" stroke="white" stroke-width="0.5" opacity="0.5"/>
|
| 592 |
+
<!-- Sparkles -->
|
| 593 |
+
<circle cx="100" cy="80" r="4" fill="white" opacity="0.9" filter="url(#glow)"/>
|
| 594 |
+
<circle cx="155" cy="65" r="2" fill="#f4a7c3" opacity="0.8"/>
|
| 595 |
+
<circle cx="45" cy="65" r="2" fill="#c4b5f4" opacity="0.8"/>
|
| 596 |
+
<circle cx="100" cy="185" r="2" fill="#a8e6cf" opacity="0.8"/>
|
| 597 |
+
<!-- Outer glow ring -->
|
| 598 |
+
<circle cx="100" cy="100" r="90" fill="none" stroke="url(#cg1)" stroke-width="0.5" opacity="0.4" stroke-dasharray="4 8"/>
|
| 599 |
+
</svg>
|
| 600 |
+
</div>
|
| 601 |
+
|
| 602 |
+
<h1 class="hero-title">Vexa</h1>
|
| 603 |
+
<div class="hero-sub">Crystalline Intelligence Substrate</div>
|
| 604 |
+
<p class="hero-desc">
|
| 605 |
+
A living, self-updating lattice of <strong>Glyphs</strong> that understands because its structure <em>is</em> understanding. Not weights. Not tokens. Crystallizes knowledge in <strong>10 minutes on any laptop</strong> — and keeps learning forever.
|
| 606 |
+
</p>
|
| 607 |
+
<div class="hero-pills">
|
| 608 |
+
<span class="pill p1">✦ Glyph Lattice</span>
|
| 609 |
+
<span class="pill p2">◈ Crystallization Engine</span>
|
| 610 |
+
<span class="pill p3">⬡ Lume Language</span>
|
| 611 |
+
<span class="pill p4">⟳ Real-Time Learning</span>
|
| 612 |
+
<span class="pill p5">⬡ Ollama Compatible</span>
|
| 613 |
+
<span class="pill p1">✦ Fully Open Source</span>
|
| 614 |
+
<span class="pill p2">◈ No GPU Required</span>
|
| 615 |
+
<span class="pill p3">⬡ Any Laptop</span>
|
| 616 |
+
</div>
|
| 617 |
+
<div class="scroll-down">scroll to explore ↓</div>
|
| 618 |
+
</div>
|
| 619 |
+
|
| 620 |
+
<!-- ══ SECTION 1 — GLYPH ══ -->
|
| 621 |
+
<div class="sec" id="s1">
|
| 622 |
+
<div class="sec-label">// 01</div>
|
| 623 |
+
<div class="sec-title">The <em>Glyph</em></div>
|
| 624 |
+
<div class="sec-rule"></div>
|
| 625 |
+
<div class="sec-sub">Not a weight. Not a vector. Not a symbol. A structured meaning object with identity, relations, confidence, and a soul.</div>
|
| 626 |
+
|
| 627 |
+
<div class="anatomy-grid">
|
| 628 |
+
<div>
|
| 629 |
+
<div class="glyph-canvas-wrap">
|
| 630 |
+
<div class="gc-label">LIVE GLYPH NETWORK</div>
|
| 631 |
+
<canvas id="glyphCanvas"></canvas>
|
| 632 |
+
</div>
|
| 633 |
+
</div>
|
| 634 |
+
<div class="fields-list">
|
| 635 |
+
<div class="field-row fr-c1"><span class="fr-name">id</span><span class="fr-type">UUID</span><span class="fr-desc">Permanent identity — always traceable</span></div>
|
| 636 |
+
<div class="field-row fr-c2"><span class="fr-name">concept</span><span class="fr-type">Vector[512]</span><span class="fr-desc">Dense semantic meaning — what this Glyph represents</span></div>
|
| 637 |
+
<div class="field-row fr-c3"><span class="fr-name">relations</span><span class="fr-type">Map<ID,Edge></span><span class="fr-desc">Typed connections — how it links to the world</span></div>
|
| 638 |
+
<div class="field-row fr-c1"><span class="fr-name">tension</span><span class="fr-type">float</span><span class="fr-desc">How strongly it pulls toward certain outputs</span></div>
|
| 639 |
+
<div class="field-row fr-c2"><span class="fr-name">resonance</span><span class="fr-type">float</span><span class="fr-desc">Activation strength — how it lights up neighbors</span></div>
|
| 640 |
+
<div class="field-row fr-c4"><span class="fr-name">confidence</span><span class="fr-type">float[0,1]</span><span class="fr-desc">Structurally real certainty — not simulated</span></div>
|
| 641 |
+
<div class="field-row fr-c5"><span class="fr-name">decay</span><span class="fr-type">DecayFn</span><span class="fr-desc">How fast it fades — fast for news, never for physics</span></div>
|
| 642 |
+
<div class="field-row fr-c3"><span class="fr-name">source</span><span class="fr-type">SourceRef[]</span><span class="fr-desc">Every claim sourced. Always. No exceptions.</span></div>
|
| 643 |
+
<div class="field-row fr-c1"><span class="fr-name">valence</span><span class="fr-type">float[-1,1]</span><span class="fr-desc">Semantic charge — positive or negative meaning</span></div>
|
| 644 |
+
<div class="field-row fr-c2"><span class="fr-name">mutable</span><span class="fr-type">bool</span><span class="fr-desc">Can real-time learning update this Glyph?</span></div>
|
| 645 |
+
</div>
|
| 646 |
+
</div>
|
| 647 |
+
|
| 648 |
+
<div style="margin-top:32px;">
|
| 649 |
+
<div style="font-family:'Fira Code',monospace;font-size:9px;color:var(--lavender);letter-spacing:3px;text-align:center;margin-bottom:20px;">10 EDGE TYPES — THE RELATION PRIMITIVES</div>
|
| 650 |
+
<div class="edges-wrap">
|
| 651 |
+
<div class="edge-card"><div class="ec-gem">💎</div><div class="ec-name" style="color:#c4617f;">IS_A</div><div class="ec-ex">dog → animal</div><div class="ec-desc">Taxonomic hierarchy</div></div>
|
| 652 |
+
<div class="edge-card"><div class="ec-gem">✨</div><div class="ec-name" style="color:#7c5cbf;">HAS_PROPERTY</div><div class="ec-ex">ice → cold</div><div class="ec-desc">Attribute assignment</div></div>
|
| 653 |
+
<div class="edge-card"><div class="ec-gem">⚡</div><div class="ec-name" style="color:#4a9b75;">CAUSES</div><div class="ec-ex">rain → wet</div><div class="ec-desc">Causal chain</div></div>
|
| 654 |
+
<div class="edge-card"><div class="ec-gem">🌸</div><div class="ec-name" style="color:#c47a3a;">CONTRADICTS</div><div class="ec-ex">hot ↔ cold</div><div class="ec-desc">Triggers the Arbiter</div></div>
|
| 655 |
+
<div class="edge-card"><div class="ec-gem">🔮</div><div class="ec-name" style="color:#3a7a9b;">REQUIRES</div><div class="ec-ex">fire → oxygen</div><div class="ec-desc">Dependency</div></div>
|
| 656 |
+
<div class="edge-card"><div class="ec-gem">🌙</div><div class="ec-name" style="color:#9c5cbf;">PRECEDES</div><div class="ec-ex">cause → effect</div><div class="ec-desc">Temporal ordering</div></div>
|
| 657 |
+
<div class="edge-card"><div class="ec-gem">🦋</div><div class="ec-name" style="color:#b47a2a;">ANALOGOUS_TO</div><div class="ec-ex">brain → CPU</div><div class="ec-desc">Cross-domain bridge</div></div>
|
| 658 |
+
<div class="edge-card"><div class="ec-gem">🌺</div><div class="ec-name" style="color:#c4617f;">PART_OF</div><div class="ec-ex">wheel → car</div><div class="ec-desc">Composition</div></div>
|
| 659 |
+
<div class="edge-card"><div class="ec-gem">🌟</div><div class="ec-name" style="color:#7c5cbf;">GENERATES</div><div class="ec-ex">plant → O₂</div><div class="ec-desc">Production</div></div>
|
| 660 |
+
<div class="edge-card"><div class="ec-gem">💫</div><div class="ec-name" style="color:#4a9b75;">RESOLVES</div><div class="ec-ex">key → lock</div><div class="ec-desc">Solution mapping</div></div>
|
| 661 |
+
</div>
|
| 662 |
+
</div>
|
| 663 |
+
</div>
|
| 664 |
+
|
| 665 |
+
<!-- ══ SECTION 2 — CRYSTALLIZATION ══ -->
|
| 666 |
+
<div class="sec" id="s2">
|
| 667 |
+
<div class="sec-label">// 02</div>
|
| 668 |
+
<div class="sec-title"><em>Crystallization</em> Replaces Training</div>
|
| 669 |
+
<div class="sec-rule"></div>
|
| 670 |
+
<div class="sec-sub">No gradient descent. No GPU cluster. No weeks. 5 phases, 10 minutes, any laptop. Knowledge folds into the Glyph Lattice directly.</div>
|
| 671 |
+
|
| 672 |
+
<div class="cryst-grid">
|
| 673 |
+
<div class="phase-list">
|
| 674 |
+
<div class="phase-card ph1">
|
| 675 |
+
<div class="phase-left"><div class="pl-num">01</div><div class="pl-time">0–2 MIN</div></div>
|
| 676 |
+
<div class="phase-right">
|
| 677 |
+
<div class="pr-name">Ingestion</div>
|
| 678 |
+
<div class="pr-desc">Raw knowledge consumed — web pages, PDFs, code, JSON, RSS. Parsed into Concept Fragments across all CPU cores in parallel.</div>
|
| 679 |
+
</div>
|
| 680 |
+
</div>
|
| 681 |
+
<div class="phase-card ph2">
|
| 682 |
+
<div class="phase-left"><div class="pl-num">02</div><div class="pl-time">2–4 MIN</div></div>
|
| 683 |
+
<div class="phase-right">
|
| 684 |
+
<div class="pr-name">Concept Extraction</div>
|
| 685 |
+
<div class="pr-desc">NLP pipeline extracts typed relation triples. Named entities, causal phrases, temporal expressions, dependency parsing.</div>
|
| 686 |
+
</div>
|
| 687 |
+
</div>
|
| 688 |
+
<div class="phase-card ph3">
|
| 689 |
+
<div class="phase-left"><div class="pl-num">03</div><div class="pl-time">4–6 MIN</div></div>
|
| 690 |
+
<div class="phase-right">
|
| 691 |
+
<div class="pr-name">Glyph Formation</div>
|
| 692 |
+
<div class="pr-desc">Each concept becomes a Glyph via a tiny frozen encoder. Duplicates merged. Confidence scored. Sources attached permanently.</div>
|
| 693 |
+
</div>
|
| 694 |
+
</div>
|
| 695 |
+
<div class="phase-card ph4">
|
| 696 |
+
<div class="phase-left"><div class="pl-num">04</div><div class="pl-time">6–8 MIN</div></div>
|
| 697 |
+
<div class="phase-right">
|
| 698 |
+
<div class="pr-name">Lattice Integration</div>
|
| 699 |
+
<div class="pr-desc">New Glyphs woven into the graph. Edges inferred. Conflicts detected — the Arbiter fires and resolves by evidence and recency.</div>
|
| 700 |
+
</div>
|
| 701 |
+
</div>
|
| 702 |
+
<div class="phase-card ph5">
|
| 703 |
+
<div class="phase-left"><div class="pl-num">05</div><div class="pl-time">8–10 MIN</div></div>
|
| 704 |
+
<div class="phase-right">
|
| 705 |
+
<div class="pr-name">Resonance Calibration</div>
|
| 706 |
+
<div class="pr-desc">Tension and resonance tuned across all new Glyphs. Cluster coherence checked. Lattice integrity verified. Complete. ✦</div>
|
| 707 |
+
</div>
|
| 708 |
+
</div>
|
| 709 |
+
</div>
|
| 710 |
+
|
| 711 |
+
<div class="crystal-timer">
|
| 712 |
+
<div class="ct-gem">💎</div>
|
| 713 |
+
<div class="ct-title">Crystallization Timer</div>
|
| 714 |
+
<div class="ct-time" id="timerDisp">10:00</div>
|
| 715 |
+
<div class="ct-unit">MINUTES · ANY LAPTOP</div>
|
| 716 |
+
<div class="ct-bars">
|
| 717 |
+
<div class="cb-row"><div class="cb-labels"><span class="cb-k">Ingestion</span><span class="cb-v" id="p1v" style="color:#c4617f;">0%</span></div><div class="cb-track"><div class="cb-fill cf1" id="b1" style="width:0%"></div></div></div>
|
| 718 |
+
<div class="cb-row"><div class="cb-labels"><span class="cb-k">Extraction</span><span class="cb-v" id="p2v" style="color:#7c5cbf;">0%</span></div><div class="cb-track"><div class="cb-fill cf2" id="b2" style="width:0%"></div></div></div>
|
| 719 |
+
<div class="cb-row"><div class="cb-labels"><span class="cb-k">Glyph Formation</span><span class="cb-v" id="p3v" style="color:#4a9b75;">0%</span></div><div class="cb-track"><div class="cb-fill cf3" id="b3" style="width:0%"></div></div></div>
|
| 720 |
+
<div class="cb-row"><div class="cb-labels"><span class="cb-k">Integration</span><span class="cb-v" id="p4v" style="color:#c47a3a;">0%</span></div><div class="cb-track"><div class="cb-fill cf4" id="b4" style="width:0%"></div></div></div>
|
| 721 |
+
<div class="cb-row"><div class="cb-labels"><span class="cb-k">Calibration</span><span class="cb-v" id="p5v" style="color:#3a7a9b;">0%</span></div><div class="cb-track"><div class="cb-fill cf5" id="b5" style="width:0%"></div></div></div>
|
| 722 |
+
</div>
|
| 723 |
+
<button class="ct-btn" id="cBtn" onclick="runCryst()">✦ Start Crystallization</button>
|
| 724 |
+
<div class="ct-stats">
|
| 725 |
+
<div class="cs-row"><span class="cs-k">GPU Required</span><span class="cs-v">None — CPU only</span></div>
|
| 726 |
+
<div class="cs-row"><span class="cs-k">Glyphs Formed</span><span class="cs-v" id="gStat">—</span></div>
|
| 727 |
+
<div class="cs-row"><span class="cs-k">Edges Created</span><span class="cs-v" id="eStat">—</span></div>
|
| 728 |
+
<div class="cs-row"><span class="cs-k">Conflicts</span><span class="cs-v" id="cStat">—</span></div>
|
| 729 |
+
</div>
|
| 730 |
+
</div>
|
| 731 |
+
</div>
|
| 732 |
+
</div>
|
| 733 |
+
|
| 734 |
+
<!-- ══ SECTION 3 — LATTICE ══ -->
|
| 735 |
+
<div class="sec" id="s3">
|
| 736 |
+
<div class="sec-label">// 03</div>
|
| 737 |
+
<div class="sec-title">The Glyph <em>Lattice</em></div>
|
| 738 |
+
<div class="sec-rule"></div>
|
| 739 |
+
<div class="sec-sub">The model itself. A living knowledge graph that scales by Glyph density — same architecture, same code, anywhere from 2GB RAM to 40GB.</div>
|
| 740 |
+
<div class="lattice-wrap">
|
| 741 |
+
<div>
|
| 742 |
+
<div class="lattice-canvas-box">
|
| 743 |
+
<div class="lc-tag">LIVE LATTICE</div>
|
| 744 |
+
<canvas id="latticeCanvas"></canvas>
|
| 745 |
+
<div class="lc-legend">
|
| 746 |
+
<div class="ll"><div class="ll-dot" style="background:var(--pink)"></div>Core concept</div>
|
| 747 |
+
<div class="ll"><div class="ll-dot" style="background:var(--lavender)"></div>Relation node</div>
|
| 748 |
+
<div class="ll"><div class="ll-dot" style="background:var(--mint)"></div>Freshly crystallized</div>
|
| 749 |
+
<div class="ll"><div class="ll-dot" style="background:var(--peach)"></div>Conflict flagged</div>
|
| 750 |
+
<div class="ll"><div class="ll-dot" style="background:rgba(150,140,160,0.4)"></div>Decaying</div>
|
| 751 |
+
</div>
|
| 752 |
+
</div>
|
| 753 |
+
</div>
|
| 754 |
+
<div>
|
| 755 |
+
<p style="font-size:13px;line-height:1.9;color:var(--text);margin-bottom:24px;font-weight:300;">Vexa scales not by model size but by <strong style="color:var(--lavender)">Glyph density</strong>. One architecture. One codebase. Dial up density for more knowledge.</p>
|
| 756 |
+
<div class="density-cards">
|
| 757 |
+
<div class="dc header"><span>TIER</span><span>GLYPHS</span><span>RAM</span><span>EQUIV.</span></div>
|
| 758 |
+
<div class="dc"><span class="dc-tier">Nano</span><span class="dc-glyphs">~1M</span><span class="dc-ram">2GB</span><span class="dc-use">IoT / edge</span></div>
|
| 759 |
+
<div class="dc"><span class="dc-tier">Micro</span><span class="dc-glyphs">~10M</span><span class="dc-ram">4GB</span><span class="dc-use">Any laptop</span></div>
|
| 760 |
+
<div class="dc"><span class="dc-tier">Core</span><span class="dc-glyphs">~100M</span><span class="dc-ram">8GB</span><span class="dc-use">Consumer GPU</span></div>
|
| 761 |
+
<div class="dc"><span class="dc-tier">Dense</span><span class="dc-glyphs">~1B</span><span class="dc-ram">16GB</span><span class="dc-use">Workstation</span></div>
|
| 762 |
+
<div class="dc max"><span class="dc-tier">Max ✦</span><span class="dc-glyphs">~10B</span><span class="dc-ram">40GB</span><span class="dc-use">A100 / p300a</span></div>
|
| 763 |
+
</div>
|
| 764 |
+
<div style="margin-top:12px;padding:14px;border-radius:12px;background:rgba(196,181,244,0.08);border:1px solid rgba(196,181,244,0.2);font-size:10px;color:var(--text-soft);line-height:1.7;">
|
| 765 |
+
✦ Same crystallization process at every tier. Same Lume code. Same architecture. Just more Glyphs.
|
| 766 |
+
</div>
|
| 767 |
+
</div>
|
| 768 |
+
</div>
|
| 769 |
+
</div>
|
| 770 |
+
|
| 771 |
+
<!-- ══ SECTION 4 — LUME ══ -->
|
| 772 |
+
<div class="sec" id="s4">
|
| 773 |
+
<div class="sec-label">// 04</div>
|
| 774 |
+
<div class="sec-title">The <em>Lume</em> Language</div>
|
| 775 |
+
<div class="sec-rule"></div>
|
| 776 |
+
<div class="sec-sub">Not Python. Not SQL. A declarative-relational language where meaning is a first-class citizen. You describe intent — Lume resolves it through the Glyph Lattice.</div>
|
| 777 |
+
<div class="lume-grid">
|
| 778 |
+
<div class="lume-box">
|
| 779 |
+
<div class="lume-tabbar">
|
| 780 |
+
<div class="ltab on" onclick="showLume('glyph',this)">glyph</div>
|
| 781 |
+
<div class="ltab" onclick="showLume('ask',this)">ask</div>
|
| 782 |
+
<div class="ltab" onclick="showLume('agent',this)">agent</div>
|
| 783 |
+
<div class="ltab" onclick="showLume('flow',this)">flow</div>
|
| 784 |
+
<div class="ltab" onclick="showLume('watch',this)">watch</div>
|
| 785 |
+
</div>
|
| 786 |
+
<div class="lume-code">
|
| 787 |
+
<div class="lc-b on" id="lc-glyph">
|
| 788 |
+
<span class="lcm">// Define a concept directly in the lattice</span><br>
|
| 789 |
+
<span class="lkw">glyph</span> <span class="lid">QuantumEntanglement</span> {<br>
|
| 790 |
+
<span class="lprop">IS_A</span>: <span class="lid">QuantumPhenomenon</span><br>
|
| 791 |
+
<span class="lprop">HAS_PROPERTY</span>: <span class="lstr">"non-local correlation"</span><br>
|
| 792 |
+
<span class="lprop">HAS_PROPERTY</span>: <span class="lstr">"instantaneous state sharing"</span><br>
|
| 793 |
+
<span class="lprop">REQUIRES</span>: <span class="lid">QuantumSuperposition</span><br>
|
| 794 |
+
<span class="lprop">CONTRADICTS</span>: <span class="lid">LocalRealism</span><br>
|
| 795 |
+
<span class="lprop">confidence</span>: <span class="lnum">0.98</span><br>
|
| 796 |
+
<span class="lprop">decay</span>: <span class="lkw">none</span> <span class="lcm">// physics never changes</span><br>
|
| 797 |
+
}
|
| 798 |
+
</div>
|
| 799 |
+
<div class="lc-b" id="lc-ask">
|
| 800 |
+
<span class="lcm">// Traverse the Glyph Lattice to answer</span><br>
|
| 801 |
+
<span class="lkw">ask</span> <span class="lstr">"What causes inflation?"</span> {<br>
|
| 802 |
+
<span class="lprop">depth</span>: <span class="lnum">4</span> <span class="lcm">// glyph hops</span><br>
|
| 803 |
+
<span class="lprop">confidence</span>: <span class="lnum">0.7</span> <span class="lcm">// min threshold</span><br>
|
| 804 |
+
<span class="lprop">sources</span>: <span class="lkw">true</span> <span class="lcm">// show refs</span><br>
|
| 805 |
+
<span class="lprop">recency</span>: <span class="lstr">"6h"</span> <span class="lcm">// prefer fresh</span><br>
|
| 806 |
+
}<br><br>
|
| 807 |
+
<span class="lcm">// Inspect any Glyph</span><br>
|
| 808 |
+
<span class="lkw">inspect</span> <span class="lkw">glyph</span> <span class="lstr">"machine learning"</span> {<br>
|
| 809 |
+
<span class="lprop">show</span>: <span class="lid">relations</span><br>
|
| 810 |
+
<span class="lprop">show</span>: <span class="lid">confidence</span><br>
|
| 811 |
+
<span class="lprop">show</span>: <span class="lid">sources</span><br>
|
| 812 |
+
}
|
| 813 |
+
</div>
|
| 814 |
+
<div class="lc-b" id="lc-agent">
|
| 815 |
+
<span class="lcm">// Agentic task — lattice IS the memory</span><br>
|
| 816 |
+
<span class="lkw">agent</span> <span class="lid">ResearchAssistant</span> {<br>
|
| 817 |
+
<span class="lprop">goal</span>: <span class="lstr">"Summarize fusion breakthroughs"</span><br>
|
| 818 |
+
<span class="lprop">tools</span>: [<span class="lid">web_search</span>, <span class="lid">glyph_writer</span>]<br>
|
| 819 |
+
<span class="lprop">crystallize_findings</span>: <span class="lkw">true</span><br>
|
| 820 |
+
<span class="lprop">recency</span>: <span class="lstr">"7d"</span><br>
|
| 821 |
+
<span class="lprop">report</span>: <span class="lid">markdown</span><br>
|
| 822 |
+
}
|
| 823 |
+
</div>
|
| 824 |
+
<div class="lc-b" id="lc-flow">
|
| 825 |
+
<span class="lcm">// Chain operations with |></span><br>
|
| 826 |
+
<span class="lkw">flow</span> <span class="lid">MarketWatch</span> {<br>
|
| 827 |
+
<span class="lkw">crystallize</span> <span class="lkw">from</span> <span class="lid">web</span> {<br>
|
| 828 |
+
<span class="lprop">topic</span>: <span class="lstr">"AI stocks"</span><br>
|
| 829 |
+
<span class="lprop">recency</span>: <span class="lstr">"1h"</span><br>
|
| 830 |
+
}<br>
|
| 831 |
+
|> <span class="lkw">ask</span> <span class="lstr">"Key trends?"</span> { <span class="lprop">depth</span>: <span class="lnum">4</span> }<br>
|
| 832 |
+
|> <span class="lkw">agent</span> <span class="lid">Summarizer</span> {}<br>
|
| 833 |
+
|> <span class="lkw">output</span> <span class="lid">markdown</span><br>
|
| 834 |
+
}
|
| 835 |
+
</div>
|
| 836 |
+
<div class="lc-b" id="lc-watch">
|
| 837 |
+
<span class="lcm">// Reactive — fires when lattice shifts</span><br>
|
| 838 |
+
<span class="lkw">watch</span> {<br>
|
| 839 |
+
<span class="lprop">when</span>: <span class="lkw">glyph</span> changes <span class="lprop">near</span> <span class="lstr">"bitcoin"</span><br>
|
| 840 |
+
<span class="lprop">confidence_delta</span>: <span class="lnum">0.2</span><br>
|
| 841 |
+
<span class="lprop">trigger</span>: <span class="lkw">agent</span> <span class="lid">AlertBot</span> {<br>
|
| 842 |
+
<span class="lprop">message</span>: <span class="lstr">"Crypto landscape shifted"</span><br>
|
| 843 |
+
}<br>
|
| 844 |
+
}
|
| 845 |
+
</div>
|
| 846 |
+
</div>
|
| 847 |
+
</div>
|
| 848 |
+
<div class="lume-explain">
|
| 849 |
+
<div class="le e1"><div class="le-n">glyph { }</div><div class="le-d">Declare a concept directly into the lattice with typed edges, confidence, and decay — human-readable and inspectable forever.</div></div>
|
| 850 |
+
<div class="le e2"><div class="le-n">ask " "</div><div class="le-d">Traverse the Glyph Lattice by semantic similarity. Specify traversal depth, confidence floor, source visibility, recency preference.</div></div>
|
| 851 |
+
<div class="le e3"><div class="le-n">crystallize from</div><div class="le-d">Ingest new knowledge on demand from web, files, or APIs. Triggers the full 5-phase crystallization pipeline in the background.</div></div>
|
| 852 |
+
<div class="le e4"><div class="le-n">agent { }</div><div class="le-d">Agentic tasks where the Glyph Lattice is memory. Everything the agent learns is crystallized permanently — no separate memory system.</div></div>
|
| 853 |
+
<div class="le e5"><div class="le-n">flow { } with |></div><div class="le-d">Chain crystallize → ask → agent → output. Build complex intelligence pipelines in readable, composable steps.</div></div>
|
| 854 |
+
<div class="le e6"><div class="le-n">watch { }</div><div class="le-d">Reactive intelligence. Fire agents when the lattice topology changes — breaking news, confidence shifts, conflict detection.</div></div>
|
| 855 |
+
<div class="le e7"><div class="le-n">inspect glyph</div><div class="le-d">Peer inside any Glyph. See relations, cluster, confidence, decay rate, and every source. Full transparency by design.</div></div>
|
| 856 |
+
</div>
|
| 857 |
+
</div>
|
| 858 |
+
</div>
|
| 859 |
+
|
| 860 |
+
<!-- ══ SECTION 5 — THREADS ══ -->
|
| 861 |
+
<div class="sec" id="s5">
|
| 862 |
+
<div class="sec-label">// 05</div>
|
| 863 |
+
<div class="sec-title">Always <em>Learning</em></div>
|
| 864 |
+
<div class="sec-rule"></div>
|
| 865 |
+
<div class="sec-sub">Three threads run continuously after initial crystallization. The lattice is never frozen. Knowledge from 30 minutes ago is already there.</div>
|
| 866 |
+
<div class="threads-grid">
|
| 867 |
+
<div class="thread-card tc1"><div class="tc-pulse tcp1"></div>
|
| 868 |
+
<div class="tc-icon">🌐</div>
|
| 869 |
+
<div class="tc-name">Web Crystallizer</div>
|
| 870 |
+
<div class="tc-desc">Crawls the live web continuously. Priority queue: trending topics first. Auto-integrates findings into the lattice in real time.</div>
|
| 871 |
+
<div class="tc-stats">
|
| 872 |
+
<div class="ts"><span class="ts-k">Rate</span><span class="ts-v">~10K Glyphs/hour</span></div>
|
| 873 |
+
<div class="ts"><span class="ts-k">News decay</span><span class="ts-v">24–72 hours</span></div>
|
| 874 |
+
<div class="ts"><span class="ts-k">Science decay</span><span class="ts-v">Years–decades</span></div>
|
| 875 |
+
</div>
|
| 876 |
+
</div>
|
| 877 |
+
<div class="thread-card tc2"><div class="tc-pulse tcp2"></div>
|
| 878 |
+
<div class="tc-icon">💬</div>
|
| 879 |
+
<div class="tc-name">Interaction Crystallizer</div>
|
| 880 |
+
<div class="tc-desc">Every conversation crystallizes new knowledge. User corrections instantly adjust confidence. Opt-in shared learning across instances.</div>
|
| 881 |
+
<div class="tc-stats">
|
| 882 |
+
<div class="ts"><span class="ts-k">Trigger</span><span class="ts-v">Every novel query</span></div>
|
| 883 |
+
<div class="ts"><span class="ts-k">Correction</span><span class="ts-v">Instant ±0.15 conf</span></div>
|
| 884 |
+
<div class="ts"><span class="ts-k">Privacy</span><span class="ts-v">Ephemeral mode</span></div>
|
| 885 |
+
</div>
|
| 886 |
+
</div>
|
| 887 |
+
<div class="thread-card tc3"><div class="tc-pulse tcp3"></div>
|
| 888 |
+
<div class="tc-icon">⏳</div>
|
| 889 |
+
<div class="tc-name">Decay Monitor</div>
|
| 890 |
+
<div class="tc-desc">Scans for stale Glyphs every 15 minutes. Prunes below threshold. Fires the Arbiter on contradictions. Daily defragmentation.</div>
|
| 891 |
+
<div class="tc-stats">
|
| 892 |
+
<div class="ts"><span class="ts-k">Scan interval</span><span class="ts-v">15 minutes</span></div>
|
| 893 |
+
<div class="ts"><span class="ts-k">Prune floor</span><span class="ts-v">confidence < 0.1</span></div>
|
| 894 |
+
<div class="ts"><span class="ts-k">Defrag</span><span class="ts-v">Daily</span></div>
|
| 895 |
+
</div>
|
| 896 |
+
</div>
|
| 897 |
+
</div>
|
| 898 |
+
</div>
|
| 899 |
+
|
| 900 |
+
<!-- ══ SECTION 6 — COMPARE ══ -->
|
| 901 |
+
<div class="sec" id="s6">
|
| 902 |
+
<div class="sec-label">// 06</div>
|
| 903 |
+
<div class="sec-title">Vexa <em>vs</em> Every LLM</div>
|
| 904 |
+
<div class="sec-rule"></div>
|
| 905 |
+
<table class="compare-table">
|
| 906 |
+
<thead><tr><th>PROPERTY</th><th>EVERY LLM EVER BUILT</th><th>MATRIX VEXA</th></tr></thead>
|
| 907 |
+
<tbody>
|
| 908 |
+
<tr><td class="td-prop">Knowledge currency</td><td class="td-llm">Training cutoff — months/years old</td><td class="td-vexa">✦ Live — minutes old, always current</td></tr>
|
| 909 |
+
<tr><td class="td-prop">Training cost</td><td class="td-llm">Weeks · $millions · GPU cluster</td><td class="td-vexa">✦ 10 min · free · any laptop · CPU only</td></tr>
|
| 910 |
+
<tr><td class="td-prop">Interpretable</td><td class="td-llm">No — complete black box</td><td class="td-vexa">✦ Yes — every Glyph human-readable</td></tr>
|
| 911 |
+
<tr><td class="td-prop">Self-updating</td><td class="td-llm">Never without retraining</td><td class="td-vexa">✦ Continuously — 3 live threads</td></tr>
|
| 912 |
+
<tr><td class="td-prop">Remembers conversations</td><td class="td-llm">No — context window only</td><td class="td-vexa">✦ Yes — crystallized permanently</td></tr>
|
| 913 |
+
<tr><td class="td-prop">Source tracking</td><td class="td-llm">Never — lost at training</td><td class="td-vexa">✦ Every claim sourced always</td></tr>
|
| 914 |
+
<tr><td class="td-prop">Uncertainty</td><td class="td-llm">Simulated / hallucinated</td><td class="td-vexa">✦ Structurally real — Glyph.confidence</td></tr>
|
| 915 |
+
<tr><td class="td-prop">Conflict resolution</td><td class="td-llm">Averages contradictions</td><td class="td-vexa">✦ Arbiter fires — resolves by evidence</td></tr>
|
| 916 |
+
<tr><td class="td-prop">Runs on laptop</td><td class="td-llm">Barely — heavily quantized</td><td class="td-vexa">✦ Native — 4GB RAM, fast</td></tr>
|
| 917 |
+
</tbody>
|
| 918 |
+
</table>
|
| 919 |
+
</div>
|
| 920 |
+
|
| 921 |
+
<!-- ══ SECTION 7 — BRIDGE ══ -->
|
| 922 |
+
<div class="sec" id="s7">
|
| 923 |
+
<div class="sec-label">// 07</div>
|
| 924 |
+
<div class="sec-title">The Vexa <em>Bridge</em></div>
|
| 925 |
+
<div class="sec-rule"></div>
|
| 926 |
+
<div class="sec-sub">Vexa isn't an LLM. But the Bridge makes it look exactly like one to Ollama, vLLM, and HuggingFace. Drop it in anywhere.</div>
|
| 927 |
+
<div class="bridge-grid">
|
| 928 |
+
<div class="bridge-card"><div class="bc-name">Ollama</div><div class="bc-method">GGUF-compatible bridge + Modelfile</div><div class="bc-badge">✦ Planned</div></div>
|
| 929 |
+
<div class="bridge-card"><div class="bc-name">vLLM</div><div class="bc-method">OpenAI-compatible API shim</div><div class="bc-badge">✦ Planned</div></div>
|
| 930 |
+
<div class="bridge-card"><div class="bc-name">HuggingFace</div><div class="bc-method">Custom model class</div><div class="bc-badge">✦ Planned</div></div>
|
| 931 |
+
<div class="bridge-card"><div class="bc-name">LM Studio</div><div class="bc-method">GGUF bridge</div><div class="bc-badge">✦ Planned</div></div>
|
| 932 |
+
<div class="bridge-card"><div class="bc-name">Kobold.cpp</div><div class="bc-method">API adapter</div><div class="bc-badge">✦ Planned</div></div>
|
| 933 |
+
<div class="bridge-card"><div class="bc-name">llama.cpp</div><div class="bc-method">Custom backend</div><div class="bc-badge">◎ Stretch</div></div>
|
| 934 |
+
</div>
|
| 935 |
+
<div class="bridge-flow">
|
| 936 |
+
<div class="bf-row bf-1"><div class="bf-n">1</div><div class="bf-t"><strong>Ollama sends:</strong> { prompt: "What is quantum computing?" }</div></div>
|
| 937 |
+
<div class="bf-arr">↓</div>
|
| 938 |
+
<div class="bf-row bf-2"><div class="bf-n">2</div><div class="bf-t"><strong>Vexa Bridge intercepts</strong> — detects incoming LLM-format request</div></div>
|
| 939 |
+
<div class="bf-arr">↓</div>
|
| 940 |
+
<div class="bf-row bf-3"><div class="bf-n">3</div><div class="bf-t"><strong>Compiles to Lume:</strong> ask "quantum computing" { depth: 3 } |> output natural_language</div></div>
|
| 941 |
+
<div class="bf-arr">↓</div>
|
| 942 |
+
<div class="bf-row bf-4"><div class="bf-n">4</div><div class="bf-t"><strong>Lattice Executor</strong> traverses Glyph lattice, activates relevant clusters</div></div>
|
| 943 |
+
<div class="bf-arr">↓</div>
|
| 944 |
+
<div class="bf-row bf-5"><div class="bf-n">5</div><div class="bf-t"><strong>Response Synthesizer</strong> — tiny frozen LM converts Glyph activations → fluent text</div></div>
|
| 945 |
+
<div class="bf-arr">↓</div>
|
| 946 |
+
<div class="bf-row bf-6"><div class="bf-n">6</div><div class="bf-t"><strong>Ollama receives:</strong> { response: "Quantum computing is..." } — standard format</div></div>
|
| 947 |
+
</div>
|
| 948 |
+
</div>
|
| 949 |
+
|
| 950 |
+
<!-- ══ SECTION 8 — HF PLAN ══ -->
|
| 951 |
+
<div class="sec" id="s8">
|
| 952 |
+
<div class="sec-label">// 08</div>
|
| 953 |
+
<div class="sec-title">Open Source <em>Release</em></div>
|
| 954 |
+
<div class="sec-rule"></div>
|
| 955 |
+
<div class="hf-list">
|
| 956 |
+
<div class="hf-card"><div><div class="hf-name">Matrix-Corp/Vexa-V1</div><div class="hf-desc">Glyph Lattice — Max density (~10B Glyphs). Full capability.</div></div><div class="hf-badge">Open Source</div></div>
|
| 957 |
+
<div class="hf-card"><div><div class="hf-name">Matrix-Corp/Vexa-Micro-V1</div><div class="hf-desc">Glyph Lattice — Micro density (~10M Glyphs). 4GB RAM. Laptop-first.</div></div><div class="hf-badge">Open Source</div></div>
|
| 958 |
+
<div class="hf-card"><div><div class="hf-name">Matrix-Corp/Lume-Language-Spec</div><div class="hf-desc">Lume language specification, parser, and reference implementation.</div></div><div class="hf-badge">Open Source</div></div>
|
| 959 |
+
<div class="hf-card"><div><div class="hf-name">Matrix-Corp/Vexa-Bridge</div><div class="hf-desc">Ollama / vLLM / HuggingFace compatibility adapter.</div></div><div class="hf-badge">Open Source</div></div>
|
| 960 |
+
<div class="hf-card"><div><div class="hf-name">Matrix-Corp/Vexa-Crystallizer</div><div class="hf-desc">Crystallization engine — ingest any knowledge source into Glyphs.</div></div><div class="hf-badge">Open Source</div></div>
|
| 961 |
+
</div>
|
| 962 |
+
</div>
|
| 963 |
+
|
| 964 |
+
<div class="footer">
|
| 965 |
+
<div class="footer-l">MATRIX.CORP — VEXA V1<br>CRYSTALLINE INTELLIGENCE · 🔴 PLANNED<br>FULLY OPEN SOURCE</div>
|
| 966 |
+
<div class="footer-r">Matrix Vexa ✦</div>
|
| 967 |
+
</div>
|
| 968 |
+
|
| 969 |
+
</div><!-- /wrap -->
|
| 970 |
+
|
| 971 |
+
<script>
|
| 972 |
+
// ── PASTEL CRYSTAL RAIN ──
|
| 973 |
+
const rain = document.getElementById('rainCanvas');
|
| 974 |
+
const rCtx = rain.getContext('2d');
|
| 975 |
+
let RW, RH;
|
| 976 |
+
function resizeRain(){RW=rain.width=window.innerWidth;RH=rain.height=window.innerHeight;}
|
| 977 |
+
resizeRain();window.addEventListener('resize',resizeRain);
|
| 978 |
+
|
| 979 |
+
const PASTEL = ['#f4a7c3','#c4b5f4','#a8e6cf','#ffcba4','#a8d8ea','#f9c6cf','#f7d794','#dbb8f5'];
|
| 980 |
+
const crystals = [];
|
| 981 |
+
for(let i=0;i<60;i++){
|
| 982 |
+
crystals.push({
|
| 983 |
+
x:Math.random()*window.innerWidth,
|
| 984 |
+
y:Math.random()*window.innerHeight-window.innerHeight,
|
| 985 |
+
size:Math.random()*18+5,
|
| 986 |
+
speed:Math.random()*0.8+0.3,
|
| 987 |
+
rotation:Math.random()*Math.PI*2,
|
| 988 |
+
rotSpeed:(Math.random()-0.5)*0.02,
|
| 989 |
+
color:PASTEL[Math.floor(Math.random()*PASTEL.length)],
|
| 990 |
+
alpha:Math.random()*0.5+0.1,
|
| 991 |
+
type:Math.floor(Math.random()*3) // 0=diamond 1=hexagon 2=star
|
| 992 |
+
});
|
| 993 |
+
}
|
| 994 |
+
|
| 995 |
+
function drawCrystal(ctx, x, y, size, rotation, color, alpha, type){
|
| 996 |
+
ctx.save();ctx.translate(x,y);ctx.rotate(rotation);ctx.globalAlpha=alpha;
|
| 997 |
+
ctx.strokeStyle=color;ctx.lineWidth=1;ctx.fillStyle=color+'33';
|
| 998 |
+
ctx.beginPath();
|
| 999 |
+
if(type===0){
|
| 1000 |
+
// Diamond
|
| 1001 |
+
ctx.moveTo(0,-size);ctx.lineTo(size*0.5,0);
|
| 1002 |
+
ctx.lineTo(0,size);ctx.lineTo(-size*0.5,0);ctx.closePath();
|
| 1003 |
+
} else if(type===1){
|
| 1004 |
+
// Hexagon
|
| 1005 |
+
for(let i=0;i<6;i++){
|
| 1006 |
+
const a=i*Math.PI/3;
|
| 1007 |
+
i===0?ctx.moveTo(Math.cos(a)*size,Math.sin(a)*size):ctx.lineTo(Math.cos(a)*size,Math.sin(a)*size);
|
| 1008 |
+
}ctx.closePath();
|
| 1009 |
+
} else {
|
| 1010 |
+
// 4-point star
|
| 1011 |
+
for(let i=0;i<8;i++){
|
| 1012 |
+
const a=i*Math.PI/4;
|
| 1013 |
+
const r=i%2===0?size:size*0.4;
|
| 1014 |
+
i===0?ctx.moveTo(Math.cos(a)*r,Math.sin(a)*r):ctx.lineTo(Math.cos(a)*r,Math.sin(a)*r);
|
| 1015 |
+
}ctx.closePath();
|
| 1016 |
+
}
|
| 1017 |
+
ctx.fill();ctx.stroke();
|
| 1018 |
+
// Sparkle
|
| 1019 |
+
ctx.globalAlpha=alpha*0.8;
|
| 1020 |
+
ctx.fillStyle='white';
|
| 1021 |
+
ctx.beginPath();ctx.arc(0,-size*0.3,size*0.12,0,Math.PI*2);ctx.fill();
|
| 1022 |
+
ctx.restore();
|
| 1023 |
+
}
|
| 1024 |
+
|
| 1025 |
+
function animateRain(){
|
| 1026 |
+
rCtx.clearRect(0,0,RW,RH);
|
| 1027 |
+
crystals.forEach(c=>{
|
| 1028 |
+
c.y+=c.speed;c.rotation+=c.rotSpeed;
|
| 1029 |
+
if(c.y>RH+c.size){c.y=-c.size*2;c.x=Math.random()*RW;}
|
| 1030 |
+
drawCrystal(rCtx,c.x,c.y,c.size,c.rotation,c.color,c.alpha,c.type);
|
| 1031 |
+
});
|
| 1032 |
+
requestAnimationFrame(animateRain);
|
| 1033 |
+
}
|
| 1034 |
+
animateRain();
|
| 1035 |
+
|
| 1036 |
+
// ── GLYPH CANVAS ──
|
| 1037 |
+
const gc=document.getElementById('glyphCanvas');
|
| 1038 |
+
gc.width=gc.offsetWidth*2;gc.height=gc.offsetHeight*2;
|
| 1039 |
+
const gCtx=gc.getContext('2d');gCtx.scale(2,2);
|
| 1040 |
+
const GW=gc.offsetWidth/2,GH=gc.offsetHeight/2;
|
| 1041 |
+
|
| 1042 |
+
const glyphs=[];
|
| 1043 |
+
const GCOLORS=['#f4a7c3','#c4b5f4','#a8e6cf','#ffcba4','#a8d8ea','#dbb8f5'];
|
| 1044 |
+
const LABELS=['CONCEPT','CAUSE','ENTITY','FACT','PLACE','TIME','EFFECT','BELIEF'];
|
| 1045 |
+
for(let i=0;i<16;i++){
|
| 1046 |
+
glyphs.push({
|
| 1047 |
+
x:40+Math.random()*(GW-80),y:40+Math.random()*(GH-80),
|
| 1048 |
+
r:Math.random()*10+5,
|
| 1049 |
+
color:GCOLORS[Math.floor(Math.random()*GCOLORS.length)],
|
| 1050 |
+
vx:(Math.random()-0.5)*0.4,vy:(Math.random()-0.5)*0.4,
|
| 1051 |
+
pulse:Math.random()*Math.PI*2,
|
| 1052 |
+
links:[],label:LABELS[Math.floor(Math.random()*LABELS.length)]
|
| 1053 |
+
});
|
| 1054 |
+
}
|
| 1055 |
+
glyphs.forEach((g,i)=>{
|
| 1056 |
+
const n=Math.floor(Math.random()*3)+1;
|
| 1057 |
+
for(let j=0;j<n;j++){
|
| 1058 |
+
const t=Math.floor(Math.random()*glyphs.length);
|
| 1059 |
+
if(t!==i)g.links.push(t);
|
| 1060 |
+
}
|
| 1061 |
+
});
|
| 1062 |
+
let hoverG=-1;
|
| 1063 |
+
gc.addEventListener('mousemove',e=>{
|
| 1064 |
+
const r=gc.getBoundingClientRect();
|
| 1065 |
+
const mx=(e.clientX-r.left)*(gc.width/r.width)/2;
|
| 1066 |
+
const my=(e.clientY-r.top)*(gc.height/r.height)/2;
|
| 1067 |
+
hoverG=-1;
|
| 1068 |
+
glyphs.forEach((g,i)=>{if(Math.hypot(g.x-mx,g.y-my)<g.r+8)hoverG=i;});
|
| 1069 |
+
});
|
| 1070 |
+
|
| 1071 |
+
function animateGlyphs(){
|
| 1072 |
+
gCtx.fillStyle='rgba(255,252,248,0.15)';
|
| 1073 |
+
gCtx.fillRect(0,0,GW,GH);
|
| 1074 |
+
glyphs.forEach((g,i)=>{
|
| 1075 |
+
g.links.forEach(j=>{
|
| 1076 |
+
const t=glyphs[j];
|
| 1077 |
+
const hot=i===hoverG||j===hoverG;
|
| 1078 |
+
gCtx.beginPath();gCtx.moveTo(g.x,g.y);gCtx.lineTo(t.x,t.y);
|
| 1079 |
+
gCtx.strokeStyle=g.color;
|
| 1080 |
+
gCtx.globalAlpha=hot?0.5:0.12;
|
| 1081 |
+
gCtx.lineWidth=hot?1.5:0.7;
|
| 1082 |
+
gCtx.stroke();gCtx.globalAlpha=1;
|
| 1083 |
+
});
|
| 1084 |
+
});
|
| 1085 |
+
glyphs.forEach((g,i)=>{
|
| 1086 |
+
g.pulse+=0.035;g.x+=g.vx;g.y+=g.vy;
|
| 1087 |
+
if(g.x<g.r||g.x>GW-g.r)g.vx*=-1;
|
| 1088 |
+
if(g.y<g.r||g.y>GH-g.r)g.vy*=-1;
|
| 1089 |
+
const pr=g.r+Math.sin(g.pulse)*2;
|
| 1090 |
+
const hot=i===hoverG;
|
| 1091 |
+
// Glow
|
| 1092 |
+
const grad=gCtx.createRadialGradient(g.x,g.y,0,g.x,g.y,pr*3);
|
| 1093 |
+
grad.addColorStop(0,g.color+(hot?'80':'30'));grad.addColorStop(1,'transparent');
|
| 1094 |
+
gCtx.beginPath();gCtx.arc(g.x,g.y,pr*3,0,Math.PI*2);
|
| 1095 |
+
gCtx.fillStyle=grad;gCtx.fill();
|
| 1096 |
+
// Diamond
|
| 1097 |
+
gCtx.save();gCtx.translate(g.x,g.y);gCtx.rotate(Math.PI/4);
|
| 1098 |
+
gCtx.beginPath();gCtx.rect(-pr,-pr,pr*2,pr*2);
|
| 1099 |
+
gCtx.fillStyle=g.color+(hot?'50':'20');
|
| 1100 |
+
gCtx.strokeStyle=g.color;gCtx.lineWidth=hot?2:1;
|
| 1101 |
+
gCtx.globalAlpha=hot?1:0.7;
|
| 1102 |
+
gCtx.fill();gCtx.stroke();gCtx.restore();gCtx.globalAlpha=1;
|
| 1103 |
+
if(hot){
|
| 1104 |
+
gCtx.font='8px DM Sans';gCtx.fillStyle=g.color;
|
| 1105 |
+
gCtx.textAlign='center';gCtx.fillText(g.label,g.x,g.y-pr-6);
|
| 1106 |
+
}
|
| 1107 |
+
});
|
| 1108 |
+
requestAnimationFrame(animateGlyphs);
|
| 1109 |
+
}
|
| 1110 |
+
animateGlyphs();
|
| 1111 |
+
|
| 1112 |
+
// ── LATTICE CANVAS ──
|
| 1113 |
+
const lc=document.getElementById('latticeCanvas');
|
| 1114 |
+
lc.width=lc.offsetWidth*2;lc.height=lc.offsetHeight*2;
|
| 1115 |
+
const lCtx=lc.getContext('2d');lCtx.scale(2,2);
|
| 1116 |
+
const LW=lc.offsetWidth/2,LH=lc.offsetHeight/2;
|
| 1117 |
+
|
| 1118 |
+
const LTYPES=[
|
| 1119 |
+
{color:'#f4a7c3'},{color:'#c4b5f4'},{color:'#a8e6cf'},
|
| 1120 |
+
{color:'#ffcba4'},{color:'rgba(180,165,185,0.5)'}
|
| 1121 |
+
];
|
| 1122 |
+
const lNodes=[];
|
| 1123 |
+
for(let i=0;i<55;i++){
|
| 1124 |
+
const t=Math.random()<0.35?0:Math.random()<0.3?1:Math.random()<0.1?3:Math.random()<0.1?4:2;
|
| 1125 |
+
lNodes.push({
|
| 1126 |
+
x:30+Math.random()*(LW-60),y:30+Math.random()*(LH-60),
|
| 1127 |
+
r:t===0?6:t===3?5:3,type:t,
|
| 1128 |
+
vx:(Math.random()-0.5)*0.25,vy:(Math.random()-0.5)*0.25,
|
| 1129 |
+
pulse:Math.random()*Math.PI*2,links:[]
|
| 1130 |
+
});
|
| 1131 |
+
}
|
| 1132 |
+
lNodes.forEach((n,i)=>{
|
| 1133 |
+
const k=Math.floor(Math.random()*4)+1;
|
| 1134 |
+
for(let j=0;j<k;j++){
|
| 1135 |
+
const t=Math.floor(Math.random()*lNodes.length);
|
| 1136 |
+
if(t!==i)n.links.push(t);
|
| 1137 |
+
}
|
| 1138 |
+
});
|
| 1139 |
+
|
| 1140 |
+
// Travelling packet
|
| 1141 |
+
let pkt={prog:0,from:0,to:3,spd:0.007};
|
| 1142 |
+
|
| 1143 |
+
function animateLattice(){
|
| 1144 |
+
lCtx.fillStyle='rgba(255,252,248,0.1)';lCtx.fillRect(0,0,LW,LH);
|
| 1145 |
+
lNodes.forEach((n,i)=>{
|
| 1146 |
+
n.links.forEach(j=>{
|
| 1147 |
+
const t=lNodes[j];
|
| 1148 |
+
lCtx.beginPath();lCtx.moveTo(n.x,n.y);lCtx.lineTo(t.x,t.y);
|
| 1149 |
+
lCtx.strokeStyle=LTYPES[n.type].color;
|
| 1150 |
+
lCtx.globalAlpha=0.1;lCtx.lineWidth=0.6;lCtx.stroke();lCtx.globalAlpha=1;
|
| 1151 |
+
});
|
| 1152 |
+
});
|
| 1153 |
+
// Packet
|
| 1154 |
+
pkt.prog+=pkt.spd;
|
| 1155 |
+
if(pkt.prog>=1){pkt.prog=0;pkt.from=pkt.to;pkt.to=Math.floor(Math.random()*lNodes.length);}
|
| 1156 |
+
const pf=lNodes[pkt.from],pt=lNodes[pkt.to];
|
| 1157 |
+
const px=pf.x+(pt.x-pf.x)*pkt.prog,py=pf.y+(pt.y-pf.y)*pkt.prog;
|
| 1158 |
+
const pg=lCtx.createRadialGradient(px,py,0,px,py,10);
|
| 1159 |
+
pg.addColorStop(0,'rgba(244,167,195,0.9)');pg.addColorStop(1,'transparent');
|
| 1160 |
+
lCtx.beginPath();lCtx.arc(px,py,10,0,Math.PI*2);lCtx.fillStyle=pg;lCtx.fill();
|
| 1161 |
+
|
| 1162 |
+
lNodes.forEach(n=>{
|
| 1163 |
+
n.pulse+=0.025;n.x+=n.vx;n.y+=n.vy;
|
| 1164 |
+
if(n.x<n.r||n.x>LW-n.r)n.vx*=-1;if(n.y<n.r||n.y>LH-n.r)n.vy*=-1;
|
| 1165 |
+
const pr=n.r+Math.sin(n.pulse)*1.5;
|
| 1166 |
+
const c=LTYPES[n.type].color;
|
| 1167 |
+
const g=lCtx.createRadialGradient(n.x,n.y,0,n.x,n.y,pr*2.5);
|
| 1168 |
+
g.addColorStop(0,c.replace('rgba(','').replace(')','').split(',').length>3?c:c+'60');
|
| 1169 |
+
g.addColorStop(1,'transparent');
|
| 1170 |
+
lCtx.beginPath();lCtx.arc(n.x,n.y,pr*2.5,0,Math.PI*2);lCtx.fillStyle=g;lCtx.fill();
|
| 1171 |
+
lCtx.beginPath();lCtx.arc(n.x,n.y,pr,0,Math.PI*2);
|
| 1172 |
+
lCtx.fillStyle=c+'30';lCtx.strokeStyle=c;lCtx.lineWidth=1;lCtx.fill();lCtx.stroke();
|
| 1173 |
+
});
|
| 1174 |
+
requestAnimationFrame(animateLattice);
|
| 1175 |
+
}
|
| 1176 |
+
animateLattice();
|
| 1177 |
+
|
| 1178 |
+
// ── CRYSTALLIZATION TIMER ──
|
| 1179 |
+
let cRunning=false,cTime=0,cIv;
|
| 1180 |
+
const TOTAL=600;
|
| 1181 |
+
|
| 1182 |
+
function runCryst(){
|
| 1183 |
+
if(cRunning)return;
|
| 1184 |
+
cRunning=true;cTime=0;
|
| 1185 |
+
document.getElementById('cBtn').textContent='✦ Crystallizing...';
|
| 1186 |
+
document.getElementById('timerDisp').style.background='linear-gradient(135deg,#f4a7c3,#c4b5f4)';
|
| 1187 |
+
document.getElementById('timerDisp').style.webkitBackgroundClip='text';
|
| 1188 |
+
document.getElementById('timerDisp').style.webkitTextFillColor='transparent';
|
| 1189 |
+
|
| 1190 |
+
cIv=setInterval(()=>{
|
| 1191 |
+
cTime++;
|
| 1192 |
+
const pct=cTime/TOTAL;
|
| 1193 |
+
const m=Math.floor((TOTAL-cTime)/60),s=(TOTAL-cTime)%60;
|
| 1194 |
+
document.getElementById('timerDisp').textContent=`${String(m).padStart(2,'0')}:${String(s).padStart(2,'0')}`;
|
| 1195 |
+
|
| 1196 |
+
const phases=[
|
| 1197 |
+
{b:'b1',v:'p1v',s:0,e:0.2},
|
| 1198 |
+
{b:'b2',v:'p2v',s:0.2,e:0.4},
|
| 1199 |
+
{b:'b3',v:'p3v',s:0.4,e:0.6},
|
| 1200 |
+
{b:'b4',v:'p4v',s:0.6,e:0.8},
|
| 1201 |
+
{b:'b5',v:'p5v',s:0.8,e:1.0},
|
| 1202 |
+
];
|
| 1203 |
+
phases.forEach(p=>{
|
| 1204 |
+
const local=Math.max(0,Math.min(1,(pct-p.s)/(p.e-p.s)));
|
| 1205 |
+
document.getElementById(p.b).style.width=Math.round(local*100)+'%';
|
| 1206 |
+
document.getElementById(p.v).textContent=Math.round(local*100)+'%';
|
| 1207 |
+
});
|
| 1208 |
+
|
| 1209 |
+
const g=Math.floor(pct*10000000);
|
| 1210 |
+
document.getElementById('gStat').textContent=g.toLocaleString();
|
| 1211 |
+
document.getElementById('eStat').textContent=Math.floor(g*2.3).toLocaleString();
|
| 1212 |
+
document.getElementById('cStat').textContent=Math.floor(pct*47);
|
| 1213 |
+
|
| 1214 |
+
if(cTime>=TOTAL){
|
| 1215 |
+
clearInterval(cIv);cRunning=false;
|
| 1216 |
+
document.getElementById('cBtn').textContent='✦ Complete!';
|
| 1217 |
+
document.getElementById('timerDisp').textContent='00:00';
|
| 1218 |
+
}
|
| 1219 |
+
},30);
|
| 1220 |
+
}
|
| 1221 |
+
|
| 1222 |
+
// ── LUME TABS ──
|
| 1223 |
+
function showLume(tab,el){
|
| 1224 |
+
document.querySelectorAll('.lc-b').forEach(b=>b.classList.remove('on'));
|
| 1225 |
+
document.querySelectorAll('.ltab').forEach(t=>t.classList.remove('on'));
|
| 1226 |
+
document.getElementById('lc-'+tab).classList.add('on');
|
| 1227 |
+
el.classList.add('on');
|
| 1228 |
+
}
|
| 1229 |
+
|
| 1230 |
+
// ── SCROLL REVEALS ──
|
| 1231 |
+
const obs=new IntersectionObserver(entries=>{
|
| 1232 |
+
entries.forEach(e=>{if(e.isIntersecting)e.target.classList.add('vis');});
|
| 1233 |
+
},{threshold:0.05});
|
| 1234 |
+
document.querySelectorAll('.sec').forEach((s,i)=>{s.style.transitionDelay=(i*0.04)+'s';obs.observe(s);});
|
| 1235 |
+
|
| 1236 |
+
// ── MOUSE SPARKLE TRAIL ──
|
| 1237 |
+
document.addEventListener('mousemove', e=>{
|
| 1238 |
+
if(Math.random()>0.7) return;
|
| 1239 |
+
const s=document.createElement('div');
|
| 1240 |
+
s.style.cssText=`position:fixed;left:${e.clientX}px;top:${e.clientY}px;
|
| 1241 |
+
width:6px;height:6px;border-radius:50%;pointer-events:none;z-index:9999;
|
| 1242 |
+
background:${PASTEL[Math.floor(Math.random()*PASTEL.length)]};
|
| 1243 |
+
transform:translate(-50%,-50%) scale(1);
|
| 1244 |
+
transition:all 0.6s ease;opacity:0.8;`;
|
| 1245 |
+
document.body.appendChild(s);
|
| 1246 |
+
requestAnimationFrame(()=>{
|
| 1247 |
+
s.style.transform=`translate(${(Math.random()-0.5)*40-3}px,${-30+Math.random()*-20}px) scale(0)`;
|
| 1248 |
+
s.style.opacity='0';
|
| 1249 |
+
});
|
| 1250 |
+
setTimeout(()=>s.remove(),600);
|
| 1251 |
+
});
|
| 1252 |
+
</script>
|
| 1253 |
+
</body>
|
| 1254 |
+
</html>
|