Skip to content

Brand refresh: gold palette, card-led positioning, and bilingual marketing pages - #72

Merged
MustaverseDigital merged 11 commits into
mainfrom
feature/brand-refresh-taste-skill
Aug 19, 2026
Merged

Brand refresh: gold palette, card-led positioning, and bilingual marketing pages#72
MustaverseDigital merged 11 commits into
mainfrom
feature/brand-refresh-taste-skill

Conversation

@chile109

Copy link
Copy Markdown
Collaborator

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-primary moves from #6366f1 to #c8a75a, the gold already used by the game client (.card-item border, .border-gold), so the site and the game stop looking like two products. Contrast against #0a0a0c improves from 4.43:1 to 8.60:1 — the old indigo failed WCAG AA for the 10px .accent-badge text, and bg-primary + text-white CTAs 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-card treatment, 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-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 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 the 24,792 / 2,499,347 / $24.7M hero counters (already commented out of the JSX but still running as hooks). Also drops the fabricated SECURE_NODE: 0xFF2109 stamp and the unbacked Status: Operational claim, and the four footer columns whose links were all href="#".

The /landing hero was text-only over an empty <source src="">; it now loads home_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 emitted 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.

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

  • /demo appeared to freeze after loading. The info panel opened on mount, and on narrow/portrait screens it renders as a fullscreen fixed inset-0 z-[75] modal over the Unity canvas at z-index: 1. On the exhibition kiosk that covered the whole screen. It now auto-opens only in desktop side-panel mode.
  • vercel.json had no headers for /demo/, only /Build/, so the deployed exhibition build would be served without Content-Encoding: gzip or Content-Type: application/wasm. This one is only verifiable on a deploy preview.
  • No way out of the game. /battle and /demo had no navigation, so on a kiosk without browser chrome players were stuck. Adds an exit button: /demo/landing, /battle/platform with a confirmation.
  • Product cards were clipped on mobile: the image set the card height via aspect-[4/3] while the text was absolute, so longer wrapped text overflowed into overflow-hidden.

Verification

pnpm tsc --noEmit reports no errors in src/, pnpm build prerenders all 11 pages, and pnpm next lint adds no new warnings.

Not visually verified. These changes were made without running the app, so the rendering needs a review pass. Worth checking specifically:

  • Hero text legibility over the video's lower edge, which depends on the actual footage brightness
  • card_layer.jpeg inside the aspect-square container — it may crop
  • Chinese line breaks in the display headings, since Chinese is more compact than English
  • /aurayale and /contact at the new 1400px container width

Known 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

chile109 and others added 11 commits August 13, 2026 18:11
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>
@vercel

vercel Bot commented Aug 17, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
aurayale-web Ready Ready Preview Aug 17, 2026 12:22pm

@github-actions

Copy link
Copy Markdown

Dependency Review

✅ No vulnerabilities or license issues or OpenSSF Scorecard issues found.

Scanned Files

None

@MustaverseDigital MustaverseDigital left a comment

Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@MustaverseDigital
MustaverseDigital merged commit 622de30 into main Aug 19, 2026
8 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants