Brand refresh: gold palette, card-led positioning, and bilingual marketing pages - #72
Merged
Merged
Conversation
Install design-taste-frontend and redesign-existing-projects from Leonxlnx/taste-skill via `npx skills add`, with lockfile. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Swap --color-primary from #6366f1 (indigo) to #c8a75a, the gold already used by the game client (.card-item border, .border-gold). This unifies the marketing site with the in-game visual language. Contrast against #0a0a0c improves from 4.43:1 to 8.60:1; the old indigo failed WCAG AA for the 10px .accent-badge text. Also adds a TCG rarity colour scale (common/rare/epic/legendary), a .tcg-card treatment with rarity edge and hover lift, and a documented 4-step corner-radius scale to replace the ad-hoc [2rem]/[2.5rem]/[3rem] values used across the marketing pages. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Rework /landing for the "entertainment and IP, driven through cards"
positioning, aimed at Web3/XR partners in TCG-native visual language.
Hero: the empty <source src=""> now loads home_banner.mp4, an asset
already committed but never wired up. Layout moves from centred text to
an asymmetric composition anchored to the lower edge, and gains the CTAs
it previously lacked. min-h-[95vh] becomes min-h-[100dvh] to stop the
iOS address-bar jump.
Copy: replaces abstract consultancy language ("Crafting the Invisible
Layer", "intersection of spatial computing and decentralized systems")
with a card-led narrative.
Structure: the three identical feature cards become rarity-tiered TCG
cards; the two equal product tiles become an asymmetric 3:2 split with
Aurayale as flagship; "More" on both CTAs becomes distinct labels.
Removes invented metrics (50+ deployments, 12 innovations) and the now
orphaned CountUpNumber component. Hides the team section. Swaps the
3.2MB m_banner.png for card_layer.jpeg (263KB).
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Align the hero with /landing: left-aligned and anchored to the lower edge instead of centred, min-h-[100dvh], and buttons in the shared shape scale. Removes the animated scroll chevron. Deletes the invented counters (24,792 games played / 2,499,347 in agents / $24.7M prize pool) which were already commented out of the JSX but still running as hooks, along with the local useCountUp duplicate of the one in useScrollReveal. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
… pages The footer's four link columns were entirely href="#" placeholders, so they are removed in favour of contact details and office locations. Also drops the fabricated SECURE_NODE: 0xFF2109 stamp and the unbacked "Status: Operational" claim. Legal links are kept as placeholders since they still need real pages. Layout is now brand / contact / offices, with the brand column absorbing slack and the other two sized to content, so the rightmost column no longer leaves a wide gap. Offices link out to Google Maps. Body text moves off slate-600 (2.61:1, below WCAG AA) to slate-400/500. Separately, the marketing surfaces used four different containers (max-w-[1400px] px-8 in the navbar, max-w-7xl px-6 in sections, max-w-7xl px-8 in the footer, max-w-5xl px-6 in the CTA), so nothing shared a vertical edge. All now use max-w-[1400px] px-6, and the CTA becomes a full-width band instead of an inset floating panel. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
The Unity canvas covers the viewport with no navigation, so /battle and /demo had no way back to the site. On the exhibition kiosk, where there is no browser chrome, players were effectively stuck. Adds a persistent top-left exit button: /demo returns to /landing, and /battle returns to /platform with a confirmation since a match may be in progress. It stays visible alongside the desktop side panel (anchored right, so no overlap) and hides only behind the mobile fullscreen modal. Moves the DEMO / EXHIBITION badge to the top right to make room, and adds the exitGame strings in both locales. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Rewrites the landing page around commissioned work rather than a general studio pitch, so an IP owner can see what they can hire us for. Hero leads with "Your IP. On cards, on-chain." and the primary CTA becomes "Work with us", with "Play Aurayale" demoted to secondary, since the audience is partners rather than players. The three service cards move from internal job titles (card design / game build / on-chain) to the layers a client commissions: TCG, RWA and XR & AI. The RWA card cites the gem trade's 4C grading system, which Aurayale already uses for rarity, so the claim rests on something real. RWA is framed as capability and direction rather than shipped work. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
The landing, aurayale and contact pages were hardcoded English while the game already ran on i18n, so switching language only affected the info panel. This wires all three pages plus the navbar, mobile menu and footer to the existing dictionary, defaulting to zh-TW. i18n previously initialised from localStorage. That was safe when only the client-rendered game panel used it, but the marketing pages are statically prerendered, so the server would emit zh-TW while a client set to English hydrated different text into the same DOM. Initialisation now always uses DEFAULT_LOCALE and _app applies the stored locale after mount. Adds a language switcher styled for the dark pages; the existing one is dark-on-light for the white info panel and would be invisible here. Replaces the "John Doe" form placeholder, and keeps industry terms (ERC-1155, Chainlink VRF, TCG/RWA/XR) untranslated in both locales. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Card names are identifiers players match against the game client and the English codex, so translating them made the same card read differently depending on the site language. The zh-TW dictionary now carries the English names while effect text stays translated. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
Dependency Review✅ No vulnerabilities or license issues or OpenSSF Scorecard issues found.Scanned FilesNone |
MustaverseDigital
requested review from
OwenLu0125 and
mao20110811
and removed request for
mao20110811
August 19, 2026 06:15
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Reworks the marketing surfaces (
/landing,/aurayale,/contact) around the studio's positioning as a card-economy studio, and makes them bilingual. Also fixes two bugs found along the way on/demo.Visual system
Accent colour.
--color-primarymoves from#6366f1to#c8a75a, the gold already used by the game client (.card-itemborder,.border-gold), so the site and the game stop looking like two products. Contrast against#0a0a0cimproves from 4.43:1 to 8.60:1 — the old indigo failed WCAG AA for the 10px.accent-badgetext, andbg-primary+text-whiteCTAs were at 2.30:1, so button labels are now near-black.Tokens. Adds a TCG rarity scale (common/rare/epic/legendary) and a
.tcg-cardtreatment, plus a documented 4-step corner-radius scale replacing the ad-hoc[2rem]/[2.5rem]/[3rem]values.Containers. The pages previously used four different containers —
max-w-[1400px] px-8in the navbar,max-w-7xl px-6in sections,max-w-7xl px-8in the footer,max-w-5xl px-6in the CTA — so nothing shared a vertical edge. All now usemax-w-[1400px] px-6, and the CTA is a full-width band rather than an inset floating panel.Content
Copy moves from abstract consultancy language ("Crafting the Invisible Layer", "the intersection of spatial computing and decentralized systems") to what a client can actually commission. The three feature cards become the layers being sold: TCG, RWA, XR & AI. The RWA card cites the gem trade's 4C grading system, which Aurayale already uses for rarity, so the claim rests on something real; RWA is framed as capability and direction rather than shipped work.
Removes invented figures:
50+ deployments,12 innovations, and the24,792/2,499,347/$24.7Mhero counters (already commented out of the JSX but still running as hooks). Also drops the fabricatedSECURE_NODE: 0xFF2109stamp and the unbackedStatus: Operationalclaim, and the four footer columns whose links were allhref="#".The
/landinghero was text-only over an empty<source src="">; it now loadshome_banner.mp4, an asset already committed but never wired up.Internationalisation
All three pages plus the navbar, mobile menu and footer now read from the existing dictionary, defaulting to
zh-TW.One correctness fix was needed: i18n initialised from
localStorage, which was safe when only the client-rendered game panel used it. The marketing pages are statically prerendered, so the server emittedzh-TWwhile a client set to English hydrated different text into the same DOM. Initialisation now always usesDEFAULT_LOCALE, and_appapplies the stored locale after mount.Gem card names stay English in both locales — they are identifiers players match against the game client, so translating them made the same card read differently depending on site language. Effect text is translated. Industry terms (ERC-1155, Chainlink VRF, TCG/RWA/XR) are left untranslated.
Fixes
/demoappeared to freeze after loading. The info panel opened on mount, and on narrow/portrait screens it renders as a fullscreenfixed inset-0 z-[75]modal over the Unity canvas atz-index: 1. On the exhibition kiosk that covered the whole screen. It now auto-opens only in desktop side-panel mode.vercel.jsonhad no headers for/demo/, only/Build/, so the deployed exhibition build would be served withoutContent-Encoding: gziporContent-Type: application/wasm. This one is only verifiable on a deploy preview./battleand/demohad no navigation, so on a kiosk without browser chrome players were stuck. Adds an exit button:/demo→/landing,/battle→/platformwith a confirmation.aspect-[4/3]while the text wasabsolute, so longer wrapped text overflowed intooverflow-hidden.Verification
pnpm tsc --noEmitreports no errors insrc/,pnpm buildprerenders all 11 pages, andpnpm next lintadds no new warnings.Not visually verified. These changes were made without running the app, so the rendering needs a review pass. Worth checking specifically:
card_layer.jpeginside theaspect-squarecontainer — it may crop/aurayaleand/contactat the new 1400px container widthKnown gaps
The footer's Privacy Policy and Terms of Service links are still
href="#". They were kept deliberately rather than deleted, since ERC-1155 assets likely make those pages a requirement — they need real content.The XR card mentions AI-assisted art pipelines. There is nothing AI-related in the codebase, so it is worded as capability; if the studio does not actually run such a pipeline, that line should come out.
🤖 Generated with Claude Code