diff --git a/.gitignore b/.gitignore index e00b26f..a6d3be1 100644 --- a/.gitignore +++ b/.gitignore @@ -52,3 +52,15 @@ COHORT/ # planning docs live outside the repo, in BrandSteward/ docs/ + +# Grinder source binaries; the served woff2 live in public/fonts/grinder/ +/src/grinder-font/ + +# Grinder binaries: licence provenance unconfirmed (no copyright/licence in the +# name table, and not listed in RaidGuild's BRAND-ASSETS.md). The wiring is +# committed; drop the three woff2 into public/fonts/grinder/ to build locally. +/public/fonts/grinder/*.woff2 + +# Scratch from the Figma asset pull, and the PR body draft. +/.figma-raw/ +/PR-BODY.md diff --git a/HANDOFF.md b/HANDOFF.md new file mode 100644 index 0000000..3616aa4 --- /dev/null +++ b/HANDOFF.md @@ -0,0 +1,132 @@ +# Venture Beyond — handoff + +**Branch:** `handoff/venture-beyond-deekan` +**Base:** `origin/main` (`b02d67b`) · diverges at `b630790` +**Figma:** https://www.figma.com/design/ke8N6VpnO86zfjGiLp46m2/RaidGuild---Grimoire---Venture?node-id=0-1 +Light frame `8:7` · Dark frame `117:3965` · both 1440×7759 + +The branch is your own `feat/venture-beyond-redesign` history (26 commits, +unchanged SHAs) plus six commits on top. Nothing has been pushed. + +## Run it + +```bash +bun install +PORT=3017 bun run dev +``` + +Two things are **not** in the repo and the build fails without the first: + +1. **`public/fonts/grinder/{Grinder-Regular,Grinder-Italic,Grinder-Retalic}.woff2`** + — held out pending a licence decision, see Blockers. `next/font/local` + resolves these at build time, so `bun run build` fails until they are in + place. Ask Luis for the files. +2. **`.env`** — copy `env.sample`. Only the contact/consultation API routes + need it; the homepage renders without. + +## What is done + +Everything is measured against the final Figma target frames, not the +`CODE BASELINE` frame `1:2` (that frame is a snapshot of the *old* code and +several things exist only there — see Non-blocking). + +**Typography.** Grinder Regular/Italic/Retalic are wired as real cuts and +scoped to `.site`, so the pre-redesign routes keep Mazius. The hero headline +used to fake the reverse-italic with `transform: skewX(8deg)`; it now uses the +actual Retalic cut. Body is Ubuntu 400 and mono is Ubuntu Mono 700, confirmed +against the Figma type specimens. + +**Assets.** Hero light and dark play the Figma video fills; the manifesto +backdrop is the desert walking-machine scene; Contact ships the Druid +illustration; Louchi has a portrait. Icons are the native SVG exports, masked +with `currentColor`. + +**Parity.** Every section height matches Figma at 1440: + +| Section | px | Section | px | +|---|---|---|---| +| Hero | 897 | Active Spears | 1525 | +| Signal bar | 80 | Expeditions | 1338 | +| Guild + stats | 837 | Manifesto | 615 | +| Keepers | 802 | Contact | 881 | +| Team network | 444 | Footer | 402 | + +Total content 7821 against Figma's 7820.74. (The frame's declared 7759 is +shorter than the sum of its own children — the footer overflows it in Figma.) + +The Figma button component is implemented once as a reusable pill (56px tall, +100px radius, 40px icon container, 32px glyph) with filled and outlined +variants, used in the Guild, Team, Spears and Expeditions. + +Section labels were audited individually — they are **not** uniform: Guild, +Keepers, Team and Spears are 24px italic magenta; Expeditions is the same in +Fresh Green; Manifesto is 24px upright in Light Blue; Contact is **16px** +upright in Fresh Green at 80%. + +**Validation.** All 15 new assets return HTTP 200 from localhost. No broken +images. `tsc --noEmit` passes. + +## Blockers + +1. **Grinder licence — decide before this can be published.** The three + `.woff2` carry **no copyright, trademark, licence or vendor string** in + their name table, and their version string says they were produced with + FontCreator, so they are not a vendor-original distribution. RaidGuild's own + `BRAND-ASSETS.md` documents only Mazius Display, EB Garamond and Ubuntu + Mono — Grinder is not in it. That may simply mean it was commissioned and + the docs are behind, but it cannot be told apart from a commercial font with + its metadata stripped. They are gitignored until someone produces the EULA + or the commission agreement. If it is a RaidGuild commission, re-injecting + copyright and licence into the name table before publishing would be worth + doing. + +2. **Two hero/manifesto videos are low-resolution.** `hero-light.mp4` is + 760×472 and `manifesto.mp4` is 760×324, both scaled ~1.9× to 1440. They look + soft in motion; the posters are native resolution so first paint is sharp. + Cause: Figma clamps video export to 4096px per side and the Light frame is + 7759 tall, so the whole-page render came out 760 wide. `hero-dark.mp4` is + fine at 1440×934 because `Video / Dark` (`117:3325`) is a top-level node and + exported natively. + **Fix:** duplicate `Escena de viento 1` (`117:4889`) and the manifesto + `Section` (`26:6542`) in Figma, drag the copies to the root of the canvas, + and export each as MP4. Drop the two files in `public/videos/venture/` — + no code change needed. + +3. **`next build` has not been run.** It could not be run in the environment + this work was done in (a Linux VM with a macOS `node_modules`, missing the + Linux SWC binary). Please confirm a clean build. + +## Known non-blocking issues + +- **React hydration mismatch in the contact form.** Radix `FormLabel` / + `FormControl` ids differ between server and client. **Pre-existing, not + introduced by this work.** Visible in the console; does not affect layout. +- **14 Unicode arrows remain inside cards** — 5 on the steward cards, 5 in + Active Spears, 4 in Expeditions. Section-level chrome was converted to the + Figma pills; card interiors are a further pass. +- **Steward cards show `ST—01 ↗`.** Figma's card (`19:4245`) is portrait, role, + name, project only — no index, no arrow. Left in place because removing + visible content is a product decision. +- **Expeditions shows an `01 / 04` counter** that Figma does not have. The + prev/next buttons were removed (they exist only in `CODE BASELINE`); the + track still scrolls by drag and trackpad. +- **`ico-handbook.svg` is committed but unused.** Not an oversight — there is + no `ico_handbook` instance anywhere in the Figma page; it is an orphan + component. The Guild's handbook link does not exist in the target either. +- **`hero-dark-poster.png` is 5.1 MB** (2880×1866). Worth compressing or + dropping to 1×. +- **Card interiors in Spears and Expeditions have not been measured** against + Figma. The spec for the "Your edge problem" card is `117:2212`. +- **`hero-landmarks-v1.png` was removed** — it has no equivalent in the final + target. `creed-moons-v1.png`, `creed-flyer-v1.png`, + `project-ship-schematic-v1.webp` and the two `raidguild-panorama*` files are + now unreferenced and can be deleted once you agree. + +## A note on what was wrong before + +Three things in the previous state were not "a video replaced by a still" but +simply the wrong artwork: the manifesto backdrop (moons + flyer, where Figma +has a desert walking machine), the Contact illustration (a ship schematic, +where Figma has a druid), and Louchi's portrait (rendered as the initials +`LO`, though the portrait does exist in Figma as an image fill on `19:4234`). +Worth knowing if you are reconciling against the earlier audit. diff --git a/bun.lock b/bun.lock index bf466e0..74c37f7 100644 --- a/bun.lock +++ b/bun.lock @@ -32,7 +32,7 @@ "clsx": "^2.1.1", "cmdk": "^1.1.1", "lucide-react": "^0.545.0", - "next": "15.5.7", + "next": "^15.5.9", "next-themes": "^0.4.6", "react": "19.1.0", "react-dom": "19.1.0", @@ -159,25 +159,25 @@ "@napi-rs/wasm-runtime": ["@napi-rs/wasm-runtime@0.2.12", "", { "dependencies": { "@emnapi/core": "^1.4.3", "@emnapi/runtime": "^1.4.3", "@tybys/wasm-util": "^0.10.0" } }, "sha512-ZVWUcfwY4E/yPitQJl481FjFo3K22D6qF0DuFH6Y/nbnE11GY5uguDxZMGXPQ8WQ0128MXQD7TnfHyK4oWoIJQ=="], - "@next/env": ["@next/env@15.5.7", "", {}, "sha512-4h6Y2NyEkIEN7Z8YxkA27pq6zTkS09bUSYC0xjd0NpwFxjnIKeZEeH591o5WECSmjpUhLn3H2QLJcDye3Uzcvg=="], + "@next/env": ["@next/env@15.5.23", "", {}, "sha512-Mv3Z9hVbFcPnoLevsZ6rnX1TBtyHb5E17yN7HTPDXSXxeNsGBjUFrdbjRXKKXIOhfth7/cg6Ay7PZ2UFawaWsQ=="], "@next/eslint-plugin-next": ["@next/eslint-plugin-next@15.5.5", "", { "dependencies": { "fast-glob": "3.3.1" } }, "sha512-FMzm412l9oFB8zdRD+K6HQ1VzlS+sNNsdg0MfvTg0i8lfCyTgP/RFxiu/pGJqZ/IQnzn9xSiLkjOVI7Iv4nbdQ=="], - "@next/swc-darwin-arm64": ["@next/swc-darwin-arm64@15.5.7", "", { "os": "darwin", "cpu": "arm64" }, "sha512-IZwtxCEpI91HVU/rAUOOobWSZv4P2DeTtNaCdHqLcTJU4wdNXgAySvKa/qJCgR5m6KI8UsKDXtO2B31jcaw1Yw=="], + "@next/swc-darwin-arm64": ["@next/swc-darwin-arm64@15.5.23", "", { "os": "darwin", "cpu": "arm64" }, "sha512-SrEwOROH/rhA03F59hHtdhgtfZMWGzr5duDBWgRQt2rS3mJhqMKOcnNx6txOd0/i3E3D3uFKYFvyHsEiwQxzag=="], - "@next/swc-darwin-x64": ["@next/swc-darwin-x64@15.5.7", "", { "os": "darwin", "cpu": "x64" }, "sha512-UP6CaDBcqaCBuiq/gfCEJw7sPEoX1aIjZHnBWN9v9qYHQdMKvCKcAVs4OX1vIjeE+tC5EIuwDTVIoXpUes29lg=="], + "@next/swc-darwin-x64": ["@next/swc-darwin-x64@15.5.23", "", { "os": "darwin", "cpu": "x64" }, "sha512-f0FpFbG2EhDCuptBGcfrLcYMDuQAhe6m1QA4VVfXFrIBoFXvXt/olGbBkYkloKlXQtmhuzvtdYyuu/6zf07GIg=="], - "@next/swc-linux-arm64-gnu": ["@next/swc-linux-arm64-gnu@15.5.7", "", { "os": "linux", "cpu": "arm64" }, "sha512-NCslw3GrNIw7OgmRBxHtdWFQYhexoUCq+0oS2ccjyYLtcn1SzGzeM54jpTFonIMUjNbHmpKpziXnpxhSWLcmBA=="], + "@next/swc-linux-arm64-gnu": ["@next/swc-linux-arm64-gnu@15.5.23", "", { "os": "linux", "cpu": "arm64" }, "sha512-WlNtfepUXKX2u2ZsJZ8c3c8+tJSRZqsYzoMwLOY72A8ucKCCgxgNhiePA3qzFYahVWrwcQd8jOeJmBinc+VFVQ=="], - "@next/swc-linux-arm64-musl": ["@next/swc-linux-arm64-musl@15.5.7", "", { "os": "linux", "cpu": "arm64" }, "sha512-nfymt+SE5cvtTrG9u1wdoxBr9bVB7mtKTcj0ltRn6gkP/2Nu1zM5ei8rwP9qKQP0Y//umK+TtkKgNtfboBxRrw=="], + "@next/swc-linux-arm64-musl": ["@next/swc-linux-arm64-musl@15.5.23", "", { "os": "linux", "cpu": "arm64" }, "sha512-W/6qKk7UG93mg14PmQC+2urt69MIdwTBLNQ6MJyeC4wOCIHCjz+VfgssvS1pK7mgYBtLC1g6VKNoHD9xB0WWGg=="], - "@next/swc-linux-x64-gnu": ["@next/swc-linux-x64-gnu@15.5.7", "", { "os": "linux", "cpu": "x64" }, "sha512-hvXcZvCaaEbCZcVzcY7E1uXN9xWZfFvkNHwbe/n4OkRhFWrs1J1QV+4U1BN06tXLdaS4DazEGXwgqnu/VMcmqw=="], + "@next/swc-linux-x64-gnu": ["@next/swc-linux-x64-gnu@15.5.23", "", { "os": "linux", "cpu": "x64" }, "sha512-vzefI32mi6VMk96RaTAyxApgfGbiFzQBXVsekEjsDv1fr48mlABTWx0sUYhaYCBHWqCalxmz3DxbxFcbFvzNtw=="], - "@next/swc-linux-x64-musl": ["@next/swc-linux-x64-musl@15.5.7", "", { "os": "linux", "cpu": "x64" }, "sha512-4IUO539b8FmF0odY6/SqANJdgwn1xs1GkPO5doZugwZ3ETF6JUdckk7RGmsfSf7ws8Qb2YB5It33mvNL/0acqA=="], + "@next/swc-linux-x64-musl": ["@next/swc-linux-x64-musl@15.5.23", "", { "os": "linux", "cpu": "x64" }, "sha512-qppK/3dTGOTI+aoWWBZc3DshFIhrzgL8guATlaN9V6M1QJxbkP/rhEZ22tdICsQ/2WWXopMZ2Jokzj2u3uKY3Q=="], - "@next/swc-win32-arm64-msvc": ["@next/swc-win32-arm64-msvc@15.5.7", "", { "os": "win32", "cpu": "arm64" }, "sha512-CpJVTkYI3ZajQkC5vajM7/ApKJUOlm6uP4BknM3XKvJ7VXAvCqSjSLmM0LKdYzn6nBJVSjdclx8nYJSa3xlTgQ=="], + "@next/swc-win32-arm64-msvc": ["@next/swc-win32-arm64-msvc@15.5.23", "", { "os": "win32", "cpu": "arm64" }, "sha512-Wc29KFOdT7XBcII3Vtmw7aoU8Uk3Mes/FNJfhFeSHdYBFJWMcR/DsI8U9BCPUhq/uycsUVuqSKGthW15tLsigA=="], - "@next/swc-win32-x64-msvc": ["@next/swc-win32-x64-msvc@15.5.7", "", { "os": "win32", "cpu": "x64" }, "sha512-gMzgBX164I6DN+9/PGA+9dQiwmTkE4TloBNx8Kv9UiGARsr9Nba7IpcBRA1iTV9vwlYnrE3Uy6I7Aj6qLjQuqw=="], + "@next/swc-win32-x64-msvc": ["@next/swc-win32-x64-msvc@15.5.23", "", { "os": "win32", "cpu": "x64" }, "sha512-/C7wRW4fa9s/PKA18zGPPpVmx8ycgVpP8yOxro4gzGTzjPJdscbAP3ODeFvgiIovxD176Z2J/SXO9t8PJKHLeQ=="], "@nodelib/fs.scandir": ["@nodelib/fs.scandir@2.1.5", "", { "dependencies": { "@nodelib/fs.stat": "2.0.5", "run-parallel": "^1.1.9" } }, "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g=="], @@ -791,7 +791,7 @@ "natural-compare": ["natural-compare@1.4.0", "", {}, "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw=="], - "next": ["next@15.5.7", "", { "dependencies": { "@next/env": "15.5.7", "@swc/helpers": "0.5.15", "caniuse-lite": "^1.0.30001579", "postcss": "8.4.31", "styled-jsx": "5.1.6" }, "optionalDependencies": { "@next/swc-darwin-arm64": "15.5.7", "@next/swc-darwin-x64": "15.5.7", "@next/swc-linux-arm64-gnu": "15.5.7", "@next/swc-linux-arm64-musl": "15.5.7", "@next/swc-linux-x64-gnu": "15.5.7", "@next/swc-linux-x64-musl": "15.5.7", "@next/swc-win32-arm64-msvc": "15.5.7", "@next/swc-win32-x64-msvc": "15.5.7", "sharp": "^0.34.3" }, "peerDependencies": { "@opentelemetry/api": "^1.1.0", "@playwright/test": "^1.51.1", "babel-plugin-react-compiler": "*", "react": "^18.2.0 || 19.0.0-rc-de68d2f4-20241204 || ^19.0.0", "react-dom": "^18.2.0 || 19.0.0-rc-de68d2f4-20241204 || ^19.0.0", "sass": "^1.3.0" }, "optionalPeers": ["@opentelemetry/api", "@playwright/test", "babel-plugin-react-compiler", "sass"], "bin": { "next": "dist/bin/next" } }, "sha512-+t2/0jIJ48kUpGKkdlhgkv+zPTEOoXyr60qXe68eB/pl3CMJaLeIGjzp5D6Oqt25hCBiBTt8wEeeAzfJvUKnPQ=="], + "next": ["next@15.5.23", "", { "dependencies": { "@next/env": "15.5.23", "@swc/helpers": "0.5.15", "caniuse-lite": "^1.0.30001579", "postcss": "8.4.31", "styled-jsx": "5.1.6" }, "optionalDependencies": { "@next/swc-darwin-arm64": "15.5.23", "@next/swc-darwin-x64": "15.5.23", "@next/swc-linux-arm64-gnu": "15.5.23", "@next/swc-linux-arm64-musl": "15.5.23", "@next/swc-linux-x64-gnu": "15.5.23", "@next/swc-linux-x64-musl": "15.5.23", "@next/swc-win32-arm64-msvc": "15.5.23", "@next/swc-win32-x64-msvc": "15.5.23", "sharp": "^0.34.3" }, "peerDependencies": { "@opentelemetry/api": "^1.1.0", "@playwright/test": "^1.51.1", "babel-plugin-react-compiler": "*", "react": "^18.2.0 || 19.0.0-rc-de68d2f4-20241204 || ^19.0.0", "react-dom": "^18.2.0 || 19.0.0-rc-de68d2f4-20241204 || ^19.0.0", "sass": "^1.3.0" }, "optionalPeers": ["@opentelemetry/api", "@playwright/test", "babel-plugin-react-compiler", "sass"], "bin": { "next": "dist/bin/next" } }, "sha512-Gvd2WKgvxIXCGotxcI1im/Uf3rS3J3oZGw0g/uskg6AVBZhyE3aAbujkYWzS3xLmEPEtTLfkaVQUKK0KMTSIkA=="], "next-themes": ["next-themes@0.4.6", "", { "peerDependencies": { "react": "^16.8 || ^17 || ^18 || ^19 || ^19.0.0-rc", "react-dom": "^16.8 || ^17 || ^18 || ^19 || ^19.0.0-rc" } }, "sha512-pZvgD5L0IEvX5/9GWyHMf3m8BKiVQwsCMHfoFosXtXBMnaS0ZnIJ9ST4b4NqLVKDEm8QBxoNNGNaBv2JNF6XNA=="], diff --git a/docs/venture-integration.md b/docs/venture-integration.md new file mode 100644 index 0000000..2354d9b --- /dev/null +++ b/docs/venture-integration.md @@ -0,0 +1,45 @@ +# Venture Beyond integration + +Design and Figma asset handoff: Luis Blanco (Louchi), https://estudioblanco.org. + +Source: https://github.com/luisblancoach/website/tree/handoff/venture-beyond-dekan +Imported tip: a195359. All seven original commits are retained as merge ancestry, +including their original author information. HANDOFF.md is the original handoff; +this document records subsequent integration decisions rather than rewriting it. + +Integration decisions: +- Use self-hosted Afacad Flux with CSS slants instead of the missing Grinder cuts. + Keep Ubuntu body and Ubuntu Mono supporting type from the handoff. +- Preserve the local foliage front door and direct inquiry route. +- Include Talent & Placement as a proposed spear; keep the handbook accessible. +- Retain the supplied illustrations, palettes, icons, portraits and video scenes. +- Make section sizing responsive rather than enforcing Figma heights when content grows. + +Clean scene exports supplied by Louchi in Assets.zip on 2026-09-09: +- Video/wind.mp4 → hero-light.mp4 (2200 × 940). +- Video/forest.mp4 → hero-dark.mp4 (2184 × 948). +- Video/Animated Scene.mp4 → manifesto.mp4 (2200 × 940). +These replace the previous preview videos with background-only artwork. Web copies +use H.264 CRF 23, yuv420p and fast-start metadata, with audio removed. Posters are +extracted from the matching exports. Playback pauses offscreen, in hidden tabs, +and for reduced-motion preferences; the existing hover discovery layer is retained. + +Walkthrough parity pass: +- Continuous word ticker and counter-moving statistics band, with pause controls + and static, wrapped content for reduced-motion preferences. +- Lighter dark-mode card surfaces; stronger interaction colors apply on hover/focus. +- Contact artwork uses the genuinely transparent professions/Druid 2.png export + from Assets.zip instead of the earlier cream-backed PNG. +- Night navigation/theme switch use navy surfaces; the switch stays separate. +Statistics remain unverified mockup values, not newly validated claims. + +Loop experiment: hero playback uses separate *-pingpong.mp4 derivatives, with +the original forward sequence followed by its reverse (duplicate endpoint frames +omitted). The original clean exports remain available for comparison. Reverse +segments are processed in bounded 48-frame chunks to limit encoding memory use. +The browser plays one continuous file rather than switching players at the seam. +The creed/manifesto remains forward-only because of its flying bird. Its +manifesto-crossfade.mp4 derivative blends the final 0.75 seconds with the opening +0.75 seconds, then loops to the next forward frame without reversing motion. +Statistical and portfolio copy from the design remains mockup content requiring +editorial verification before release. No Grinder files are bundled or required. diff --git a/package.json b/package.json index 9d3a0d5..dcbb751 100644 --- a/package.json +++ b/package.json @@ -6,7 +6,8 @@ "dev": "next dev --turbopack", "build": "next build --turbopack", "start": "next start", - "lint": "eslint" + "lint": "eslint", + "brand:sync": "node scripts/sync-brand-dist.mjs" }, "dependencies": { "@hookform/resolvers": "^5.2.2", @@ -36,7 +37,7 @@ "clsx": "^2.1.1", "cmdk": "^1.1.1", "lucide-react": "^0.545.0", - "next": "15.5.7", + "next": "^15.5.9", "next-themes": "^0.4.6", "react": "19.1.0", "react-dom": "19.1.0", diff --git a/public/fonts/AfacadFlux-OFL.txt b/public/fonts/AfacadFlux-OFL.txt new file mode 100644 index 0000000..5d6ffe0 --- /dev/null +++ b/public/fonts/AfacadFlux-OFL.txt @@ -0,0 +1,93 @@ +Copyright 2023 The Afacad Project Authors (https://github.com/Dicotype/Afacad) + +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: +https://openfontlicense.org + + +----------------------------------------------------------- +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/AfacadFlux-Variable.ttf b/public/fonts/AfacadFlux-Variable.ttf new file mode 100644 index 0000000..a3df5d1 Binary files /dev/null and b/public/fonts/AfacadFlux-Variable.ttf differ diff --git a/public/images/icons/venture/ico-dark.svg b/public/images/icons/venture/ico-dark.svg new file mode 100644 index 0000000..451fbc3 --- /dev/null +++ b/public/images/icons/venture/ico-dark.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/public/images/icons/venture/ico-discord.svg b/public/images/icons/venture/ico-discord.svg new file mode 100644 index 0000000..4a9474f --- /dev/null +++ b/public/images/icons/venture/ico-discord.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/public/images/icons/venture/ico-handbook.svg b/public/images/icons/venture/ico-handbook.svg new file mode 100644 index 0000000..08d2ec4 --- /dev/null +++ b/public/images/icons/venture/ico-handbook.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/public/images/icons/venture/ico-logo.svg b/public/images/icons/venture/ico-logo.svg new file mode 100644 index 0000000..2d0d3d4 --- /dev/null +++ b/public/images/icons/venture/ico-logo.svg @@ -0,0 +1,5 @@ + + + diff --git a/public/images/icons/venture/ico-portal.svg b/public/images/icons/venture/ico-portal.svg new file mode 100644 index 0000000..ce2e3f4 --- /dev/null +++ b/public/images/icons/venture/ico-portal.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/public/images/icons/venture/ico-sun.svg b/public/images/icons/venture/ico-sun.svg new file mode 100644 index 0000000..a7725c8 --- /dev/null +++ b/public/images/icons/venture/ico-sun.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/public/images/icons/venture/sigil-logo.svg b/public/images/icons/venture/sigil-logo.svg new file mode 100644 index 0000000..83e2b7e --- /dev/null +++ b/public/images/icons/venture/sigil-logo.svg @@ -0,0 +1,9 @@ + + + diff --git a/public/images/member-dekan.png b/public/images/member-dekan.png index a5a9c1b..85f5aec 100644 Binary files a/public/images/member-dekan.png and b/public/images/member-dekan.png differ diff --git a/public/images/member-louchi.png b/public/images/member-louchi.png new file mode 100644 index 0000000..93edbb2 Binary files /dev/null and b/public/images/member-louchi.png differ diff --git a/public/images/neo/contact-druid-transparent.png b/public/images/neo/contact-druid-transparent.png new file mode 100644 index 0000000..39a90c7 Binary files /dev/null and b/public/images/neo/contact-druid-transparent.png differ diff --git a/public/images/neo/contact-druid.png b/public/images/neo/contact-druid.png new file mode 100644 index 0000000..d381140 Binary files /dev/null and b/public/images/neo/contact-druid.png differ diff --git a/public/images/neo/creed-flyer-v1.png b/public/images/neo/creed-flyer-v1.png new file mode 100644 index 0000000..dc2fea5 Binary files /dev/null and b/public/images/neo/creed-flyer-v1.png differ diff --git a/public/images/neo/creed-moons-v1.png b/public/images/neo/creed-moons-v1.png new file mode 100644 index 0000000..7b6d3d4 Binary files /dev/null and b/public/images/neo/creed-moons-v1.png differ diff --git a/public/images/neo/field-autonomous-treasury.png b/public/images/neo/field-autonomous-treasury.png new file mode 100644 index 0000000..5c806e4 Binary files /dev/null and b/public/images/neo/field-autonomous-treasury.png differ diff --git a/public/images/neo/field-protocol-garden.png b/public/images/neo/field-protocol-garden.png new file mode 100644 index 0000000..68f1eb8 Binary files /dev/null and b/public/images/neo/field-protocol-garden.png differ diff --git a/public/images/neo/field-signal-commons.png b/public/images/neo/field-signal-commons.png new file mode 100644 index 0000000..9b5bddb Binary files /dev/null and b/public/images/neo/field-signal-commons.png differ diff --git a/public/images/neo/guild-builders-v1.png b/public/images/neo/guild-builders-v1.png new file mode 100644 index 0000000..e104a33 Binary files /dev/null and b/public/images/neo/guild-builders-v1.png differ diff --git a/public/images/neo/hero-dark-poster.png b/public/images/neo/hero-dark-poster.png new file mode 100644 index 0000000..d6f2739 Binary files /dev/null and b/public/images/neo/hero-dark-poster.png differ diff --git a/public/images/neo/hero-foreground.png b/public/images/neo/hero-foreground.png new file mode 100644 index 0000000..670400e Binary files /dev/null and b/public/images/neo/hero-foreground.png differ diff --git a/public/images/neo/hero-landmarks-v1.png b/public/images/neo/hero-landmarks-v1.png new file mode 100644 index 0000000..f6aaaef Binary files /dev/null and b/public/images/neo/hero-landmarks-v1.png differ diff --git a/public/images/neo/hero-light-poster.png b/public/images/neo/hero-light-poster.png new file mode 100644 index 0000000..95234ae Binary files /dev/null and b/public/images/neo/hero-light-poster.png differ diff --git a/public/images/neo/manifesto-backdrop.png b/public/images/neo/manifesto-backdrop.png new file mode 100644 index 0000000..e3aceb7 Binary files /dev/null and b/public/images/neo/manifesto-backdrop.png differ diff --git a/public/images/neo/project-ship-schematic-v1.webp b/public/images/neo/project-ship-schematic-v1.webp new file mode 100644 index 0000000..28b018d Binary files /dev/null and b/public/images/neo/project-ship-schematic-v1.webp differ diff --git a/public/images/neo/raidguild-panorama-night-v1.webp b/public/images/neo/raidguild-panorama-night-v1.webp new file mode 100644 index 0000000..6f2a54f Binary files /dev/null and b/public/images/neo/raidguild-panorama-night-v1.webp differ diff --git a/public/images/neo/raidguild-panorama.png b/public/images/neo/raidguild-panorama.png new file mode 100644 index 0000000..2e26fc1 Binary files /dev/null and b/public/images/neo/raidguild-panorama.png differ diff --git a/public/images/neo/raidguild-swords.png b/public/images/neo/raidguild-swords.png new file mode 100644 index 0000000..b5fdb0a Binary files /dev/null and b/public/images/neo/raidguild-swords.png differ diff --git a/public/images/neo/sky-citadel.png b/public/images/neo/sky-citadel.png new file mode 100644 index 0000000..7222b61 Binary files /dev/null and b/public/images/neo/sky-citadel.png differ diff --git a/public/images/neo/spear-applied-ai-v1.webp b/public/images/neo/spear-applied-ai-v1.webp new file mode 100644 index 0000000..e1e5b45 Binary files /dev/null and b/public/images/neo/spear-applied-ai-v1.webp differ diff --git a/public/images/neo/spear-edge-problem-v1.webp b/public/images/neo/spear-edge-problem-v1.webp new file mode 100644 index 0000000..f79e584 Binary files /dev/null and b/public/images/neo/spear-edge-problem-v1.webp differ diff --git a/public/images/neo/spear-onchain-v1.webp b/public/images/neo/spear-onchain-v1.webp new file mode 100644 index 0000000..5ef765e Binary files /dev/null and b/public/images/neo/spear-onchain-v1.webp differ diff --git a/public/videos/venture/hero-dark-pingpong.mp4 b/public/videos/venture/hero-dark-pingpong.mp4 new file mode 100644 index 0000000..c62d7fe Binary files /dev/null and b/public/videos/venture/hero-dark-pingpong.mp4 differ diff --git a/public/videos/venture/hero-dark.mp4 b/public/videos/venture/hero-dark.mp4 new file mode 100644 index 0000000..7cae35f Binary files /dev/null and b/public/videos/venture/hero-dark.mp4 differ diff --git a/public/videos/venture/hero-light-pingpong.mp4 b/public/videos/venture/hero-light-pingpong.mp4 new file mode 100644 index 0000000..c197ed0 Binary files /dev/null and b/public/videos/venture/hero-light-pingpong.mp4 differ diff --git a/public/videos/venture/hero-light.mp4 b/public/videos/venture/hero-light.mp4 new file mode 100644 index 0000000..505f8b6 Binary files /dev/null and b/public/videos/venture/hero-light.mp4 differ diff --git a/public/videos/venture/manifesto-crossfade.mp4 b/public/videos/venture/manifesto-crossfade.mp4 new file mode 100644 index 0000000..b840f06 Binary files /dev/null and b/public/videos/venture/manifesto-crossfade.mp4 differ diff --git a/public/videos/venture/manifesto.mp4 b/public/videos/venture/manifesto.mp4 new file mode 100644 index 0000000..79fb500 Binary files /dev/null and b/public/videos/venture/manifesto.mp4 differ diff --git a/scripts/sync-brand-dist.mjs b/scripts/sync-brand-dist.mjs new file mode 100644 index 0000000..e9edd79 --- /dev/null +++ b/scripts/sync-brand-dist.mjs @@ -0,0 +1,28 @@ +import { cp, mkdir } from "node:fs/promises"; +import path from "node:path"; +import { fileURLToPath } from "node:url"; + +const websiteRoot = path.resolve( + path.dirname(fileURLToPath(import.meta.url)), + ".." +); + +const brandRoot = path.resolve(websiteRoot, "../raidguild-brand"); +const source = path.join(brandRoot, "dist/consumer"); +const destination = path.join(websiteRoot, "src/brand-dist"); + +await mkdir(destination, { recursive: true }); + +await cp( + path.join(source, "palette.css"), + path.join(destination, "palette.css"), + { force: true } +); + +await cp( + path.join(source, "VERSION.json"), + path.join(destination, "VERSION.json"), + { force: true } +); + +console.log("RaidGuild Brand synced to src/brand-dist"); diff --git a/src/app/globals.css b/src/app/globals.css index 152b2c0..686cc7c 100644 --- a/src/app/globals.css +++ b/src/app/globals.css @@ -1,5 +1,6 @@ @import "tailwindcss"; @import "tw-animate-css"; +@import "../brand-dist/palette.css"; @custom-variant dark (&:is(.dark *)); @@ -137,40 +138,6 @@ :root { --radius: 0.625rem; - - /* Brand Colors - Moloch */ - --moloch-100: #f1efee; - --moloch-200: #efc5bb; - --moloch-300: #e39b8b; - --moloch-400: #d25c41; - --moloch-500: #bd482d; - --moloch-600: #8b3521; - --moloch-700: #5c2316; - --moloch-800: #29100a; - - /* Brand Colors - Scroll */ - --scroll-100: #f9f7e7; - --scroll-150: #f3eeca; - --scroll-200: #ece5ac; - --scroll-300: #dccd6a; - --scroll-400: #d2c141; - --scroll-500: #b5a22c; - --scroll-600: #837820; - --scroll-700: #534a13; - --scroll-800: #211e07; - - /* Brand Colors - Neutral */ - --neutral-100: #f1efee; - --neutral-200: #d5cecd; - --neutral-300: #b9aeac; - --neutral-400: #9e8e8a; - --neutral-500: #806f6b; - --neutral-600: #645754; - --neutral-700: #433937; - --neutral-800: #221d1c; - --neutral-white: #fafafa; - --neutral-black: #0d0d0d; - /* Light Theme - Using brand colors */ --background: var(--scroll-100); --foreground: var(--moloch-800); diff --git a/src/app/layout.tsx b/src/app/layout.tsx index 1821588..6d6891e 100644 --- a/src/app/layout.tsx +++ b/src/app/layout.tsx @@ -1,5 +1,11 @@ import type { Metadata } from "next"; -import { maziusDisplay, ebGaramond, ubuntuMono } from "@/lib/fonts"; +import { + afacadFlux, + ebGaramond, + maziusDisplay, + ubuntu, + ubuntuMono, +} from "@/lib/fonts"; import "./globals.css"; // import { ThemeProvider } from "next-themes"; import { Providers } from "@/providers/providers"; @@ -8,24 +14,24 @@ import VercelAnalytics from "@/components/VercelAnalytics"; export const metadata: Metadata = { metadataBase: new URL("https://www.raidguild.org"), title: { - default: "RaidGuild — Web3 Design & Development Collective", + default: "RaidGuild — A Builder-Owned Community", template: "%s | RaidGuild", }, description: - "A builder-owned collective shipping smart contracts, dApps, AI systems, and DAO tooling since 2019. Clients include Gitcoin, Gnosis, Pocket Network, and Unlock Protocol.", + "A builder-owned community of creative and technical people sharing knowledge, exploring technology, and building together since 2019.", openGraph: { siteName: "RaidGuild", type: "website", url: "https://www.raidguild.org", - title: "RaidGuild — Web3 Design & Development Collective", + title: "RaidGuild — A Builder-Owned Community", description: - "A builder-owned collective shipping smart contracts, dApps, AI systems, and DAO tooling since 2019.", + "Explore the people, ideas, and independent specialist practices growing from the RaidGuild community.", }, twitter: { card: "summary_large_image", - title: "RaidGuild — Web3 Design & Development Collective", + title: "RaidGuild — A Builder-Owned Community", description: - "A builder-owned collective shipping smart contracts, dApps, AI systems, and DAO tooling since 2019.", + "Explore the people, ideas, and independent specialist practices growing from the RaidGuild community.", }, }; @@ -37,6 +43,11 @@ export default function RootLayout({ return ( +