The gaming-cafe vertical, rebuilt on the RAWASI system. One accent, seven tones it does not belong to, six heights, three faces, five things that move. Everything a screen is made of comes from the family component layer; this vertical adds an accent group, two elevation tokens, a display face, and one component the family has no equivalent for — the tile. Dark is the default here, because staff look up from this screen onto a floor lit only by monitors. Flip it in the bar above; nothing on this page carries a literal.
Cyan is the one hue no sibling owns. It is literally what a monitor throws on a wall at night.
oklch(0.777 0.107 214) = #57C8E0
Measured from the old doc's own rendered spill, then expressed in the
family's ladder. The light ground deepens it and takes dark ink, on the Circuit Gold pattern,
so it stays recognisably Screen Spill instead of collapsing into a navy.
| JSOOR Tech | Voltage · cobalt-indigo, gold alternate |
| JSOOR Gym | Ignition Orange |
| SLMA | verify-green |
| JSOOR Gaming | Screen Spill · cyan |
The accent is never a chip, never a button, and never on a money figure. Money is not live — it is as-of. It appears in exactly three places, and anywhere else is a bug.
Tab to this button. The ring is the accent, on every surface in the family.
Deleted from the old doc: the cyan glow that sat under the primary button. It contradicted the spill's own rule and the family's law that the accent is never an action colour. The old package contradicted itself here too — the rule and the render disagreed.
The family ladder, unchanged, carrying the gaming domain's own vocabulary. No hue moved. No eighth tone.
| Tone | In this venue it means | Old doc called it |
|---|---|---|
| ok | Settled · paid · agent healthy | success #5FB874 |
| info | Running — a session billing right now | ice #38BDF8, which was also the accent |
| warn | Ending soon · agent offline · a write not yet synced | heat #FF6A1F |
| bad | Broken · failed · cancelled · no-show | down #FF3B5C |
| frozen | Held — a reservation holding a resource | frozen #7A6FD1, meaning paused |
| guest | Walk-in · no account | guest #B57BC4 |
| neutral | Free · closed · never reported · stale | neutral #8A8070 |
The old doc moved frozen off cyan because cyan was going to be a chip meaning alive. Under this vertical it never is — so frozen keeps the family's hue and nothing else has to move. A frozen chip and a cyan glow never compete, because they never do the same job. A tone chip always carries its label: colour reinforces, the word is the message.
Gone with pause: there is no pause in v1, so frozen no longer means "billing stopped, seat still theirs". It means a reservation is holding this resource until its slot. Occupancy drops from four states to three.
Every surface is one of six heights, and its height is legible without reading a word: a white top edge where the light lands, a near-black body, and the shadow it casts on whatever is beneath.
This is the family's K3 reflection turned into a four-step ladder. --refl stays
bound to E2, so every existing family component keeps working untouched, and the three shadow steps are
redefined rather than replaced — which buys the whole six-height model without one line of new component
code. It is the one idea here worth taking back to the family.
Press and hold. It descends, its highlight dims because it is further from the light, and its shadow tightens. Nothing changes colour, so a press never looks like a state change.
The old doc's first rule was that white
is the only colour a hand presses, so a primary action never competes with the floor. On a dark ground
the family's --primary already flips to a near-white with dark ink. The rule survives
untouched, through the family's own mechanism, with nothing added.
The tile carries two truths that can disagree, and the whole design is keeping them separable. Occupancy — what the business thinks — fills the tile and owns the clock. Agent health — what the hardware last reported — draws the frame.
The clock rule. Every number on the floor
answers one question — minutes until this machine needs me — and carries its unit, so running,
held and reserved rank against each other on sight. Under ten minutes the tile becomes a visibly
different object: MM:SS, no unit, the warn tone. One unit for comparison, one exception for
urgency, and the exception looks nothing like the rule.
Normal is silent. A healthy agent wears no marking at all. Only the machine that stopped answering carries the corner rule, and only the one that never reported is dashed. A map that decorates every healthy machine is a map you stop scanning.
The one cell worth two signals. Running with a dead agent — a customer is playing and being billed, and the clock on screen is the last thing we knew, not the thing that is true. It gets the corner rule and the last-seen line inside. Everywhere else one signal is enough; here a counter would otherwise trust a stale number and hand over a wrong bill.
Agent-unknown is launch-day normal, not an error. The registry ships before any agent exists, so on day one every tile sits in the third column. The dashed frame claims nothing about the hardware, which is the honest thing to claim.
Zain carries every number a person reads across a room. Sora carries every word a person reads at the desk. Mono carries the machine's own voice — ids, timestamps, labels — and never carries Arabic, because it has no Arabic to carry.
Arabic takes no letter-spacing, ever. Tracking severs Arabic ligatures and renders words as disconnected letters. Every tracked style in this system is Latin-only by definition — mono labels, the wordmark's GAMING, section eyebrows. Copy ships in English in v1; the face and the direction stay in the system, proven above.
Changed from the old doc: it made IBM Plex Sans Arabic the body face for the whole product. Sora keeps that job, because the family's shared hand is carried by the UI text face and the mono — the display face is where a vertical is allowed a signature, and Zain 900 at tile size is that signature. Three faces, not four.
Fifteen components, unchanged, rendering native on the gaming ground with not one override.
A value updating is not a change of state. A clock going 108 to 107 does nothing.
| What moves | Why it earns it | Token |
|---|---|---|
| A state crossing | A tile becoming a different object — into the last ten minutes, offline. Fires once on the crossing and never again. | --dur-cross 520ms |
| Arrival | A row entering a list, a party added to the queue. Enters from above and settles, so you see where it came from. | --dur-arrive 240ms |
| Sheet travel | A wizard or gate rising over the floor. Long enough to establish the floor is still beneath it. | --dur-drawer 280ms |
| Press | A surface descending under a finger. Faster than thought — slower feels like latency, not touch. | --dur-press 120ms |
| Money landing | A total resolving at the end of a payment. The only value change that animates, because it is the moment a transaction becomes real. | --dur-money 320ms |
| Nothing else | If it is not one of the five above, it changes instantly. | 0 |
Nothing loops, ever. No pulsing dot, no breathing glow, no shimmer on a loading row. A thing that moves forever stops meaning anything within a minute and cannot be un-noticed for the rest of the shift. The family doctrine currently permits ambient motion behind a reduced-motion gate; this rule is stricter, and it is owed back to it.
The old package was complete and internally rigorous. It was also a different system. This is every place the two met, and which one won.
| Old doc | Becomes | Why |
|---|---|---|
ink #FFFFFF is the only pressable colour | --primary, already near-white on a dark ground | Same outcome, family mechanism, nothing added. |
ice #38BDF8 = alive, a chip colour | the accent, never a chip | The accent is never a state. |
heat · down · frozen | warn · bad · frozen | Meanings survive, hues join the family. |
| frozen means "paused but held" | frozen means Held | No pause in v1. Occupancy drops to three states. |
| Six named grounds and a well | four family names plus --plate and --sheet | Two new tokens, both named for a height the family had no word for. |
| Six heights by a white top edge | the same, as --refl-1..4 on the family's K3 | Converged, not replaced — they were the same idea. |
Warm dark ground taken from brand-system.md | the vertical's own neutral ramp | An altitude error: that file is the marketing identity, not a product token file. |
| Dark only | both grounds, dark default | Ruled. The room argument, not the soul argument. |
| Zain + Plex Arabic + Plex Mono | Zain display, Sora UI, mono, Plex Arabic for Arabic | Three faces, and the family's hand survives. |
| Press descends, dims, tightens | kept, as --press plus two rules | The family's press was already a token. |
| Motion: five items, nothing loops | kept verbatim, as three new duration tokens | Stricter than the family, and owed back to it. |
| A cyan glow under the primary button | deleted | Contradicted the spill rule and the accent law — inside the old doc too. |
Spill rendered rgba(87,200,224), specified #38BDF8 | one value — --accent at 30% | The package disagreed with itself. Resolved toward what was drawn. |
| Tile at E3 in spec, E2 in every render | E3 --raised | Resolved toward the spec. |
#1C1C1C, used everywhere, never named | --hairline | The family already had the token. |
| 32 devices, 3 tiers, paging at scale | 23 resources, 4 rooms plus billiard plus cafe | The real venue. One viewport, no paging. |
| Devices only — no tables, no rooms | three resource kinds, one of them roomed | An extension, not a re-scale. The old IA had no concept of either. |
| Arabic-primary copy | English copy, RTL proven and kept | Ruled. |
| The split-flap hairline through the numbers | stays dead | It read as a strikethrough, three times. |
| # | Rule |
|---|---|
K1 | Tokens. No colour, space, radius or shadow literal. |
K2 | Elevation — a real shadow from the three-step scale. |
K3 | Reflection — the top-edge highlight at the surface's own height. |
K4 | Micro-interaction — hover on fine pointers, a press that descends, a visible focus ring. |
K5 | Accessibility — 44px where pressable, AA contrast, reduced-motion safe. |
G-A | The accent is never a chip, never behind a button, never on a money figure. |
G-B | Normal is silent. A healthy agent wears no marking. |
The Floor, drawn at the venue's real scale, is in floor.html. That one does not scroll.