From ba0a801bc028d2a5c374fcc10068461ea8a4d617 Mon Sep 17 00:00:00 2001 From: felirami Date: Sun, 13 Sep 2026 20:32:17 -0300 Subject: [PATCH] Redesign the lab around hardware and open evidence --- .github/workflows/ci.yml | 1 + README.md | 3 + package-lock.json | 935 +++---- package.json | 4 + public/favicon.svg | 2 +- public/fonts/Archivo-LICENSE.txt | 93 + public/fonts/IBM-Plex-Mono-LICENSE.txt | 93 + public/fonts/README.md | 8 + public/fonts/archivo-latin-wght-normal.woff2 | Bin 0 -> 34928 bytes .../ibm-plex-mono-latin-400-normal.woff2 | Bin 0 -> 14708 bytes public/lab.js | 76 + public/social-card.png | Bin 0 -> 141820 bytes public/social-card.svg | 1 + scripts/test-site.mjs | 163 ++ src/components/Arrow.astro | 22 + src/components/Footer.astro | 34 + src/components/HardwareDiagram.astro | 297 ++ src/components/Header.astro | 46 + src/layouts/Layout.astro | 34 +- src/pages/404.astro | 18 +- src/pages/index.astro | 801 ++++-- src/pages/support-terms.astro | 88 +- src/styles/global.css | 2485 +++++++++++++++-- 23 files changed, 4168 insertions(+), 1036 deletions(-) create mode 100644 public/fonts/Archivo-LICENSE.txt create mode 100644 public/fonts/IBM-Plex-Mono-LICENSE.txt create mode 100644 public/fonts/README.md create mode 100644 public/fonts/archivo-latin-wght-normal.woff2 create mode 100644 public/fonts/ibm-plex-mono-latin-400-normal.woff2 create mode 100644 public/social-card.png create mode 100644 public/social-card.svg create mode 100644 scripts/test-site.mjs create mode 100644 src/components/Arrow.astro create mode 100644 src/components/Footer.astro create mode 100644 src/components/HardwareDiagram.astro create mode 100644 src/components/Header.astro diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 84d9ded..48a360d 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -22,4 +22,5 @@ jobs: - run: npm run check - run: npm run build - run: npm run validate + - run: npm test - run: npx wrangler deploy --dry-run diff --git a/README.md b/README.md index c4ce3b4..73e765a 100644 --- a/README.md +++ b/README.md @@ -101,11 +101,14 @@ npm ci npm run check npm run build npm run validate +npm test npm run preview ``` Cloudflare deployment uses Workers Static Assets. The site is fully static and does not require the Astro Cloudflare server adapter. +The site uses locally hosted Archivo and IBM Plex Mono fonts, an original SVG hardware illustration and a small progressive-enhancement script. Navigation and all four research tracks remain available without JavaScript. Interaction tests run against the built HTML and cover tab selection, keyboard commands, menu state, support returns and document structure; they do not replace browser layout or assistive-technology testing. + ## Licenses - Software source: [MIT](LICENSES/MIT.txt) diff --git a/package-lock.json b/package-lock.json index 884ce80..4e5aaca 100644 --- a/package-lock.json +++ b/package-lock.json @@ -11,6 +11,9 @@ "astro": "^7.2.8", "typescript": "^5.9.3", "wrangler": "^4.127.0" + }, + "devDependencies": { + "linkedom": "^0.18.13" } }, "node_modules/@astrojs/check": { @@ -593,9 +596,9 @@ } }, "node_modules/@cloudflare/workerd-darwin-64": { - "version": "1.20260826.1", - "resolved": "https://registry.npmjs.org/@cloudflare/workerd-darwin-64/-/workerd-darwin-64-1.20260826.1.tgz", - "integrity": "sha512-8UsGGY8ZUiYHOWdsxBlNsGmaHBGArVwJ3CM4nWpfBhthjjYe4M/OqrTpqKF7NNWb63qQiv1d8Z+Z6/hmUqNKIQ==", + "version": "1.20260911.1", + "resolved": "https://registry.npmjs.org/@cloudflare/workerd-darwin-64/-/workerd-darwin-64-1.20260911.1.tgz", + "integrity": "sha512-785eaY1bkR1cm4Z/PCUeteZYmTMe6lre2zz63/GdGGimsoMsKxgl4brFPRukim8iv28EyD1XoCB/VPYF20BERA==", "cpu": [ "x64" ], @@ -609,9 +612,9 @@ } }, "node_modules/@cloudflare/workerd-darwin-arm64": { - "version": "1.20260826.1", - "resolved": "https://registry.npmjs.org/@cloudflare/workerd-darwin-arm64/-/workerd-darwin-arm64-1.20260826.1.tgz", - "integrity": "sha512-0bLqVQYsQ3v3FdYGmzh23vi9fJeYTBx19o4LUySIsRcgBggGSlR39ml162vTXvZzUISOjVW2qfL7Y+SMrrfXmQ==", + "version": "1.20260911.1", + "resolved": "https://registry.npmjs.org/@cloudflare/workerd-darwin-arm64/-/workerd-darwin-arm64-1.20260911.1.tgz", + "integrity": "sha512-WU4bFqEN0H7ndGWxoedegv95DmNVBtv0ncXcHG9nYFTUI78sxEb0qoT3U6Ga4hyBkzsJFBX/zvVBIGX3qKldGA==", "cpu": [ "arm64" ], @@ -625,9 +628,9 @@ } }, "node_modules/@cloudflare/workerd-linux-64": { - "version": "1.20260826.1", - "resolved": "https://registry.npmjs.org/@cloudflare/workerd-linux-64/-/workerd-linux-64-1.20260826.1.tgz", - "integrity": "sha512-DTC0yWzybX4gUH5Q1pJo3UwEQjp0Gmz0Q71I+39xT9SXBesX5QndOIQv45yHQ86Z84EzK2WwaENdlpmDSvJKmw==", + "version": "1.20260911.1", + "resolved": "https://registry.npmjs.org/@cloudflare/workerd-linux-64/-/workerd-linux-64-1.20260911.1.tgz", + "integrity": "sha512-0Y2gy62oxQxWa38qinSPE6zNL5+JmumJtDY9AWW1HB8KHuATxN71o5MGzmVFfB8PwZsiHfUd2Sv7O22krCOrhw==", "cpu": [ "x64" ], @@ -641,9 +644,9 @@ } }, "node_modules/@cloudflare/workerd-linux-arm64": { - "version": "1.20260826.1", - "resolved": "https://registry.npmjs.org/@cloudflare/workerd-linux-arm64/-/workerd-linux-arm64-1.20260826.1.tgz", - "integrity": "sha512-PFerWi+DP2Ckc6eATAS4dhotBt8IeXJjTzIgy18H+uqsswlXc7A8HsnAunHL9v/7/BjCgq46iMo2g4iUAsEpDw==", + "version": "1.20260911.1", + "resolved": "https://registry.npmjs.org/@cloudflare/workerd-linux-arm64/-/workerd-linux-arm64-1.20260911.1.tgz", + "integrity": "sha512-kttNPnx1r2lCqFUoMH62z7CqGV+j4QBbw5fdtaz4pzOrzBv0AWkNATt7onFUe+SwP8zhcepMtbm2F4kKzTf6VA==", "cpu": [ "arm64" ], @@ -657,9 +660,9 @@ } }, "node_modules/@cloudflare/workerd-windows-64": { - "version": "1.20260826.1", - "resolved": "https://registry.npmjs.org/@cloudflare/workerd-windows-64/-/workerd-windows-64-1.20260826.1.tgz", - "integrity": "sha512-X26hulrG2MSSfpRmjZbCq98LNaZnrRqbmGcgo7g1U/U0nJ5npYruPm3fAyZ2y6VDr5CmQo9BLCahxP8VB/QR6A==", + "version": "1.20260911.1", + "resolved": "https://registry.npmjs.org/@cloudflare/workerd-windows-64/-/workerd-windows-64-1.20260911.1.tgz", + "integrity": "sha512-5iO/YfoBDOgO3CrHdkiiVP8SL3O2jC+c6Ux3d378TSPKLhU5+CgHjtE/ZSodWQrzr4FzFRqdW8S7n5nbyD1MHQ==", "cpu": [ "x64" ], @@ -2783,6 +2786,13 @@ "integrity": "sha512-aylIc7Z9y4yzHYAJNuESG3hfhC+0Ibp/MAMiaOZgNv4pmEdFyfZhhhny4MNiAfWdBQ1RQ2mfDWmM1x8SvGyp8g==", "license": "CC0-1.0" }, + "node_modules/cssom": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.5.0.tgz", + "integrity": "sha512-iKuQcq+NdHqlAcwUY0o/HL69XQrUaQdMjmStJ8JFmUaiiQErlhrmuigkg/CU4E2J0IyUKUrMAgl36TvN67MqTw==", + "dev": true, + "license": "MIT" + }, "node_modules/defu": { "version": "6.1.7", "resolved": "https://registry.npmjs.org/defu/-/defu-6.1.7.tgz", @@ -3243,6 +3253,39 @@ "url": "https://github.com/sponsors/wooorm" } }, + "node_modules/htmlparser2": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-10.1.0.tgz", + "integrity": "sha512-VTZkM9GWRAtEpveh7MSF6SjjrpNVNNVJfFup7xTY3UpFtm67foy9HDVXneLtFVt4pMz5kZtgNcvCniNFb1hlEQ==", + "dev": true, + "funding": [ + "https://github.com/fb55/htmlparser2?sponsor=1", + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ], + "license": "MIT", + "dependencies": { + "domelementtype": "^2.3.0", + "domhandler": "^5.0.3", + "domutils": "^3.2.2", + "entities": "^7.0.1" + } + }, + "node_modules/htmlparser2/node_modules/entities": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/entities/-/entities-7.0.1.tgz", + "integrity": "sha512-TWrgLOFUQTH994YUyl1yT4uyavY5nNB5muff+RtWaqNVCAK408b5ZnnbNAUEWLTCpum9w6arT70i1XdQ4UeOPA==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, "node_modules/http-cache-semantics": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.2.0.tgz", @@ -3577,6 +3620,181 @@ "url": "https://opencollective.com/parcel" } }, + "node_modules/linkedom": { + "version": "0.18.13", + "resolved": "https://registry.npmjs.org/linkedom/-/linkedom-0.18.13.tgz", + "integrity": "sha512-ES/o9qotMpzpN2MHs+Iq/JcVoOj8Fa5wiQYrTdFpvAnwXL0g66XHHUc9WUMk6nAlBtGsFQ24ne+SYnvnaQ2FSw==", + "dev": true, + "license": "ISC", + "dependencies": { + "css-select": "^7.0.0", + "cssom": "^0.5.0", + "html-escaper": "^3.0.3", + "htmlparser2": "^10.1.0", + "uhyphen": "^0.2.0" + }, + "engines": { + "node": ">=16" + }, + "peerDependencies": { + "canvas": ">= 2" + }, + "peerDependenciesMeta": { + "canvas": { + "optional": true + } + } + }, + "node_modules/linkedom/node_modules/boolbase": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-2.0.0.tgz", + "integrity": "sha512-DkVaaQHymRhpYEYo9x1oo7Q7B0Y6KJUsjm3c9eTyFDby4MHLBTwZ6ZDWBel5zrYxj1WsZgC5oLpiz+93MluXeA==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=20.19.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/linkedom/node_modules/css-select": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-7.0.0.tgz", + "integrity": "sha512-snmjEVXy+1LnwXdxhYvTMj1d9tOh4HxkA1YmoayVBeeyR2C14Pum7fcxJIm4SswYspVy866eYNwlH6xC3/VH5g==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "boolbase": "^2.0.0", + "css-what": "^8.0.0", + "domhandler": "^6.0.1", + "domutils": "^4.0.2", + "nth-check": "^3.0.1" + }, + "engines": { + "node": ">=20.19.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/linkedom/node_modules/css-what": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-8.0.0.tgz", + "integrity": "sha512-DH0Bqq3DNp5tdOReuNyAA+Ev4Y2GS5FMbZpeTLP6C4CDi0h5nL0BmUPChXw3o/qbHLDWHl49sbNqQVY7bMSDdw==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=20.19.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/linkedom/node_modules/dom-serializer": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-3.1.1.tgz", + "integrity": "sha512-4MEa38/QexBob6gFNwu+EGdWvhJ1OKuNwdYY3Y3NyeWDQfnGeDYQUDfIRzWu5B5gsv03so2Uxd28YC6zrsx3Lw==", + "dev": true, + "license": "MIT", + "dependencies": { + "domelementtype": "^3.0.0", + "domhandler": "^6.0.0", + "entities": "^8.0.0" + }, + "engines": { + "node": ">=20.19.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" + } + }, + "node_modules/linkedom/node_modules/domelementtype": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-3.0.0.tgz", + "integrity": "sha512-umCQid3jKbDmVjx8jGaW7uUykm4DEUeyV21hPxNMo2nV955DhUThwqyOIDtreepP31hl84X7G5U9ZfsWvIB3Pg==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ], + "license": "BSD-2-Clause", + "engines": { + "node": ">=20.19.0" + } + }, + "node_modules/linkedom/node_modules/domhandler": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-6.0.1.tgz", + "integrity": "sha512-gYzvtM72ZtxQO0T048kd6HWSbbGCNOUwcnfQ01cqIJ4X2IYKFFHZ5mKvrQETcFXxsRObZulDaKmy//R7TPtsBg==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "domelementtype": "^3.0.0" + }, + "engines": { + "node": ">=20.19.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/fb55/domhandler?sponsor=1" + } + }, + "node_modules/linkedom/node_modules/domutils": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-4.0.2.tgz", + "integrity": "sha512-qI4JLRKnSzqFqr7hAlS5xQDusBCjKSEG4t4+7aNrIQMHBcsC2TGEhuyABJdYkgSewL57PNLYEiibY2iPKhKpaA==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "dom-serializer": "^3.0.0", + "domelementtype": "^3.0.0", + "domhandler": "^6.0.0" + }, + "engines": { + "node": ">=20.19.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/fb55/domutils?sponsor=1" + } + }, + "node_modules/linkedom/node_modules/entities": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-8.1.0.tgz", + "integrity": "sha512-kxL7msIffSuh9aaFAMD7rxAIuTRMAHMeBtgHW2yUdWw732ZNh4MehkF2gdjvtdmikkaIP9bFDDJOPlsvm7avrA==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=20.19.0" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/linkedom/node_modules/nth-check": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-3.0.1.tgz", + "integrity": "sha512-GX0gsdbGVCgnRgbeGaubfjpBXyYRWOOCVeYh08bSQvDZqxz5ndXs1OTfAt/h36G1xvI94YIspsI0sVFqAV9+RQ==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "boolbase": "^2.0.0" + }, + "engines": { + "node": ">=20.19.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/fb55/nth-check?sponsor=1" + } + }, "node_modules/lru-cache": { "version": "11.5.2", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.5.2.tgz", @@ -3723,15 +3941,15 @@ "license": "MIT" }, "node_modules/miniflare": { - "version": "5.20260826.0-alpha", - "resolved": "https://registry.npmjs.org/miniflare/-/miniflare-5.20260826.0-alpha.tgz", - "integrity": "sha512-ZXR3Bieg+B5MK0T/zYIWaZiCGCb9Z3en4+/TleYKhIGPLx/e0cRcG/ZvvTviUapVBBK2zODB+aiypdIojU3x6Q==", + "version": "5.20260911.0-alpha", + "resolved": "https://registry.npmjs.org/miniflare/-/miniflare-5.20260911.0-alpha.tgz", + "integrity": "sha512-CRieJmvHx+7rNqnA5SKdsYsER6rfkUIE/jruIUw+fLhsQ4sORfuMtr3+FQzsQ9/y8lhk061V4Fl1DFdHiyBB6g==", "license": "MIT", "dependencies": { "@cspotcode/source-map-support": "0.8.1", - "sharp": "0.35.2", + "sharp": "0.35.4", "undici": "7.29.0", - "workerd": "1.20260826.1", + "workerd": "1.20260911.1", "ws": "8.21.0", "youch": "4.1.0-beta.10" }, @@ -3739,610 +3957,75 @@ "node": ">=22.0.0" } }, - "node_modules/miniflare/node_modules/@img/sharp-darwin-arm64": { - "version": "0.35.2", - "resolved": "https://registry.npmjs.org/@img/sharp-darwin-arm64/-/sharp-darwin-arm64-0.35.2.tgz", - "integrity": "sha512-eEieHsMksAW4IiO5NzauESRl2D2qz3J/kwUxUrSfV06A93eEaRfMpHXyUb1mAqrR7i8U9A0GRqE9pjn6u1Jjpg==", - "cpu": [ - "arm64" - ], - "license": "Apache-2.0", - "optional": true, - "os": [ - "darwin" - ], + "node_modules/miniflare/node_modules/undici": { + "version": "7.29.0", + "resolved": "https://registry.npmjs.org/undici/-/undici-7.29.0.tgz", + "integrity": "sha512-IDxfleLmmbSskfWSUATiN1nfn2rDuvnMOqb5CWR92iIfojA0Ud+ulOAAEQ57LPr9rWmsreUyf5lwyao+7GNNVw==", + "license": "MIT", "engines": { - "node": ">=20.9.0" - }, - "funding": { - "url": "https://opencollective.com/libvips" - }, - "optionalDependencies": { - "@img/sharp-libvips-darwin-arm64": "1.3.1" + "node": ">=20.18.1" } }, - "node_modules/miniflare/node_modules/@img/sharp-darwin-x64": { - "version": "0.35.2", - "resolved": "https://registry.npmjs.org/@img/sharp-darwin-x64/-/sharp-darwin-x64-0.35.2.tgz", - "integrity": "sha512-BaktuGPCeHJMARpodR8jK4uKiZrPAy9WrfQW0sdI37clracq8Bp01AYS3SZgi5FS/y5twa9t4+LIuuxQjqRrWw==", - "cpu": [ - "x64" - ], - "license": "Apache-2.0", - "optional": true, - "os": [ - "darwin" - ], + "node_modules/mrmime": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/mrmime/-/mrmime-2.0.1.tgz", + "integrity": "sha512-Y3wQdFg2Va6etvQ5I82yUhGdsKrcYox6p7FfL1LbK2J4V01F9TGlepTIhnK24t7koZibmg82KGglhA1XK5IsLQ==", + "license": "MIT", "engines": { - "node": ">=20.9.0" - }, - "funding": { - "url": "https://opencollective.com/libvips" - }, - "optionalDependencies": { - "@img/sharp-libvips-darwin-x64": "1.3.1" + "node": ">=10" } }, - "node_modules/miniflare/node_modules/@img/sharp-freebsd-wasm32": { - "version": "0.35.2", - "resolved": "https://registry.npmjs.org/@img/sharp-freebsd-wasm32/-/sharp-freebsd-wasm32-0.35.2.tgz", - "integrity": "sha512-YoAxdnd8hPUkvLHd3bWY+YA8nw3xM/RyRopYucNsWHVSan8NLVM3X2volsfoRDcXdUJPg6tXahSd7HXPK7lRnw==", - "license": "Apache-2.0", - "optional": true, - "os": [ - "freebsd" + "node_modules/muggle-string": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/muggle-string/-/muggle-string-0.4.1.tgz", + "integrity": "sha512-VNTrAak/KhO2i8dqqnqnAHOa3cYBwXEZe9h+D5h/1ZqFSTEFHdM65lR7RoIqq3tBBYavsOXV84NoHXZ0AkPyqQ==", + "license": "MIT" + }, + "node_modules/nanoid": { + "version": "3.3.18", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.18.tgz", + "integrity": "sha512-DTg4MJbGMWkfi6VZFdNt2/caMbQy4Ou+Op/hJQvGEWcnVfoA1QA+xzRKAzw9jD6+GVOOeYr/mIcuDSdug6F6+w==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } ], - "dependencies": { - "@img/sharp-wasm32": "0.35.2" + "license": "MIT", + "bin": { + "nanoid": "bin/nanoid.cjs" }, "engines": { - "node": ">=20.9.0" - }, - "funding": { - "url": "https://opencollective.com/libvips" + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" } }, - "node_modules/miniflare/node_modules/@img/sharp-libvips-darwin-arm64": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/@img/sharp-libvips-darwin-arm64/-/sharp-libvips-darwin-arm64-1.3.1.tgz", - "integrity": "sha512-4V/M3roRMTYjiwZY9IOVQOE8OyeCxFAkYmyZDrZl51uOKjibm3oeEJ4WAmLxutAfzFbC9jqUiPs2gbnGflH+7g==", - "cpu": [ - "arm64" - ], - "license": "LGPL-3.0-or-later", - "optional": true, - "os": [ - "darwin" - ], - "funding": { - "url": "https://opencollective.com/libvips" + "node_modules/neotraverse": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/neotraverse/-/neotraverse-1.0.1.tgz", + "integrity": "sha512-WmmLty1YWwJl9yZi77v2dVIV6X2kuYV8YYBI/G3LWGKdGHmHUvL1z7FW0iDvEvGAwNEoc5x1tOOOyDnf5jJw/w==", + "license": "MIT", + "engines": { + "node": ">= 10" } }, - "node_modules/miniflare/node_modules/@img/sharp-libvips-darwin-x64": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/@img/sharp-libvips-darwin-x64/-/sharp-libvips-darwin-x64-1.3.1.tgz", - "integrity": "sha512-c0/DxItpJv2+dGhgycJBBgotdqruGYDvA79drdh0MD1dFpy7JzJ/PlXwi1H4rFf0eTy8tgbI91aHDnZIceY3jQ==", - "cpu": [ - "x64" - ], - "license": "LGPL-3.0-or-later", - "optional": true, - "os": [ - "darwin" - ], + "node_modules/nlcst-to-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/nlcst-to-string/-/nlcst-to-string-4.0.0.tgz", + "integrity": "sha512-YKLBCcUYKAg0FNlOBT6aI91qFmSiFKiluk655WzPF+DDMA02qIyy8uiRqI8QXtcFpEvll12LpL5MXqEmAZ+dcA==", + "license": "MIT", + "dependencies": { + "@types/nlcst": "^2.0.0" + }, "funding": { - "url": "https://opencollective.com/libvips" + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/miniflare/node_modules/@img/sharp-libvips-linux-arm": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-arm/-/sharp-libvips-linux-arm-1.3.1.tgz", - "integrity": "sha512-aGGy9aWzXgHBG7HNyQPWorZthlp7+x6fDRoPAQbGO3ThcttuTyKIx3NuSHb6zb4gBNq6/yNn9f1cy9nFKS/Vmg==", - "cpu": [ - "arm" - ], - "license": "LGPL-3.0-or-later", - "optional": true, - "os": [ - "linux" - ], - "funding": { - "url": "https://opencollective.com/libvips" - } - }, - "node_modules/miniflare/node_modules/@img/sharp-libvips-linux-arm64": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-arm64/-/sharp-libvips-linux-arm64-1.3.1.tgz", - "integrity": "sha512-JznefmcK9j1JKPz8AkQDh89kjojubyfOasWBPKfzMIhPwsgDy9evpE/naJTXXXmghS1iFwR8u/kTwh/I2/+GCw==", - "cpu": [ - "arm64" - ], - "license": "LGPL-3.0-or-later", - "optional": true, - "os": [ - "linux" - ], - "funding": { - "url": "https://opencollective.com/libvips" - } - }, - "node_modules/miniflare/node_modules/@img/sharp-libvips-linux-ppc64": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-ppc64/-/sharp-libvips-linux-ppc64-1.3.1.tgz", - "integrity": "sha512-1EkwGNCZk6iWNCMWqrvdJ+r1j0PT1zIz60CNPhYnJlK/zyeWqlsPZIe+ocBVqPF8k/Ssee/NCk+tE9Ryrko6ng==", - "cpu": [ - "ppc64" - ], - "license": "LGPL-3.0-or-later", - "optional": true, - "os": [ - "linux" - ], - "funding": { - "url": "https://opencollective.com/libvips" - } - }, - "node_modules/miniflare/node_modules/@img/sharp-libvips-linux-riscv64": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-riscv64/-/sharp-libvips-linux-riscv64-1.3.1.tgz", - "integrity": "sha512-Ilays+w2bXdnxzxtQdmXR62u8o8GYa3eL4+Gr+1KiE4xperMZUslRaVPJwwPkzlHEjGfXAfRVAa/7CYCtSqsBw==", - "cpu": [ - "riscv64" - ], - "license": "LGPL-3.0-or-later", - "optional": true, - "os": [ - "linux" - ], - "funding": { - "url": "https://opencollective.com/libvips" - } - }, - "node_modules/miniflare/node_modules/@img/sharp-libvips-linux-s390x": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-s390x/-/sharp-libvips-linux-s390x-1.3.1.tgz", - "integrity": "sha512-VfBwVHQTbRoj4XlpA/KLZ7ltgMpz+4WSejFzQ+GnoImjo1PtEJ59QB2qR1xQEeRPYIkNrPIm2L4cICMvz4C2ew==", - "cpu": [ - "s390x" - ], - "license": "LGPL-3.0-or-later", - "optional": true, - "os": [ - "linux" - ], - "funding": { - "url": "https://opencollective.com/libvips" - } - }, - "node_modules/miniflare/node_modules/@img/sharp-libvips-linux-x64": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-x64/-/sharp-libvips-linux-x64-1.3.1.tgz", - "integrity": "sha512-+c8ukgwU62DS54nCAjw7keOfHUkmr0B5QHEdcOqRnodF/MNXJbVI8Eopoj4B/0H8Asr65I+A4Amrn7a85/md6A==", - "cpu": [ - "x64" - ], - "license": "LGPL-3.0-or-later", - "optional": true, - "os": [ - "linux" - ], - "funding": { - "url": "https://opencollective.com/libvips" - } - }, - "node_modules/miniflare/node_modules/@img/sharp-libvips-linuxmusl-arm64": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linuxmusl-arm64/-/sharp-libvips-linuxmusl-arm64-1.3.1.tgz", - "integrity": "sha512-qlKb/pwbkAi1WMsJrYHk7CuDrd12s27U2QnRhFYUoJNrRCmkosMTttuRFat/DDB3IlDm5qE1TJgZ4JDnHX8Ldw==", - "cpu": [ - "arm64" - ], - "license": "LGPL-3.0-or-later", - "optional": true, - "os": [ - "linux" - ], - "funding": { - "url": "https://opencollective.com/libvips" - } - }, - "node_modules/miniflare/node_modules/@img/sharp-libvips-linuxmusl-x64": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linuxmusl-x64/-/sharp-libvips-linuxmusl-x64-1.3.1.tgz", - "integrity": "sha512-yO21HwoUVLN8Qa+/SBjQLMYwBWAVJjeGPNe+hc0OUeMeifEtJqu5a1c4HayE1nNpDih9y3/KkoltfkDodmKAlg==", - "cpu": [ - "x64" - ], - "license": "LGPL-3.0-or-later", - "optional": true, - "os": [ - "linux" - ], - "funding": { - "url": "https://opencollective.com/libvips" - } - }, - "node_modules/miniflare/node_modules/@img/sharp-linux-arm": { - "version": "0.35.2", - "resolved": "https://registry.npmjs.org/@img/sharp-linux-arm/-/sharp-linux-arm-0.35.2.tgz", - "integrity": "sha512-SE4kzF2mepn6z+6E7L6lsV8FzuLL6IPQdyX8ZiwROAG/G8td+hP/m7FsFPwidtrF19gvajuC9l6TxAVcsA4S7A==", - "cpu": [ - "arm" - ], - "license": "Apache-2.0", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=20.9.0" - }, - "funding": { - "url": "https://opencollective.com/libvips" - }, - "optionalDependencies": { - "@img/sharp-libvips-linux-arm": "1.3.1" - } - }, - "node_modules/miniflare/node_modules/@img/sharp-linux-arm64": { - "version": "0.35.2", - "resolved": "https://registry.npmjs.org/@img/sharp-linux-arm64/-/sharp-linux-arm64-0.35.2.tgz", - "integrity": "sha512-af12Pnd0ZGu2HfP8NayB0kk6eC/lrfbQE6HlR4jD+34wdJ1Vw9TF6TMn6ZvffT+WgqVsl0hRbmNvz2u/23VmwA==", - "cpu": [ - "arm64" - ], - "license": "Apache-2.0", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=20.9.0" - }, - "funding": { - "url": "https://opencollective.com/libvips" - }, - "optionalDependencies": { - "@img/sharp-libvips-linux-arm64": "1.3.1" - } - }, - "node_modules/miniflare/node_modules/@img/sharp-linux-ppc64": { - "version": "0.35.2", - "resolved": "https://registry.npmjs.org/@img/sharp-linux-ppc64/-/sharp-linux-ppc64-0.35.2.tgz", - "integrity": "sha512-hYSBm7zcNtDCozCxQHYZJiu63b/bXsgRZuOxCIBZsStMM9Vap47iFHdbX4kCvQsblPB/k+clhELpdQJHQLSHvg==", - "cpu": [ - "ppc64" - ], - "license": "Apache-2.0", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=20.9.0" - }, - "funding": { - "url": "https://opencollective.com/libvips" - }, - "optionalDependencies": { - "@img/sharp-libvips-linux-ppc64": "1.3.1" - } - }, - "node_modules/miniflare/node_modules/@img/sharp-linux-riscv64": { - "version": "0.35.2", - "resolved": "https://registry.npmjs.org/@img/sharp-linux-riscv64/-/sharp-linux-riscv64-0.35.2.tgz", - "integrity": "sha512-qQt0Kc13+Hoan/Awq/qMSQw3L+RI1NCRPgD5cUJ/1WSSmIoysLOc72jlRM3E0OHN9Yr313jgeQ2T+zW+F03QFA==", - "cpu": [ - "riscv64" - ], - "license": "Apache-2.0", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=20.9.0" - }, - "funding": { - "url": "https://opencollective.com/libvips" - }, - "optionalDependencies": { - "@img/sharp-libvips-linux-riscv64": "1.3.1" - } - }, - "node_modules/miniflare/node_modules/@img/sharp-linux-s390x": { - "version": "0.35.2", - "resolved": "https://registry.npmjs.org/@img/sharp-linux-s390x/-/sharp-linux-s390x-0.35.2.tgz", - "integrity": "sha512-E4fLLfRPzDLlEeDaTzI98OFLcv++WL5ChLLMwPoVd0CIoZQqupBSNbOisPL5am9XsbQ9T84+iiMpUvbFtkunbA==", - "cpu": [ - "s390x" - ], - "license": "Apache-2.0", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=20.9.0" - }, - "funding": { - "url": "https://opencollective.com/libvips" - }, - "optionalDependencies": { - "@img/sharp-libvips-linux-s390x": "1.3.1" - } - }, - "node_modules/miniflare/node_modules/@img/sharp-linux-x64": { - "version": "0.35.2", - "resolved": "https://registry.npmjs.org/@img/sharp-linux-x64/-/sharp-linux-x64-0.35.2.tgz", - "integrity": "sha512-gi0zFJJRLswfCZmHtJdikXPOc5u7qamSOS3NHedLqLd4W8Q0NqjdBr6TTRIgsfFjqfTsHFgdfvJ9LwqSgcHiAA==", - "cpu": [ - "x64" - ], - "license": "Apache-2.0", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=20.9.0" - }, - "funding": { - "url": "https://opencollective.com/libvips" - }, - "optionalDependencies": { - "@img/sharp-libvips-linux-x64": "1.3.1" - } - }, - "node_modules/miniflare/node_modules/@img/sharp-linuxmusl-arm64": { - "version": "0.35.2", - "resolved": "https://registry.npmjs.org/@img/sharp-linuxmusl-arm64/-/sharp-linuxmusl-arm64-0.35.2.tgz", - "integrity": "sha512-siWbOW1u6HFnFLrp0waKyW7VEf7jYvcDWdrXEFa8AkdAQgEvuu5Fz8/Y70w9EeqAdwDtfU012BhEHHaDqvQNzg==", - "cpu": [ - "arm64" - ], - "license": "Apache-2.0", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=20.9.0" - }, - "funding": { - "url": "https://opencollective.com/libvips" - }, - "optionalDependencies": { - "@img/sharp-libvips-linuxmusl-arm64": "1.3.1" - } - }, - "node_modules/miniflare/node_modules/@img/sharp-linuxmusl-x64": { - "version": "0.35.2", - "resolved": "https://registry.npmjs.org/@img/sharp-linuxmusl-x64/-/sharp-linuxmusl-x64-0.35.2.tgz", - "integrity": "sha512-YBqMMcjDi4QGYiSn4vNOYBhmlC4z5AXqkOUUqI2e0AFA4urNv4ESgOgwNl3K+4etQhha0twXlzeF20bbULm9Yg==", - "cpu": [ - "x64" - ], - "license": "Apache-2.0", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=20.9.0" - }, - "funding": { - "url": "https://opencollective.com/libvips" - }, - "optionalDependencies": { - "@img/sharp-libvips-linuxmusl-x64": "1.3.1" - } - }, - "node_modules/miniflare/node_modules/@img/sharp-wasm32": { - "version": "0.35.2", - "resolved": "https://registry.npmjs.org/@img/sharp-wasm32/-/sharp-wasm32-0.35.2.tgz", - "integrity": "sha512-Mrv4JQNYVQ94xH+jzZ9r+gowleN8mv2FTgKT+PI6bx5C0G8TdNYndu161pg2i7uoBwxy2ImPMHrJOM2LZef7Bw==", - "license": "Apache-2.0 AND LGPL-3.0-or-later AND MIT", - "optional": true, - "dependencies": { - "@emnapi/runtime": "^1.11.1" - }, - "engines": { - "node": ">=20.9.0" - }, - "funding": { - "url": "https://opencollective.com/libvips" - } - }, - "node_modules/miniflare/node_modules/@img/sharp-webcontainers-wasm32": { - "version": "0.35.2", - "resolved": "https://registry.npmjs.org/@img/sharp-webcontainers-wasm32/-/sharp-webcontainers-wasm32-0.35.2.tgz", - "integrity": "sha512-QNV27pxs9wpApEiCfvHM1RDoP1w1+2KrUWWDPEhEwg+latvOrfuhWrHWZKwdSFwU6jh3myjw/yOCRsUIuOft3g==", - "cpu": [ - "wasm32" - ], - "license": "Apache-2.0", - "optional": true, - "dependencies": { - "@img/sharp-wasm32": "0.35.2" - }, - "engines": { - "node": ">=20.9.0" - }, - "funding": { - "url": "https://opencollective.com/libvips" - } - }, - "node_modules/miniflare/node_modules/@img/sharp-win32-arm64": { - "version": "0.35.2", - "resolved": "https://registry.npmjs.org/@img/sharp-win32-arm64/-/sharp-win32-arm64-0.35.2.tgz", - "integrity": "sha512-BiVRYc/t6/Vl3e1hBx0hugG4oN9Pydf4fgMSpxTQJmwGUg/YoXTWHiFeRymHfCZzifxu4F4rpk/I67D0LQ20wQ==", - "cpu": [ - "arm64" - ], - "license": "Apache-2.0 AND LGPL-3.0-or-later", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=20.9.0" - }, - "funding": { - "url": "https://opencollective.com/libvips" - } - }, - "node_modules/miniflare/node_modules/@img/sharp-win32-ia32": { - "version": "0.35.2", - "resolved": "https://registry.npmjs.org/@img/sharp-win32-ia32/-/sharp-win32-ia32-0.35.2.tgz", - "integrity": "sha512-YYEhx9PImCC7T0tI8JDMi4DB9LwLCXCU5OWNYEXAxh5Q1ShKkyC6byxzoBJ3gEFDnH2lQckWuDe70G7mB2XJog==", - "cpu": [ - "ia32" - ], - "license": "Apache-2.0 AND LGPL-3.0-or-later", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": "^20.9.0" - }, - "funding": { - "url": "https://opencollective.com/libvips" - } - }, - "node_modules/miniflare/node_modules/@img/sharp-win32-x64": { - "version": "0.35.2", - "resolved": "https://registry.npmjs.org/@img/sharp-win32-x64/-/sharp-win32-x64-0.35.2.tgz", - "integrity": "sha512-imoOyBcoM/iiUr4J6VPpCNjPnjvP/Gks95898yB8YqoGGYmHYbOyCuNv9FMhFgtaiHFGbHW8bxKqRV6VjtXThQ==", - "cpu": [ - "x64" - ], - "license": "Apache-2.0 AND LGPL-3.0-or-later", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=20.9.0" - }, - "funding": { - "url": "https://opencollective.com/libvips" - } - }, - "node_modules/miniflare/node_modules/sharp": { - "version": "0.35.2", - "resolved": "https://registry.npmjs.org/sharp/-/sharp-0.35.2.tgz", - "integrity": "sha512-FVtFjtBCMiJS6yb5CX7Sop45WFMpeGw6oRKuJnXYgf/f1ms/D7LE/ZUSNxnW7rZ/dbslQWYkoqFHGPaDBtaK4w==", - "license": "Apache-2.0", - "dependencies": { - "@img/colour": "^1.1.0", - "detect-libc": "^2.1.2", - "semver": "^7.8.4" - }, - "engines": { - "node": ">=20.9.0" - }, - "funding": { - "url": "https://opencollective.com/libvips" - }, - "optionalDependencies": { - "@img/sharp-darwin-arm64": "0.35.2", - "@img/sharp-darwin-x64": "0.35.2", - "@img/sharp-freebsd-wasm32": "0.35.2", - "@img/sharp-libvips-darwin-arm64": "1.3.1", - "@img/sharp-libvips-darwin-x64": "1.3.1", - "@img/sharp-libvips-linux-arm": "1.3.1", - "@img/sharp-libvips-linux-arm64": "1.3.1", - "@img/sharp-libvips-linux-ppc64": "1.3.1", - "@img/sharp-libvips-linux-riscv64": "1.3.1", - "@img/sharp-libvips-linux-s390x": "1.3.1", - "@img/sharp-libvips-linux-x64": "1.3.1", - "@img/sharp-libvips-linuxmusl-arm64": "1.3.1", - "@img/sharp-libvips-linuxmusl-x64": "1.3.1", - "@img/sharp-linux-arm": "0.35.2", - "@img/sharp-linux-arm64": "0.35.2", - "@img/sharp-linux-ppc64": "0.35.2", - "@img/sharp-linux-riscv64": "0.35.2", - "@img/sharp-linux-s390x": "0.35.2", - "@img/sharp-linux-x64": "0.35.2", - "@img/sharp-linuxmusl-arm64": "0.35.2", - "@img/sharp-linuxmusl-x64": "0.35.2", - "@img/sharp-webcontainers-wasm32": "0.35.2", - "@img/sharp-win32-arm64": "0.35.2", - "@img/sharp-win32-ia32": "0.35.2", - "@img/sharp-win32-x64": "0.35.2" - } - }, - "node_modules/miniflare/node_modules/undici": { - "version": "7.29.0", - "resolved": "https://registry.npmjs.org/undici/-/undici-7.29.0.tgz", - "integrity": "sha512-IDxfleLmmbSskfWSUATiN1nfn2rDuvnMOqb5CWR92iIfojA0Ud+ulOAAEQ57LPr9rWmsreUyf5lwyao+7GNNVw==", - "license": "MIT", - "engines": { - "node": ">=20.18.1" - } - }, - "node_modules/mrmime": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/mrmime/-/mrmime-2.0.1.tgz", - "integrity": "sha512-Y3wQdFg2Va6etvQ5I82yUhGdsKrcYox6p7FfL1LbK2J4V01F9TGlepTIhnK24t7koZibmg82KGglhA1XK5IsLQ==", - "license": "MIT", - "engines": { - "node": ">=10" - } - }, - "node_modules/muggle-string": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/muggle-string/-/muggle-string-0.4.1.tgz", - "integrity": "sha512-VNTrAak/KhO2i8dqqnqnAHOa3cYBwXEZe9h+D5h/1ZqFSTEFHdM65lR7RoIqq3tBBYavsOXV84NoHXZ0AkPyqQ==", - "license": "MIT" - }, - "node_modules/nanoid": { - "version": "3.3.18", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.18.tgz", - "integrity": "sha512-DTg4MJbGMWkfi6VZFdNt2/caMbQy4Ou+Op/hJQvGEWcnVfoA1QA+xzRKAzw9jD6+GVOOeYr/mIcuDSdug6F6+w==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "license": "MIT", - "bin": { - "nanoid": "bin/nanoid.cjs" - }, - "engines": { - "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" - } - }, - "node_modules/neotraverse": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/neotraverse/-/neotraverse-1.0.1.tgz", - "integrity": "sha512-WmmLty1YWwJl9yZi77v2dVIV6X2kuYV8YYBI/G3LWGKdGHmHUvL1z7FW0iDvEvGAwNEoc5x1tOOOyDnf5jJw/w==", - "license": "MIT", - "engines": { - "node": ">= 10" - } - }, - "node_modules/nlcst-to-string": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/nlcst-to-string/-/nlcst-to-string-4.0.0.tgz", - "integrity": "sha512-YKLBCcUYKAg0FNlOBT6aI91qFmSiFKiluk655WzPF+DDMA02qIyy8uiRqI8QXtcFpEvll12LpL5MXqEmAZ+dcA==", - "license": "MIT", - "dependencies": { - "@types/nlcst": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/node-fetch-native": { - "version": "1.6.7", - "resolved": "https://registry.npmjs.org/node-fetch-native/-/node-fetch-native-1.6.7.tgz", - "integrity": "sha512-g9yhqoedzIUm0nTnTqAQvueMPVOuIY16bqgAJJC8XOOubYFNwz6IER9qs0Gq2Xd0+CecCKFjtdDTMA4u4xG06Q==", - "license": "MIT" + "node_modules/node-fetch-native": { + "version": "1.6.7", + "resolved": "https://registry.npmjs.org/node-fetch-native/-/node-fetch-native-1.6.7.tgz", + "integrity": "sha512-g9yhqoedzIUm0nTnTqAQvueMPVOuIY16bqgAJJC8XOOubYFNwz6IER9qs0Gq2Xd0+CecCKFjtdDTMA4u4xG06Q==", + "license": "MIT" }, "node_modules/node-mock-http": { "version": "1.0.5", @@ -4744,7 +4427,6 @@ "resolved": "https://registry.npmjs.org/sharp/-/sharp-0.35.4.tgz", "integrity": "sha512-n++8XWcj+jCOr2IOl7h8LbKnGBDY4aPbmprMONBNFdn0ImXqpGVv5zliDs0V9HbmbCQLpbuo2ej9rAoOQTvMDA==", "license": "Apache-2.0", - "optional": true, "dependencies": { "@img/colour": "^1.1.0", "detect-libc": "^2.1.2", @@ -5053,6 +4735,13 @@ "integrity": "sha512-JFNbkD1Svwe0KvGi8GOeLcP4kAWQ609twvCdcHxq1oSL8svv39ZuSvajcD8B+5D0eL4+s1Is2D/O6KN3qcTeRA==", "license": "MIT" }, + "node_modules/uhyphen": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/uhyphen/-/uhyphen-0.2.0.tgz", + "integrity": "sha512-qz3o9CHXmJJPGBdqzab7qAYuW8kQGKNEuoHFYrBwV6hWIMcpAmxDLXojcHfFr9US1Pe6zUswEIJIbLI610fuqA==", + "dev": true, + "license": "ISC" + }, "node_modules/ultrahtml": { "version": "1.7.0", "resolved": "https://registry.npmjs.org/ultrahtml/-/ultrahtml-1.7.0.tgz", @@ -5698,9 +5387,9 @@ "license": "MIT" }, "node_modules/workerd": { - "version": "1.20260826.1", - "resolved": "https://registry.npmjs.org/workerd/-/workerd-1.20260826.1.tgz", - "integrity": "sha512-oTG9ot5zxO9OjjKCskt86+nVrBL0kiUqExHnYaTg4OCkHf/K4zr+9hYvgwmG8DdCWG0TQGErHzD+1h50TM5b+w==", + "version": "1.20260911.1", + "resolved": "https://registry.npmjs.org/workerd/-/workerd-1.20260911.1.tgz", + "integrity": "sha512-vRr8QdBxueQOZJO1hRCI73EZlix87IAyBAcSyI3rA1VB+6oxjw3oaqzYnIV8C4IOPtUgihbdMAgzkb5GM4V7DQ==", "hasInstallScript": true, "license": "Apache-2.0", "bin": { @@ -5710,27 +5399,27 @@ "node": ">=16" }, "optionalDependencies": { - "@cloudflare/workerd-darwin-64": "1.20260826.1", - "@cloudflare/workerd-darwin-arm64": "1.20260826.1", - "@cloudflare/workerd-linux-64": "1.20260826.1", - "@cloudflare/workerd-linux-arm64": "1.20260826.1", - "@cloudflare/workerd-windows-64": "1.20260826.1" + "@cloudflare/workerd-darwin-64": "1.20260911.1", + "@cloudflare/workerd-darwin-arm64": "1.20260911.1", + "@cloudflare/workerd-linux-64": "1.20260911.1", + "@cloudflare/workerd-linux-arm64": "1.20260911.1", + "@cloudflare/workerd-windows-64": "1.20260911.1" } }, "node_modules/wrangler": { - "version": "4.127.0", - "resolved": "https://registry.npmjs.org/wrangler/-/wrangler-4.127.0.tgz", - "integrity": "sha512-4dPqcBEMJfGeZeNnjHT7ThNJs+EiNYxUTg4ywqIdQubcXHBhFeVMQyHV4A9AOhZRFr83cckqdds034KGcr/dtw==", + "version": "4.131.1", + "resolved": "https://registry.npmjs.org/wrangler/-/wrangler-4.131.1.tgz", + "integrity": "sha512-1u5FMdJAn6UOcL02cVsIITcnHrk6mC7N+RF10EkVhPL18R/o9g5BZb4PCjByL+3AsRP5wQpppCIPHhYPRmIJwg==", "license": "MIT OR Apache-2.0", "dependencies": { "@cloudflare/kv-asset-handler": "0.5.0", "@cloudflare/unenv-preset": "2.16.1", "blake3-wasm": "2.1.5", "esbuild": "0.28.1", - "miniflare": "5.20260826.0-alpha", + "miniflare": "5.20260911.0-alpha", "path-to-regexp": "6.3.0", "unenv": "2.0.0-rc.24", - "workerd": "1.20260826.1" + "workerd": "1.20260911.1" }, "bin": { "cf-wrangler": "bin/cf-wrangler.js", @@ -5744,7 +5433,7 @@ "fsevents": "2.3.3" }, "peerDependencies": { - "@cloudflare/workers-types": "^5.20260826.1" + "@cloudflare/workers-types": "^5.20260911.1" }, "peerDependenciesMeta": { "@cloudflare/workers-types": { diff --git a/package.json b/package.json index a1aa995..1cc7414 100644 --- a/package.json +++ b/package.json @@ -7,6 +7,7 @@ "check": "astro check", "build": "astro build", "validate": "node scripts/validate.mjs", + "test": "node --test scripts/test-site.mjs", "preview": "wrangler dev", "deploy": "wrangler deploy" }, @@ -16,5 +17,8 @@ "astro": "^7.2.8", "typescript": "^5.9.3", "wrangler": "^4.127.0" + }, + "devDependencies": { + "linkedom": "^0.18.13" } } diff --git a/public/favicon.svg b/public/favicon.svg index 56859b2..502b0cc 100644 --- a/public/favicon.svg +++ b/public/favicon.svg @@ -1 +1 @@ - \ No newline at end of file + diff --git a/public/fonts/Archivo-LICENSE.txt b/public/fonts/Archivo-LICENSE.txt new file mode 100644 index 0000000..78b7453 --- /dev/null +++ b/public/fonts/Archivo-LICENSE.txt @@ -0,0 +1,93 @@ +Copyright 2020 The Archivo Project Authors (https://github.com/Omnibus-Type/Archivo) Archivo-Italic[wdth,wght].ttf: Copyright 2020 The Archivo Project Authors (https://github.com/Omnibus-Type/Archivo) + +This Font Software is licensed under the SIL Open Font License, Version 1.1. +This license is copied below, and is also available with a FAQ at: +http://scripts.sil.org/OFL + + +----------------------------------------------------------- +SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007 +----------------------------------------------------------- + +PREAMBLE +The goals of the Open Font License (OFL) are to stimulate worldwide +development of collaborative font projects, to support the font creation +efforts of academic and linguistic communities, and to provide a free and +open framework in which fonts may be shared and improved in partnership +with others. + +The OFL allows the licensed fonts to be used, studied, modified and +redistributed freely as long as they are not sold by themselves. The +fonts, including any derivative works, can be bundled, embedded, +redistributed and/or sold with any software provided that any reserved +names are not used by derivative works. The fonts and derivatives, +however, cannot be released under any other type of license. The +requirement for fonts to remain under this license does not apply +to any document created using the fonts or their derivatives. + +DEFINITIONS +"Font Software" refers to the set of files released by the Copyright +Holder(s) under this license and clearly marked as such. This may +include source files, build scripts and documentation. + +"Reserved Font Name" refers to any names specified as such after the +copyright statement(s). + +"Original Version" refers to the collection of Font Software components as +distributed by the Copyright Holder(s). + +"Modified Version" refers to any derivative made by adding to, deleting, +or substituting -- in part or in whole -- any of the components of the +Original Version, by changing formats or by porting the Font Software to a +new environment. + +"Author" refers to any designer, engineer, programmer, technical +writer or other person who contributed to the Font Software. + +PERMISSION & CONDITIONS +Permission is hereby granted, free of charge, to any person obtaining +a copy of the Font Software, to use, study, copy, merge, embed, modify, +redistribute, and sell modified and unmodified copies of the Font +Software, subject to the following conditions: + +1) Neither the Font Software nor any of its individual components, +in Original or Modified Versions, may be sold by itself. + +2) Original or Modified Versions of the Font Software may be bundled, +redistributed and/or sold with any software, provided that each copy +contains the above copyright notice and this license. These can be +included either as stand-alone text files, human-readable headers or +in the appropriate machine-readable metadata fields within text or +binary files as long as those fields can be easily viewed by the user. + +3) No Modified Version of the Font Software may use the Reserved Font +Name(s) unless explicit written permission is granted by the corresponding +Copyright Holder. This restriction only applies to the primary font name as +presented to the users. + +4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font +Software shall not be used to promote, endorse or advertise any +Modified Version, except to acknowledge the contribution(s) of the +Copyright Holder(s) and the Author(s) or with their explicit written +permission. + +5) The Font Software, modified or unmodified, in part or in whole, +must be distributed entirely under this license, and must not be +distributed under any other license. The requirement for fonts to +remain under this license does not apply to any document created +using the Font Software. + +TERMINATION +This license becomes null and void if any of the above conditions are +not met. + +DISCLAIMER +THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT +OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE +COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL +DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM +OTHER DEALINGS IN THE FONT SOFTWARE. diff --git a/public/fonts/IBM-Plex-Mono-LICENSE.txt b/public/fonts/IBM-Plex-Mono-LICENSE.txt new file mode 100644 index 0000000..83eac82 --- /dev/null +++ b/public/fonts/IBM-Plex-Mono-LICENSE.txt @@ -0,0 +1,93 @@ +Copyright 2017 IBM Corp. All rights reserved. IBMPlexMono-ThinItalic.ttf: Copyright 2017 IBM Corp. All rights reserved. IBMPlexMono-ExtraLight.ttf: Copyright 2017 IBM Corp. All rights reserved. IBMPlexMono-ExtraLightItalic.ttf: Copyright 2017 IBM Corp. All rights reserved. IBMPlexMono-Light.ttf: Copyright 2017 IBM Corp. All rights reserved. IBMPlexMono-LightItalic.ttf: Copyright 2017 IBM Corp. All rights reserved. IBMPlexMono-Regular.ttf: Copyright 2017 IBM Corp. All rights reserved. IBMPlexMono-Italic.ttf: Copyright 2017 IBM Corp. All rights reserved. IBMPlexMono-Medium.ttf: Copyright 2017 IBM Corp. All rights reserved. IBMPlexMono-MediumItalic.ttf: Copyright 2017 IBM Corp. All rights reserved. IBMPlexMono-SemiBold.ttf: Copyright 2017 IBM Corp. All rights reserved. IBMPlexMono-SemiBoldItalic.ttf: Copyright 2017 IBM Corp. All rights reserved. IBMPlexMono-Bold.ttf: Copyright 2017 IBM Corp. All rights reserved. IBMPlexMono-BoldItalic.ttf: Copyright 2017 IBM Corp. All rights reserved. + +This Font Software is licensed under the SIL Open Font License, Version 1.1. +This license is copied below, and is also available with a FAQ at: +http://scripts.sil.org/OFL + + +----------------------------------------------------------- +SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007 +----------------------------------------------------------- + +PREAMBLE +The goals of the Open Font License (OFL) are to stimulate worldwide +development of collaborative font projects, to support the font creation +efforts of academic and linguistic communities, and to provide a free and +open framework in which fonts may be shared and improved in partnership +with others. + +The OFL allows the licensed fonts to be used, studied, modified and +redistributed freely as long as they are not sold by themselves. The +fonts, including any derivative works, can be bundled, embedded, +redistributed and/or sold with any software provided that any reserved +names are not used by derivative works. The fonts and derivatives, +however, cannot be released under any other type of license. The +requirement for fonts to remain under this license does not apply +to any document created using the fonts or their derivatives. + +DEFINITIONS +"Font Software" refers to the set of files released by the Copyright +Holder(s) under this license and clearly marked as such. This may +include source files, build scripts and documentation. + +"Reserved Font Name" refers to any names specified as such after the +copyright statement(s). + +"Original Version" refers to the collection of Font Software components as +distributed by the Copyright Holder(s). + +"Modified Version" refers to any derivative made by adding to, deleting, +or substituting -- in part or in whole -- any of the components of the +Original Version, by changing formats or by porting the Font Software to a +new environment. + +"Author" refers to any designer, engineer, programmer, technical +writer or other person who contributed to the Font Software. + +PERMISSION & CONDITIONS +Permission is hereby granted, free of charge, to any person obtaining +a copy of the Font Software, to use, study, copy, merge, embed, modify, +redistribute, and sell modified and unmodified copies of the Font +Software, subject to the following conditions: + +1) Neither the Font Software nor any of its individual components, +in Original or Modified Versions, may be sold by itself. + +2) Original or Modified Versions of the Font Software may be bundled, +redistributed and/or sold with any software, provided that each copy +contains the above copyright notice and this license. These can be +included either as stand-alone text files, human-readable headers or +in the appropriate machine-readable metadata fields within text or +binary files as long as those fields can be easily viewed by the user. + +3) No Modified Version of the Font Software may use the Reserved Font +Name(s) unless explicit written permission is granted by the corresponding +Copyright Holder. This restriction only applies to the primary font name as +presented to the users. + +4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font +Software shall not be used to promote, endorse or advertise any +Modified Version, except to acknowledge the contribution(s) of the +Copyright Holder(s) and the Author(s) or with their explicit written +permission. + +5) The Font Software, modified or unmodified, in part or in whole, +must be distributed entirely under this license, and must not be +distributed under any other license. The requirement for fonts to +remain under this license does not apply to any document created +using the Font Software. + +TERMINATION +This license becomes null and void if any of the above conditions are +not met. + +DISCLAIMER +THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT +OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE +COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL +DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM +OTHER DEALINGS IN THE FONT SOFTWARE. diff --git a/public/fonts/README.md b/public/fonts/README.md new file mode 100644 index 0000000..fbf40bf --- /dev/null +++ b/public/fonts/README.md @@ -0,0 +1,8 @@ +# Website fonts + +Locally hosted Latin subsets from Fontsource, used under the SIL Open Font License. + +- Archivo variable, weights 100–900: `@fontsource-variable/archivo` 5.3.0. See `Archivo-LICENSE.txt`. +- IBM Plex Mono, regular 400: `@fontsource/ibm-plex-mono` 5.3.0. See `IBM-Plex-Mono-LICENSE.txt`. + +No third-party font requests are made. Archivo is preloaded; both families use `font-display: swap`. diff --git a/public/fonts/archivo-latin-wght-normal.woff2 b/public/fonts/archivo-latin-wght-normal.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..716d4abd199a236dc4b9e112f63429b9b47ce911 GIT binary patch literal 34928 zcmV(`K-0f>Pew8T0RR910Eln^6aWAK0bU>g0Ehel0RR9100000000000000000000 z0000QgIF8qbR3HYKS)+VQiT!*U_Vn-K~#ZGCoTYmE-!u&2nvDGK!Kq?3xr+(FoL`~ z0X7081Bo~UAO(s%2aJ6T2U}f2QNmOi(A}svt5j!*n;$tF(YkE}6xz!1Br_{&)@YT5 z=>JbiI%I5c9q{pIX$5)&orq*Q3`TKIN!=^Al-q1nRdsjj6(G4fy$KE{hcCMC6$7(( zN>`d*%h`0MA&8GQ?hY+qg`~X=L9bQFp_TQ>e9!wnKxg@3a=htp{!#YH@FK!{jcVk! zLU^P{^WZYy14`~9uyGk9S#{P6|5082pBs@?)yRR=GY=mGR}@x64$sf6_x~ywFxJh0 z1q&E#V`Bpb3|b;bv?3xPDq)=!=qX0!VZ|AJXXKr6p68tx#+{xrq|^6LWKitj;{vBC zAx(ekG|0~9Wi0{((6M9D5%c`_WB*(G+^;~TnNHVG+>>j5Qpse7QYev5^GYas{ztd! zk0I+irVtVs#NrTzU>-uili5sI^P;-y-c{9A&2?ApyVhlRoxVLgKp!~21U&Voq02_D zO55FB0KVj75<3QzSr)<*uq6XQiRU$)4fIczRfq>Vvkd9X|7K;DEy=QoM@VLwHUyvW z80zEocMgj3it>tz2$RPlSoTl-S-q{xrm!<2{@c-X5rTgY4M?2|CDHR5g zQX!1>eJpFglyT`wYYpH47#M&WfX?5WT9*C?40oDqu^#fA8le`H{76+wxg3(RCNj=- zzt=s#4VtjjlHeE;v!ewuBP~G6U^p5T8r^6BWRv5#o?34y^@RHy>&ugdXJ;C93yiAr9sDi@-z>aiKB6EKU1#t$evW0@R zVSS%ccCy!ik1zxgkwzM6LgR`^kRiMGzlLvV&NPPdmK<6Kp*{Y5?L;@oHpPQcJjy^; zz>p1BEC@NqTK|q$>t40zp&c+H5h)rWqPf2QAB{i|!f7jNerGUPAd*0&mJTs9dXUf%1%#LqfsjVwKtR9%dI2IZu+UHt00bi*2uKtLv^DU5skAD9MoRz;fRt`7 zxuUzuxh}dbzT>znyvM#TyI*|2-1_PH``h<#y#LgL+aKKX==Mj?KECboE8@yVw0YCU zEgQFP+_iDv)7zfj`ShM=C!XE*?9ONRY~Hu|#MaW*16z-7-?Dwr_R~AJ?%ezQ-eH^r zD;;hQ&kXM#KD+zG?lYsCN6(C2aXWi=?>)6Y|NNBaXTL}e(t}f9p7HX6SNmUG`^$+p z({C9A(`1@XyVHetM;v$4<4-OUU9JtQ;iMq(~5ov3jH1^!cUcmFA7sOxu;WI#5l^tFo@lDunZ7=(FDMG+5iG7 zfMt+_9`_9h^$ZPZCV0?LKy|fiy~92lXb_Ep0jyEe?ab}&ax&%aiRBu?Z?7*mP-@L)`A-+X!s~kJH zK#dm*8P?cUa15g;9;i(pkyh8^Ws1(Pp?NL>{-LsXGk<3cwI^PvRm^kLxp)=XS+w1L z_T{5K-p@a5*cLzJ`5HgwKl?QlYYb=w;&V@o_rc9@F`V3U@CJLrmat^cY(PJ$&sYBk zeub~#t;2k(qq-_U07XDB4c5bfK!PB)J@>;o-2ehqpXmwD5)nG-y=ph4Q$@5)*GyHnv z@6WrFH$3>vyPw`zoE#m_19*2GP4qgWZ_m1tHZ;&o%-vaat0Y^zV_KD@qKCGmp7%Ai z9yz+TaEnW|yt($+Zr_sP(nI2&P(69uu>kVJ9V>5lD?)3}d8Y9y2AD}7tqiGI zScpA+Kth^JZF~0*p8L;PyWjK+%fmb5n|z5+^A2zJ5>IoNTRjpzGBl<+5&qwDduW$! z$hO%UU`hLFHo=-LU@n+X7+AmGom4kCqC_(Zs*H==k?A%1vRhzI4{ z^P#Ay6}ISOIvYa4TYe7S`lN;WfRO>de5^RYml?)L%x75Z+|8pfFu95E=Vwk|PCzaURQK z=_(fD43^M7JSix%4h{`k7%-DeOb7aWZm2CFCM9D=rUF=l3cmntDkYE7BMOfcjp<>v z?LoJ5B+B}sHk5fm9gDAoN;V_eX+|lp(Ig6@Zlg?ljqf!&5(>IZXtQ_lcB>uPBq;j_^|ow)s+M8^SYTDLs+GI3NdhoEb%)nK7#tMLM5Jb~qn%FPT%p zw#SUn6k+}kt`!i{TSFL7O@0p5a)6i2$U<U_eS%&!|uz!zbFZ zXpgpfN__HX(np$3Fd@~X>8D1kn3$$AGgVV)O(QHL)QC4rCtaB#Z@v|nXOOv`Rc0^G z#948L5+hq{Z3(6tN-)VpMgNngs`<=}Bp+-^q=jakV~lT*V#X5MMpd$8hUmzw>BcdW zRGmY$I!Mf-9*Jvp2`u* zqe;lf-a+%HX(563tn^H3;Tv7JY&H}{oDt0Eog$o@8T2u;&#f0Nv35|(k&#t~%BTT_ zwFc^06yQlup-k|JPo6h>gaLYuYt>zgs;2IyvUTXus@Y@MhBwPSC? zXB3kma_vVEKE_vo9EM$gfN;&s_86AXZGwEj=nOFoYTtn)wC+H)7D7s~^>9A&v?8mG z)XujTqy_@cMimh24k#H8vt-50a;XkX7b~L_m0bo1A~dP|EYd{L2=>bk3p}_xzytTL z3|zp#7VaQWQ*ohmbO6|;>gQ6>Z#zHu+v(1k_UQQ2WH`p@a_+hNMc-SnAJRsOOES3* zY|up2zLwU6wM|R=CuMeS1#l zZEK%kiig!LeIVUNd-cbyOuW^&@9LI$nY7S9)?~W2HSC@QmN{CddwA3`Q}4T87g_JR z?ACLZTirI;tZCx_M`~t&MDOUqkm6=`XLYWn)+o_8Dalo5Mwy~XW;Uo}Bt~;VB1c~j zTegilkJUKSid!y$+shpN`R7-9=b@NuL&mK+y$0q43q;<+ zcE-5|rMweC*Sx;9yb92)$By7Ui6H{PXL7q5BaQp4foY;zdz8^_^kv!pt)$fyK3=}P z8{DdIxWr4cy9AwEN?Y<;VCbY>Y-64!ZP=5X?c=h0}KR>Qs0&5RYze+UnULBbJ}o*%<|vB~w4@`RdqDI2&wi#Ju$ z{X4de0e3j2Um5*D&x3YzG4#)^EoeK#qi&AdwMrRQAAtRE^`FFLADPb2#j9<7 zPDXp_tLG(O=CP1&Ido0NuS%=$`2004D(U`J8=hwaWlEFhy~hsP|rwLkG#!s19&8>>zL;AwUEs ztOLVICJ`kV4HzvV5feou12jg_NSKszW)=jj6N^s|ba93yxM6%>61yIiDAu+3(^}JT?nL73LAk@i~aB2-eOVxHktDo??|F{Q3 zaTLhm!$XF24%hT`j;4<3(MEy~)GQA0Yc7Dng?Ddz4#JTzJM?Vn2=&2Vsn(`Bf!zNu z8u72+?uqun-mrDrBQlr`Lh!@y1Hb-s5iHbkV=A{1Od9^luSla7J*J+S{V}JVaoZ2> zc$`qEJPma5K1d>&6nvzTMmptGP)UF)s;Qxt2AY`oB*g3)fS!|&I_hblktUjHp_O(z z=%kBodg!B{0R|bO=F?!--V68D-GyaD2+UV_bqtgSc>@Lrkf1<=0Sj(lPiJ>6UXn;A z1s|!Tk^X2#122`FuD%u6+P6u11*jxI71h*G>vdV|=8Zmk>^rU-JTT!&-zb*OS~1}Bh_Q&3X5sL7JMB{BGHvHlWT z!C9B}B6tLC3^T$gV~jJwBvZ_E=B!(nF%pd#i`yuyosa38w}Vc)yeH|sppSkgwJ;Yh z!u$o?ltSUHdvE~?tmmF^e&^8sNwGHLXz=KBcmys!EZuh&>WkVL0D;rpxZk+lBh2^f zb<6?dz7>bpnOy;oQ4nor4Txd|HEufR=xk=D)2B&adBuP89~y-_{|NZ{7sx;?EL4zG z)@G4G0^j_om8K4=+#bw7x$UDO@+n*PGcw7RAp}Lf8~mNLYB0_&mGG-Wb65Sg8*;g23acP+q)2>M`_76&Zn&7~oL?zY zxqqZq*zwQs5Fx~m1al#s1Ej}FAI!Li%NAXvqQrarWawtb-4R(CGs($Dd~@5QjJe zt@@A*9>g6&OfAJ|$q6j8j#9vB3h_7ZxZVy>{hngR+gO{^I2Bn4L3m)C?5%PREP)O} zG#JqG2IP?t$HCBuz?1Jg0^+X4paTP{TK{4aL0~g6Y9J7ZRU|a2Q8@P)vAT^n0R(Dp zFgoT_i{t#eP?6s(}70T&@K|LTVu&Dwn;D`N0BUJFK zA83?Gh1`OE+ZDprHYBRMANcWR@UJ`?u}3yFEb_0=`4Oh*E+7A#&_Y9ahyW2G@{M}T zC`cX@t$5M%++1eSHgnufmiX%Gs;dLntthWF-K^jn;;hQbnnhaD6Kfi)%=PCX3rPzP zFU!lTu`f4SAY?LykmdS(d<5^d*lap)W<&&I(P$w}NDWS%9vKu(qlkof_`P9F>F=LB zIVLU#q-1F_v!vNMo}~i`Lg9?JTcJRsdvrP+u8>eTA|peO$<0L~5r{$sRH)uYD3n&4 zpFauP&=9-wN|Ic`rEYJN6R{}6>QAC}s@P+*^%W+E78lD4@k&T)b(q8Gm)LU(QYy(- zV-bs+6s+QPpjZGyW6-t}Xj6tG~EkIG`Si9{SP4vBN($ zq-x?Z?J?)E%wsLblTUV^a-ZrrqdMz6>prJEmvAogLgx1=7c(!mU!h+qywY%$aaDLV z|9aH*{2K)~s%|oFX5GsEA@fJ&9o1ve~$_5Vh@WY@5d03b?gVV39l zL0(u(RTW({)#>W=4MfT!lqTvMnvMHh^M5?%SApMrFpA}a0@y<~9l+^(m_A15Q;AcL z26hs51*NYf);c9~a02Q7w6td;0AY149R$#M0I+&^2Y^8cARw?H0JI_im;oQOy**rj z066IW&|UyQe+eOuv)^O}OgBNR3b~TS(UGA+00WCXjR3Twf|%s*UPcIZFTq2*7jXWL zIrI*^1r`dLTT0tKK$;Z}E?{Q^fjs~wI^K1hh9A)7PsQ)wU;5T5^$l^!FEjsa0RY-A zkzUuf!VB6eEk#Gi!nE&*w54B}%d$fOLn4C31jD#NQOdF*J7@Rpp+g8H0*4R};smV% zmVhS^31kAjz$$PFwizPfJYxY25rusnUL>Fnfk;-XIObdB!oDLJd&jF%aAEcfg;69lqy%J zL8B%uMjE5tSRKasJ_vBp-<}xq%rBmM6(smSGkh`GUH`c1YxWC(pX{8+s8Ueqn)@GDeqjjp+MX5GKhzy~jAn>C*Zo2IUw?F_I!9Y;qz;`FM zJoXUw8of&!0I^$B6+!^ObAbpUn>7=tgHYI6$SoQCnr?tF3=*vyg$2MKYTYCp06w_1 zS$LaJ%ezz>zM|M#vjy8c%-R4$?>4PH{k8*kj)8bHkt@Ilg@E^EFp%M)W###Pgkqg! zkSE8iWpO1~836*Q#CV2_TL{kXQN&98oVV->Q1xQ`M#AKTT`_^w!Tj5fSjDrN&SJ-Q{dVhnEgDtb&Z`qtRC!my{g)lv&HSK9o*-w zvF0YW{`%c^Dso$Lb|qt=x&{d`ji3l1vtCwh#)(3%u(i5Z{R#cEpai#{8OmyB zXQ%qZa)E`IFSgJQwnNx#H0gO3N~T)Qw)})H`BlirImKw>UR2cnXSa9W-RIixC zoxMci5srGL`t7|%$9+!ifbRwAP+J(-tuu9Hc)WLCs9EnPi zNm?XhJu}9XX;6ZOmv73j2pW#wT9!fK);`|?QzW6cMdo7GY$-MADm=dUhK(Qc;0Wc<7ngIUR>40l4F3iqI&ni3#z(#;!OQ z_J`#?DB^@WpvWs%QiYo?M8;HpSAIGcrftN!xKjRYbjcz%ok@I=P^k{|3Z+ftqk!V_ zfk0T#=M!0MTWdt)OYvf6kUqjgQ|wxrBqqfuM1Vl3x3<SuoZI~l>6r+#}KSYudBH^u>q}Vo#B*FHMqN4Vxx#20>Mx;Y4)f6;^dsLS+(>=y; zy$x-}#Cpn%N!jTzg%;JQ0bjzvq0wB;N<*b{O2y}aFe^EewRnAASnxwMOOd(;g5Hf? z+V&hdIwB2*mzexKId=iwQVxCUagB-l(d{R5;ao8#6f*-L>44~eP^BPaP%A>Q2(jc~ zHF&Gba2#?RClvH-vcbQoP+Vnoi&66rOiVBSHbhH~1jDv3kj5icXVp$w#8Eqy zS#_CoF(`?6l~k-OQKsYlytoVG%rA((B4>8hXJEIMTRBQgR3K%EewoG6rv{Env+ESH zr_h$YR7d(&6KwFTe3}=JmMn1t%ygPuF|277z?D>yb60AD;@pB%7_o4E%gA0T$zqm3 zlC&5HKl1&~^2hmQ4);s1gwoZ2a>#czil-@VaNjGYhTSZ(bz(!1kvS0TA{LgNkCfx( ziKKMoQ!H!DcEbq}&NygwvTbGFT zkJpL$AhVpy&|^Mo?mVYLhwoh6oI{XttsD%wS82M0w-rWY0xLWnL%k65;!1fmMePam zG~Q8?C8=)OCVHasS4-l)_N>9X{y4yxU&1Ba}v%ecE1Bo=|8 zTPBstWEBS(CZuMkgQyk&^zE)#iB+)Jota4O3(x|6+IXNLYmX(4JHZaZSrRA*NBb@6 z_b|~WCNwrA>TGfX?-Y+nTKsH#RmtrgIPqGwJJybA?r~CpSrF*Ib7l)c4R6 z7v>hIzJV5(;Ca2=Fdw$vzO5UGNt#`QH5Zy^*Kj;3_!Nn2aGH<1Q9kZ#T)E=_M<9IL zO9rtTaY_;eSnNlkSg@p*i8SQZ=kwbF1>8%xg|RwRdKV)v`S6BPO#B_M)+;J>w={CrhS9WzUTTh1rFJYhNC0=k z5)}L?h935P!HTYy+f9B`ks;`1p?w=^MGBIZ zMsWos`%F)$X2qqw{9nOCr50T{MF%Yj$x&f7z$|>?GT0jvM->j`$+Z!=1j6`h#4Nd( zVjW0c?y41>)NzM-egu?vsYcA>+?70OIlL!^avuL$6gxUd0RZh-%5VeW5_&M+#2fVB zYTwU^8f;iD1y8<!tF&j5wN-e%}u0%rvWjvZwu5(<4 z^|IHQBtlkewFLx#>hL0=R~sK*(=o3Sdq)8203|)Tei}_Qkp$zeP$*;q9xVE=sy*q* zOp27BZcOf0q5Eo#=qID9u%`GY>z%f)3pW-Wy*V$YDptuUhdr*u5488M-s6ItsFnv9X zr`D67Atf5n9Do<~zK| zEu_7gr5#cC>g>{+$MH55Y^1Xe+Tdqkq0uroB$Bg@spq;MUr1`a$;(qbeLTk5v73zh zDt{PirTUMrmFcFO^3N}`hq#?n{QgDm;3=VUlbya$HkZiyG?-)D{Jb*wg-~aVIJ%z+{NHc< z$}~F|vYD|w*$0`UsRr&#&`>@99C}iES?BR0`_gGxZN?(Eiwu!X6=d4#9%6t~;OVzW z@<{s2uze&F{q}j^EAIJk3i->2^tNy`S%yI`A|l(Nla!{ww>xcAo+241<8#Tt98C~p zjquA2lCh%*>+-{*hRTd1sWi)h-O);~A~|H1(s%s<|9x<_`)F_R6zu5`!opZXSfP&` zCG#iGftJ$-`$EdW#BC~aAao~Y{)RDYC6%0;zNEl`R;z}TlFW!H>dW_i5MFJr$TFHk zpl=^g7l(X`WX$ZHbM2aqW!)fm2}}NTJBa5Oh`A(MJ%bfZ&818yBR`Ignr*G;1*p7X zpwqtt+*SQ%#OdKO5?WDVDMuNX@G^DG-BEdvdoh#EmkN)3ae7=LK;P7ZmrUh`-JA+s zZA0DYr>nn1;-NnDfBxlS9iQ`eR3Fw2vvWBn;bZ$TF)MnWRX>|chv&bCEj#w@PeWxP zzWDN9%V?>;e-hl#1M{o1PG)h*AM!GozYMdk4f=@7;JrzZBmC%Ylh*Zj*Y>w$)sD=r z0W7GswluYr7{@>}-zu$d=z%BIFrTO0sMc)Mej94k8}CpThlVbpQkTf{Vx<56dbC9# zSt(?l*i9#sLtT7HkBE6=HJ!u{1*r7xr7a7?H(6UaQ3p9K{j&LX*Zi@=M-K@Vqfv*U zq=mjhDe&!RH{~j$QuOjCs!zzgA)zbWZq6!E#Qf9zOzDf{j5sHL&~%eG*-h8{D!T_d z33UsT(gwTt@7%sTXPU*|Rxnwoa;1o)Tq6vsnp9evswQ9WHl&JFE?rMSdfPPf>SL9^ znVFRpRYa{L6A26rDKD*P?y+Tb=E{-hfNw`=?SiEAf%Y-!i~Gj4bDQTyCb4PEOjDTo zqS9Wk%gA{^6=(~{m2ls&ZwI|)(dN3Ax?J z?%R9AP-GTq(fA$Xq>INnqfsO_c}d=spnv4K(G)_%GGFHMj?T=%KG@K>)EDdQn2XHP z&}2yC7O-7JYh+dN+!0a8>J~9}4cwJ2_ zT9qwXvcUeV;{UW<=d095l{yk)s=u8@ojv~R55tX*bR+b_?mMDKAcbJ5VWbFc`(v4@?jjPB^2~pTXc}7^`VW`t1K%yIgj!0ed#)~eNpqt@PLbpBqwI6n@$44hngqu zm5ZOF-oK3&J#l@kU9l63-i`$!bj-lOJ|Sw4a5j2?zT~Fzd;i?HCXn3{7T+{1wE#CE zb)?khvts&aPbNykzmOt~sAc(z7*Cloq9*0vzRxk2%@GczD9d)JZ2?J8NC)J| z-;BwB#DW;l?(dLl#)I<&+VoUbWOPJguA+nDRnu>|q|$l+k;&~yJSN=eC>6zfi{#-+ z#(zUgNrLPJ1sqn-@f3ENRYMOvaaCY@t)8mZJkMpUMm=^P^;;@+>Ei10Z530h zMRm&gF9|Fs{`cv(@TkN>#RQ7)=AJE7Do*15+udkKg~%C~!`=EOn`81-ne}5zBo!2f zvrI#8xci>jp%W#&&7?;;OC`5+S0x7v%Y+mPk4uXQ5ci3x>Jt91KM8-|UPPB!_Jcfv zK1;C#gL7Bi>VnZ9uOFAh6j<~frDeL#B1?5`xRd5Fk$s_gZfWTSvC_y$wvfz>lx&UY!YFZj6gPEICL6(Hd;t2b`cbtP zTXdaerTUISi&b*``bRX}b*l>J#!Smr5NlONhQ~mXKl=VGKio<4n#m@b#|d;me)iw zv%G5~BiAMwah9ZYKt#xHv6?zdN=+Sof3~lh`GIN*^Ty%yad%OL}r*=^K~)i2c6ZTueTC-rn2H+AHN8vdPEu*DbfC5W3B8-ku4SdgQmRnuZi1EpKQ z;{DH}xzwafuTXn4!pbS6gwU5U zK3{CO){~_)pUgWMdKnYM!ZE&Q{7bwL>9lQj~ZPpnQ) zs2rEdIWxsV6Q=(n)d71+TUT3W3Au|59N(!4X>6v8ji075jxu`gSF)lkatf8!OuF3w zD-I+7^W%bSUD*BAGj!R6O=E$1e+JU_M%E8KnX~iKVaLpIuTqm&M6=!k4stcljlt}j zB+`1MF@yK;_C9fhN2pA7)OGpU`&_?bCG!K{;|d^0};$73EGTrntLlq$1>w zwpuz%N-Z6IFgLH&8Z0fbbdnYXlFeixc^yyPMKCGu$z8;{Rwv{xcC^vexQc0xb||hM zo_KFhJ=l_Qpv7CeD_A8b8L^qmEk zm;=9V$94Uqm2QUDNR&VP9;ttN7tvC%SZ6zQ7cFPLf2bg`r2d85ULSg`g_h!2N!h94 z#TL6hTQSY<{3O5o6DK%(_@SI=WO$9LE*nMp@A^#4l8g6+l=T&(rTjk;?l`At|f(P=XXYGMfR83!5{_1%CZuS1q_2Zhk1?XP*~%#C`d<$r_vb{U0i8Qs0ieW zg4Xf{YqjF6`ZUh;@f`J7i>&LJ3E026X!r1&n!?0=a4;9TEyQuRBA+lsQ)(r7fz9Svfucz zoP1R7XIw?ro9@#juxgMr!OP9*Du&TfofW7AR(~Sf78uPzv&%I6hzCQXDBXJ4!#`mjKziTF*7W7;OJp{=pLGW#O65)4ZN=`l0fuT_+Nsv zlS0YKO39P@Btp1=++ISb&76lPq(TIQHd!ANzIm5u3+Xi`EIM;?FwI?!eD~iUjIc09 z2YpRDa24_UbHB|8h6RSs9KoD|~bMhem_uC%yoEysiA zc$QqCMrB7tW`ZyRMcbCeE`p>~ z0B2&;FJYQ$dtyvrsWYay0Xx+T=Ke;+QYoW!N+lf>nGEWXNIL)!KL2Zp;>Fc4XL0*B zc4*nPfn+huE`su;AS2Nu@SjvFcYkA^#M#;IRwM}0&1|z>AdEl%eLND_-PxzIb&iY{4cd)Y4z_y&gpT;!=D5~@-%QFc}eV5 z)u@ zpfZ|Ws?VoyaH9>oVzU&*dTa<5>?CLh=knMyhKg%w+#L-HMd1!Et)^*cE1S1!<`d>7 z8hs;^wUJKS#2lo1La81)J&zii2euJPY_4Zs;IUq&B7C&aob0q}Df&69Il~%a(~q%O z$LY+YV3(&2HWQzf>@T{kq=TM2UTxmK=8Yf-n)>mqqzgP<=h<>aR&smrbe(5&@dr8F zB?oUGTeB|-!n4`$6lnRIS{9+iJJbuu`cV`V^iBIqZ+j24pMrA$1ZUAcA!@DBAjZNl-N0V?QWOrC7&I?%3ylP36@~vC4 z)hwBuwL0@&lgpyOdM|!bO^VdfYHBr0?G2yhQnsOew0X2?*@|L-2FYGm#R%4<#EL@I zg@E!x$D35Cd=+KvNof@o(!Eu(JNNkJu+I7LP7p;BQ}Rs#C?mIWJ|H++Cbj@+MaDeV zUk5Xa@?Lg#<^7UTkX~e)FIth7CR$}%Pz1UjXBOp_a39JnOmB>h-f!umm9YyNLB@*k zWPHiRh*R{#OKAnPrAKI|A}*FB2URcf`{P7_*v&Wy|DHCZrx|6 z2Wm-~Rj|hZ^B|T7QU`+i7xXNk^*8-3k#Uy<#7LwbNpBlHeivp{T+W-rNL4Bs=`*W_ z9fK66Lg8Z`nmVix($kendg{u&%XJS@SxQA3>%l_0)~i*ghKH+DlC)o5^G63KsUG-P z`acb)ZTukaW38g0|^}jtkws5iUXyQ@rIRM^w zolTRjepm6`weo926+>4+#?^|u6=18(<(_vJ5?u4=&7VKE7kvD=F4w#^$hcB@w^Dk! zp|xSu0&ud?)#Ki|RerY|6u?bg3%cev-#gO@1n|Anoddgh%9l%7>q zvu8le71AACe*4L*Ei2|tk#M4}egaN_>nGREE_;In4bo*(8wRJ=*0XEbz<%ibqy$vA za&J-ypLvuV$)S${N8WEQ|G1sw*Ch#LsqVzgd#clW1g}S;TbAbG>yngDNf)iw<14e<7wV4P{V zk$dCuAF6TN8E|jOq!YO{2j_Mqt?#Ygq%AF7scIkLm|f-K1|nVe>>*qYt~d+FR({UqTO64pg){Oe`lwLefUG2|p>Xo5xcaf% z(u-G*+q!wn9<~?jB6(BCx(SKsP!zZ4=p}Y=R0bhf5c2AG;3oLHwC+5c$LC*(lqMwD zZO*I?l|OZKxFg%b?4k(qw>3haMamQqa`*`WyZC9LN*d>+MMVAkm-xbufueGIZ0T47 zKx|xZD%aXdy?%RXv(kmP*_hc(Clj#tN2G>MelEZgq4CI|jUyEdQC}>DuG^N#b_=)J zR2+Zp$`=!~a@_gMP#vg-Ath1d17+JgPqW&@@Mu;_%-m4H=Q0ONtDZyUf64HtrUc^& zslA4h5<_olYUaJxYuJyEvTu$pO(QMxdX3wg$Yya%_+Dd*_&0;l7@6RvMiyNX3#y3% zkD8z43b*9uPV%Kpsoj*xaO}xrm~2n61G||cV$S*@5nD8P!XEE3D>M+JH1Bg7g`QWr;J=!TH(B1i3sxsmk1WZM|Jh zrIfvbA->={0sqpI%!OPAVr1}lZE*adTeJ9MHs$z&;swuw{I24zB1ZL=fJiTR$uM_x zmgsEDK%gy%ze?sUX|v-WQxBKenfTQU8unyGWr6E%3N!sjFC{i+XWt~EcdSOQd;Dl4 z(#)jbyLbYc5~JR;XE!l8o9GD*%~MCQz?rs=Hp1mMT9pB0jZ1(2pI0 z=KCHH{8h64`CteBG4<7wu77@&@NZvb>W44CGoSwG=^X{0-W85-o&SA@zVMBfCs+Tp zkB67fLl2!1mp5!a?Ui7rxB2}zOPuGLa&=L$8QWaX{yXU7-WBDFqG|)Sp_X)I!KV*i z25jF+4B3JI21qlHeh=TEqj~e z(BeEd@6KoE-uvGe6J`e%g{{P1z(wF@;a=lM;U5#|gdD;F!au|w;v(V&5`yF+O(UHq z{Y5S#Pa|(4Unl<-xq8ZB= zADKGlGnSBLWF@l7SUs$ztR1Witj}yY+s7_upXZ=BZJeWA5;wp-$|Lbgcz5`<{L=!V zpj)s*7%$u^d?gZ#YDBw5U&T&wqxh=$gTyA8DS0mWDlL|tmg!`ZWPi$=<l#@H)%Sw zY-o9b2izzEh|M3?!9+hlTCG(pm0G7cTtov=%(`VD5jyGR@b6o-&E5H5@ICLc{oA?g zB-?e2u++$Ye@7PlkiB^C9pGh8sqdQ&O!OF~UzOVo746!^TRzi@1*>Sh=E}!dw6tBC zu3~7=P2OS@Yw*HunyprufwA4l@i;2|TCfb4lv7{^`{LEtc#Xd_{=3_)CujKqQhE?X z_7acRfAn?KFeyCa8$4SEpb$mJV;5OrUlWG0*KgOzIOk^m!NU&8)2&V~rVO*e*{}K= zs9bU$Y3U)xuRffg^PK7%w6Ku@ilB7yNv{aK2o6QM6Qo5&3o0Vd=sYd$riKtGXjRg{ zjdZwc2UHrH0ZCDTOp&6P$`Mqd69*lr$w3X;Ubl_9-LQ7yzj-8d$d`f&V!ECqS&vYz zJT|sm*>`wk@e#(Ez0`zsKq@LG5umx21nx}CxpJ(On4Z;=QEyRnWy$01>SB^c&_xK}KiMi+L4XAq+N%JK9^n5Xs3RGw-X{ zB8V}+JD$&wx_i3u1W-aD1hJr%Esh}=4 zogTi;@6TW2Q_K!QcvYgmU%%!%G5+E5n;M9I4vE#rt3UWEq8Vf{*Vt4>6x5~^)-X`= zg#y9b*uqPn+zY1jHxtl$L*zWQiUm(d0|c%F!P1tcOYGioa;p1L$&>@_h-ri?g@n4@Q{`0dm!Jr>4F(xz0&6a*axg^`hGwnyLcDQ-9F zVDyDWv^!;o?LPa1bK}Muz#AJkLUs1**|5m~Xh0J(p9p;$L zZN(-sQa8;Mo^Z41T&DL}fG+m?|O~sg!?{a z=*QiDGH`(vU_S#nM&Ez(9!IC};0nxxBiZLpeEa0y!5&O!ln0nWpvur2|A-iH1UJ1- zY;qB^I~2wlIX%CtF4!G`K`sP{@BJc5C)-d+I_svt{<1}!SgSS0Y;(CEMP9gY`TC8U zH?LpQTNGe=`y9jKu!f#7xOVNDC6nyKLO*V7UbtAVSGrredU500a!h)CY*ypg?N_KW zM;|mP6H_xYBo5FA`WR8BMQVd^o!PQ97!ws z%rGl3+*@9L(S}{+@}U#0K9i3>(i|Ba94a5%%QrAVBIz!_Ay;S&R*S!hzyEe_y};3W zOn^P+SZV1cTh=UJzIyAfA|AEpGXf^3hBfiPM<4He{Tlc7AF{8P!=`;r%}!BPmgD%D zP=!ffWl*k;eQgr@tei4HSa<1R?dm^f<#NUmnd@e4-9Ru@o$OgA&Fw!4j< zO)IS5lEC)v(qcA2+nuAdU4T>N#PSWTY4(5AsbuaA_@&}D?oOxWiqdMlOhStN_2gv# z|HNzS$0#9#nex!7%&3Qp>z~`>MKtM}95<*%Tx8_QE_mmr>pd1a9OFi}3(P#zoauR| z=iZ!fquhO&`eE9-E@J=Hd*s~SdVwx4HS8f9@+TpLV`Y!?c9VAhhn-4f8Yg2k>~v~X zZ$dj&Xg}P*{S*O@c)ZJGi0r_oF3AO zLL8VfL9B!&ObCegMI-J|REzE@*)(a7Qu;ce8eHsi23_DdXingp`6g8d-0jp_- z*~(r=+Z0|3cjgo}M1i4@kJv7rlo42T{ycDIc|Kcd(0>l1tY`zLqr1KY@VX@#!O{9w zc5dS?&GSjH7+8q8~pQvP4pCXFPJ zuKs2qbnbeCM5O&De5v5vQ340C);hfW8PSfRinRA)AE4EEGWDi9|n%I0MO^UcF7!sn4Z|k)9A$e?D3uL#$c7 z0AbVixzfHDmD%Y{t99)?M_i9v#Qmc8hW2eV!RSU^*ELv}5_#V1KS}pIZA9 zn}eKF^We`6XnCuh^1yG*S(&v*5M0Zoc~Dwnzdm?Kzqv2`sM&_tKvJee8^beg8-g>i z+TnocqzS`hnCh+l`i5JQ2>-1qzZAJ8>H1F?q2^AKZ+ZYrb*nOUoTD1jhXhK9do#vLMlEZYq-Bq?ySc+r>*)sva&J%AgEl>fXAmb9au`uc# z;`SV-xhS~h5CHjO$_BkY`N3j`gC>lk#vu?TTEgP)+9q4wQ5GIsA}8a__*mdg-P!+o zbJw&VoQBA?@3NYiU!ZbLHjug zCWGx4uikn3?8UEt|3A#C9S2u>`*1(sJH2(ynr&wvKARE@VX8$UMU=s0O-N40R@Q?C zbLDIY!MC6nS(ceuI?*xImJ^+%gTc7ZsX7R?|H{=L9zA{j^0zh$;5Z~l1q z;ZM(=e>uGC^KY+z`RU1nyEiXiItGsQ_Tg__Ik|7=&OP6qxq74b-Di65(eu}D^y5Sl zZLHH7r;~{$sek^QClQOKGO1K9S17+k76XgH;t6;>9*4!=m@oA$i_N0bXw(o2#R{}Y zhmu)jaicEzO3nHU%`?Y*i+)(R$biM#K%*|mUUxQ)$y6{};`O{&Te-iQEpP#DFH==8I8T`4gDFj9Hw;~dT zO$)&=+^Z`uuMe2OoMW|)1UCG9cI%B(8E|8MG#qniF?uVX;v5Gm=heghvi=w4s;RiX zI1b^?8iDchzynE}{t1uG{3qR8$sPQiC3nO4VI#7pt#oV2gdiitg2OQ2-z@Q$82@`h z=+l=F|J4*Jz8U=khuP>)@|Vl+CG+zw7m%9`%Cttrt-OAShrSt2h7B`=k@?RsipQ&{ zpLova29#3mYEk>x@}!gj7p0_92AVc-E+u}O|0k+-zLp}D5N0uZOz9Ld-CyEk)zlTs zcwW&pEZ{IUKCx)>qm!td7c^pt(tvhba#M*WfpZloOl4gq;cU6u=g6}Vm=bRI2Zd06 z)TGF-sw0EPmPY^1^WUjMr2KuO01I0~u3B(MVZQ0JiyR|=poka2yMPACE`+HYlYrN~ z7=Gx5DZ(1YwFrW$$c~V9@B&ZoB>poPtqMtO2FEpx(_)&;=$hO`KOLtBO8wWLUL@XS zDuI5%tlZ&+krcwcFdHcyL5;sTM`gAsZ}IOU7BZ!C<1f_uU%bNWqk&eJ)RKhO7R} zf3rlvY_lJgIb!=edkA;7!6o^9_AethFl!qhxI1n%slRKj*=??vI$LiJ-lDquyZ_pI zcbH5vJt3T1d2MI-$1%@)1&P>?jfwsa-C}>2Hgz!b?3KECuw0tveJOa9LQnHC;FEH= z&CmJw{%nKNcRa(Is<-?a*e3I{Jh1&*|38;43}*sIPH;MG=EHe zp2sANDK^HtysnIzHWVdAxyg1%j83f{HyqPi?)OB>#9XFPPG^Kr z&@_p$JoaLhN^6LT^W+o(-^fN`GpTmd32C#4az$na9B>*kAulSpm&+d>=GWy*{qeKK;=?T$%}}nm4mfSB?++cR zzSrs{29z*NweI5ywTqZ=h;6TB^315cI9f@4o!o8OaU+9d@8WS4X6L4BPDm5sYm$sX zWOl_aGdeR~R$Wa!3LFI~7{-jn5dh!U^l(;Ioza`4v*kL@Vzf5xq}`POHKamX=sdDV znufeopwKE5&NQ)Xo6r9x@hr~9sqe4FZE*_7U>pYY+4el8vI*;EQ}EdAq?`4k8nY+5 z;fO)Buk1nSU5ETu-8~ zU6d5lJ4}39m{qGBZ^Z=%u$NP32pN!9ILa9MnzBGJDzxLgnqJ}@>|a*W31dE>1R}Sy zf>$U|Qoz8;09TauU0PFgs@gCY{L~fZ_)MvFvgLdR$vVthX1PWk?VVBUSJSWHzT>X) zU5ZhLl9_K<5BKe6y}G&NGUvrD6}uS27-DIs+@UcpO!q!rUCKcOoiJvWv`$(Mh`5|% zR6(NY!wsHg>HlrmxOvNS#&+TC(aJq1!Z6sr(N;pkcDq*m|8aHgGWeJ=I|kx7LXy&| zrs%Le3K@w*m{@>VGXm8n)`7QMHEGgWoo%EJo84@qRzT*@u#JgUAZVx@CX^G>BuTK` zs1W$(65IfiijDG!F6Zc$x1zOfiY&Y38Oia;s;hdupEv1A`k>XXhEfQ?K(yo zLE=>b8C}a1@K|@H`#8}xS%(zJD0-Wry9tJshAhUf=5FmG3m0wZxc^0~K74iRMXUdA zM5Oa*a2#}ZO6T zzfdv5}6-tSyF`EvD%iE%uWyEjX z)R2ifA96|feB9+m86_KmKqX-K6yf`2{sS-|2LrGV;HQ9uu+^YyiMA*#tNs5m^{gPq;UQdUjS(8H5l1L1v{d~f>l&+Pg zE@nmKwBz|QtGUkS^9s-MiV#aHC5~dL+V1U~i9*xK09PDIeUqA1bZ%2^+OVr@PV&$t zUjC_UIEEGw8DP@ld9u?afQG`Yleo_*BZO=2G}Q4oD}vj3rONUosib83%v*)^2{w(Q zKQ94vO|jjwU?GzI68Z(SrPZrs8~2+9%bR;H+`Tmw=!;AG!R!k!!fRoi^Arh-8I)w-+(K*Hn)B4|XSR>zi$@yJz=V_q#EpxG@FMxOL< zgH`G4J`QJ$_1OQyH4@jN`YD>gES2$F} zF`BKZW?u*?d9bU(Baz0TBa+=dOd%T<{#*{=-~3&Bp7glvclNWWhlz4y`FK`s>>$TV z>+J_HuoU{js#@O87qrQEJe|LIPQx_V0Bf%__pW@J%jPTHv9tTb3@6S;hoz?19?WQ% z{W_WS#LQmSn~d$0Jd(-sV|hE)pd2Gh(W(_|*mZX2# z{W+2K5IRAP>-u*LV^mFKID%m?wTXH|HV2P0sr?o6QxLXwXSlwaRtl=BM9WB{2!%~9 z+C&G@tH)>+HT=8;pn}5?3@fF;at<*pDG!*B-C00bRSE4}x>c?%z-gydITXnJ&a4+n zkg?wSb^(=!t%YKy#)aBWH_-wTTT!t}Vci92Pj9sf*^p`4R*e=+*EiNrrofGbfYi#F z;edeFoCkg@;T_KQ)f3St0Ko3csu0o1nYG`q73sQbKT4zWL~Nakm+GA0fe{l7@x4}- z;FWY-cF=@$%n9b`}2&0 z2Lz1-K{Itr*BkXZ#_<$}w=fL#VlvK@)&v(a@(w??rZb|R%$8RKxn36nu_IuL6oR=< z&2?6ZMPV41Zw~9icjn~Etv9wskoz)4RjOqMkc;8C=ys0A=*C-k4h1wZsXAp#8x-^_wSZeKLja`pcj83he zpA}GL+LZ=GgXi%1$qlO!C_{~AaAw@3CVnKUB8AtbURGm}o!MY{<4cVP!*c^9ud!NK zfCQC!211pvP|gk=ZHN3?D}(3S$BQNBJzzb`Tuqm9AYZDqPx4zwTejctf8oW!5cuQG z6vF;nk^?K?DKnZ;p^G{WLaRvAj?axbTPyzD>-eR)sI|$~XGA$}NutAtX`bh}z$-Rk zKNZawt#2oxvQhh_Oi0ft8OB2lMr-d}wSoD#lQd_Yu3^$?<<)6b70#6_xqN0|?4LWl zdN!9Xegy~Z7*SQGzujnEoj`(pM!6}w_!Oyxz5(2E&<(k^dZ!vWIgP7~qZ9M#mD5B; zkqT{69Jf^55l|W*JEKp77=VlSvfi#?{>JWSbQQ0JedyH;rWt z&zyGkPiHnnLegV7off-gbK4;nt`{Z*8()U}5VkQoQY-09*N`~d_iSysGXxccs~9QY zN*`Ql_s^w2L+x`{+g%+C`f@6`?nyv?DMlspAbsFGUV>= zRB-QV11;>g;&Lxt?tm+d<#S2|ms)cS*BTYINVv1^oMD z4u#EOr-`|vYK`?WNtX3=fsDgQfFfW#!duVW-XiNWrT6}^;<}TK$9?y&35a0raetxw zp8ks$ecSrgpKArM2Yrk=4sqMw;st??#ee>y>3bsB5(WbpgCh^-kpIKyYB-}MTFw1M zSoG@DirkFZcp2MFSO2~IJE1^Gl>Jl~ZEg_& zHO29Z?Zta0gcxhh#0VDML9|1`lb6)~soU7}UH0D)wV663ze&tl1Hi6(aC9j0TAR@C zl;&&+OK3Q&w)Prc41HcN?xM$nRvc#cH)&$QM7Lmf|jN62(cD zmqkYWZbtP>bm6Bw=@iR;F2T}^HqZm0>i@HTi~OT*msWJBJAL8*rQYbB%^nu&J<|MU z-!G!bQ3TPcRq6-eUsjMaUG?($Vi(4loWQkOK97o#>dP16;rcogP?h+BzI<{2@o*N( z=}8OOa)ZKQ%2M4f=HurtUNbP+46}@M)Z%ryTen+{db3t6l)GSeWKJ;*Ph1+Nt)EcF z^GbF2Vi6v9*rdqwx&E`)i*RrG;N2r9j~_p<=R|X8Yr_(Lc>Vw5>YiI^U{tx!{R=IT zf3$lg^0#&&X_&Y1?;in zddxb(fYrgzGye7SkG16&&mh{{`Vz_?1{Z&KD6Pwf$?~|Z)(M4S^bu?MVS4IR^+KIA zLk!2VAgLaC3=h`NGnWu7Xe4GRuorL1k4!9;+(jxE(Gf-`lH>VmJ0GQ)C!O zx2UZg3~eHx|3PZGYOm)vmO(mjM4rQw)P;PjBsWIKA_K3$JP%&Hu;U3nr8E*{LjC^M zc?JcGF>~5sSTJogn?A*G1_p+oeIZK9cpw5$HCgkZKUH4G|MNe!Jhb;sM~7a&{zKlm z&V68>r)-qkTA&&lCTo6H^8P+Nm+$q4mCk*!LDx z6K*zJw_75GTyH)QYV(snEsTUqY~iDG)(ZB%Aj>Y#V;APKjgnFHlE=v?i#m9ugl}x) z#xXCG{%z z>TO#e>7!sx$G$(d$^*R?F+QNa;{(CAbb{0zP#dgrZkKcJ#%{jXnQQXomuTzVX(N)C zAG0njRcwYRSPF0DgWXE)Tckt)U}6bd2&thOvljEXN$}WnIj1FwD88dd2U^tmOoc;p zTLpAMSGYJD$X3wMbs7kr?vRyS!b~}SZrBY~7@)B)s}%1V3K^ak5zr#XezQO8SttobmwhEiCd$o z#Q&y(shYdgtHnB;gyNuoFXnr3g-+d$N)iDgW-dZ(m<5cd3>EbGY-%`#ki8&*VjoMR z*QwD!^_oE#wo77-_EI`yIluu9TRRCxu!>fuVJY1T=~OboCH5>H*d&<1+nzmJZ-#A3 z{J1e^Dyg2WN=S&>dP~UjRCVo?(4kY36tUMF7yz6xo5e?i9yZQplbxgXv}1C= zIqfQuk+0k>XP>Mv=jQ!;#<#+7OkZs0{)xVzfJw##41m5m-}6|H000=BZ(;p*F?D7} zqX0`Ahrbn&)CKY#<~$2C$-Vwa$2jVX9;m1W1tzmiVud$hP=v+mx_GcHdLh96229N8 z10Y_d&+_Y>WBCd0M(3l^9&?vK7zvw;Dhx{O?WX?k*4699osrV+mEyg-jjg=+UP=~B zcFXI$QmQ)_{H@PacNUGuf;=d8<0`Nx(w$3Z$ZltUTpCOKYcxu%c6nE{Eu;76_Pv7` zz(y?z+*M`89>(tKq#`z~_W}Qv-gI1=;bm2$UjC5Dyf@hhhbm+!!b3q@wWCCT%LHcW zIXk;nYN@DXWvOn=Yc(iDGlAZTtmnJ*{l3R{zV=`r6fY7S5p(E705FdD;R@NZxqD1 zaU+t+L!?iq2|_Q)NCP>G zqZ_4K+?Lks4LhAygNH(FCPDu?XZPA-F5gTU=^~Mp0>x0ynudC1!>>dxBgHXe#6(IA zU?ghPqIRlWVAS)&m1h5JW-1F9WaQVbDCRdgXrlbG@lhO-SS?vS)*<}QYna}R$u_)Y z`9Yv791BPs_^Cn>q85d$1hcDTvpF2{`a%Kf8IuzzQ~^ZAYL%I0gL+-taZK|y!2zj| z8F)g-F#UJy-k>?N_;f5{o2)-89d5Y*?`KQ6?ok^_!36p@TWa3z6ogs^IC-k96Y-6n zc4z(Ha3CKxCz1@(w`3%fr-ZI)T86Axx@qvD9RTPzvkp^3&)1)BY3i#mCB$V4y#<|= zN!QaVFzwj7@OEL{gdVTPOyH=&H8i-x9578=2XMs+xqKB54z{v?jh{-c1*Iz}I4 zOtDqc^|SkffiI8ae7+$_rK!Yc_f(-`B(O9UX?9plXWk^240)RHTv}-tg1N2hLgA1X z$wtpcq;;HQBwpp()S{6Vgn@9nDgfj}E`dR5(pk?r8LkUt_29|-AQ+ zk(*R47mGH>fuu&>KJ@#=Vy&ag+V8$()6r5TlglL`fi<-aS+<}l9GQR#qh7t=MuHec zF)a)yV#2s%HgxUs?<@4#{7^-u%gqBvQjHF&s>k#QVT?RE{z_a#@3i?Knh!;A+yi8lCjyiOOcx)b2%MIM`-askx(tuG$-aaXG8@^NCb^-H<|cRekld#T zLHrWN=xYt|6r=23AtW4Z7cbyll&>XcrHvWX3mDj~3%$(5R6>}ZfdLSL0y^8k`@lan zQ)^B;EwLOj>q>-=$;m;I22hs7u1V(&JQr>(PjA(_I#x@h*Eivi8Dx`16YPw4dudu3 z)(5O&8lo;$6-Owoi4GvLpv=XBB4!u2k`6gt7h`C`pu20*@?(0-ktZw6(Ru&G`E?lL z?s)0Ssf(oh4$zyl@EkFL6ceOV=kD|dnsLzM4|Pd4NP09`EiT^G1mwe~NZXBO|5AJ- z>7M9nZ(({TQyrlS*rj6^3THN%BCD1DesMJMk5Nm$(%~G@GIi{aZF>g)gh2PVx%^z( z-_L%==^bz1HS-ag{Yi|{vxn%2uzB%M@)t7B=bWL+wCzAXJ_H9l{vSiW7d0op&gRvf5`SD= zuL;SRsqh@)RV&Pki#rQIK1h_-%`7<<|3k4;+-utL!k2y&A$bLj0l!O;q+F%RiG+Oc z4(WK7AmFq#q&X^ejS8%&Gs{DJhm?8w{h#z!FnN&@hrj=OmOlcz-*?hFsU<(ft+2;) zoyBLJHtV?>qxM~nq_kTd(vYiYRClxD>@GomFh%5u+idE8)GtY4_wqFwWl>Mz3X)nY zfjJ|5>e3a2QfC{PzaJkHEYM*a%I`88g9#JLe8H$$qgy!nM%$Ck$)H`K0*Lvnt-U$c zv+U8veh?OoE~-WzOgE9xN)Iz3?5@nNCR10#P=iSgI)>v+v?cnyT5Tc{zQ?6Bs$mF8 zEuZcHfDEQC?n9&HPQkXUQN3cqwT+WdrNG8R8Bdw^d|c+AO}4z9i0X)YUT>BHvX6oZ zKy;Js$yT@7)@K-Rs-ajyfkiKl4+OA{#tX2~He_|y?^dR$L>UzdEUMdTYptX(g)G09 zw#FJYRuCD_aSWxOX^Y&%q7qi&Y%(kgywxhVV$4R$_0(TW1NM5hBNgpw(gpf>mYqY1hXe3nVEN<`) z$c${LU9yj`iB-r@f>pB9sH?C(#)S)F-WCUQmwP`ua>mKfg6-Y3^nK5UI#VT)XGs(3 zj+0gE%H?9Qp(ql^m)ADBDj?>5rY2EWIf)Pji{dCYh)xiU&0yH zaz`9T7N{Gr=q%T$?{%agxTx$w;k9&90SsgiJxA4PM^x6GK;an-FSVUJYgx=M7B@L3 zQcQgcALZ3S1TK2!#CpaiRNL5XG(Lo!ya%!e{Y+b9x>mJ%h6JDB-#BC0w(E;x)`}>a z?(`gmJ}+TM8g~@ifm_=+=;a{;2u3eYqr{n4v~e;(GD~ciD~=QC<{`1?o3?K|VIH{o zQcq0{1A<|p9WuBgXfH0vT&d4Rx)&1Q$oM<@dL8AihlA#&ZJ6^A8QyA4B< z9lX;vV2ll5Yz=cMHm{tG*&|b@I|)x$feB0{fzC^b8`8;L%FWP7`QAVak=xn8O7AZR zE3|uqA?xe9rs^CgOc1NH$x{KoiHyr(DHMPLBWp&P#$+lmQpr=90`_1YW9!KGc7^#{ z)$?|CWS)9FUO*nytkgJ07SE-;-9Es~k>44$Il=jJQcvLCqqG4 zrf)^ex&~0(D&{MQ`S)ue5o$ZrNN5oRo9gr5#SVgmG2U1qeg0=X=WHY(Qz5%Yuinfj zD7yMrDekj-=T;&74^dEnOfeW*Vi!ey__BMQ`_H?>3BoH0QRNn9_HEyglsVBqweB`= z@YJ6Hz93jho^uJq|DZT5>e+W1g1GnT3rei+5<3~c4?0TNdcm;s;%fb8!J#xaZ%1$> zHGd!5)bCaR2EIc^pf-3;K%B6&4{=`9b7xW z*LL#QoHBe~Uoc7g6!CgFvA#sskwPu0^Ff&e6UK$4ouylN{_o>Q>5(6OcO}w z4dGb5)4e~Y>DJFUiM)@6m_TB2Lg(G3-^VC2kl| zCVcHjszMeMTHBjjo>c-sXOmvj_1Kv@BWL@LGn zI?jGL6$V$KdF}gFS;tHybK)&gEn>R$cHf!^jjBKk-j*3$sn)&~Ss8|vXu24CBDLXB zIqKW3An`3|)a3(QH}-zN@oIS6g*`FGR&yt+8&5uwkltBhK zAj?PG{JX!vAX`2dx3#_uura}L=zf}~Hj*R2OXKAh0BkQ-0ZuMI>?IGn2$m}W621lq z%rw%{O#D)cHTT~wTVnIm7JjACfCOX#xhRl<1nrr@^_IdJE|_Liv!K_L3J_wX{-+gJ z9Atwtei%iBegFiqxiY?T0BdZ@Y)p-1vRArZ|Gs1zl9;1)#V#lV3}))MN1dv&A!m4C zU4*{Pg4$c&LF{q1;u4{l96H|ukPazKL~KHkKP>o%3!+EEr~swt6OB=Cv7l8%ywj8!!N!Xb#wAG`nW@#-P%!ry;3AKnrfMI8=i4^YbF zo6e-vK6#M-X0S}2+f0oX&9?-8p3Hm*ukHV?veET(Pm!OJ(I@7)m$7lG{&0IfHmXZY zu!cTr_@{6T^q|W*LLLK+At8`=bgoscy6&HG-mSafdyt@@`4BVe}K)}k_g z%*7OiJ((PM58Jvn87aP?(>B`b?%D7uD_@jsXRpj%8(`niO3Ho^-KXrMLwM1%k;o=+ctImQu}>%oCF6Ke_lu- zmd)I&qboT-K@N=nWqSVSZlm66x07(co7sg7bP2z@7&!dC8I@C=*A5O-WA1><(xC;^ z`vZroVS`}c)y0~x_Iy;<^`gGFf4Y;0yk39NGH;TL;FsX>`5|D$YUV;P^64=8%d(f= z-}`cX{mq>-SLwRvZycRWpB%{fN0Tkjfo`bo&`Bas z-wEk8TYv-@7m6yqymosO;>V9yj-ER8ypm2;zc!#I2CIZWEJa|9 z)g+AWF-jF#trie}zH3E_nr$1h!y~gVsL*y4X+bSX zJl_v}-53p%NJ3l;Z5Yf&H^_WAXoBjdpC5{`NEGab| zTRQ!fN|c{zc1x0TfAGJ+?(4KEBA5pYuD10fo?*tBJL^#zDvDw2CBfXOQ(~xIJ>qB$ zccz_L9YRCpnI6TxU_pfoC8b`lIt(#$xo%mR{!L6(?Y@n{_VZys3`d(g?I;Zn+5Y=? z%K6sV&OrpDplulq6EQBGSg0)?;x_F_&WO zte6EI-eDezFrjoC`nn&$_~v+Mu3ejsU#5W3ur+3v`*+purCeJ46@PKP!JxVo=DjIy z(+jXzt%{rNPNyfut`_xSHrw-DT_1>}eu;|R@BLHP2*|@`O>=jmJEo+7{$;Ew8Vm+v z*8k9?RPvxHrc4Kf$%3%Z>4M9mV%QObCJ2(onNrTlEinfpk;zaZ4W zmB)*YE+66dgFGo34V{l);YmM-ER=bi$2(fE-D`!IXdm-8_+}a%WI%@Fj+3_@R$x^k zT42{xjMiPJ?-{xLakX8}@O-oBy=j1fDh=u#7h;Ll;yfjP&}*f48xv?7O(`3$Ow&W* z6?4>sl;;6}oh%C4?1A`n6!y^S7BTljFJH{9(WuezeubbOjb*ay9l(UuLl=Q#aam+p zSw=Pj3lhrM0qlC2Tr_Kdgd6h;fDv~e{H0&2E=12+KKK6&!fJQix!+%g%bgDa%=FbL zYJH@q^7Zr(DIRBF=Aa`wOm3e?`wKkMeb))Sye97bxUmv7p7xWCjBq<+)wK9%97mw_$s6YD_fr=r4b?8!!n|!|)uz7mP{wyY3d@YUhI^ zSN_7MJlJ1owz2s%|Lr_pZs9l#qW0?^GM9$STie6y5OP0fG+$oed!3V>MJns07fkA&w#&Xd(-|>yg);!@1qbStphlJCpyli_;uIae60g2wlqi*6}~WjDSGQZ!!Rsr!owc_A=xZ7!|`|YRL-UZ==sFSHbz% zw;xgIpi53LS5C@stz#+%DD0C13ZdK|k{}oek@68-lI;)APQ2KjeP5@xbNg4kStZD5 zCLS2qkH4y0g2e;r`Q)gy6V!|4Hk?J^Z20iL{;2Qt)R2R9lGB$iwg0MiqDiCKP{Ok5 zy|_$x0JJgwORZNuo=UG{_WGg8|3o^PhbGlA{daP2Bgt@s@wN0Hp&XZKJkpURw^B# z0@h~JL(W+$CuR)|qt2rd_uto(>}0)gmqYSb{>OaPeKbW}iQwH?i|j03Ra%fV+yP_! z97|S^Y?X&x`l%d&g)}a!+2pm`6%fVLgE2y}8dW>0%vze_s4-{=LGrGI9>={r60zU) zP3c=AU^$=k5DXP*kxFZ?K#ny{paEm5wH8BBTe54LCW6i3gB`BRmwnRHv}TIb2Q9@JVsu3yjI>{2_+#x1T8!rH)dU=_Ha?@4dR4U zf-zyE=l06-F&|v3@e(Zs9FI#bn`sFtPkqGVtT&;)TiPTbG^>S~4>^NcAH$G`y7hnW z3>L(`*B#XuhoZkXS`&C4(Lb!WDcRU=J=KW58?932P8duyQ(x|cIX&kZP{0g67A+WO8IcwNf{BBWY! z^to`135a&Ih@cs!hl{TScj#SGUF{LIOM^0Z?g<#icdnLE@1fu~ zLj6}77n>=!z@Myy8TecTm}%1BU^G)}64Hr6p*PP7AJLH?o?rjozJ7?$RUFP=zrUYE zDK|4|#&8%6g;mKn`Wq9#Ebwh4@+!*9DgqUaTU}@7B9FDSR2b#2M1}dqHMJG}Zg9cc zmOa7&XgsikRqjiS%@vL`5o5NMLEbApK!2_hhH+9fqr@jkN+c2V3!X-Q+~Ua1u@rTNfkIh-?~r4mBSSnkOqX^u(?eOaW$ysnT_O!41|4x)@hk z|HVe;H(Z@SnVWVzRzk_>Ytn1`3k17|yRDspi%dK^K+PS8S?w)GgI<;B7MxEs2VL}$ zN*7VEW-D6R-mIKb4H(9*KO2mwm+;6WcOsx%as1I@z%l0py*z{S%eEm);(o+4qK0^G zEHbf$&iRkmL3&SFfm{dq^2SN3ThN!#S0PQib|Gk8Sf)LANtIK?H5h<}!%~}2ivER# zV%U&QNYRYKDCkr!+BUn8Yd7Umyzd$zYJjX!%{H`?&N;H&}6>MK(4&(WmGE+bbZ{ok)mRsFrR^jl*{&e60LYDv?dXBWO7Y zCiK+>6cdi15``>21b3kpAXLy&xR#*CM2L0BB>5Vvn`X}1WHlXoknT%{+1Fdnm(u4OTk-#|dp@h{0Rk^G zLj(M3`l4yQUf$Hp?xs5HCLtekW18f)NEed?+*-VWuG7)@?&DGDx-cf4yC$xKly|Sn zR&2?HFGJQ1H%em7WT=k^9aBX3T%gH+FpR7Yzp-SrT`1ace(G?zL2sra|oz0 zm+zse(`#S>E7wguk)VD&(SSaav!s`6Q$@%6mUb4L8=aXuANS9GOCkCsff@idC)zOD zKkb{BSTmovq9MqRW^SD%Y6e`wErG3?Ah17(KpcY)W|8f^*KPF$Hi&B6j;RtolLrEg z1q_z!&&jl9O(wQP;-~;m@YCz0Yz=>=Tp)jsJ>m$TC9B#WWAAEI5YB9@z)+ME1$?1h znuzLGQupq@sf$6lH|&F7c3GF#i>P-qSJ3%1H<9Ywj&{A2l@;vphVTyltCSoPv- z!dbF9O@4#tXHn{!a{G|v|EWg#>@(2*poDx8DAu?`1>S7Lee>d?4g2K*aPZMe4CgB= zxZg7X=$HGar|L?Bj)?nFqr!V@I^9F>CLRMrLjN<&1?XetMv^PeR~SaN9bHy=Sw@UM z6^+fDp`8q`NJ^>QHO)3hL}EkX2=~Z=n9>+xofwjST1UJy)F->p zSBm9w=OcgQgO*I(sJ(0O+nc4CYJ3k6#Ugq^n}pzn4GA6Vl~J7K0-;3&-7pX;DZz2i z_pb#^xsr?x%>HmODFY4=M&AyMZ6(?Ov6CPe4Fep(E8+0kqYC3DQesA~ zk@>J)}xh^-u`_Z&F|+egibD5N0btz8O!4;NvC4hmS|F+(598mM__N`#+n_ zS8|U{hy3kQY3_3-8<@DDWx_b_e)ef2w4#~|5V|Ifpws7)R&Zlan}m<`hMEH3Lx?VF zGLP0zc{d{)!uYY;Hh>W`JWaS`8%WOMP`%poZjHftR9GQ1^@APvGxDi_iIJ} zg4Uo4Nd}-XnjA3PYUy?I^~_3i*A!j>1qk~0e2qJt=B-A&naN7U!3S;5(iy02;2u6e zOLRtCm%!2g1;HUW{7-aP!ISha@w6bO)c27+dV^=~sbK5Nxg+v>H#>Z*JOY;C2f)vh z6Df6Kr(*WeFrO&7t6h|*;rj=*R<$@egy%Z0D!YS=t@L717kgQN5ANwTfO64W0Rhu- zUlzX&JWa1Re}HHaT;S(*F9QrW6Syc~Dh0zsKshet4M;3#r!f-%g6i6CML zhp`&TdXJ>8!>Dp5k&eOP4VQ;DBt@n5xh^~mGy^hFKBObQ_$-?SSp`4?jvxrg8ZJ)` zY9WcS5GCH9l6JH&__!Vb7wVIlX|t z3P09ONa~=2HQ>W1F_|;s1rjHa8jJ!(r|5sU@U} zPl=6Uwkz+w%SEostS}Cs6vgz(Q{Vq|b5YbNQeuT<9&9+bU{Lk}go(iW3T{VVU{ruq zEVCvRvL|6%i?~S5LYAqBDjr?gDHrI6H06N5W@3Obf3nHQ+cR_mm)b&-4v!o@YAXrs6r13kFN=-JC zk;RD110yN`R2;7lO&R}?Ceu;-0&}uxT1ZbSik5c(|E^j8Ja{Kb`FS4WIu(O!fhhr8 ztxXvs&WD{Z0PN*{+ZeZwErY&X$m-kYf@$Z^s95k!Z@hJrxzyJ9P}t-#6L8Lrm4aiO zV?^HJTpEm*gx5WcmDW=|(*MIYvy6}UGZ(#eB=PEc-t+B$JzPMG5P2Obt#B+sYcy+~ z$@-257KV4=9ayXF8*owNJdIGF1Za4zqz1}@%DT5SkS-8F0S5p#50)Q-5Y(p-4B6g< z5V&en2uWmhgix@mB!os=kvAq|$p1G70TA_P2m*M$48Z`a#~}ou=3)p5@H$b0k`RZ` z-n1`-0hFu*Y|~%}2SPF(@J&4-0uZGnLiIO-w|1Z>UBaH zVxHQYnrfQac&>;{D5@uM6YB*h5pUtCW{u{WJ>JoC+CTL)f;QMbkqj#y zsI0K^ifSb{EGCifp0SF05XAR+>{ZjwYH8+=m(h$Qb5SwYpfUj()$e=q%+d?x8^~s? zDtqwyDvOq#51C_q)v(jXTxrA9LA2gMUH4(>$gn|IyNS_IYZn;CblyKbDeOW(5- zAIn?N+?yUx8VpYl$254pFcOBr_kqEA6}GFi!(37_0dl`msB*zYmnf;IXdFiMxJ~V^yoFw z2n7lidE!u>rac5L zeTa&tOn8yX?Q<-{vdgY?ru=27FEEtY--c>g=9Bq}8@&-2ad?I>;&6|k{B1~*6mEba zp|eu1MR;4^rhfO<6H2Gkv#$GlA+zh*qiIj6>BE#>NBGYVO>^REL8O)EdZz7RL9&#N zY4Np}MlYMuuFvm}UYLx0k!Qrgr)6n9A5%v6`|GdFk|=uqkANxT%vkc3#v#;ST|=s7$4KYGaHSbt42tXcY{FaNwfWR9Q&rr`1UkSm@-v|#v`G8q^E E05fT^n*aa+ literal 0 HcmV?d00001 diff --git a/public/fonts/ibm-plex-mono-latin-400-normal.woff2 b/public/fonts/ibm-plex-mono-latin-400-normal.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..0804aaff92260b5359330f63e05b9ac25ccabeee GIT binary patch literal 14708 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 { + menuToggle.setAttribute('aria-expanded', 'false'); + navigation.removeAttribute('data-open'); + }; + menuToggle.addEventListener('click', () => { + const open = menuToggle.getAttribute('aria-expanded') !== 'true'; + menuToggle.setAttribute('aria-expanded', String(open)); + navigation.toggleAttribute('data-open', open); + }); + navigation.addEventListener('click', (event) => { + if (event.target.closest('a')) closeMenu(); + }); + header.addEventListener('keydown', (event) => { + if ( + event.key === 'Escape' && + menuToggle.getAttribute('aria-expanded') === 'true' + ) { + closeMenu(); + menuToggle.focus(); + } + }); + window.matchMedia('(max-width: 800px)').addEventListener('change', closeMenu); +} + +const explorer = document.querySelector('[data-research-explorer]'); +if (explorer) { + const selector = explorer.querySelector('.track-selector'); + const tabs = [...explorer.querySelectorAll('[role="tab"]')]; + const panels = [...explorer.querySelectorAll('[data-track-panel]')]; + const select = (index) => { + tabs.forEach((tab, i) => { + tab.setAttribute('aria-selected', String(i === index)); + tab.tabIndex = i === index ? 0 : -1; + panels[i].hidden = i !== index; + }); + }; + // Enhance the fully readable static sections only after all controls exist. + if (selector && tabs.length === panels.length && tabs.length) { + panels.forEach((panel, index) => { + panel.setAttribute('role', 'tabpanel'); + panel.setAttribute('aria-labelledby', tabs[index].id); + panel.tabIndex = 0; + }); + tabs.forEach((tab, index) => { + tab.addEventListener('click', () => select(index)); + tab.addEventListener('keydown', (event) => { + let next; + if (event.key === 'ArrowDown' || event.key === 'ArrowRight') + next = (index + 1) % tabs.length; + if (event.key === 'ArrowUp' || event.key === 'ArrowLeft') + next = (index - 1 + tabs.length) % tabs.length; + if (event.key === 'Home') next = 0; + if (event.key === 'End') next = tabs.length - 1; + if (next !== undefined) { + event.preventDefault(); + select(next); + tabs[next].focus(); + } + }); + }); + const initial = panels.findIndex( + (panel) => `#${panel.id}` === window.location.hash, + ); + select(initial < 0 ? 0 : initial); + explorer.setAttribute('data-enhanced', ''); + selector.hidden = false; + } +} diff --git a/public/social-card.png b/public/social-card.png new file mode 100644 index 0000000000000000000000000000000000000000..fbb1f61991f02a8cf8939796be2a388cb8ca0d55 GIT binary patch literal 141820 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 Cb*4Q4 literal 0 HcmV?d00001 diff --git a/public/social-card.svg b/public/social-card.svg new file mode 100644 index 0000000..3a666e3 --- /dev/null +++ b/public/social-card.svg @@ -0,0 +1 @@ +arcaOpen Hardware LabINDEPENDENT RESEARCH. REAL MACHINES.Hardware,in the open.What works. What breaks. What changes.SANTIAGO, CHILE / NODE 001ohl.arca.computerExploded view of a computer assemblyA custom technical illustration separating the heatsink, circuit board and chassis to reveal what is inside. This is a concept drawing, not a tested lab unit.01 / THERMALS02 / COMPUTE03 / BUILD \ No newline at end of file diff --git a/scripts/test-site.mjs b/scripts/test-site.mjs new file mode 100644 index 0000000..3d4484e --- /dev/null +++ b/scripts/test-site.mjs @@ -0,0 +1,163 @@ +import assert from 'node:assert/strict'; +import { readFile, stat } from 'node:fs/promises'; +import { resolve } from 'node:path'; +import { test } from 'node:test'; +import vm from 'node:vm'; +import { parseHTML } from 'linkedom'; + +const root = resolve(import.meta.dirname, '..'); +const html = await readFile(resolve(root, 'dist/index.html'), 'utf8'); +const script = await readFile(resolve(root, 'dist/lab.js'), 'utf8'); + +function page(url = 'https://ohl.arca.computer/', source = html) { + const { window, document } = parseHTML(source); + window.location = new URL(url); + window.matchMedia = () => ({ addEventListener() {} }); + vm.runInNewContext(script, { window, document, URLSearchParams }); + return { window, document }; +} + +function key(window, target, value) { + const event = new window.Event('keydown', { + bubbles: true, + cancelable: true, + }); + Object.defineProperty(event, 'key', { value }); + target.dispatchEvent(event); + return event; +} + +function assertSelected(document, expected) { + const tabs = [...document.querySelectorAll('[role="tab"]')]; + const panels = [...document.querySelectorAll('[role="tabpanel"]')]; + assert.equal( + tabs.filter((tab) => tab.getAttribute('aria-selected') === 'true').length, + 1, + ); + assert.equal( + tabs.filter((tab) => tab.getAttribute('tabindex') === '0').length, + 1, + ); + assert.equal(tabs[expected].getAttribute('aria-selected'), 'true'); + assert.equal(panels.filter((panel) => !panel.hidden).length, 1); + assert.equal(panels[expected].hidden, false); + assert.equal( + panels[expected].getAttribute('aria-labelledby'), + tabs[expected].id, + ); +} + +test('all research remains readable and navigation available without JavaScript', () => { + const { document } = parseHTML(html); + const panels = [...document.querySelectorAll('[data-track-panel]')]; + assert.equal(panels.length, 4); + assert.ok( + panels.every((panel) => !panel.hidden && panel.querySelector('h3')), + ); + assert.ok(document.querySelector('.track-selector').hidden); + assert.ok(document.querySelector('.menu-toggle').hidden); + assert.equal( + document.querySelector('.site-header').hasAttribute('data-enhanced'), + false, + ); + assert.equal(document.querySelector('#primary-navigation').hidden, false); +}); + +test('track selection keeps exactly one selected tab, tab stop and visible panel', () => { + const { document } = page(); + const tabs = [...document.querySelectorAll('[role="tab"]')]; + assertSelected(document, 0); + for (const index of [2, 1, 3, 0]) { + tabs[index].click(); + assertSelected(document, index); + } +}); + +test('track keyboard controls wrap and support Home and End', () => { + const { document, window } = page(); + const tabs = [...document.querySelectorAll('[role="tab"]')]; + assert.equal(key(window, tabs[0], 'ArrowUp').defaultPrevented, true); + assertSelected(document, 3); + key(window, tabs[3], 'ArrowDown'); + assertSelected(document, 0); + key(window, tabs[0], 'End'); + assertSelected(document, 3); + key(window, tabs[3], 'Home'); + assertSelected(document, 0); + key(window, tabs[0], 'ArrowRight'); + assertSelected(document, 1); + key(window, tabs[1], 'ArrowLeft'); + assertSelected(document, 0); + assert.equal(key(window, tabs[0], 'Tab').defaultPrevented, false); +}); + +test('an incoming research fragment opens the requested panel', () => { + const { document } = page('https://ohl.arca.computer/#track-agents'); + assertSelected(document, 2); +}); + +test('menu expands, closes on navigation and dismisses with Escape', () => { + const { document, window } = page(); + const button = document.querySelector('.menu-toggle'); + const nav = document.querySelector('#primary-navigation'); + assert.equal(button.hidden, false); + assert.equal(button.getAttribute('aria-expanded'), 'false'); + button.click(); + assert.equal(button.getAttribute('aria-expanded'), 'true'); + assert.equal(nav.hasAttribute('data-open'), true); + nav.querySelector('a').click(); + assert.equal(button.getAttribute('aria-expanded'), 'false'); + assert.equal(nav.hasAttribute('data-open'), false); + button.click(); + key(window, nav, 'Escape'); + assert.equal(button.getAttribute('aria-expanded'), 'false'); + assert.equal(nav.hasAttribute('data-open'), false); +}); + +test('support return message is conditional and does not assert payment verification', () => { + assert.equal(page().document.querySelector('#support-thanks').hidden, true); + assert.equal( + page('https://ohl.arca.computer/?support=no').document.querySelector( + '#support-thanks', + ).hidden, + true, + ); + const thanks = page( + 'https://ohl.arca.computer/?support=thanks', + ).document.querySelector('#support-thanks'); + assert.equal(thanks.hidden, false); + assert.match(thanks.textContent, /If your payment completed/); + assert.doesNotMatch(thanks.textContent, /Support received/); +}); + +for (const route of ['index.html', 'support-terms/index.html', '404.html']) { + test(`${route}: document landmarks, unique IDs and local assets are intact`, async () => { + const source = await readFile(resolve(root, 'dist', route), 'utf8'); + const { document } = page('https://ohl.arca.computer/', source); + assert.equal(document.querySelectorAll('main').length, 1); + assert.equal(document.querySelectorAll('h1').length, 1); + assert.equal(document.documentElement.lang, 'en'); + assert.ok(document.querySelector('#main-content')); + assert.equal( + document.querySelector('.skip-link').getAttribute('href'), + '#main-content', + ); + const ids = [...document.querySelectorAll('[id]')].map( + (element) => element.id, + ); + assert.equal(new Set(ids).size, ids.length, 'IDs must be unique'); + for (const anchor of document.querySelectorAll('a[href^="#"]')) { + assert.ok( + document.getElementById(anchor.getAttribute('href').slice(1)), + `Missing anchor: ${anchor.getAttribute('href')}`, + ); + } + for (const asset of document.querySelectorAll( + 'script[src], link[rel="stylesheet"], link[rel="preload"], link[rel="icon"]', + )) { + const path = asset.getAttribute('src') || asset.getAttribute('href'); + assert.ok(path.startsWith('/'), `Asset must be hosted locally: ${path}`); + assert.ok((await stat(resolve(root, 'dist', path.slice(1)))).size > 0); + } + }); +} diff --git a/src/components/Arrow.astro b/src/components/Arrow.astro new file mode 100644 index 0000000..d3da58a --- /dev/null +++ b/src/components/Arrow.astro @@ -0,0 +1,22 @@ +--- +interface Props { + diagonal?: boolean; + class?: string; +} +const { diagonal = false, class: className = '' } = Astro.props; +--- + + diff --git a/src/components/Footer.astro b/src/components/Footer.astro new file mode 100644 index 0000000..817309b --- /dev/null +++ b/src/components/Footer.astro @@ -0,0 +1,34 @@ +--- +import Arrow from './Arrow.astro'; +--- + + diff --git a/src/components/HardwareDiagram.astro b/src/components/HardwareDiagram.astro new file mode 100644 index 0000000..8572c8d --- /dev/null +++ b/src/components/HardwareDiagram.astro @@ -0,0 +1,297 @@ +--- +const pins = Array.from({ length: 12 }, (_, i) => i); +const fins = Array.from({ length: 15 }, (_, i) => i); +--- + +
+
+ FIG. 001 / INSIDE THE MACHINE + +
+ + Exploded view of a computer assembly + + A custom technical illustration separating the heatsink, circuit board and + chassis to reveal what is inside. This is a concept drawing, not a tested + lab unit. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + {[ + [23, 23], + [297, 23], + [23, 227], + [297, 227], + ].map(([cx, cy]) => ( + + + + + ))} + + + + + + + + + + + {[ + [28, 26], + [28, 44], + [32, 168], + [32, 195], + [146, 17], + [166, 17], + [274, 216], + [198, 230], + [12, 105], + [133, 243], + ].map(([cx, cy]) => ( + + ))} + + + + {pins.map((i) => ( + <> + + + + + + ))} + + + + + + + + + + + + + {pins.slice(0, 8).map((i) => ( + <> + + + + ))} + + + + + + + + + + + + + {[ + [28, 15], + [303, 15], + [28, 228], + [303, 228], + ].map(([cx, cy]) => ( + + ))} + + + {pins.slice(0, 7).map((i) => ( + + ))} + + + + + + {fins.map((i) => ( + + ))} + + + + + + + + + + + + + 01 / THERMALS + + + 02 / COMPUTE + + + 03 / BUILD + + + + + + +
+ CONCEPT ASSEMBLY · NOT A TESTED UNIT + PLATE 01 +
+
diff --git a/src/components/Header.astro b/src/components/Header.astro new file mode 100644 index 0000000..f9daa75 --- /dev/null +++ b/src/components/Header.astro @@ -0,0 +1,46 @@ +--- +import Arrow from './Arrow.astro'; +const home = Astro.url.pathname === '/' ? '' : '/'; +--- + + diff --git a/src/layouts/Layout.astro b/src/layouts/Layout.astro index 5ff3b7b..e125d56 100644 --- a/src/layouts/Layout.astro +++ b/src/layouts/Layout.astro @@ -1,26 +1,52 @@ --- import '../styles/global.css'; -interface Props { title: string; description: string; } +interface Props { + title: string; + description: string; +} const { title, description } = Astro.props; const canonical = new URL(Astro.url.pathname, Astro.site); +const socialImage = new URL('/social-card.png', Astro.site); --- + - + + - + + + + + + {title} - + + + + + diff --git a/src/pages/404.astro b/src/pages/404.astro index d8920d9..291bbb5 100644 --- a/src/pages/404.astro +++ b/src/pages/404.astro @@ -1,11 +1,21 @@ --- import Layout from '../layouts/Layout.astro'; +import Header from '../components/Header.astro'; +import Footer from '../components/Footer.astro'; --- - -
-
404 · Wrong branch
+ + +
+
+
404 · Wrong branch

Nothing compiled here.

The page you requested is not part of this build.

- Return to the lab + + Return to the lab +
+
diff --git a/src/pages/index.astro b/src/pages/index.astro index a638fa2..2a7b1f7 100644 --- a/src/pages/index.astro +++ b/src/pages/index.astro @@ -1,218 +1,673 @@ --- import Layout from '../layouts/Layout.astro'; -const title = 'Arca Open Hardware Lab | Open compatibility research'; -const description = 'An independent hardware compatibility lab based in Santiago. We register every unit, run reproducible tests, publish evidence and send failures upstream.'; +import Header from '../components/Header.astro'; +import Footer from '../components/Footer.astro'; +import Arrow from '../components/Arrow.astro'; +import HardwareDiagram from '../components/HardwareDiagram.astro'; +const title = 'Arca Open Hardware Lab | Hardware, in the open.'; +const description = + 'Independent hardware compatibility research in Santiago, Chile. Real machines, reproducible methods, public evidence. Hardware intake is open.'; const repo = 'https://github.com/arcacomputer/open-hardware-lab'; const methodology = `${repo}/tree/main/methodology`; const inventory = `${repo}/tree/main/hardware`; const ledger = `${repo}/tree/main/ledger`; -const contact = 'ohl@arca.computer'; -const intakeEmail = `mailto:${contact}?subject=Open%20Hardware%20Lab%20intake`; +const intakeEmail = + 'mailto:ohl@arca.computer?subject=Open%20Hardware%20Lab%20intake'; const supportUrl = 'https://buy.stripe.com/aFacN41Lw5oH1BH7G57ss03'; +const tracks = [ + { + id: 'omarchy', + number: '01', + title: 'Omarchy compatibility', + short: 'Omarchy', + question: 'A clean install is only the beginning.', + description: + 'What happens when a real machine becomes a daily driver? Follow installation, suspend, graphics, media and updates through repeatable runs.', + categories: [ + 'Installation & boot', + 'Suspend & resume', + 'Graphics & displays', + 'Media & connectivity', + ], + symbol: 'terminal', + note: 'From first boot to everyday use.', + }, + { + id: 'linux', + number: '02', + title: 'Retail Linux hardware', + short: 'Retail Linux', + question: 'Same model. Different machine?', + description: + 'A model name rarely tells the whole story. Examine exact retail configurations, regional SKUs and the components people can actually buy.', + categories: [ + 'Exact configuration', + 'Regional components', + 'Input & connectivity', + 'Firmware & kernel', + ], + symbol: 'board', + note: 'The configuration is the evidence.', + }, + { + id: 'agents', + number: '03', + title: 'Agent workstations', + short: 'Agent workloads', + question: 'Does it hold up when the work gets real?', + description: + 'Investigate containers, hosted-agent workflows, local inference where practical, and sustained developer use with bounded, documented workloads.', + categories: [ + 'Containers & virtualization', + 'Sustained thermals', + 'Power behavior', + 'Developer workloads', + ], + symbol: 'compute', + note: 'Useful workloads. Documented limits.', + }, + { + id: 'regressions', + number: '04', + title: 'Regression watch', + short: 'Regression watch', + question: 'It worked yesterday. What changed?', + description: + 'Keep the hardware in the loop. Repeat runs after firmware, kernel and operating-system updates to make improvements and regressions visible.', + categories: [ + 'Firmware changes', + 'Kernel updates', + 'Repeated test runs', + 'Upstream issue history', + ], + symbol: 'cycle', + note: 'A longer life for every test result.', + }, +]; +const stages = [ + { + number: '01', + label: 'UNIT', + title: 'Know the machine.', + text: 'Register an OHL ID, exact configuration, regional SKU, source, ownership and provider relationship.', + }, + { + number: '02', + label: 'RUN', + title: 'Ask a useful question.', + text: 'Choose an operating system and a bounded test. Record the method, versions and conditions.', + }, + { + number: '03', + label: 'REPORT', + title: 'Show the evidence.', + text: 'Publish privacy-scrubbed observations, failures, workarounds, expenses and upstream links.', + }, + { + number: '04', + label: 'RETEST', + title: 'Keep asking.', + text: 'Run it again after firmware, kernel and operating-system changes. A result is a record, not a lifetime verdict.', + }, +]; --- - -
-
ARCA OPEN HARDWARE LAB Santiago · Node 001
- -
-
-
-
-
Hardware intake open · Santiago, Chile
-

Test locally.Publish globally.

-

An independent compatibility lab that works with the hardware it can obtain, asks useful questions and publishes the unit, relationship, method, expense, failure and upstream outcome.

+ +
+
+
+
+

+ {' '} + Independent research. Real machines. +

+

+ Hardware, + + in the open. + +

+

+ What works. What breaks. What changes. +
+ We test hardware in Santiago and publish the evidence for everyone. +

-
-
- - - -
-
-
What “open” means here
-

OHL does not claim that every computer it tests is open hardware. The methodology, provenance, disclosures, evidence, expense records and upstream work are open. Physical tests happen in Santiago today; the results are designed to be reproduced anywhere.

+
+
+
+ +
+

Hardware intake open

+

Building the public inventory.

+
+ + + +
+
+
+
Public units
+
00
+
+
+
Active runs
+
00
+
+
+
Published reports
+
00
+
+
+ + View the register +
- -
-
-
Live operating state

The lab starts empty, not imaginary.

-

OHL grows from hardware accepted, money actually available and questions worth answering. Empty states remain visible until evidence replaces them.

-
-
-
OPEN

Hardware intake

Proposals are reviewed before anything ships.

-
EMPTY

Public inventory

No physical unit has been accepted into the public register yet.

-
READY

Baseline method

Core test and evidence categories are published.

methodology
-
QUEUE

Research questions

Omarchy, retail Linux compatibility and agent workloads are open tracks.

+
+
+ 01 / THE PRINCIPLE +
-
- -
-
-
-
Inventory-driven research

Units, runs, reports, retests.

-

Campaigns are optional procurement tools, not the lab’s skeleton. One machine can answer several questions across multiple operating systems and years.

-
-
-

Register the unit

Assign an OHL ID and publish the exact configuration, regional SKU, source, ownership and provider relationship.

-

Choose the run

Select an operating system and bounded research question based on public value, available funds and lab capacity.

-

Publish the report

Release privacy-scrubbed evidence, observations, failures, workarounds, expenses and upstream links.

-

Retest over time

Track what changes after firmware, kernel and operating-system updates instead of issuing one disposable verdict.

+
+

+ A machine is a
+ starting point. +
+ Evidence is the work. +

+
+

What “open” means here

+

+ The process is open: methodology, provenance, disclosures, evidence, + expenses and upstream work. We don’t claim that every computer we + test is open hardware. +

+

+ One machine can answer many questions, across operating systems and + years. Test locally. Publish globally. +

+ + Read our independence policy +
- -
+
-
-
Inputs, not promises

Work with what is real.

-

The next run comes from the intersection of available hardware, available lab funds, useful research questions and enough capacity to document the work properly.

+
+ 02 / RESEARCH DIRECTIONS + FOUR OPEN TRACKS
-
-
-
Hardware pool
-

What the lab can obtain.

-

Owned machines, local retail purchases, permanent placements and approved loaners all enter the same public inventory system.

-
  • Exact unit and regional SKU
  • Ownership and custody
  • Provider relationship
  • Return deadline when loaned
-
-
-
Lab fund
-

What the lab can afford.

-

General support is pooled until a transparent allocation is made. A specific funding target is opened only when a particular purchase or study requires it.

-
  • Gross support and processing fees
  • Public allocations
  • Retail invoices and logistics
  • No hidden preorder obligations
-
+
+

+ Better questions. +
+ Useful answers. +

+

+ Compatibility goes beyond a spec sheet. +
+ These are the questions shaping our queue. +

+
+
+ +
+ {tracks.map((track) => ( +
+
+ + {track.number} / {track.title} + + IN THE QUEUE +
+ +

{track.question}

+

{track.description}

+
    + {track.categories.map((category) => ( +
  • {category}
  • + ))} +
+
+ ))} +
+

+ TRACKS ARE RESEARCH DIRECTIONS. THEY DO NOT GUARANTEE A TEST, SCHEDULE + OR PUBLICATION. +

- -
-
-
Open research queue

Questions can share hardware.

-

Tracks organize ongoing questions. They do not lock a machine into one campaign or guarantee that every proposed run will happen.

+
+
+ 03 / THE METHOD + + READ THE METHODOLOGY +
-
-
01

Omarchy compatibility

Installation, daily use, power, suspend, media, graphics and update behavior on real machines.

-
02

Retail Linux hardware

Exact configurations people can actually buy, including regional component and warranty differences.

-
03

Agent workstations

Containers, local inference where practical, hosted-agent workflows, thermals and sustained developer use.

-
04

Regression watch

Repeatable retests after firmware, kernel and operating-system changes.

+
+

+ Every result +
+ has a paper trail. +

+

+ Units, runs, reports, retests. +
A record you can follow. A method you can repeat. +

-
- -
-
-
-
Hardware intake

Give a machine a public job.

-

Do not ship first and negotiate later. Every unit needs written approval, declared ownership, workable logistics and permission to publish independent results.

-
-
-
01

Temporary loan

A time-bounded research loan with arrival condition, disclosed ownership, return date and prepaid return logistics.

-
02

Permanent placement

Ownership transfers to Arca so the machine can remain in the inventory for long-term regression testing.

-
03

Retail delivery

A partner funds or supplies an exact unit through an approved retailer or distributor with clean warranty and customs handling.

-
-
-
Acceptance gate

Useful, documentable, unconditional.

-
  • Exact configuration known
  • Research value is clear
  • Shipping and return are solved
  • No favorable-result condition
-
-
-
Want to offer hardware?Email the model, exact configuration, location, ownership proposal and shipping plan to {contact}. A suggestion does not guarantee an operating system, schedule, report or positive result.
- Start intake -
+
    + {stages.map((stage) => ( +
  1. +
    + {stage.number} + +
    + {stage.label} +

    {stage.title}

    +

    {stage.text}

    +
  2. + ))} +
+
+ METHOD STATUS +

+ Baseline categories and evidence rules are published. Executable test + definitions will be added before the first public run. +

- -
-
-
-
Public record

Follow the unit to the outcome.

-

Every accepted unit connects provenance, custody, test runs, reports, expenses and upstream work. Nothing is promoted from empty to complete by vibes.

+
+
+
+ 04 / THE PUBLIC RECORD +

+ Nothing hidden. +
+ Nothing invented. +

+

+ The lab starts empty, not imaginary. No physical unit has been + accepted into the public register yet. +

+

+ Hardware intake is open. The method is taking shape. This is where + the evidence will go. +

+ + Follow the work on GitHub +
-
- - - +
+
+ OHL / REGISTER INDEX + PUBLIC +
+
Current Open Hardware Lab operating ledger
StateRecordEvidence
+ + + + + + + + - - - - - + + + + + + + + + + + + + + + + + + + +
+ Current Open Hardware Lab records and status +
RecordState + Source +
OPENHardware proposals accepted through written intakecontact
READYBaseline methodology and evidence rulessource
EMPTYNo public hardware unit accepted yetinventory
QUEUEOmarchy, retail Linux and agent workload tracksrepository
LIVEUnrestricted voluntary support is availableledger policy
+ Hardware inventoryProvenance & custody + + Awaiting units + + + + +
+ Baseline methodology + Test categories & evidence rules + + Published + + + + +
+ Reports & retests + Results, failures & upstream work + + Awaiting runs + + + + +
+ Lab ledgerSupport, expenses & allocations + + Policy published + + + + +
+

+ CURRENT PUBLISHED STATE · MAINTAINED IN THE REPOSITORY +

- -
-
- -
- -
- - +
diff --git a/src/pages/support-terms.astro b/src/pages/support-terms.astro index 468f62e..1125806 100644 --- a/src/pages/support-terms.astro +++ b/src/pages/support-terms.astro @@ -1,65 +1,117 @@ --- import Layout from '../layouts/Layout.astro'; +import Header from '../components/Header.astro'; +import Footer from '../components/Footer.astro'; const title = 'Support terms | Arca Open Hardware Lab'; -const description = 'Terms for voluntary payments supporting the Arca Open Hardware Lab.'; +const description = + 'Terms for voluntary payments supporting the Arca Open Hardware Lab.'; const contact = 'ohl@arca.computer'; const supportUrl = 'https://buy.stripe.com/aFacN41Lw5oH1BH7G57ss03'; --- + -
- ARCA OPEN HARDWARE LAB - -
+
-
-
Effective August 28, 2026
+
+
Effective August 28, 2026

Support terms.

-

These terms apply to voluntary payments made through the Arca Open Hardware Lab Stripe Payment Link.

+

+ These terms apply to voluntary payments made through the Arca Open + Hardware Lab Stripe Payment Link. +

Who receives the payment

-

Payments are made to Arca Computer, Inc., a Delaware for-profit corporation operating the Arca Open Hardware Lab. The lab is not a charity or tax-exempt organization.

+

+ Payments are made to Arca Computer, Inc., a Delaware for-profit + corporation operating the Arca Open Hardware Lab. The lab is not a + charity or tax-exempt organization. +

What support means

-

Your payment supports independent hardware testing, public research evidence, lab equipment and upstream open-source work. It is voluntary and does not purchase hardware, services, access, attribution, advertising, editorial control, a favorable result or a promised upstream contribution.

+

+ Your payment supports independent hardware testing, public research + evidence, lab equipment and upstream open-source work. It is voluntary + and does not purchase hardware, services, access, attribution, + advertising, editorial control, a favorable result or a promised + upstream contribution. +

No charitable deduction

-

Payments are not charitable contributions and are not tax-deductible as charitable donations. Stripe's receipt confirms payment processing; it is not a charitable-donation receipt.

+

+ Payments are not charitable contributions and are not tax-deductible + as charitable donations. Stripe's receipt confirms payment processing; + it is not a charitable-donation receipt. +

Amount and processing

-

You choose a one-time amount in USD, subject to the limits displayed by Stripe. Stripe processes the payment and may offer payment methods based on your location and account. Stripe's own terms and privacy policy also apply to its checkout.

+

+ You choose a one-time amount in USD, subject to the limits displayed + by Stripe. Stripe processes the payment and may offer payment methods + based on your location and account. Stripe's own terms and privacy + policy also apply to its checkout. +

No specific work guarantee

-

Support joins the general OHL pool and does not reserve a product, operating system, test slot, publication date or report. The lab publishes allocations when money is assigned to particular hardware, logistics or research work.

+

+ Support joins the general OHL pool and does not reserve a product, + operating system, test slot, publication date or report. The lab + publishes allocations when money is assigned to particular hardware, + logistics or research work. +

Refunds and payment errors

-

Voluntary support payments are normally final. For duplicate charges, payment errors or suspected unauthorized use, email {contact} within 14 days. Nothing here limits rights that cannot legally be waived.

+

+ Voluntary support payments are normally final. For duplicate charges, + payment errors or suspected unauthorized use, email{' '} + + {contact} + {' '} + within 14 days. Nothing here limits rights that cannot legally be + waived. +

Independence

-

Support never buys a positive verdict. Arca may publish failures, security-relevant findings, funding disclosures and conflicts of interest as part of the research record.

+

+ Support never buys a positive verdict. Arca may publish failures, + security-relevant findings, funding disclosures and conflicts of + interest as part of the research record. +

Questions

-

Contact {contact} before paying if you need clarification. These terms may change prospectively; the version shown when you pay applies to that payment.

+

+ Contact{' '} + + {contact} + {' '} + before paying if you need clarification. These terms may change + prospectively; the version shown when you pay applies to that payment. +

- +
-
+
diff --git a/src/styles/global.css b/src/styles/global.css index 00595f0..90b0d76 100644 --- a/src/styles/global.css +++ b/src/styles/global.css @@ -1,214 +1,2273 @@ +@font-face { + font-family: Archivo; + src: url('/fonts/archivo-latin-wght-normal.woff2') format('woff2'); + font-style: normal; + font-weight: 100 900; + font-display: swap; +} +@font-face { + font-family: 'IBM Plex Mono'; + src: url('/fonts/ibm-plex-mono-latin-400-normal.woff2') format('woff2'); + font-style: normal; + font-weight: 400; + font-display: swap; +} :root { - --ink: #171711; - --paper: #f4f0e6; - --paper-2: #ebe4d4; - --acid: #dfff43; - --blue: #3154c7; - --orange: #f45b35; - --muted: #686554; - --line: rgba(23, 23, 17, .22); - --shadow: 8px 8px 0 var(--ink); - } - * { box-sizing: border-box; } - html { scroll-behavior: smooth; } - body { - margin: 0; - color: var(--ink); - background: - radial-gradient(circle at 12% 10%, rgba(223,255,67,.35), transparent 26rem), - linear-gradient(rgba(23,23,17,.045) 1px, transparent 1px), - linear-gradient(90deg, rgba(23,23,17,.045) 1px, transparent 1px), - var(--paper); - background-size: auto, 24px 24px, 24px 24px, auto; - font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace; - line-height: 1.5; - } - a { color: inherit; } - button, a { -webkit-tap-highlight-color: transparent; } - .wrap { width: min(1120px, calc(100% - 32px)); margin: 0 auto; } - .topbar { - display: flex; justify-content: space-between; align-items: center; - padding: 20px 0; border-bottom: 2px solid var(--ink); - } - .brand { display: flex; align-items: center; gap: 10px; font-weight: 900; letter-spacing: -.04em; text-decoration: none; } - .mark { width: 24px; height: 24px; background: var(--acid); border: 2px solid var(--ink); box-shadow: 3px 3px 0 var(--ink); transform: rotate(-5deg); } - .prototype { font-size: 11px; text-transform: uppercase; letter-spacing: .08em; border: 1px solid var(--ink); padding: 5px 8px; background: var(--paper); } - nav { display: flex; gap: 18px; font-size: 13px; } - nav a { text-decoration: none; border-bottom: 1px solid transparent; } - nav a:hover, nav a:focus-visible { border-color: var(--ink); } - - .hero { display: grid; grid-template-columns: 1.15fr .85fr; gap: 56px; padding: 78px 0 66px; align-items: center; } - .eyebrow { display: inline-flex; align-items: center; gap: 8px; text-transform: uppercase; letter-spacing: .12em; font-weight: 800; font-size: 12px; } - .dot { width: 9px; height: 9px; background: var(--orange); border-radius: 50%; animation: pulse 1.8s infinite; } - @keyframes pulse { 50% { transform: scale(1.45); opacity: .55; } } - h1 { margin: 22px 0 24px; max-width: 760px; font-family: Arial Black, Arial, sans-serif; font-size: clamp(52px, 7vw, 96px); letter-spacing: -.075em; line-height: .91; } - h1 span { display: block; color: var(--blue); } - .lead { max-width: 680px; font-size: clamp(17px, 2vw, 21px); line-height: 1.55; } - .hero-actions { display: flex; flex-wrap: wrap; gap: 14px; margin-top: 32px; } - .button { - appearance: none; border: 2px solid var(--ink); background: var(--acid); color: var(--ink); - padding: 14px 18px; font: inherit; font-weight: 900; text-decoration: none; cursor: pointer; - box-shadow: 5px 5px 0 var(--ink); transition: transform .12s, box-shadow .12s; - } - .button:hover { transform: translate(2px,2px); box-shadow: 3px 3px 0 var(--ink); } - .button:focus-visible { outline: 4px solid var(--blue); outline-offset: 3px; } - .button.secondary { background: var(--paper); } - - .machine { position: relative; min-height: 420px; display: grid; place-items: center; } - .laptop-lid { - width: min(100%, 430px); aspect-ratio: 1.33; border: 3px solid var(--ink); border-radius: 18px 18px 10px 10px; - background: linear-gradient(145deg, #d9d8d2, #a9aaa8); box-shadow: 18px 18px 0 var(--ink); position: relative; overflow: hidden; - } - .laptop-lid::after { content: ""; position: absolute; inset: 13px; border: 1px solid rgba(255,255,255,.65); border-radius: 10px; pointer-events: none; } - .terminal { - position: absolute; inset: 12% 9%; background: #11130d; color: #dfff43; border: 2px solid var(--ink); padding: 22px; - font-size: clamp(10px, 1.4vw, 14px); line-height: 1.65; transform: rotate(-2deg); box-shadow: 8px 8px 0 rgba(65,105,225,.9); - } - .terminal strong { color: white; } - .terminal .muted-code { color: #8b9273; } - .cursor { display: inline-block; width: 8px; height: 15px; background: var(--acid); vertical-align: -2px; animation: blink 1s steps(1) infinite; } - @keyframes blink { 50% { opacity: 0; } } - .stamp { position: absolute; right: -3%; bottom: 4%; z-index: 2; background: var(--orange); color: var(--ink); border: 3px solid var(--ink); padding: 10px 14px; font-weight: 900; transform: rotate(7deg); box-shadow: 5px 5px 0 var(--ink); } - - .strip { border-top: 2px solid var(--ink); border-bottom: 2px solid var(--ink); background: var(--acid); overflow: hidden; } - .ticker { display: flex; width: max-content; gap: 36px; padding: 12px 0; font-weight: 900; text-transform: uppercase; animation: slide 24s linear infinite; } - @keyframes slide { to { transform: translateX(-50%); } } - - section { padding: 78px 0; } - .section-head { display: grid; grid-template-columns: .55fr 1fr; gap: 40px; margin-bottom: 38px; } - .kicker { text-transform: uppercase; font-size: 12px; letter-spacing: .12em; font-weight: 900; color: var(--blue); } - h2 { margin: 6px 0 0; font-family: Arial Black, Arial, sans-serif; font-size: clamp(34px, 5vw, 62px); line-height: .98; letter-spacing: -.055em; } - .section-copy { margin: 0; max-width: 640px; font-size: 18px; } - - .definition { padding: 42px 0; background: var(--ink); color: var(--paper); border-bottom: 2px solid var(--ink); } - .definition-grid { display: grid; grid-template-columns: .45fr 1fr; gap: 42px; align-items: start; } - .definition .kicker { color: var(--acid); } - .definition p { margin: 0; max-width: 800px; font-size: 18px; } - - .status-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 14px; } - .status-grid article { min-height: 220px; padding: 22px; border: 2px solid var(--ink); background: var(--paper); } - .status-grid h3 { margin: 34px 0 8px; font-size: 20px; } - .status-grid p { margin: 0; color: var(--muted); font-size: 14px; } - .status-grid a { display: inline-block; margin-top: 14px; font-size: 13px; font-weight: 900; } - .state { display: inline-block; padding: 4px 7px; border: 1px solid var(--ink); font-size: 11px; font-weight: 900; letter-spacing: .08em; } - .state.open { background: var(--acid); } - .state.empty { background: var(--paper-2); } - .state.ready { background: var(--blue); color: white; } - .state.queue { background: var(--orange); color: var(--ink); } - - .flow { display: grid; grid-template-columns: repeat(4,1fr); gap: 16px; counter-reset: flow; } - .flow article { counter-increment: flow; border: 2px solid var(--ink); background: var(--paper); padding: 22px; min-height: 220px; position: relative; } - .flow article::before { content: "0" counter(flow); position: absolute; top: 14px; right: 16px; font-weight: 900; color: var(--blue); } - .flow h3 { margin: 42px 0 10px; font-size: 20px; } - .flow p { margin: 0; color: var(--muted); font-size: 14px; } - .research-flow article { color: var(--ink); } - - .routes { background: var(--paper-2); border-top: 2px solid var(--ink); border-bottom: 2px solid var(--ink); } - .route-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 22px; } - .route-card { border: 3px solid var(--ink); padding: clamp(26px, 4vw, 42px); min-height: 390px; box-shadow: var(--shadow); } - .route-card.local { background: var(--acid); } - .route-card.supplied { background: var(--blue); color: white; } - .route-label { display: inline-block; border: 2px solid currentColor; padding: 5px 8px; text-transform: uppercase; letter-spacing: .09em; font-size: 11px; font-weight: 900; } - .route-card h3 { margin: 28px 0 12px; font: 900 clamp(30px, 4vw, 48px)/1 Arial Black, Arial, sans-serif; letter-spacing: -.045em; } - .route-card p { font-size: 17px; } - .route-card ul { margin: 24px 0 0; padding-left: 20px; } - .route-card li { margin: 8px 0; } - - .track-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 14px; } - .track-grid article { min-height: 260px; padding: 24px; border: 2px solid var(--ink); background: var(--paper); } - .track-grid span { color: var(--blue); font-size: 24px; font-weight: 900; } - .track-grid h3 { margin: 44px 0 10px; font-size: 21px; } - .track-grid p { margin: 0; color: var(--muted); font-size: 14px; } - - .partner-section { background: var(--paper-2); border-top: 2px solid var(--ink); border-bottom: 2px solid var(--ink); } - .partner-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; } - .partner-grid article { position: relative; border: 2px solid var(--ink); background: var(--paper); padding: 26px; min-height: 260px; } - .partner-grid h3 { margin: 58px 0 10px; font-size: 22px; } - .partner-grid p { color: var(--muted); margin: 0; } - .partner-number { position: absolute; top: 20px; right: 22px; color: var(--blue); font-size: 24px; font-weight: 900; } - .partner-cta { display: flex; justify-content: space-between; align-items: center; gap: 28px; margin-top: 24px; border: 3px solid var(--ink); background: var(--orange); color: var(--ink); padding: 24px; box-shadow: var(--shadow); } - .partner-cta div { display: grid; gap: 5px; } - .partner-cta strong { font: 900 23px/1.1 Arial Black, Arial, sans-serif; } - .partner-cta span { font-size: 13px; } - .intake-rules { display: grid; grid-template-columns: .7fr 1.3fr; gap: 28px; align-items: center; margin-top: 24px; border: 2px solid var(--ink); background: var(--paper); padding: 24px; } - .intake-rules h3 { margin: 6px 0 0; font: 900 24px/1.1 Arial Black, Arial, sans-serif; } - .intake-rules ul { display: grid; grid-template-columns: 1fr 1fr; gap: 8px 26px; margin: 0; padding-left: 20px; font-size: 13px; } - - .proof { background: var(--ink); color: var(--paper); } - .proof .kicker { color: var(--acid); } - .proof a { color: var(--acid); } - .ledger-wrap { overflow-x: auto; border: 1px solid rgba(244,240,230,.35); } - .ledger { width: 100%; border-collapse: collapse; min-width: 680px; } - .ledger th, .ledger td { padding: 16px 18px; border-bottom: 1px solid rgba(244,240,230,.25); text-align: left; vertical-align: middle; } - .ledger th { color: #aaa897; font-size: 11px; text-transform: uppercase; letter-spacing: .08em; } - .ledger th:first-child, .ledger td:first-child { width: 90px; } - .ledger th:last-child, .ledger td:last-child { width: 160px; text-align: right; } - .ledger tbody tr:last-child td { border-bottom: 0; } - .status { color: var(--acid); font-weight: 900; } - .evidence { color: var(--acid); } - .sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; } - - .funding-grid { display: grid; grid-template-columns: .8fr 1.2fr; gap: 30px; align-items: start; } - .meter-card { border: 3px solid var(--ink); background: var(--blue); color: white; padding: 28px; box-shadow: var(--shadow); position: sticky; top: 22px; } - .amount { margin-top: 18px; font-family: Arial Black, Arial, sans-serif; font-size: clamp(42px, 6vw, 72px); letter-spacing: -.06em; line-height: 1; } - .goal { margin-top: 8px; } - .tiny { margin: 26px 0 0; font-size: 12px; } - .support-card { border: 3px solid var(--ink); background: var(--paper); padding: clamp(24px, 4vw, 38px); box-shadow: var(--shadow); } - .support-card h3 { margin: 12px 0; font: 900 clamp(28px, 4vw, 42px)/1 Arial Black, Arial, sans-serif; letter-spacing: -.04em; } - .support-card p { color: var(--muted); font-size: 16px; } - .support-card ul { margin: 24px 0; padding-left: 20px; } - .support-card li { margin: 8px 0; } - .support-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 22px; margin-top: 28px; } - .support-thanks { display: flex; justify-content: space-between; gap: 18px; margin-bottom: 34px; border: 3px solid var(--ink); background: var(--acid); padding: 18px 22px; box-shadow: 5px 5px 0 var(--ink); } - .support-thanks[hidden] { display: none; } - .integrity { margin-top: 24px; border-left: 5px solid var(--orange); padding: 14px 18px; background: rgba(244,91,53,.08); font-size: 14px; } - - .not-ad { display: grid; grid-template-columns: 1fr 1fr; border: 3px solid var(--ink); } - .not-ad > div { padding: clamp(26px, 5vw, 54px); } - .not-ad > div:first-child { background: var(--orange); color: var(--ink); border-right: 3px solid var(--ink); } - .not-ad h3 { font-family: Arial Black, Arial, sans-serif; font-size: clamp(30px, 4vw, 48px); line-height: 1; letter-spacing: -.04em; margin: 0 0 18px; } - .not-ad ul { padding-left: 20px; margin-bottom: 0; } - - footer { border-top: 2px solid var(--ink); padding: 30px 0 46px; font-size: 12px; color: var(--muted); } - .footer-grid { display: flex; justify-content: space-between; gap: 28px; } - - .terms-page { padding: 76px 0 90px; } - .terms-page h1 { margin-bottom: 18px; } - .terms-page > .lead { max-width: 760px; } - .terms-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; margin-top: 44px; } - .terms-grid section { padding: 24px; border: 2px solid var(--ink); background: var(--paper); } - .terms-grid h2 { margin: 0 0 12px; font: 900 23px/1.1 Arial Black, Arial, sans-serif; letter-spacing: -.025em; } - .terms-grid p { margin: 0; color: var(--muted); } - .terms-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 24px; margin-top: 34px; } - - @media (max-width: 820px) { - nav { display: none; } - .hero, .section-head, .funding-grid, .route-grid, .terms-grid, .definition-grid, .intake-rules { grid-template-columns: 1fr; } - .hero { padding-top: 52px; gap: 34px; } - .machine { min-height: 330px; } - .flow, .status-grid, .track-grid { grid-template-columns: 1fr 1fr; } - .partner-grid { grid-template-columns: 1fr; } - .partner-grid article { min-height: 210px; } - .partner-cta { align-items: stretch; flex-direction: column; } - .partner-cta .button { text-align: center; } - .intake-rules ul { grid-template-columns: 1fr; } - .meter-card { position: static; } - .not-ad { grid-template-columns: 1fr; } - .not-ad > div:first-child { border-right: 0; border-bottom: 3px solid var(--ink); } - } - @media (max-width: 520px) { - .wrap { width: min(100% - 22px, 1120px); } - .prototype { display: none; } - h1 { font-size: 50px; } - .stamp { right: 4%; transform: rotate(5deg); } - .flow, .status-grid, .track-grid { grid-template-columns: 1fr; } - .flow article { min-height: 170px; } - .support-thanks { flex-direction: column; } - .footer-grid { display: grid; } - } - @media (prefers-reduced-motion: reduce) { - *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; scroll-behavior: auto !important; } - } - -.error-page { min-height: 78vh; display: grid; align-content: center; justify-items: start; gap: 18px; } -.error-page h1, .error-page p { margin: 0; } + --paper: #f4f5ee; + --paper-deep: #e9ede3; + --ink: #20352b; + --muted: #5f6f62; + --forest: #173d2f; + --forest-deep: #113024; + --lime: #d5f98b; + --line: #cbd2c5; + --font: 'Archivo', Arial, sans-serif; + --mono: 'IBM Plex Mono', monospace; +} +* { + box-sizing: border-box; +} +html { + scroll-behavior: smooth; + scroll-padding-top: 24px; +} +body { + margin: 0; + background: var(--paper); + color: var(--ink); + font-family: var(--font); + font-size: 16px; + line-height: 1.55; + -webkit-font-smoothing: antialiased; +} +::selection { + background: var(--lime); + color: var(--forest-deep); +} +a { + color: inherit; + text-underline-offset: 4px; +} +button { + font: inherit; +} +button, +a, +summary { + -webkit-tap-highlight-color: transparent; +} +a, +button, +summary { + touch-action: manipulation; +} +a:focus-visible, +button:focus-visible, +summary:focus-visible, +[tabindex]:focus-visible { + outline: 3px solid #6d942d; + outline-offset: 5px; +} +button { + cursor: pointer; +} +button:disabled { + cursor: default; +} +svg { + display: block; +} +img { + max-width: 100%; + height: auto; +} +[hidden] { + display: none !important; +} +.wrap { + width: min(1320px, calc(100% - 104px)); + margin-inline: auto; +} +.mono, +.eyebrow { + font-family: var(--mono); + font-weight: 400; + font-size: 11px; + line-height: 1.6; + letter-spacing: 0.055em; +} +.mono { + text-transform: uppercase; +} +.arrow { + flex: none; + stroke: currentColor; + stroke-width: 1.5; + stroke-linecap: square; + stroke-linejoin: miter; + transition: transform 0.2s; +} +.text-link { + display: inline-flex; + align-items: center; + gap: 15px; + text-decoration: none; + font-size: 14px; + font-weight: 550; +} +.text-link:hover .arrow { + transform: translate(3px, -2px); +} +.button { + display: inline-flex; + align-items: center; + justify-content: space-between; + gap: 25px; + min-height: 54px; + padding: 15px 23px; + background: var(--forest); + color: var(--paper); + font-size: 14px; + font-weight: 550; + text-decoration: none; + border: 1px solid var(--forest); + border-radius: 3px; + transition: + background 0.2s, + transform 0.2s; +} +.button:hover { + background: var(--forest-deep); + transform: translateY(-2px); +} +.button:hover .arrow { + transform: translateX(3px); +} +.button-lime { + background: var(--lime); + border-color: var(--lime); + color: var(--forest-deep); +} +.button-lime:hover { + background: #e3ffb0; +} +.skip-link { + position: fixed; + top: 12px; + left: 12px; + z-index: 20; + padding: 12px 20px; + background: var(--lime); + transform: translateY(-180%); +} +.skip-link:focus { + transform: translateY(0); +} +.sr-only { + position: absolute; + width: 1px; + height: 1px; + padding: 0; + margin: -1px; + overflow: hidden; + clip: rect(0, 0, 0, 0); + white-space: nowrap; + border: 0; +} +h1, +h2, +h3, +p { + margin-top: 0; +} +h1, +h2, +h3 { + font-weight: 550; +} +h2 { + font-size: clamp(36px, 4.1vw, 60px); + line-height: 1.04; + letter-spacing: -0.055em; + margin-bottom: 0; +} +h3 { + letter-spacing: -0.025em; +} +p { + margin-bottom: 18px; +} +p:last-child { + margin-bottom: 0; +} +.section-space { + padding-block: 96px; +} +.section-index { + display: flex; + justify-content: space-between; + align-items: center; + gap: 24px; + margin-bottom: 46px; +} +.small-cross { + font-size: 24px; + line-height: 1; +} +.section-heading { + display: flex; + align-items: flex-end; + justify-content: space-between; + gap: 48px; + margin-bottom: 52px; +} +.section-heading > p { + max-width: 370px; + color: var(--muted); + font-size: 16px; + line-height: 1.65; + margin-bottom: 2px; +} +.status-dot { + display: inline-block; + flex: none; + width: 8px; + height: 8px; + border-radius: 50%; + background: #5a8b41; + box-shadow: 0 0 0 4px #5a8b4110; +} +.site-header { + border-bottom: 1px solid var(--line); +} +.header-inner { + min-height: 100px; + display: flex; + justify-content: space-between; + align-items: center; + gap: 30px; +} +.brand { + display: flex; + align-items: center; + gap: 14px; + text-decoration: none; +} +.brand-mark { + stroke: var(--ink); + stroke-width: 1.8; +} +.brand-name { + display: flex; + gap: 16px; + align-items: center; + font-size: 34px; + line-height: 1; + letter-spacing: -0.065em; + font-weight: 650; +} +.brand-name > span { + border-left: 1px solid var(--line); + padding-left: 16px; + font-size: 12px; + letter-spacing: -0.01em; + line-height: 1.3; + font-weight: 500; + max-width: 105px; +} +.site-header nav { + display: flex; + align-items: center; + gap: 29px; + font-size: 13px; + font-weight: 500; +} +.site-header nav > a { + text-decoration: none; + position: relative; +} +.site-header nav > a::after { + content: ''; + position: absolute; + left: 0; + bottom: -6px; + width: 100%; + height: 1px; + background: currentColor; + transform: scaleX(0); + transform-origin: left; + transition: transform 0.2s; +} +.site-header nav > a:hover::after { + transform: scaleX(1); +} +.site-header .nav-source { + display: flex; + align-items: center; + gap: 12px; + border-left: 1px solid var(--line); + padding-left: 27px; +} +.nav-source .arrow { + width: 15px; + height: 15px; +} +.menu-toggle { + display: none; +} +.hero { + display: grid; + grid-template-columns: 1.06fr 1fr; + gap: 15px; + align-items: center; + padding-block: 63px 57px; +} +.hero-copy { + position: relative; + z-index: 1; + padding-block: 27px; +} +.eyebrow { + display: flex; + gap: 10px; + align-items: center; + text-transform: uppercase; + font-size: 10px; + margin-bottom: 33px; +} +.crosshair { + font: 22px/1 var(--mono); + margin-top: -2px; +} +.hero h1 { + font-size: clamp(64px, 7.15vw, 108px); + line-height: 0.98; + letter-spacing: -0.075em; + margin: 0 0 30px; + font-weight: 560; +} +.hero h1 > span { + display: block; + white-space: nowrap; +} +.hero h1 em { + font-style: normal; + position: relative; + display: inline-block; +} +.hero h1 em::after { + content: ''; + position: absolute; + z-index: -1; + inset: auto -4px 4px; + height: 28%; + background: var(--lime); + transform: rotate(-2deg); +} +.hero-description { + max-width: 412px; + color: var(--muted); + font-size: 17px; + line-height: 1.65; + margin-bottom: 30px; +} +.hero-actions { + display: flex; + align-items: center; + flex-wrap: wrap; + gap: 23px; +} +.hero-actions .text-link { + font-size: 13px; +} +.hero-location { + display: flex; + gap: 11px; + align-items: center; + margin-top: 47px; + font-size: 9px; + letter-spacing: 0.1em; +} +.location-divider { + margin-inline: 6px; + color: #879584; +} +.hero-location .status-dot { + width: 6px; + height: 6px; +} +.hardware-figure { + min-width: 0; + align-self: stretch; + display: flex; + flex-direction: column; + justify-content: center; +} +.figure-top, +.figure-bottom { + display: flex; + justify-content: space-between; + align-items: center; + font-size: 8px; + color: #667860; + padding: 0 18px; +} +.figure-top { + padding-top: 8px; +} +.figure-cross { + font-size: 20px; +} +.figure-bottom { + border-top: 1px solid var(--line); + padding-top: 14px; + margin-inline: 16px; + padding-inline: 0; + font-size: 7px; + letter-spacing: 0.065em; +} +.hardware-svg { + width: 100%; + height: auto; + overflow: visible; +} +.diagram-heatsink { + animation: heatsink-arrive 1.5s ease-out both; +} +.diagram-board { + animation: board-arrive 1.5s ease-out both; +} +.diagram-labels { + animation: labels-arrive 1.8s ease-out both; +} +@keyframes heatsink-arrive { + from { + translate: 0 36px; + opacity: 0.3; + } + to { + translate: 0 0; + opacity: 1; + } +} +@keyframes board-arrive { + from { + translate: 0 20px; + opacity: 0.5; + } + to { + translate: 0 0; + opacity: 1; + } +} +@keyframes labels-arrive { + 0%, + 40% { + opacity: 0; + } + 100% { + opacity: 1; + } +} +.lab-status { + background: var(--paper-deep); + border-block: 1px solid var(--line); +} +.status-inner { + display: flex; + align-items: center; + gap: 35px; + min-height: 116px; +} +.status-intake { + display: flex; + align-items: center; + gap: 14px; + flex: 1; +} +.status-intake h2 { + font-size: 15px; + letter-spacing: -0.01em; + line-height: 1.4; + margin-bottom: 3px; +} +.status-intake p { + font-size: 12px; + color: var(--muted); +} +.status-intake > a { + display: none; +} +.status-numbers { + display: flex; + align-items: center; + gap: 35px; + margin: 0; +} +.status-numbers > div { + display: flex; + flex-direction: column-reverse; + min-width: 98px; + gap: 2px; + border-left: 1px solid #c5cdbf; + padding-left: 29px; +} +.status-numbers dt { + font-family: var(--mono); + font-size: 9px; + color: var(--muted); + white-space: nowrap; +} +.status-numbers dd { + font-size: 29px; + line-height: 1.1; + letter-spacing: -0.06em; + font-weight: 500; + margin: 0; +} +.status-register { + font-size: 12px; + margin-left: auto; + gap: 14px; + padding-left: 25px; +} +.intro-grid { + display: grid; + grid-template-columns: 1.2fr 1fr; + gap: 100px; +} +.intro-grid h2 { + font-size: clamp(36px, 3.6vw, 53px); + line-height: 1.1; +} +.muted-heading { + color: #798574; +} +.intro-copy { + padding-top: 3px; + max-width: 450px; +} +.intro-copy h3 { + font-size: 18px; + margin-bottom: 17px; + font-weight: 600; +} +.intro-copy p { + color: var(--muted); + font-size: 15px; + line-height: 1.7; +} +.intro-copy .text-link { + margin-top: 7px; + font-size: 13px; +} +.research-section { + background: var(--forest); + color: var(--paper); + position: relative; +} +.research-section .section-index { + color: #bdcbb8; +} +.research-section .section-heading > p { + color: #c0ceb9; +} +.research-explorer[data-enhanced] { + display: grid; + grid-template-columns: 0.85fr 1.15fr; + gap: 64px; +} +.track-selector { + padding-top: 0; + align-self: start; +} +.track-tab { + width: 100%; + display: flex; + align-items: center; + gap: 25px; + min-height: 93px; + background: none; + border: 0; + border-top: 1px solid #52705b; + text-align: left; + color: #c5d2bc; + font-size: 26px; + letter-spacing: -0.04em; + padding: 17px 10px 17px 0; + transition: + color 0.2s, + padding 0.2s; +} +.track-tab:last-child { + border-bottom: 1px solid #52705b; +} +.track-tab .track-number { + font-size: 11px; + color: #a1b59a; + letter-spacing: 0; +} +.track-tab > .arrow { + margin-left: auto; + width: 24px; + height: 24px; + opacity: 0.35; +} +.track-tab[aria-selected='true'] { + color: var(--lime); +} +.track-tab[aria-selected='true'] .arrow { + opacity: 1; + transform: translateX(4px); +} +.track-tab[aria-selected='true'] .track-number { + color: var(--lime); +} +.track-tab:hover { + color: var(--lime); + padding-left: 6px; +} +.research-section :focus-visible { + outline-color: var(--lime); +} +.track-panel { + border: 1px solid #58705d; + background: #214634; + padding: 28px 32px 31px; + min-height: 440px; +} +.track-panel + .track-panel { + margin-top: 20px; +} +[data-enhanced] .track-panel { + margin-top: 0; + animation: panel-in 0.25s ease-out; +} +@keyframes panel-in { + from { + opacity: 0.4; + translate: 0 5px; + } + to { + opacity: 1; + translate: 0 0; + } +} +.track-panel-top { + display: flex; + justify-content: space-between; + align-items: center; + gap: 15px; + color: #c1d1b8; +} +.track-panel-top > .mono { + font-size: 9px; +} +.queue-label { + border: 1px solid #6e865f; + border-radius: 2px; + padding: 4px 7px; + white-space: nowrap; + color: var(--lime); + font-size: 8px !important; +} +.track-symbol { + display: flex; + align-items: center; + gap: 26px; + margin-block: 22px 21px; +} +.track-symbol svg { + width: 118px; + height: 78px; + flex: none; + stroke: #8cae7a; + stroke-width: 1.5; +} +.track-symbol svg .symbol-accent { + stroke: var(--lime); + stroke-width: 2.2; +} +.track-symbol > span { + font-size: 9px; + max-width: 170px; + color: #afc4a2; +} +.track-panel h3 { + font-size: 28px; + font-weight: 500; + line-height: 1.13; + max-width: 360px; + margin-bottom: 15px; + letter-spacing: -0.04em; +} +.track-panel > p { + font-size: 14px; + line-height: 1.65; + color: #c6d5bc; + max-width: 460px; + margin-bottom: 25px; +} +.track-categories { + display: grid; + grid-template-columns: 1fr 1fr; + list-style: none; + margin: 0; + padding: 0; + gap: 10px 14px; +} +.track-categories li { + display: flex; + align-items: center; + gap: 8px; + font-family: var(--mono); + font-size: 9px; + color: #d4dfca; +} +.track-categories li::before { + content: '+'; + color: var(--lime); +} +.research-note { + font-size: 8px; + color: #bacdb0; + margin: 25px 0 0; + text-align: right; +} +.method-steps { + display: grid; + grid-template-columns: repeat(4, 1fr); + list-style: none; + margin: 0; + padding: 0; +} +.method-steps li { + padding: 0 27px 0 0; +} +.method-steps li + li { + padding-left: 27px; + border-left: 1px solid var(--line); +} +.method-steps li:last-child { + padding-right: 0; +} +.step-top { + display: flex; + justify-content: space-between; + align-items: center; + margin-bottom: 31px; +} +.step-number { + font-size: 59px; + font-weight: 450; + line-height: 1.2; + letter-spacing: -0.08em; + color: #92a18a; +} +.step-top .arrow { + width: 25px; +} +.method-steps li:last-child .step-top .arrow { + rotate: -45deg; +} +.step-label { + font-size: 9px; + letter-spacing: 0.1em; + color: var(--muted); +} +.method-steps h3 { + font-size: 20px; + font-weight: 550; + line-height: 1.15; + margin-block: 10px 13px; + letter-spacing: -0.04em; +} +.method-steps p { + color: var(--muted); + font-size: 13px; + line-height: 1.7; +} +.method-footnote { + display: flex; + align-items: center; + gap: 42px; + border-top: 1px solid var(--line); + padding-top: 22px; + margin-top: 40px; +} +.method-footnote .mono { + white-space: nowrap; + font-size: 9px; +} +.method-footnote p { + font-size: 12px; + color: var(--muted); +} +.register-section { + background: var(--paper-deep); + border-block: 1px solid var(--line); +} +.register-grid { + display: grid; + grid-template-columns: 0.85fr 1.15fr; + gap: 80px; + align-items: center; +} +.register-copy > .mono { + font-size: 10px; +} +.register-copy h2 { + font-size: clamp(36px, 3.6vw, 52px); + margin-block: 31px 22px; +} +.register-copy p { + color: var(--muted); + font-size: 14px; + line-height: 1.7; + max-width: 360px; +} +.register-copy .text-link { + margin-top: 12px; + font-size: 13px; +} +.register-table-wrap { + min-width: 0; +} +.register-caption { + display: flex; + justify-content: space-between; + font-size: 9px; + border-bottom: 1px solid #a9b8a0; + padding-bottom: 18px; +} +.register-caption > span:last-child { + color: var(--muted); +} +.register-table { + width: 100%; + border-collapse: collapse; + text-align: left; +} +.register-table thead th { + font: 9px/1.5 var(--mono); + text-transform: uppercase; + color: var(--muted); + padding-block: 17px 7px; +} +.register-table tbody tr { + border-bottom: 1px solid #c3cdbb; +} +.register-table th { + font-size: 15px; + font-weight: 550; + padding-block: 24px; +} +.register-table small { + display: block; + font-size: 11px; + color: var(--muted); + font-weight: 400; + line-height: 1.6; + margin-top: 4px; +} +.register-table td { + padding-left: 12px; +} +.register-table td:last-child { + width: 35px; +} +.register-table td a { + display: flex; + align-items: center; + justify-content: center; + width: 36px; + height: 42px; + transition: background 0.2s; +} +.register-table td a:hover { + background: var(--lime); +} +.record-state { + font: 9px/1.4 var(--mono); + color: #5a6955; + white-space: nowrap; +} +.record-state.ready { + background: #d6e5c9; + color: #254328; + padding: 5px 7px; + border-radius: 2px; +} +.register-note { + font-size: 7px; + color: var(--muted); + margin-top: 16px; +} +.intake-layout { + display: grid; + grid-template-columns: 0.85fr 1.15fr; + gap: 80px; +} +.intake-intro .label { + border: 1px solid #b8c6ab; + padding: 6px 9px; + display: inline-block; + font-size: 9px; +} +.intake-intro h3 { + font-size: 32px; + line-height: 1.12; + font-weight: 500; + letter-spacing: -0.04em; + margin-block: 24px 20px; +} +.intake-intro p { + font-size: 14px; + color: var(--muted); + max-width: 340px; + line-height: 1.7; +} +.intake-intro .button { + margin-top: 11px; + min-width: 185px; +} +.intake-options article { + display: flex; + gap: 22px; + border-top: 1px solid var(--line); + padding: 26px 0 28px; +} +.intake-options article:last-child { + border-bottom: 1px solid var(--line); +} +.intake-options article > .mono { + font-size: 10px; + color: var(--muted); + padding-top: 5px; +} +.intake-options h3 { + font-size: 23px; + line-height: 1.25; + margin-bottom: 11px; + font-weight: 500; +} +.intake-options p { + font-size: 13px; + color: var(--muted); + line-height: 1.7; + max-width: 370px; +} +.intake-options .arrow { + margin-left: auto; + width: 18px; + opacity: 0.55; +} +.intake-details { + margin-top: 40px; + background: var(--paper-deep); + border: 1px solid var(--line); + border-radius: 2px; +} +.intake-details summary { + cursor: pointer; + display: flex; + align-items: center; + justify-content: space-between; + gap: 20px; + list-style: none; + padding: 21px 24px; + font-size: 14px; + font-weight: 550; +} +.intake-details summary::-webkit-details-marker { + display: none; +} +.intake-details summary > span:first-child { + display: flex; + align-items: center; + gap: 12px; +} +.details-plus { + font-size: 24px; + line-height: 1; + transition: rotate 0.2s; +} +.intake-details[open] .details-plus { + rotate: 45deg; +} +.intake-detail-content { + display: grid; + grid-template-columns: 1fr 1fr; + gap: 40px; + padding: 0 24px 25px; +} +.intake-detail-content p { + font-size: 13px; + line-height: 1.75; + color: var(--muted); + margin: 0; +} +.fund-section { + background: var(--forest-deep); + color: var(--paper); + padding-block: 82px 0; +} +.fund-inner { + display: grid; + grid-template-columns: 1.3fr 0.7fr; + gap: 100px; + padding-bottom: 70px; +} +.fund-copy > .mono { + color: #b7ccaa; + font-size: 10px; +} +.fund-copy h2 { + margin-block: 29px 24px; + font-size: clamp(44px, 4.8vw, 70px); +} +.fund-copy h2 > span { + color: var(--lime); +} +.fund-copy p { + color: #c0d0b6; + max-width: 460px; + font-size: 15px; + line-height: 1.75; +} +.fund-copy .text-link { + margin-top: 13px; + color: #d4e4c9; + font-size: 13px; +} +.fund-action { + padding-top: 5px; +} +.fund-action > .mono { + font-size: 9px; + color: #bed0b2; +} +.support-amount { + display: flex; + align-items: center; + justify-content: space-between; + gap: 20px; + font-size: 44px; + letter-spacing: -0.055em; + line-height: 1.2; + margin-block: 20px 9px; +} +.support-amount > span { + color: var(--lime); + font-size: 46px; + font-weight: 300; +} +.fund-action > p { + font-size: 13px; + color: #c0d0b6; +} +.fund-action .button { + width: 100%; + margin-block: 5px 16px; +} +.terms-link { + display: block; + text-align: center; + font-size: 12px; +} +.fund-action .fund-disclosure { + font-size: 10px; + line-height: 1.7; + margin-block: 24px 0; + color: #b4c6a8; +} +.independence-line { + display: flex; + align-items: center; + gap: 24px; + border-top: 1px solid #46613e; + padding-block: 29px; + color: #c3d3b8; +} +.independence-symbol { + font-size: 30px; + line-height: 1; + color: var(--lime); + padding-right: 12px; +} +.independence-line p { + font-size: 12px; + line-height: 1.7; + max-width: 850px; +} +.independence-line strong { + color: var(--paper); + font-weight: 550; +} +.independence-line > a { + display: grid; + place-items: center; + width: 42px; + height: 42px; + margin-left: auto; + flex: none; +} +.fund-section :focus-visible { + outline-color: var(--lime); +} +.support-thanks { + padding: 22px 25px; + border: 1px solid var(--lime); + background: #254632; + margin-bottom: 40px; + display: grid; + gap: 7px; +} +.support-thanks strong { + font-size: 17px; +} +.support-thanks span { + font-size: 13px; + color: #c3d3b8; +} +.site-footer { + padding-block: 56px 24px; +} +.footer-top { + display: flex; + align-items: center; + justify-content: space-between; + gap: 30px; + padding-bottom: 46px; + border-bottom: 1px solid var(--line); +} +.footer-wordmark { + text-decoration: none; + font-size: 91px; + font-weight: 650; + letter-spacing: -0.09em; + line-height: 1; +} +.footer-wordmark > span { + font-size: 25px; + vertical-align: top; + letter-spacing: 0; + display: inline-block; + margin: 10px 0 0 8px; +} +.footer-top > p { + font-size: 20px; + line-height: 1.3; + letter-spacing: -0.03em; + margin: 0 auto 0 45px; +} +.footer-top .text-link { + font-size: 16px; +} +.footer-bottom { + display: grid; + grid-template-columns: 1fr auto; + gap: 16px 30px; + padding-top: 24px; + font-size: 10px; + color: var(--muted); +} +.footer-bottom > div { + display: flex; + gap: 24px; +} +.footer-bottom > div a { + text-decoration: none; +} +.footer-bottom > span:last-child { + grid-column: 1/-1; + font-size: 9px; +} +.terms-page { + padding-block: 85px 100px; +} +.terms-page h1, +.error-page h1 { + font-size: clamp(55px, 7vw, 96px); + line-height: 1; + letter-spacing: -0.07em; + margin-block: 20px 28px; +} +.terms-page > .lead { + font-size: 20px; + color: var(--muted); + max-width: 660px; +} +.terms-grid { + display: grid; + grid-template-columns: 1fr 1fr; + gap: 0 60px; + margin-top: 50px; +} +.terms-grid section { + border-top: 1px solid var(--line); + padding-block: 28px 33px; +} +.terms-grid h2 { + font-size: 24px; + line-height: 1.2; + letter-spacing: -0.04em; + margin-bottom: 14px; +} +.terms-grid p { + font-size: 15px; + color: var(--muted); + line-height: 1.75; +} +.terms-actions { + display: flex; + flex-wrap: wrap; + align-items: center; + gap: 26px; + margin-top: 28px; + font-size: 14px; +} +.error-page { + min-height: 70vh; + padding-block: 100px; +} +.error-page p { + font-size: 19px; + color: var(--muted); +} +.error-page .button { + margin-top: 20px; +} +@media (min-width: 1500px) { + .hero { + gap: 35px; + padding-block: 72px; + } + .hero h1 { + font-size: 108px; + } +} +@media (max-width: 1100px) { + .wrap { + width: calc(100% - 64px); + } + .header-inner { + min-height: 90px; + } + .site-header nav { + gap: 22px; + } + .brand-name { + font-size: 30px; + } + .brand-mark { + width: 36px; + } + .hero { + gap: 10px; + padding-block: 45px; + } + .hero h1 { + font-size: 7.3vw; + } + .hero-actions { + gap: 17px; + } + .hero-actions .button { + font-size: 12px; + padding-inline: 17px; + gap: 18px; + } + .hero-actions .text-link { + font-size: 12px; + gap: 10px; + } + .hero-description { + font-size: 15px; + max-width: 345px; + } + .hero-location { + margin-top: 37px; + } + .status-inner { + gap: 20px; + } + .status-numbers { + gap: 20px; + } + .status-numbers > div { + padding-left: 20px; + min-width: 88px; + } + .status-register { + display: none; + } + .intro-grid { + gap: 55px; + } + .research-explorer[data-enhanced] { + gap: 38px; + } + .track-tab { + font-size: 23px; + gap: 18px; + } + .track-panel { + padding: 23px; + min-height: 453px; + } + .track-categories { + column-gap: 8px; + } + .track-categories li { + font-size: 8px; + } + .track-panel-top { + gap: 7px; + } + .track-panel-top > .mono { + font-size: 8px; + } + .queue-label { + font-size: 7px !important; + } + .register-grid, + .intake-layout { + gap: 50px; + } + .register-table th { + font-size: 13px; + } + .register-table small { + font-size: 10px; + } + .record-state { + font-size: 8px; + } + .fund-inner { + gap: 55px; + } + .method-steps li { + padding-right: 18px; + } + .method-steps li + li { + padding-left: 18px; + } + .method-steps h3 { + font-size: 18px; + } + .footer-top > p { + margin-left: 15px; + } +} +@media (max-width: 800px) { + .wrap { + width: calc(100% - 40px); + } + .section-space { + padding-block: 65px; + } + .section-index { + margin-bottom: 30px; + } + .section-index .mono { + font-size: 9px; + } + .header-inner { + min-height: 82px; + flex-wrap: wrap; + gap: 0; + padding-block: 16px; + } + .brand-name { + font-size: 28px; + } + .brand-name > span { + font-size: 10px; + max-width: 93px; + } + .brand-mark { + width: 33px; + height: 33px; + } + .site-header nav { + width: 100%; + display: grid; + grid-template-columns: repeat(3, 1fr); + gap: 6px; + padding: 24px 0 4px; + font-size: 12px; + } + .site-header nav > a { + min-height: 44px; + display: flex; + align-items: center; + padding-block: 10px; + } + .site-header .nav-source { + border: 0; + padding-left: 0; + } + .site-header[data-enhanced] nav { + display: none; + } + .site-header[data-enhanced] nav[data-open] { + display: grid; + } + .menu-toggle:not([hidden]) { + display: flex; + align-items: center; + gap: 18px; + background: none; + border: 1px solid var(--line); + border-radius: 2px; + padding: 9px 12px; + font-size: 11px; + color: var(--ink); + margin-left: auto; + min-height: 40px; + } + .menu-toggle > span { + font-size: 18px; + line-height: 1; + } + .hero { + grid-template-columns: 1fr 1fr; + gap: 0; + padding-block: 32px; + } + .hero-copy { + padding-block: 12px; + } + .eyebrow { + font-size: 8px; + gap: 6px; + margin-bottom: 22px; + } + .hero h1 { + font-size: 7.6vw; + margin-bottom: 23px; + } + .hero-description { + font-size: 13px; + max-width: 300px; + } + .hero-actions { + gap: 15px; + flex-direction: column; + align-items: flex-start; + } + .hero-actions .button { + min-height: 45px; + } + .hero-location { + font-size: 7px; + margin-top: 30px; + gap: 7px; + } + .figure-top { + font-size: 6px; + padding-inline: 10px; + } + .figure-bottom { + font-size: 5px; + margin-inline: 8px; + gap: 10px; + } + .status-inner { + min-height: 115px; + gap: 15px; + } + .status-intake { + gap: 12px; + } + .status-intake h2 { + font-size: 13px; + } + .status-intake p { + font-size: 10px; + } + .status-numbers { + gap: 15px; + } + .status-numbers > div { + padding-left: 15px; + min-width: 70px; + } + .status-numbers dt { + font-size: 7px; + } + .status-numbers dd { + font-size: 25px; + } + .intro-grid { + gap: 35px; + grid-template-columns: 1fr 1fr; + } + .intro-grid h2 { + font-size: 34px; + } + .intro-copy h3 { + font-size: 16px; + } + .intro-copy p { + font-size: 13px; + } + .intro-copy .text-link { + font-size: 11px; + gap: 9px; + } + .section-heading { + gap: 30px; + margin-bottom: 38px; + } + .section-heading h2 { + font-size: 39px; + } + .section-heading > p { + font-size: 13px; + max-width: 260px; + } + .research-explorer[data-enhanced] { + gap: 25px; + grid-template-columns: 0.8fr 1.2fr; + } + .track-tab { + font-size: 18px; + min-height: 87px; + gap: 13px; + } + .track-tab > .arrow { + width: 18px; + } + .track-panel { + padding: 20px; + min-height: 440px; + } + .track-panel-top { + flex-wrap: wrap; + } + .track-panel h3 { + font-size: 25px; + } + .track-panel > p { + font-size: 12px; + } + .track-symbol { + margin-block: 20px; + gap: 13px; + } + .track-symbol svg { + width: 89px; + height: 63px; + } + .track-symbol > span { + font-size: 7px; + } + .track-categories { + grid-template-columns: 1fr; + gap: 7px; + } + .research-note { + font-size: 7px; + max-width: 500px; + margin-left: auto; + } + .method-steps { + grid-template-columns: 1fr 1fr; + gap: 32px 0; + } + .method-steps li { + padding-right: 25px; + } + .method-steps li + li { + padding-left: 25px; + } + .method-steps li:nth-child(3) { + padding-left: 0; + border: 0; + } + .method-steps h3 { + font-size: 22px; + } + .method-steps p { + font-size: 13px; + } + .step-top { + margin-bottom: 20px; + } + .step-number { + font-size: 51px; + } + .method-footnote { + gap: 25px; + } + .method-footnote p { + font-size: 11px; + } + .register-grid { + grid-template-columns: 1fr; + gap: 40px; + } + .register-copy { + display: grid; + grid-template-columns: 1fr 1fr; + gap: 0 35px; + } + .register-copy > .mono { + grid-column: 1/-1; + } + .register-copy h2 { + grid-column: 1; + grid-row: 2/5; + font-size: 38px; + margin-block: 23px 0; + } + .register-copy p { + grid-column: 2; + font-size: 13px; + } + .register-copy p:first-of-type { + margin-top: 23px; + } + .register-copy .text-link { + grid-column: 2; + font-size: 12px; + margin-top: 0; + } + .register-table th { + font-size: 15px; + } + .register-table small { + font-size: 11px; + } + .record-state { + font-size: 10px; + } + .register-note { + font-size: 8px; + } + .intake-layout { + gap: 35px; + grid-template-columns: 0.9fr 1.1fr; + } + .intake-intro h3 { + font-size: 29px; + } + .intake-intro p { + font-size: 13px; + } + .intake-options article { + gap: 13px; + padding-block: 22px; + } + .intake-options h3 { + font-size: 20px; + } + .intake-options p { + font-size: 12px; + } + .intake-options .arrow { + display: none; + } + .intake-detail-content { + gap: 25px; + } + .intake-detail-content p { + font-size: 12px; + } + .fund-section { + padding-top: 65px; + } + .fund-inner { + gap: 40px; + grid-template-columns: 1.15fr 0.85fr; + padding-bottom: 50px; + } + .fund-copy h2 { + font-size: 42px; + } + .fund-copy p { + font-size: 13px; + } + .support-amount { + font-size: 36px; + } + .fund-action .button { + font-size: 12px; + padding-inline: 15px; + gap: 10px; + } + .fund-action > .mono { + font-size: 8px; + } + .fund-action .fund-disclosure { + font-size: 9px; + } + .independence-line { + gap: 12px; + } + .independence-line p { + font-size: 11px; + } + .footer-top { + padding-bottom: 35px; + gap: 20px; + } + .footer-wordmark { + font-size: 75px; + } + .footer-top > p { + font-size: 17px; + margin-left: 0; + } + .footer-top .text-link { + font-size: 12px; + } + .terms-page { + padding-block: 60px; + } + .terms-grid { + gap: 0 35px; + } + .terms-grid p { + font-size: 14px; + } +} +@media (max-width: 560px) { + .wrap { + width: calc(100% - 36px); + } + .header-inner { + min-height: 76px; + } + .brand { + gap: 9px; + } + .brand-name { + gap: 12px; + } + .brand-name > span { + padding-left: 12px; + } + .site-header nav { + grid-template-columns: repeat(2, 1fr); + gap: 4px; + } + .site-header .nav-source { + border: 0; + padding-left: 0; + } + .hero { + grid-template-columns: 1fr; + gap: 23px; + padding-block: 33px 24px; + } + .hero-copy { + padding: 0; + } + .eyebrow { + font-size: 8px; + margin-bottom: 25px; + } + .hero h1 { + font-size: clamp(53px, 12vw, 72px); + letter-spacing: -0.067em; + margin-bottom: 24px; + } + .hero-description { + font-size: 15px; + max-width: 330px; + margin-bottom: 25px; + } + .hero-actions { + flex-direction: row; + align-items: center; + gap: 22px; + } + .hero-actions .button { + font-size: 11px; + gap: 13px; + padding-inline: 15px; + min-height: 48px; + } + .hero-actions .text-link { + font-size: 11px; + gap: 8px; + } + .hero-location { + margin-top: 28px; + font-size: 8px; + gap: 10px; + } + .hardware-figure { + width: 100%; + max-width: 445px; + justify-self: center; + margin-top: 7px; + } + .figure-top { + font-size: 7px; + padding-inline: 10px; + } + .hardware-svg { + margin-top: -13px; + margin-bottom: -10px; + } + .figure-bottom { + font-size: 6px; + gap: 5px; + padding-top: 12px; + } + .status-inner { + flex-direction: column; + align-items: stretch; + gap: 0; + padding-block: 24px; + } + .status-intake { + gap: 15px; + margin-bottom: 22px; + } + .status-intake h2 { + font-size: 15px; + } + .status-intake p { + font-size: 11px; + } + .status-intake > a { + display: block; + margin-left: auto; + padding: 8px; + } + .status-numbers { + justify-content: space-between; + gap: 0; + border-top: 1px solid #c5cdbf; + padding-top: 20px; + } + .status-numbers > div { + border-left: 1px solid #c5cdbf; + padding-left: 20px; + width: 33.333%; + } + .status-numbers > div:first-child { + border: 0; + padding-left: 0; + } + .status-numbers dd { + font-size: 31px; + } + .status-numbers dt { + font-size: 8px; + margin-top: 5px; + } + .section-space { + padding-block: 56px; + } + .section-index { + margin-bottom: 28px; + gap: 12px; + } + .section-index .mono { + font-size: 8px; + } + .section-index .text-link { + gap: 7px; + font-size: 7px; + } + .section-index .text-link .arrow { + width: 14px; + height: 14px; + } + .intro-grid { + grid-template-columns: 1fr; + gap: 28px; + } + .intro-grid h2 { + font-size: 35px; + line-height: 1.08; + } + .intro-copy { + max-width: 100%; + } + .intro-copy h3 { + font-size: 17px; + } + .intro-copy p { + font-size: 14px; + line-height: 1.7; + } + .intro-copy .text-link { + font-size: 12px; + } + .section-heading { + align-items: flex-start; + flex-direction: column; + gap: 21px; + margin-bottom: 31px; + } + .section-heading h2 { + font-size: 42px; + } + .section-heading > p { + font-size: 14px; + max-width: 100%; + margin: 0; + } + .research-explorer[data-enhanced] { + grid-template-columns: 1fr; + gap: 23px; + } + .track-selector { + display: grid; + grid-template-columns: 1fr 1fr; + gap: 0 17px; + } + .track-tab { + font-size: 15px; + min-height: 62px; + gap: 9px; + padding: 12px 0; + } + .track-tab:nth-child(3) { + border-bottom: 1px solid #52705b; + } + .track-tab .track-number { + font-size: 8px; + } + .track-tab .arrow { + width: 16px; + } + .track-panel { + min-height: 435px; + padding: 23px; + } + .track-panel-top { + justify-content: space-between; + gap: 10px; + } + .track-panel-top > .mono { + font-size: 8px; + } + .track-panel h3 { + font-size: 29px; + max-width: 280px; + } + .track-panel > p { + font-size: 13px; + } + .track-symbol { + gap: 25px; + margin-block: 25px; + } + .track-symbol svg { + width: 104px; + height: 67px; + } + .track-symbol > span { + font-size: 8px; + } + .track-categories { + grid-template-columns: 1fr 1fr; + gap: 10px; + } + .track-categories li { + font-size: 8px; + } + .research-note { + font-size: 7px; + text-align: left; + line-height: 1.9; + } + .method-steps { + gap: 31px 0; + } + .method-steps li { + padding-right: 19px; + } + .method-steps li + li { + padding-left: 19px; + } + .method-steps li:nth-child(3) { + padding-left: 0; + } + .method-steps h3 { + font-size: 21px; + max-width: 140px; + } + .method-steps p { + font-size: 12px; + line-height: 1.65; + } + .step-number { + font-size: 50px; + } + .step-top .arrow { + width: 21px; + } + .method-footnote { + align-items: flex-start; + flex-direction: column; + gap: 11px; + margin-top: 30px; + } + .method-footnote p { + font-size: 12px; + } + .register-grid { + gap: 32px; + } + .register-copy { + display: block; + } + .register-copy h2 { + font-size: 39px; + margin-block: 25px 21px; + } + .register-copy p { + font-size: 14px; + max-width: 100%; + } + .register-copy .text-link { + font-size: 12px; + margin-top: 9px; + } + .register-caption { + font-size: 8px; + } + .register-table th { + font-size: 13px; + padding-block: 21px; + } + .register-table small { + font-size: 9px; + max-width: 175px; + } + .register-table td { + padding-left: 5px; + } + .record-state { + font-size: 8px; + } + .record-state.ready { + padding: 4px 5px; + } + .register-table td a { + width: 28px; + min-height: 44px; + } + .register-table td .arrow { + width: 16px; + } + .register-note { + font-size: 6px; + } + .intake-layout { + grid-template-columns: 1fr; + gap: 36px; + } + .intake-intro h3 { + font-size: 31px; + } + .intake-intro p { + font-size: 14px; + max-width: 100%; + } + .intake-intro .button { + font-size: 12px; + } + .intake-options article { + gap: 20px; + padding-block: 25px; + } + .intake-options h3 { + font-size: 23px; + } + .intake-options p { + font-size: 13px; + } + .intake-options .arrow { + display: block; + } + .intake-details { + margin-top: 30px; + } + .intake-details summary { + font-size: 13px; + padding: 18px; + } + .intake-detail-content { + grid-template-columns: 1fr; + gap: 18px; + padding-inline: 18px; + } + .fund-section { + padding-top: 55px; + } + .fund-inner { + grid-template-columns: 1fr; + gap: 40px; + padding-bottom: 38px; + } + .fund-copy h2 { + font-size: 45px; + margin-block: 26px 22px; + } + .fund-copy p { + font-size: 14px; + } + .fund-copy .text-link { + font-size: 12px; + } + .fund-action { + border-top: 1px solid #46613e; + padding-top: 30px; + } + .support-amount { + font-size: 40px; + max-width: 100%; + margin-top: 17px; + } + .fund-action > .mono { + font-size: 9px; + } + .fund-action .button { + font-size: 14px; + min-height: 54px; + } + .fund-action .fund-disclosure { + font-size: 10px; + max-width: 330px; + } + .independence-line { + align-items: flex-start; + gap: 13px; + padding-block: 24px; + } + .independence-symbol { + padding-right: 0; + margin-top: 6px; + font-size: 25px; + } + .independence-line p { + font-size: 11px; + } + .independence-line > a { + width: 25px; + height: 32px; + } + .independence-line .arrow { + width: 17px; + } + .site-footer { + padding-block: 37px 23px; + } + .footer-top { + flex-wrap: wrap; + gap: 24px; + padding-bottom: 29px; + } + .footer-wordmark { + font-size: 73px; + } + .footer-top > p { + font-size: 18px; + flex: 1; + margin-left: 20px; + } + .footer-top .text-link { + width: 100%; + justify-content: space-between; + font-size: 15px; + } + .footer-bottom { + display: flex; + flex-direction: column; + gap: 19px; + font-size: 10px; + } + .footer-bottom > span:last-child { + font-size: 9px; + line-height: 1.6; + max-width: 310px; + } + .terms-page h1, + .error-page h1 { + font-size: 57px; + } + .terms-page > .lead { + font-size: 17px; + } + .terms-grid { + grid-template-columns: 1fr; + margin-top: 35px; + } + .terms-grid section { + padding-block: 25px; + } + .terms-grid h2 { + font-size: 23px; + } + .terms-actions { + gap: 22px; + } + .error-page { + padding-block: 75px; + } + .error-page p { + font-size: 17px; + } +} +@media (max-width: 360px) { + .hero-actions { + gap: 16px; + } + .hero-actions .button { + font-size: 10px; + padding-inline: 12px; + gap: 10px; + } + .hero-actions .text-link { + font-size: 10px; + } + .track-panel { + padding: 18px; + } + .track-categories li { + font-size: 7px; + } + .track-tab { + font-size: 13px; + } + .fund-copy h2 { + font-size: 39px; + } + .record-state { + font-size: 7px; + } + .register-table th { + font-size: 12px; + } + .register-table small { + font-size: 8px; + } + .section-heading h2 { + font-size: 38px; + } + .intro-grid h2 { + font-size: 32px; + } +} +@media (prefers-reduced-motion: reduce) { + html { + scroll-behavior: auto; + } + *, + *::before, + *::after { + animation: none !important; + transition: none !important; + scroll-behavior: auto !important; + } +}