> CONTENTS
> SECTION_01

Core Identity

The shelter terminal. A green phosphor CRT out of a 1950s idea of the future, running a cypherpunk OS. The screen is the hacker terminal of the 1990s, the furniture around it is retro-futurist civil defence, the bulletins pinned beside it are dry, and the bunker is a box under your desk with your own life in it.

The retro look goes back to when a computer was a tool you owned and could open, and it's built with modern restraint, so the text stays readable and the effects stay out of the way.

No borrowed mascots, logos or names from any game or film, however close the mood.

The Positioning

LocalGhost moves the AI, the data and the memory built from it off someone else's servers and onto a box you own, which answers your phone and gives everyone else the same 503 a dead server would.

> THE CORE PROMISE

[1]
Privacy through architecture, not promises. We can't see your data because the system prevents it.
[2]
Ownership through atoms, not accounts. You own hardware. Hardware doesn't have terms of service.
[3]
Sovereignty through code, not trust. Verify, don't believe.
> SECTION_03

Colour Palette

A deliberately limited palette of black, green, grey and red, with amber for what isn't built yet. No pastels, and no gradients on surfaces (the only ones are the tube's own glow and vignette).

Aa
The Void
#111111
Primary background. Near-black with residual CRT glow.
Aa
Surface
#161616
One step above the void. Panels and cards.
Aa
Void Lighter
#1a1a1a
Two steps above the void. Code blocks, table heads and hover states.
Aa
Line
#303030
Hairlines. Panel edges, table rules and the dividers between sections.
Aa
Text
#E0E0E0
Primary text. Slightly warm white, readable but not harsh.
Aa
Text Dim
#a0a0a0
Secondary text, metadata, comments, placeholders.
Aa
Border
#444444
Key caps, tags, inputs and other small controls, dashed rules and the lines in diagrams.
Aa
Warning
#FF8A8A
Danger, errors, "their" way, what we reject. Use sparingly.
Aa
Terminal Green
#33FF00
Primary accent. Links, emphasis, success states, "our" values.
Aa
Terminal Dim
#1a8000
Muted green for borders, shadows, glow effects.
Aa
Amber
#FFB000
The second phosphor. Planned, not built, and the notice placards. Never for decoration.
Aa
Amber Dim
#7a5500
Muted amber for the notice placard's border and for planned parts in diagrams.

Usage Rules

Each colour is a status. Terminal Green is what runs and what we stand for, Amber is what's planned and not built yet, and Warning Red is what we reject (surveillance, rent-seeking, enshittification). A reader should be able to tell built from planned by colour alone, so don't use any of the three for decoration.

> SECTION_04

Typography

PRIMARY TYPEFACE
JetBrains Mono

The modern programmer's typeface. Clean, legible, unapologetically technical. Used for all headings, navigation, code, and UI elements.

Light 300
Sovereignty
Regular 400
Sovereignty
Medium 500
Sovereignty
Bold 700
Sovereignty
SECONDARY TYPEFACE
System Stack

-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif. Used for body copy where readability matters more than aesthetic.

Type Rules

No serif fonts. Ever. Serifs are for institutions that want to look trustworthy. We prove trust through architecture.

Sizes. Interface text is 16px with a 1.7 line height, and the reading column on content pages and posts is 17px. A page title scales with the window, from 25px on a phone to 36px on a desk. Running text is held to about 44rem, so a line stays short enough to find the start of the next one.

Headings. The small label over a section is > SECTION_XX in terminal green with 0.2em letter-spacing. A numbered heading inside a page, like > 1. WHAT IT CARRIES, is 19px mono in green with a hairline under it.

> SECTION_05

Visual Effects

Texture that makes the page read as a lit tube without getting in the way of reading it. The constant effects are faint, and the loud ones are easter eggs that show up rarely, for a moment, and never for anyone whose system asks for reduced motion.

SCANLINES
> GLOW
PHOSPHOR GLOW
CRT FLICKER
1px solid
SHARP BORDERS

Effect Specifications

Scanlines. Repeating linear gradient, 2px transparent / 2px rgba(0,0,0,0.1). Applied as fixed overlay across entire viewport.

Terminal Glow. Box-shadow and text-shadow on green elements. text-shadow: 0 0 5px var(--terminal-dim)

Phosphor wash and vignette. A faint green radial wash behind the content, brightest a third of the way down, and a dark vignette at the edges of the viewport, both fixed and pointer-transparent. They're in base.css, so every page gets them.

Flicker. Randomised, slow animation (6s+ duration) inside the terminal only. Subtle opacity changes, enough to feel alive.

Easter eggs. /js/phosphor.js lets the tube misbehave now and then, an interference band rolling down, a flash, the vertical hold slipping, or a line burning in faintly. The first comes 30 to 90 seconds after the page opens, then one every one to three minutes, never while the tab is hidden. Typing ghost outside a text field puts up PLEASE STAND BY.

Motion. Going from one page to another cross-fades in under a fifth of a second while the nav holds still, a post draws a 2px green line along the top of the window as you read down it, and an answer in the FAQ slides open. All three are off for anyone whose system asks for reduced motion, and a browser that can't do one of them skips it.

Decoration stays out of the text. Flavour lines like the footer's END OF TRANSMISSION live in CSS, so screen readers, crawlers and the markdown twins of each page get the content and none of the set dressing.

Borders. 1px. Line is for panels, tables and dividers, Border is for small controls (key caps, tags, inputs), dashed rules and the lines in diagrams, and a button is outlined in Text, or in Terminal Green for the ghost variant. The two exceptions to 1px are a 2px rule down the left edge of a panel, green for what runs and red for what we reject, and the 2px green frame around a promise or a download. Sharp corners (0 or 4px max border-radius for code blocks). No drop shadows. No blur effects on cards.

> SECTION_06

Components

PUBLIC NOTICE No. 00THE NOTICE PLACARD

A civil-defence bulletin pinned to the terminal, double-ruled in amber. Use it for what isn't built yet and for what a reader should know before relying on something. One fact per notice, said plainly, with the dry joke allowed only after the fact. Markup is a div.notice holding a div.notice-head with two spans, then paragraphs.

BUTTONS
PANELS
A panel. Surface fill, a hairline in Line, square corners.
A green rule down the left for what runs, or what you can do.
A red rule for what we reject, or what we can't do.
LINKS
TERMINAL PROMPT
> ghost@localghost: ~
SECTION HEADERS
> SECTION_01
Section Title Here

Component Rules

Buttons. Square brackets in label text. 1px border. No background until hover. Ghost variant uses terminal green.

Panels and cards. A Surface fill, a 1px border in Line, no border-radius. They're cells, they feel like terminal panes, not material design cards.

Links. Terminal green, with the underline at half strength so a paragraph with four links in it still reads as a paragraph. It comes up to full strength on hover.

Focus. A 2px terminal green outline around whatever the keyboard is on. It doesn't show for a mouse or a finger.

Terminal chrome. The dot-buttons (red/yellow/green) are interactive easter eggs, not decoration. Close triggers Matrix rain. Maximise expands the terminal.

> SECTION_07

Symbolic Motifs

Recurring symbols that carry meaning throughout the brand. They carry meaning, they are not decoration.

>
The Terminal Prompt
Appears everywhere, in section headers, navigation and lists. The universal symbol of "your turn to act." It's an invitation, not a command.
▪
The Tower
A plain tower under the desk, cobbled together from parts anyone can buy, with a fan you can hear and a card you swap when a faster one comes out. The anti-smart-device, with no app store, no glossy finish and nothing you can't open.
☁
The Mist
The P2P backup network. Decentralised, ephemeral, impossible to grasp. Your data scattered across strangers' drives, encrypted and sharded.
⚿
Hardware Keys
Two FIDO2 keys, planned for shade (1.x) at the earliest, one kept with the box and one somewhere else. Lose both and the archive is gone, which is the price of nobody else holding a copy.
👻
Daemons
Daemons, not "agents" or "assistants". Background processes that serve without surveillance. ghost.secd, ghost.watchd, ghost.framed, ghost.searchd, ghost.oracled, ghost.synthd, ghost.cued, ghost.noted, ghost.voiced, ghost.tallyd, ghost.shadowd, ghost.mistd.
> SECTION_08

Voice & Tone

The writing guidelines are the rules for every word on the site, and this section is how they meet the look. The short version is someone who built the thing walking a sceptical peer through it, plainly, with the numbers, saying what isn't done yet, and with a dry joke where one lands.

How the voice meets the look

Plain prose, loud furniture. The terminal chrome, the placards and the boot screen carry the retro-futurist mood, so the sentences don't have to. Body copy stays first person and specific.

Built in green, planned in amber. Anything not running today gets said in the copy and marked in amber. The look should never make a plan read like a feature.

Code as proof. A claim about privacy names the mechanism (the 503, the certificate, the TPM seal) or links the code, rather than asking for trust.

Dark humour. "At least this 404 doesn't phone home." Civil-defence deadpan about the absurd parts of the status quo, and about ourselves, never at the reader.

Signature Phrases

The only cloud is you.
We have designed ourselves out of the loop.
Atoms don't have terms of service.
Do not lend your mind to the dying machine.
The exit is open.
Privacy through code, not promises.

Voice Comparison

[✓] DO
"We cannot sell your data because we do not have it."
[✗] DON'T
"We're committed to protecting your privacy."
[✓] DO
"If we go bankrupt tomorrow, your box keeps working."
[✗] DON'T
"We're excited to announce our new feature!"
[✓] DO
"There's no recovery path in wisp, so a forgotten PIN loses the archive on that disk. Keep the originals somewhere else as well."
[✗] DON'T
"Please consider backing up your keys for safety."
[✓] DO
"The Mist is a design, no code for it exists yet, and when it does, residents are asked not to make it the only copy of anything."
[✗] DON'T
"Our revolutionary backup network keeps your data safe forever."

What We Never Sound Like

Corporate. "We're excited to announce..." / "Best-in-class solutions..."
Apologetic. "We understand this might seem..." / "We're sorry but..."
Vague. "Industry-leading" / "Seamless experience" / "Synergy"
Pleading. "Please consider..." / "We'd love if you..."

> SECTION_09

Design Principles

> INTERACTION PHILOSOPHY

[1]
Easter eggs over empty polish. Curiosity gets rewarded. The home terminal takes commands, the snake game is about what a model eats, and the tube misbehaves now and then if you stay long enough.
[2]
No dark patterns. The waitlist modal doesn't collect email and the donate modal shows a raw ETH address, with nothing in between to nudge you.
[3]
Nothing interrupts. No auto-play and no pop-ups. The easter eggs never take focus, and the one that covers the screen comes only when you type for it.
[4]
Respect for the reader. No hand-holding. No FAQs that start with "What is a computer?" You're technical, you're skeptical, and you've been burned before.

Emotional Register

Controlled anger. The copy is political but not preachy. Angry at systems, not people. Channels frustration into action.

Quiet confidence. We don't beg. We don't compare ourselves to competitors. We state what we've built and let the architecture speak.

Dark humour. The gallows wit of people who've seen the machine and chosen to build the exit. Never cruel, always knowing.

Spacing & Layout

xs
0.25rem
sm
0.5rem
md
1rem
lg
1.5rem
xl
2rem
section
4rem

Grid. Components align to an implicit grid. Dense but not cluttered. The reading column is 750px, and the home page and these guideline pages are 900px.

Line height. 1.7-1.8 for body text. Generous but not loose. Headings sit at 1.2 to 1.35, so a title that wraps still reads as one thing.

> SECTION_10

CSS Utilities

Drop-in CSS utilities for building interfaces with the LocalGhost aesthetic. Includes design tokens as CSS custom properties, utility classes, and pre-built components.

> LOCALGHOST-UTILITIES.CSS

Design tokens, utility classes, and component styles. 15KB minified.

[ DOWNLOAD .CSS ]

Usage

INCLUDE THE STYLESHEET
<link rel="stylesheet" href="localghost-utilities.css">

Design Tokens (CSS Custom Properties)

/* Colors */
--lg-void: #111111;
--lg-surface: #161616;
--lg-terminal: #33FF00;
--lg-text: #E0E0E0;
--lg-text-dim: #a0a0a0;
--lg-border: #444444;
--lg-line: #303030;
--lg-warning: #FF8A8A;
/* Typography */
--lg-font-mono: 'JetBrains Mono', monospace;
--lg-font-system: -apple-system, sans-serif;
/* Spacing */
--lg-space-sm: 0.5rem;
--lg-space-md: 1rem;
--lg-space-lg: 1.5rem;
--lg-space-xl: 2rem;

Utility Classes

TYPOGRAPHY
.lg-mono .lg-text-sm .lg-text-lg .lg-font-bold .lg-tracking-wide .lg-prompt
COLOURS
.lg-color-terminal .lg-color-dim .lg-color-amber .lg-bg-void .lg-bg-surface .lg-bg-void-lighter
SPACING
.lg-p-md .lg-px-lg .lg-mb-xl .lg-gap-md
EFFECTS
.lg-glow .lg-cursor .lg-flicker .lg-scanlines

Components

BUTTONS
CARDS
.lg-card .lg-card-terminal .lg-terminal-box
OTHER
.lg-link .lg-badge .lg-code .lg-divider .lg-list .lg-section-label .lg-notice

Example

<!-- Terminal-style card with button --> <div class="lg-card-terminal lg-p-lg"> <p class="lg-section-label">SYSTEM_STATUS</p> <h2 class="lg-mono lg-text-lg lg-glow">All Systems Operational</h2> <button class="lg-btn-terminal lg-mt-md">[ VIEW LOGS ]</button> </div>
[ ← RETURN TO THE ESCAPE PATH ]