Back to Arena
Identity System · v1

One sigil. Two decades. Built for the next twenty.

The Cyber Arena mark is a single capital C, slowly turning around its own centre, with four small moons tracing different orbits around it. One letter, four satellites, infinite cycles. Simple, alive, ownable.

Founded
2004
Reborn
2026
Variants
6
x:0 y:0
48 × 48
01// Variants
Sigil · Default
With ambient halo
Sigil · Flat
No halo, tight containers
CYBER ARENAEntertainment Group
Lockup · Horizontal
Primary brand mark
CYBER ARENA
Entertainment Group
Lockup · Stacked
Centered formats
Monochrome · Cyan
Single colour, accent
Monochrome · White
High-contrast use
Inverted · Light surface
On bright backgrounds
CYBER ARENAEntertainment Group
Wordmark only
When the mark is implied
Pictogram · Reverse
On vivid accent
02// Color · Palette

A dark, atmospheric core with three sharp signal accents. Built for cinematic surfaces and high-contrast text. Every colour shipped to users is one of these — no ad-hoc hex.

Foundations

// Surfaces
  • #05060B
    Base
    --bg-basergb 5 6 11

    Page background. The deepest tone. Everything else floats above this.

  • #0A0D1A
    Surface
    --bg-surfacergb 10 13 26

    Panels, modals, nav pills. One step lighter than base.

  • #0F1326
    Surface 2
    --bg-surface-2rgb 15 19 38

    Elevated cards. Used where depth is needed without a border.

  • #131830
    Elevated
    --bg-elevatedrgb 19 24 48

    Hover states, top-of-stack overlays.

Accents

// Signal
  • #22D3EE
    Cyan
    --accent-cyanrgb 34 211 238

    Primary action, focus rings, highlights, the lead voice.

  • #3B82F6
    Electric
    --accent-electricrgb 59 130 246

    Support accent. Used in gradients with cyan and purple.

  • #A855F7
    Purple
    --accent-purplergb 168 85 247

    Secondary accent. Marks AI Lab, contrasts cyan in gradients.

  • #34D399
    Neon
    --accent-neonrgb 52 211 153

    Used sparingly — success states, active signals only.

Text

// Type
  • #F8FAFC
    Primary
    --text-primaryrgb 248 250 252

    Headlines, body text on dark surfaces. Maximum legibility.

  • #94A3B8
    Secondary
    --text-secondaryrgb 148 163 184

    Body copy, descriptions, supporting text.

  • #64748B
    Muted
    --text-mutedrgb 100 116 139

    Labels, metadata, eyebrows. Never used for important content.

03// Typography · Voice

Three families, one rhythm. A display face for emotion, a body face for reading, a mono face for signal. Loaded self-hosted via Nextnext/font— no third-party requests.

Display
Space Grotesk
Weights
500 · 600 · 700
CSS
var(--font-display)
ABCDEFGHIJKLMNOPQR
abcdefghijklmnopqrs
0123456789 — / ()

Hero headlines, section titles, big numbers. Never below 18px.

Body
Inter
Weights
400 · 500 · 600
CSS
var(--font-inter)
ABCDEFGHIJKLMNOPQR
abcdefghijklmnopqrs
0123456789 — / ()

Body copy, descriptions, UI strings. Anything that has to be read fast.

Mono
JetBrains Mono
Weights
400 · 500
CSS
var(--font-mono)
ABCDEFGHIJKLMNOPQR
abcdefghijklmnopqrs
0123456789 — / ()

Tags, eyebrows, year markers, code blocks, telemetry. Always uppercase tracked.

Type scale

// Rhythm
  • Display XL
    84 / 5.25rempx
    Cyber Arena

    Hero h1 on desktop

  • Display L
    60 / 3.75rempx
    Cyber Arena

    Page hero on tablet

  • Display M
    48 / 3rempx
    Cyber Arena

    Section titles, h2

  • Display S
    32 / 2rempx
    Cyber Arena

    Sub-headings, h3 hero variants

  • Title L
    24 / 1.5rempx
    Cyber Arena

    Card titles, h3

  • Title M
    20 / 1.25rempx
    Cyber Arena

    List headings, lockup brand

  • Body L
    18 / 1.125rempx
    Cyber Arena

    Lead paragraphs

  • Body M
    15 / 0.9375rempx
    Cyber Arena

    Standard body copy

  • Body S
    14 / 0.875rempx
    Cyber Arena

    Card descriptions, footer

  • Eyebrow
    10 / 0.625rempx
    Cyber Arena

    Mono labels, telemetry

// Applied hierarchy
// 03 · AI LAB

More than games. Cyber Arena builds AI systems.

Cyber Arena is also a playground for practical AI tools, agentic workflows and digital operating systems.

  • Multi-agent
  • Shared MCPs
  • Mutual review
04// Spacing · Grid

A 4-pixel base, an 8-point rhythm. Twelve curated steps, six breakpoints, three container widths. No ad-hoc numbers — every margin we ship comes from the scale.

The scale

// 4 → 96 px

Token names follow Tailwind utility classes. Pixel values map 1 : 4 — space-2 = 8 px, space-4 = 16 px.

  • space-1
    4px
    0.25rem

    Hairline gaps — icon flank, glow ring offsets

  • space-2
    8px
    0.5rem

    Pill internals, tight horizontal item gaps

  • space-3
    12px
    0.75rem

    Stack between form fields, button internals

  • space-4
    16px
    1rem

    Default horizontal gutter (mobile), card inner gaps

  • space-5
    20px
    1.25rem

    Heading-to-body gap, paragraph rhythm

  • space-6
    24px
    1.5rem

    Card internal padding (compact), gutter at sm

  • space-8
    32px
    2rem

    Card padding, gutter at lg, group separation

  • space-10
    40px
    2.5rem

    Heading-to-grid gap, mid-card breathing

  • space-12
    48px
    3rem

    Section vertical padding (mobile), large card gap

  • space-16
    64px
    4rem

    Section vertical padding (desktop), hero-to-content

  • space-20
    80px
    5rem

    Hero internal — between blocks of meaning

  • space-24
    96px
    6rem

    Largest spacing we use — page-defining negative space

Breakpoints

// Responsive

Mobile-first. Each breakpoint adds, never replaces. Layout shifts happen at lg (1024 px) where most cards reach their multi-column form.

  • xs0

    Small phones, oldest iPhones (320 – 374 px)

    1-column. Pure stack.

  • sm640px

    Large phones landscape, small tablets

    Inline CTAs, 2-col tight grids.

  • md768px

    Tablets, foldables, small laptops

    Navbar links visible, 2-col cards.

  • lg1024px

    Tablets landscape, laptops

    Hero splits 6/6, 3-col cards.

  • xl1280px

    Standard desktops

    Display XL kicks in, max container width.

  • 2xl1536px

    Wide displays, ultra-wides

    No new layout — extra breathing room only.

// Visual ruler · 0 → 1920 px
Mobile-first
xs
0
sm
640
md
768
lg
1024
xl
1280
2xl
1536

Container widths

// max-w

Three sanctioned container widths. Pick by the cognitive load of the page — wider container = more parallel information.

  • max-w-3xl768 px

    Focused reading — legal pages, long-form prose, manifest

  • max-w-5xl1024 px

    Mid-width content — feature deep-dives, narrow heroes

  • max-w-7xl1280 px

    Standard brand surface — homepage, brand book, dashboards

// Gutter rules
Mobile
px-416 px
Tablet (sm)
px-624 px
Desktop (lg)
px-832 px

Layout patterns

// Grid

Four base patterns cover the entire brand surface. Built on a 12-column desktop grid, collapsing to 1 column on mobile.

  • 12-col hero split

    // Grid
    lg:grid-cols-12 · 6 / 6 split

    Hero blocks, side-by-side copy + visual

  • 3-col card grid

    // Grid
    sm:grid-cols-2 · lg:grid-cols-3

    Project cards, feature triplets, font specimens

  • 6-col timeline

    // Grid
    lg:grid-cols-6 — horizontal stops

    Legacy timeline, sequence patterns

  • 2-col bento split

    // Grid
    lg:grid-cols-2 — equal halves

    Voice we-say/we-don't-say, philosophy beliefs

05// Iconography · SVG System

A single icon language across the brand. Outlined glyphs on a 24-grid, five sanctioned stroke weights, one currentColor pipeline. Built so a 16-pixel info badge and a 96-pixel hero pictogram share the same DNA.

  • 01

    Stroke, not fill.

    All UI icons are outlined geometry. One stroke weight per family. We don't mix outlined and filled glyphs at the same hierarchy level.

  • 02

    Drawn on a 24-grid.

    Default viewBox is 24 × 24. Construction lines sit on whole pixels — no half-step diagonals that smear at small sizes.

  • 03

    Round caps, round joins.

    Every stroke endpoint and corner is rounded. It gives the system a precise but humane feel — never aggressive, never robotic.

  • 04

    currentColor only.

    Strokes inherit from the surrounding text colour. One icon tints to every context: cyan in eyebrows, white in titles, muted in labels.

Stroke weights

// 5 tiers

The same glyph rendered at five sanctioned stroke widths. Pick by hierarchy: ambient → light → default → bold → heavy. Never invent a sixth weight.

  • Hairline
    0.6

    Background ambient — HUD lines, grids, telemetry plates, decorative diagrams. Lives behind content.

  • Light
    1.4

    Decorative pictograms inside cards, where the icon supports the type rather than leads it.

  • Default
    1.7

    Standard UI weight. Every functional icon — feature glyphs, list markers, info — uses this.

  • Bold
    2.2

    Primary action emphasis. Arrows inside CTAs, callout chevrons, prominent toggles.

  • Heavy
    2.6

    Status feedback. Tick and cross inside badges, success / error toasts, confirmation overlays.

Size scale

// 12 → 48 px

Seven sanctioned sizes. The minimum readable size is 16 px (16 px below — only as ornaments). Above 48 px we're in mark territory, not icon territory.

  • 12 px

    Eyebrow ticks, ornament dots — used sparingly inside mono labels

  • 16 px

    Inline with body text, secondary CTAs, breadcrumbs

  • 20 px

    Small UI controls, list item markers, compact buttons

  • 24 px

    Default UI size. Feature cards, form fields, nav, primary buttons

  • 32 px

    Card headers, hero-row pictograms, dialog illustrations

  • 40 px

    Section heroes — when an icon needs to carry visual weight

  • 48 px

    Mark / lockup territory — see Section 01 Variants

Families

// Catalog

Three families. UI is functional, Feature is semantic, Status is signal. Never mix two families inside one card row.

UI · Functional

UI

Arrows, ticks, chevrons, info. Action and navigation. Stroke 1.7 default · 2.2 in CTAs.

  • Arrow R
  • Chev R
  • Plus
  • Minus
  • Info
  • Search
  • External
  • Close

Feature · Semantic

FT

Concepts and topics. Club, tactics, scouting, AI mesh. Stroke 1.7. One concept per glyph.

  • Club
  • Tactics
  • Scout
  • Network
  • Progress
  • Browser
  • AI Core
  • Spotlight

Status · Signal

SIG

State and feedback. Live, recording, error, success. Stroke 2.6 inside badges, often with a pulse.

  • Tick
  • Cross
  • Live
  • Alert
// Anatomy

The 24 × 24 grid.

Every UI icon is constructed inside a 24-unit viewBox with a 0.5-unit safe inset on all sides. Strokes align to half-pixels for crisp rendering at native size.

// Markup recipe

The canonical SVG.

The five attributes every functional icon ships with. Anything not on this list — fill, hardcoded colour, square caps — is a code-review failure.

<svg
  viewBox="0 0 24 24"
  fill="none"
  stroke="currentColor"
  strokeWidth={1.7}
  strokeLinecap="round"
  strokeLinejoin="round"
  aria-hidden
>
  <path d="…" />
</svg>

Do · Don't

// Rules

Six concrete checks for every PR that ships a new icon.

  • Do

    One stroke weight per family.

    Pick 1.7 for UI, hold the line across every glyph in the row.

  • Don't

    Mixing 1.5 and 2.5 in one row.

    Different weights inside the same card read as a system error.

  • Do

    Round caps and joins.

    strokeLinecap="round" strokeLinejoin="round" — always.

  • Don't

    Square caps on UI glyphs.

    Squared endpoints look aggressive and date the system instantly.

  • Do

    stroke="currentColor".

    One icon recolours into every context. Saves a token, saves a bug.

  • Don't

    Hardcoded fills or colours.

    Locks the glyph to one palette. Breaks dark mode and accent tints.

06// Components · Atoms

The kit. Buttons, inputs, panels, pills — the four primitives every screen composes from. Live components below, in the exact styles they ship on the homepage. Class names visible, no Photoshop tricks.

  • 01

    Composable atoms.

    Every UI surface is made from a small kit of primitives — button, input, panel, pill. Nothing bespoke unless we measure why.

  • 02

    Every component has five states.

    Default, hover, focus, active, disabled. Loading where async. If a state is missing, the component is shipping incomplete.

  • 03

    44 minimum on touch.

    Tap targets clear 44 px on phone-class viewports. Visual size can be smaller; hit area cannot.

  • 04

    Class names sing.

    .btn-primary, .btn-secondary, .panel, .tag — short, semantic, in globals.css. Tailwind utilities compose around them, never replace them.

Buttons

// Variants · Sizes

Three variants — primary, secondary, ghost. Three sizes — sm, md, lg. Pick by hierarchy, never by colour.

// Variant · md (default size)
Explore the ArenaFootball ManagerLearn more
.btn-primary.btn-secondaryrounded-full px-4 py-2 text-cyan-200
// Sizes — sm · md · lg
SmallMediumLarge
px-3.5 py-1.5 text-[13px].btn-primarypx-7 py-3.5 text-base
// States — default · hover · focus · disabled · loading
Default default
Hover :hover
Focus :focus-visible
Disabled :disabled
Joining…async

Inputs

// Form fields

Single height rule on h-14 (56 px). Cyan focus ring at 2 px with a 4 px translucent halo. Errors land below the field, never above.

// States — default · focus · error · disabled

That doesn't look like a valid email.

// Textarea
rounded-2xl border-white/[0.08] bg-[rgba(7,9,20,0.85)] focus:ring-cyan-300/20

Cards · Panels

// Surfaces

.panel-static is the workhorse. .panel adds a hover-glow used on interactive cards. Don't reach for a custom card before you've checked these two.

// Surface variants
// AGM-01

Argus&M OS

A second AI on every project. Same MCP tools, mutual review, paired build.

Multi-agentShared MCPs
.panel-staticNo hover
// AGM-01

Argus&M OS

A second AI on every project. Same MCP tools, mutual review, paired build.

Multi-agentShared MCPs
.panelHover glow
// AGM-01

Argus&M OS

A second AI on every project. Same MCP tools, mutual review, paired build.

Multi-agentShared MCPs
border-dashed border-white/[0.10]Placeholder · TODO
// Anatomy
  • // Eyebrow
    Mono · 10px · uppercase · cyan-300/80
  • Title
    Display · 18 – 24 px · semibold · white
  • Body
    Inter · 13 – 15 px · text-secondary
  • Footer / Pills
    Mono · 10 px · uppercase · text-muted

Pills · Tags · Badges

// Signal atoms

Three roles. Tag = brand-level callout with a live dot. Pill = neutral attribute. Badge = numeric or status flash.

// .tag · brand callout with pulsing dot
Entertainment Group · Est. 2004Identity System · v1
.tag .tag-dot
// Neutral pills · attributes, filters, metadata
Multi-agentShared MCPsMutual reviewPair build
rounded-full border-white/[0.06] bg-white/[0.02] px-2.5 py-1 font-mono
// Status pills · live / success / error / warning
LiveShippedFailedAt risk
// Badges · numeric counters
Inbox3Updates12Errors99+
// Chips · removable attributes
AI LabFootball ManagerBrowsergame

State matrix

// Coverage

A single component, every state. Use this as a checklist when shipping new components — if one cell is empty, the component isn't done.

ComponentDefaultHoverFocusDisabled
Button · Primary
.btn-primary
Default
Hover
Focus
Disabled
Button · Secondary
.btn-secondary
Default:hover:focus-visible:disabled
Input · Email
h-14 · rounded-2xl
07// States · Page Patterns

The three states that decide whether a product feels alive or dead. Below are the sanctioned full-page patterns — exact composition, exact copy template, exact recovery action. Build new screens against these, not from scratch.

  • 01

    Every screen has all three.

    Loading, empty, error. If you only ship the happy path, you don't ship a product — you ship a demo.

  • 02

    Copy carries the weight.

    Visuals frame the moment. The words define what happened and what to do next. A great empty state is mostly text.

  • 03

    Recovery is a button, not a hope.

    Every error and empty state ships with a clear primary action — retry, go home, create, refine — never just an apology.

  • 04

    Skeleton over spinner.

    Show shape, not just motion. A skeleton mirrors what's coming. A spinner only tells the user we don't know how long it'll take.

Loading

// While the data lands

Reserve real layout space immediately. Mirror what's coming. Spinners are for under one second; skeletons are for everything else.

Cyber Arena
Loaded · 80 ms

Instant — no indicator

< 0.3 s

Don't flash a spinner for a near-instant response. It reads as broken UI.

Cyber Arena
Saving…

Inline spinner

0.3 – 1 s

Action-bound: spinner inside the button, never blanking the page.

Cyber Arena

Skeleton page

1 – 5 s

Show the shape. Skeletons mirror real layout — same containers, same rhythm.

Cyber Arena
Compiling tactics
Step 3 of 5 · 60 %
Cancel

Progress with status

5 s+

Tell users what's happening. Step name + percentage + cancel for anything longer than five seconds.

// Loading copy
Verb-led status
Loading manager data… · Compiling tactics… · Talking to Argus&M…
Never
Just a moment… · Please wait… · Loading…
Cancel
Always available past 5 s. Bottom-right of the modal/page.

Empty

// Nothing here — yet

Empty isn't a failure. It's an invitation. Acknowledge what's missing, explain why, give one clear next step.

Cyber Arena
No projects yet.
Spin one up to start mapping out your squad, tactics and season.
+ Create project

No data, never had any

First-time

Onboarding moment. Lean into the invitation. The primary action is the entire point of the screen.

Cyber Arena
Filter · StrikerFilter · < 25
No players match these filters.
Try widening the age range or removing a position filter.
Clear filters

Filters returned nothing

Filtered

Don't blame the user. Offer to clear the filter or broaden the query.

Cyber Arena
$ mbappé
No results for "mbappé".
Check the spelling, or browse by position instead.
StrikerFree agent

Query returned nothing

Search

Show what they searched, suggest reformulation, surface recent searches if available.

Cyber Arena
All caught up.
No new transfers, no pending reviews. Come back after the next match.
// Last synced · just now

All caught up · positive empty

Completed

Reward the empty. The user just finished something — make the screen feel earned, not blank.

// Empty copy template
Title
State what's missing. 'No projects yet.' — not 'Welcome!'
Body
One line explaining how to fill it. Concrete verb.
Action
One primary CTA. Optional secondary as ghost link.
Tone
Inviting, never apologetic. The product works — it's just new.

Error

// Something broke

Tell the user what happened, why it matters, and what to do about it. No stack traces. No 'Something went wrong.' Recovery comes first, explanation second.

Cyber Arena
404
We can't find that page.
It may have moved, or never existed in this build.
Back to homeReport link

Page not found

404

Often the user's fault (typo, stale link). Acknowledge briefly, send them home.

Cyber Arena
500 · Internal error
We dropped the request on our end.
The page didn't render. We've been pinged. Try again — it usually clears.
RetryReport
Ref · 8f3a-2e91

Server-side error

500

Our fault. Apologise once, offer retry, offer a way to report it.

Cyber Arena
Offline · auto-retrying
Retry now

Network unavailable

Offline

Inline banner over the failing region. Auto-retry when the connection returns; surface a manual retry button.

Cyber Arena
You need access.
This area is closed-alpha. Ask the team to invite you, or join the waitlist.
Join waitlistSign in

Permission denied

403

Don't shame the user. State the access requirement and offer the path to get it.

// Error copy template
Code
Optional small mono label — 404 · 500 · OFFLINE · 403
Title
Human description of what happened. 'We can't find that page.'
Body
One line of cause + one line of recovery hint.
Action
Primary recovery (retry · go home). Optional secondary (report).
Never
'Oops!' · 'Whoops!' · 'Something went wrong.' · raw stack traces.

Coverage map

// Per-screen checklist

Before a screen ships, every cell here must have an answer. 'N/A' is valid; 'TODO' is not.

ScreenLoadingEmptyError
Football Manager · SquadSkeleton · player rowsFirst-time · 'No squad yet · Sign players'500 · 'We couldn't load the squad · Retry'
AI Lab · Argus&MSkeleton · agent panelsN/A — always at least one agentOffline · banner with auto-retry
Waitlist confirmationInline · button spinnerN/AInline · field-level error message
Brand bookInstant · static prerenderN/A404 · 'Section not found · Back to brand'
08// Motion · Behaviour

Motion is a language. We use it to clarify relationships, not to decorate them. Five duration tiers, two easing families, one accessibility rule.

  • 01

    Motion has a job.

    Every animation expresses cause and effect — a state change, a relationship, a spatial transition. Decorative motion is no motion.

  • 02

    Restraint over flair.

    Short, contained durations. We move things less, and only as far as needed. Long animations feel slow long before they look slow.

  • 03

    Spatial continuity.

    Things enter from where they came from and exit toward where they go. Page transitions, sheets and modals trace their source.

  • 04

    Reduced motion is the default.

    Every animation collapses to instant under prefers-reduced-motion: reduce. Brand polish never costs accessibility.

Duration scale

// Live demos
  • CA
    Micro
    150ms

    Button press, ripple, focus rings, toggle clicks

    ease-out
  • // Updated
    Quick
    220ms

    Hover state, tooltip, dropdown open, small fade

    cubic-bezier(.22,.61,.36,1)
  • Panel
    Standard
    300ms

    Modal open, panel slide, page transition, sheet

    cubic-bezier(.22,.61,.36,1)
  • Slow
    600ms

    Hero reveal, staggered list entrance, lazy section in

    cubic-bezier(.5,.0,.5,1)
  • Ambient
    5 – 90s

    Aurora drift, orbit ring, scanline shimmer (background)

    linear / ease-in-out
// Easing

Enter ease-out. Exit ease-in.

Things appear by decelerating into place. They leave by accelerating away. Linear is reserved for ambient background motion only (orbits, drifts, scans).

Enter
cubic-bezier(.22, .61, .36, 1)
Exit
cubic-bezier(.5, 0, .75, 0)
Ambient
linear / ease-in-out
// Accessibility

prefers-reduced-motion

Under the system flag, all animations collapse to instant transitions. Including ambient layers (aurora, orbits, scanlines). No exceptions, no excuses.

@media (prefers-reduced-motion: reduce) {
  * { animation-duration: 0.001ms !important;
      transition-duration: 0.001ms !important; }
}
09// Voice · Tone

We sound like an operator who has shipped things and still loves the internet. Confident, nostalgic, modern, ambitious. Never corporate. Never childish. Never buzzword-heavy.

  • 01

    Speak like a human.

    First-person plural, contractions, real verbs. We never write like a press release.

  • 02

    Concrete over abstract.

    Long seasons, not extended engagement. Browsergame, not gamified platform. Show the thing.

  • 03

    Confidence without bragging.

    State what we built, not how we revolutionised. Facts carry weight on their own.

  • 04

    Short over long.

    One sharp sentence beats three soft ones. Cut adverbs. Cut hedges. Cut throat-clearing.

  • 05

    Nostalgia, not sentiment.

    We refer to the old internet as fact, never as myth. The era was real, the lessons are real.

  • 06

    No buzzwords.

    If a word could appear in any tech company's homepage this year, it doesn't belong on ours.

We say · We don't say

// Phrasing
  • We say

    Built for players who stayed for years, not minutes.

    We don't say

    Designed for high-LTV power users.

  • We say

    AI augments builders. It doesn't replace taste.

    We don't say

    Revolutionary AI that unlocks next-gen creativity.

  • We say

    A second AI on every project.

    We don't say

    Synergistic multi-agent orchestration platform.

  • We say

    Strategy, alliances, late-night raids.

    We don't say

    Engaging strategic gameplay experiences for our community.

  • We say

    We build worlds we'd open on a Sunday evening.

    We don't say

    We are passionate about delivering best-in-class user experiences.

  • We say

    Same spirit. Faster brain. Sharper systems.

    We don't say

    Cutting-edge AI-powered solutions for the next generation.

// Forbidden
15 words

Words we never ship.

These are the marketing hand-me-downs of the last decade. If a word could appear on any other tech site this week, it doesn't belong here.

  • revolutionary
  • disruptive
  • game-changing
  • synergy
  • synergistic
  • next-gen
  • leverage
  • unlock
  • transform
  • paradigm
  • ecosystem
  • robust
  • world-class
  • best-in-class
  • seamless

Tone by context

// Register
  • Hero
    Cinematic · Bold
    Big claim, short rhythm. Lead with the change.
  • Product
    Precise · Confident
    Name what it does. No marketing fog.
  • Philosophy
    Warm · Opinionated
    Speak in first-person plural. Take a side.
  • Waitlist
    Direct · Inviting
    Casual, never desperate. One ask, no fine print up front.
  • Legal
    Formal · Human
    Stay readable. The law doesn't require sounding bored.
10// Imagery · Visual Direction

What we put on the page matters as much as what we write. Our visual surface is dark, intentional, and made of geometry, light and treated atmosphere — not stock photography.

  • 01

    Atmosphere over stock.

    Dark, cinematic, intentional. Never the bright-corporate-handshake palette. If it could sit on any SaaS homepage, it doesn't sit on ours.

  • 02

    Geometry over crowds.

    Grids, lines, light, vectors, architectural form. We don't fill our pages with stock people in glass meeting rooms.

  • 03

    Suggest, don't illustrate.

    AI is networks, structure, focus — not brains-in-jars and robot hands. Football is tactics, not screaming fans.

  • 04

    Treatment is part of the brand.

    Every image is colour-graded into the palette: dark midtones, cyan or purple highlight, a touch of grain, a quiet vignette.

On-brand · Off-brand

// Direction
  • On-brand
    Dark grid + node mesh
    AI as structure
    Off-brand
    Brightly lit team huddle
    Generic stock SaaS
  • On-brand
    Architectural silhouette
    Arena as geometry
    Off-brand
    Glowing brain illustration
    AI cliché
  • On-brand
    Abstract orbital field
    Community as gravity
    Off-brand
    Sun-lit laptop with coffee
    Bright corporate stock
// Treatment

How we colour-grade.

Even when a source image is generic, the treatment makes it ours. Five steps, applied in order.

  1. 01
    Crush

    Drop the highlights, lift the shadows just enough to see structure.

  2. 02
    Cool tint

    Push midtones toward cyan / electric. Pull warm yellows out.

  3. 03
    Accent glow

    Add a single cyan or purple light source to anchor the eye.

  4. 04
    Grain

    3 – 5 % filmic grain. Always. Even on a flat SVG plate.

  5. 05
    Vignette

    Soft radial darken at the edges so content stays centred.

11// App icon · Favicon
16×16
24×24
32×32
48×48
64×64
96×96
iOS · iPad128×128
iOS · iPhone180×180
Desktop · Tile256×256
12// Designidee
01Meaning

The C

The capital letter of Cyber Arena, drawn as a single bold arc. The brand reduced to one stroke — nothing extra to remember.

02Meaning

Rotation

The C turns around its own centre — 22 seconds per full revolution. Passes through every orientation and returns. On hover it doubles its pace.

03Meaning

Moons

Four satellites trace four different orbits — one wide horizontal, one vertical, one tight inner, one even wider outer. Two cyan, two violet. Different paths, different speeds.

04Meaning

Cycles

5, 9, 13, 17 seconds per orbit. None of the periods divide the others cleanly, so the constellation never repeats — the mark looks fresh on every glance.

05Meaning

Halo

A soft cyan halo behind the mark anchors it on dark surfaces. When the mark sits inside a tight container (navbar, pill), the halo is removed automatically.

06Meaning

Geometry

Built on a 48 × 48 grid. The C is a single SVG path; each moon is one circle on one orbital path. Crisp from 16-pixel favicon to 4K hero.

13// Construction · Clearspace
// Minimum clearspace

Breathe room around the sigil

Keep clear space equal to half the mark's height on all sides. No competing graphics. No type. Just stillness.

// Minimum size

Built to scale down

For UI, never render the sigil below 20 × 20 pixels. Below that, swap to the favicon variant which simplifies the orbit ring.

20px
32px
48px
72px
96px