Das Brand-Book ist aktuell nur auf Englisch verfügbar — die technischen Begriffe (tokens, lockup, sigil, clear space …) sind branchenweit englisch dokumentiert. Eine deutsche Übersetzung folgt, wenn das System feststeht.
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
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- #05060BBase
--bg-basergb 5 6 11Page background. The deepest tone. Everything else floats above this.
- #0A0D1ASurface
--bg-surfacergb 10 13 26Panels, modals, nav pills. One step lighter than base.
- #0F1326Surface 2
--bg-surface-2rgb 15 19 38Elevated cards. Used where depth is needed without a border.
- #131830Elevated
--bg-elevatedrgb 19 24 48Hover states, top-of-stack overlays.
Accents
// Signal- #22D3EECyan
--accent-cyanrgb 34 211 238Primary action, focus rings, highlights, the lead voice.
- #3B82F6Electric
--accent-electricrgb 59 130 246Support accent. Used in gradients with cyan and purple.
- #A855F7Purple
--accent-purplergb 168 85 247Secondary accent. Marks AI Lab, contrasts cyan in gradients.
- #34D399Neon
--accent-neonrgb 52 211 153Used sparingly — success states, active signals only.
Text
// Type- #F8FAFCPrimary
--text-primaryrgb 248 250 252Headlines, body text on dark surfaces. Maximum legibility.
- #94A3B8Secondary
--text-secondaryrgb 148 163 184Body copy, descriptions, supporting text.
- #64748BMuted
--text-mutedrgb 100 116 139Labels, metadata, eyebrows. Never used for important content.
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.
var(--font-display)ABCDEFGHIJKLMNOPQR abcdefghijklmnopqrs 0123456789 — / ()
Hero headlines, section titles, big numbers. Never below 18px.
var(--font-inter)ABCDEFGHIJKLMNOPQR abcdefghijklmnopqrs 0123456789 — / ()
Body copy, descriptions, UI strings. Anything that has to be read fast.
var(--font-mono)ABCDEFGHIJKLMNOPQR abcdefghijklmnopqrs 0123456789 — / ()
Tags, eyebrows, year markers, code blocks, telemetry. Always uppercase tracked.
Type scale
// Rhythm- Display XL84 / 5.25rempxCyber Arena
Hero h1 on desktop
- Display L60 / 3.75rempxCyber Arena
Page hero on tablet
- Display M48 / 3rempxCyber Arena
Section titles, h2
- Display S32 / 2rempxCyber Arena
Sub-headings, h3 hero variants
- Title L24 / 1.5rempxCyber Arena
Card titles, h3
- Title M20 / 1.25rempxCyber Arena
List headings, lockup brand
- Body L18 / 1.125rempxCyber Arena
Lead paragraphs
- Body M15 / 0.9375rempxCyber Arena
Standard body copy
- Body S14 / 0.875rempxCyber Arena
Card descriptions, footer
- Eyebrow10 / 0.625rempxCyber Arena
Mono labels, telemetry
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
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 pxToken names follow Tailwind utility classes. Pixel values map 1 : 4 — space-2 = 8 px, space-4 = 16 px.
space-14px0.25remHairline gaps — icon flank, glow ring offsets
space-28px0.5remPill internals, tight horizontal item gaps
space-312px0.75remStack between form fields, button internals
space-416px1remDefault horizontal gutter (mobile), card inner gaps
space-520px1.25remHeading-to-body gap, paragraph rhythm
space-624px1.5remCard internal padding (compact), gutter at sm
space-832px2remCard padding, gutter at lg, group separation
space-1040px2.5remHeading-to-grid gap, mid-card breathing
space-1248px3remSection vertical padding (mobile), large card gap
space-1664px4remSection vertical padding (desktop), hero-to-content
space-2080px5remHero internal — between blocks of meaning
space-2496px6remLargest spacing we use — page-defining negative space
Breakpoints
// ResponsiveMobile-first. Each breakpoint adds, never replaces. Layout shifts happen at lg (1024 px) where most cards reach their multi-column form.
xs≥ 0Small phones, oldest iPhones (320 – 374 px)
1-column. Pure stack.
sm≥ 640pxLarge phones landscape, small tablets
Inline CTAs, 2-col tight grids.
md≥ 768pxTablets, foldables, small laptops
Navbar links visible, 2-col cards.
lg≥ 1024pxTablets landscape, laptops
Hero splits 6/6, 3-col cards.
xl≥ 1280pxStandard desktops
Display XL kicks in, max container width.
2xl≥ 1536pxWide displays, ultra-wides
No new layout — extra breathing room only.
Container widths
// max-wThree sanctioned container widths. Pick by the cognitive load of the page — wider container = more parallel information.
max-w-3xl768 pxFocused reading — legal pages, long-form prose, manifest
max-w-5xl1024 pxMid-width content — feature deep-dives, narrow heroes
max-w-7xl1280 pxStandard brand surface — homepage, brand book, dashboards
px-416 pxpx-624 pxpx-832 pxLayout patterns
// GridFour base patterns cover the entire brand surface. Built on a 12-column desktop grid, collapsing to 1 column on mobile.
12-col hero split
// Gridlg:grid-cols-12 · 6 / 6 splitHero blocks, side-by-side copy + visual
3-col card grid
// Gridsm:grid-cols-2 · lg:grid-cols-3Project cards, feature triplets, font specimens
6-col timeline
// Gridlg:grid-cols-6 — horizontal stopsLegacy timeline, sequence patterns
2-col bento split
// Gridlg:grid-cols-2 — equal halvesVoice we-say/we-don't-say, philosophy beliefs
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 tiersThe same glyph rendered at five sanctioned stroke widths. Pick by hierarchy: ambient → light → default → bold → heavy. Never invent a sixth weight.
- Hairline
0.6Background ambient — HUD lines, grids, telemetry plates, decorative diagrams. Lives behind content.
- Light
1.4Decorative pictograms inside cards, where the icon supports the type rather than leads it.
- Default
1.7Standard UI weight. Every functional icon — feature glyphs, list markers, info — uses this.
- Bold
2.2Primary action emphasis. Arrows inside CTAs, callout chevrons, prominent toggles.
- Heavy
2.6Status feedback. Tick and cross inside badges, success / error toasts, confirmation overlays.
Size scale
// 12 → 48 pxSeven 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 pxEyebrow ticks, ornament dots — used sparingly inside mono labels
16 pxInline with body text, secondary CTAs, breadcrumbs
20 pxSmall UI controls, list item markers, compact buttons
24 pxDefault UI size. Feature cards, form fields, nav, primary buttons
32 pxCard headers, hero-row pictograms, dialog illustrations
40 pxSection heroes — when an icon needs to carry visual weight
48 pxMark / lockup territory — see Section 01 Variants
Families
// CatalogThree families. UI is functional, Feature is semantic, Status is signal. Never mix two families inside one card row.
UI · Functional
UIArrows, 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
FTConcepts 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
SIGState and feedback. Live, recording, error, success. Stroke 2.6 inside badges, often with a pulse.
- Tick
- Cross
- Live
- Alert
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.
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
// RulesSix 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.
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 · SizesThree variants — primary, secondary, ghost. Three sizes — sm, md, lg. Pick by hierarchy, never by colour.
.btn-primary.btn-secondaryrounded-full px-4 py-2 text-cyan-200px-3.5 py-1.5 text-[13px].btn-primarypx-7 py-3.5 text-baseInputs
// Form fieldsSingle 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.
That doesn't look like a valid email.
rounded-2xl border-white/[0.08] bg-[rgba(7,9,20,0.85)] focus:ring-cyan-300/20Cards · 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.
Argus&M OS
A second AI on every project. Same MCP tools, mutual review, paired build.
.panel-staticNo hoverArgus&M OS
A second AI on every project. Same MCP tools, mutual review, paired build.
.panelHover glowArgus&M OS
A second AI on every project. Same MCP tools, mutual review, paired build.
border-dashed border-white/[0.10]Placeholder · TODO- // EyebrowMono · 10px · uppercase · cyan-300/80
- TitleDisplay · 18 – 24 px · semibold · white
- BodyInter · 13 – 15 px · text-secondary
- Footer / PillsMono · 10 px · uppercase · text-muted
Pills · Tags · Badges
// Signal atomsThree roles. Tag = brand-level callout with a live dot. Pill = neutral attribute. Badge = numeric or status flash.
.tag .tag-dotrounded-full border-white/[0.06] bg-white/[0.02] px-2.5 py-1 font-monoState matrix
// CoverageA single component, every state. Use this as a checklist when shipping new components — if one cell is empty, the component isn't done.
| Component | Default | Hover | Focus | Disabled |
|---|---|---|---|---|
Button · Primary .btn-primary | Default | Hover | Focus | Disabled |
Button · Secondary .btn-secondary | Default | :hover | :focus-visible | :disabled |
Input · Email h-14 · rounded-2xl |
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 landsReserve real layout space immediately. Mirror what's coming. Spinners are for under one second; skeletons are for everything else.
Instant — no indicator
< 0.3 sDon't flash a spinner for a near-instant response. It reads as broken UI.
Inline spinner
0.3 – 1 sAction-bound: spinner inside the button, never blanking the page.
Skeleton page
1 – 5 sShow the shape. Skeletons mirror real layout — same containers, same rhythm.
Progress with status
5 s+Tell users what's happening. Step name + percentage + cancel for anything longer than five seconds.
- 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 — yetEmpty isn't a failure. It's an invitation. Acknowledge what's missing, explain why, give one clear next step.
No data, never had any
First-timeOnboarding moment. Lean into the invitation. The primary action is the entire point of the screen.
Filters returned nothing
FilteredDon't blame the user. Offer to clear the filter or broaden the query.
Query returned nothing
SearchShow what they searched, suggest reformulation, surface recent searches if available.
All caught up · positive empty
CompletedReward the empty. The user just finished something — make the screen feel earned, not blank.
- 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 brokeTell 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.
Page not found
404Often the user's fault (typo, stale link). Acknowledge briefly, send them home.
Ref · 8f3a-2e91Server-side error
500Our fault. Apologise once, offer retry, offer a way to report it.
Network unavailable
OfflineInline banner over the failing region. Auto-retry when the connection returns; surface a manual retry button.
Permission denied
403Don't shame the user. State the access requirement and offer the path to get it.
- 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 checklistBefore a screen ships, every cell here must have an answer. 'N/A' is valid; 'TODO' is not.
| Screen | Loading | Empty | Error |
|---|---|---|---|
| Football Manager · Squad | Skeleton · player rows | First-time · 'No squad yet · Sign players' | 500 · 'We couldn't load the squad · Retry' |
| AI Lab · Argus&M | Skeleton · agent panels | N/A — always at least one agent | Offline · banner with auto-retry |
| Waitlist confirmation | Inline · button spinner | N/A | Inline · field-level error message |
| Brand book | Instant · static prerender | N/A | 404 · 'Section not found · Back to brand' |
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- CAMicro150ms
Button press, ripple, focus rings, toggle clicks
ease-out - // UpdatedQuick220ms
Hover state, tooltip, dropdown open, small fade
cubic-bezier(.22,.61,.36,1) - Standard300ms
Modal open, panel slide, page transition, sheet
cubic-bezier(.22,.61,.36,1) - Slow600ms
Hero reveal, staggered list entrance, lazy section in
cubic-bezier(.5,.0,.5,1) - Ambient5 – 90s
Aurora drift, orbit ring, scanline shimmer (background)
linear / ease-in-out
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
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; }
}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 sayDesigned for high-LTV power users.
- We say
AI augments builders. It doesn't replace taste.
We don't sayRevolutionary AI that unlocks next-gen creativity.
- We say
A second AI on every project.
We don't saySynergistic multi-agent orchestration platform.
- We say
Strategy, alliances, late-night raids.
We don't sayEngaging strategic gameplay experiences for our community.
- We say
We build worlds we'd open on a Sunday evening.
We don't sayWe are passionate about delivering best-in-class user experiences.
- We say
Same spirit. Faster brain. Sharper systems.
We don't sayCutting-edge AI-powered solutions for the next generation.
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- HeroCinematic · BoldBig claim, short rhythm. Lead with the change.
- ProductPrecise · ConfidentName what it does. No marketing fog.
- PhilosophyWarm · OpinionatedSpeak in first-person plural. Take a side.
- WaitlistDirect · InvitingCasual, never desperate. One ask, no fine print up front.
- LegalFormal · HumanStay readable. The law doesn't require sounding bored.
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-brandDark grid + node meshAI as structureOff-brandBrightly lit team huddleGeneric stock SaaS
- On-brandArchitectural silhouetteArena as geometryOff-brandGlowing brain illustrationAI cliché
- On-brandAbstract orbital fieldCommunity as gravityOff-brandSun-lit laptop with coffeeBright corporate stock
How we colour-grade.
Even when a source image is generic, the treatment makes it ours. Five steps, applied in order.
- 01Crush
Drop the highlights, lift the shadows just enough to see structure.
- 02Cool tint
Push midtones toward cyan / electric. Pull warm yellows out.
- 03Accent glow
Add a single cyan or purple light source to anchor the eye.
- 04Grain
3 – 5 % filmic grain. Always. Even on a flat SVG plate.
- 05Vignette
Soft radial darken at the edges so content stays centred.
The C
The capital letter of Cyber Arena, drawn as a single bold arc. The brand reduced to one stroke — nothing extra to remember.
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.
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.
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.
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.
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.
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.
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.