# Design Language for continu.ax

## Aesthetics and Tone

continu.ax is a **zen** broadcast room from a forgotten cable-access channel — a quiet, half-darkened studio where a single oscilloscope hums and a static slideshow of hand-inked weather charts loops forever on a wall monitor. The domain reads as "continue-axe" or, more poetically, "continu-ity-axis" — the *axis of continuance* — and the design treats the screen as the long-exposure tape that captures whatever is still going. The .ax TLD belongs to the Åland Islands; we lean into that arctic-archipelago air without ever literalizing it. Imagine a fluorescent-lit Nordic public-television control booth at 4 a.m., the kind that used to broadcast a single still image and a soft tone for hours between programs. The mood is not hopeful and not melancholic — it is *attentive*. Things are still happening. The signal has not stopped.

The tone is **nostalgic-retro**, but specifically nostalgic for *infrastructure that was never glamorous in its own time*: rotary phones in hospital wards, the test pattern on a CRT at 3 a.m., a radio station's pre-recorded "we are still here" loop. There is a deep tenderness here for systems that simply *kept going* — fax machines that whirred through office Christmas closures, mainframes that survived three decades of replacement plans, weather stations that keep recording rainfall after the last person who reads the data has retired. continu.ax is a love letter to that quiet persistence, told in the visual vocabulary of a zen rock garden translated into electric phosphor.

The voice is **nostalgic-retro** in word, **zen-contemplative** in pacing. Sentences are short, often unpunctuated at the end. White space — or rather, *black* space, since this design lives in dark mode by default — is treated as time, not as emptiness. The user is asked to *wait*, gently, between phrases. Nothing here is urgent. Nothing here is for sale. The site is an observation deck.

## Layout Motifs and Structure

The entire site is a single fixed **split-screen** divided exactly down the vertical centerline at 50/50. The left panel is *the broadcast* — a slow, looping, autonomous animation that runs whether or not the visitor is reading. The right panel is *the log* — a vertically scrollable column of human-readable annotations, transcripts, and observations. Neither side ever expands or collapses. The split is sacred. On viewports under 900px wide, the split rotates 90 degrees: the broadcast becomes the top half (50vh) and the log becomes the scrollable bottom half (50vh, internally scrolled). The split is *never* removed.

**Left panel — The Broadcast (50vw, fixed, full viewport height).** This panel is locked in place, does not scroll with the document, and contains a single live composition: a slow-motion arrangement of **organic-blobs** drifting against a black field, lit from within by neon-electric phosphor, with a faint scanline overlay. The blobs are autonomous SVG shapes that morph, drift, and occasionally collide; their surfaces ripple with a procedural noise field. Periodically — every 23 seconds, exactly — the entire broadcast freezes for one second, a single CRT-style horizontal roll-bar passes top-to-bottom, and a new "frame" begins. There is no audio. The broadcast loops indefinitely and is the *primary* aesthetic experience.

**Right panel — The Log (50vw, scrolling, infinite).** A single uninterrupted column of monospaced text annotating the broadcast in real time. The log is structured as a vertical timeline with a thin **tilt-3d** subtle perspective: as the user scrolls, each log block tilts forward (about 4 degrees of rotateX) before settling flat at center, then tilts backward as it leaves. The effect is a vinyl-record-on-a-turntable wobble — gentle, almost imperceptible, never disorienting. Each log block is timestamped (UTC, 24-hour, ISO-8601), stamped with a 6-character station identifier (e.g. `AX-0017`), and reads as a quiet observation: *"the pale blob in the lower third has not changed shape for nine minutes,"* *"a horizontal bar passed at 03:14:23, no signal lost,"* *"the operator on duty notes that this is the one thousand four hundred and second consecutive frame."*

**Section rhythm.** The right-side log is divided into seven *movements*, each titled with a Roman numeral (I through VII) in oversized tech-mono. The movements are: I. *On Continuance* (introduction), II. *The Operator* (about the imaginary station-keeper), III. *Frames That Did Not Stop* (case studies of real long-running systems), IV. *The Twenty-Three-Second Rule* (technical aside on the broadcast loop), V. *Dispatches* (observations from the broadcast over time), VI. *A Record of Refusals* (things the system has declined to do), and VII. *Sign-Off That Never Comes*. There is no navigation menu and no scrollbar — the log is one continuous read. A small fixed indicator in the bottom-right of the log column shows "MVT III/VII" as the user passes between movements.

**Negative space.** The black background is generous to the point of devotional. Each log block is separated by 4 lines of empty space (about 96px of vertical breathing room). A movement title is preceded and followed by 16 empty lines. The page does not fight for attention.

## Typography and Palette

**Typefaces — Google Fonts only, two faces only.**

- **JetBrains Mono** (weights 100, 300, 400, 700, with italic). The dominant face — used for *everything* in the right log: timestamps, station IDs, observations, movement titles, dispatches. Body log entries are 15px / weight 400 / line-height 1.7. Movement titles are 56px / weight 100 / italic, set in tech-mono *thin italic* for a fragile, almost broadcast-graphics feel — like the title cards on a 1970s educational TV program. Station IDs (`AX-0017`) are 11px / weight 700 / letter-spacing 0.18em / uppercase. Timestamps are 12px / weight 300 / a slightly desaturated cyan to recede from prose.
- **Space Grotesk** (weights 300, 500). A single secondary face used *only* for two purposes: the site wordmark `continu.ax` rendered in the upper-left at 24px / weight 500, and the "MVT n/VII" indicator in the lower-right. Space Grotesk is never used for body text. Its presence is a small humanist exhalation in an otherwise mono environment — one breath of warmth in a cold room.

**No third font is permitted.** No serifs. No display faces. No handwriting. The discipline is doctrinal.

**Palette — eight values, all calibrated for a black-mode broadcast aesthetic.**

- `#050507` — *Vacuum Black*. The primary background. Not pure `#000` — slightly cool, slightly purple, the color of a CRT that is on but receiving no signal.
- `#0F1014` — *Tape Black*. The slightly-lighter background for the log column, providing a 1-shade separation from the broadcast panel. Almost invisible, intentionally so.
- `#E8E6E0` — *Test-Pattern White*. The primary text color for log prose. Warmer than pure white, like aged paper under fluorescent light. Used at 92% opacity to soften the contrast against vacuum black.
- `#5DF5C8` — *Phosphor Mint*. The neon-electric accent for the broadcast blobs and for movement titles. A signature electric-mint that reads as *alive on a CRT*. Used sparingly, never as fill on more than 18% of any visible area.
- `#FF4FB7` — *Test-Card Magenta*. The complementary neon — used for the horizontal CRT roll-bar that passes every 23 seconds, and for the rare emphasized word in a log entry (`<em>` rendered in this color). Should appear no more than once per 80 lines of text.
- `#3B6EFF` — *Console Blue*. The desaturated cyan-blue used for timestamps, station IDs, and the MVT indicator. Recessive, never shouting.
- `#FFD86B` — *Bulb Amber*. A single warm light used *only* for the wordmark `continu.ax` in the upper-left and for the cursor of the auto-scrolling log indicator. The visual equivalent of the "ON AIR" light on a studio wall.
- `#1F1A2E` — *Dust Plum*. A near-black used as the inner color of the organic blobs in the broadcast panel, and as the shadow under the tilt-3d log blocks. Never used for text.

The palette is **neon-electric** in nominal classification, but used with extreme restraint — most of any given screen is `#050507`. The neons appear *like signal in noise*, not like a club.

## Imagery and Motifs

**Hand-drawn imagery, but only one kind.** A single illustrated motif recurs throughout: small **hand-drawn** ink sketches of equipment that runs forever — a rotary dial, a cassette-tape spool mid-rotation, an oscilloscope trace, a fluorescent tube, a mercury barometer, a pneumatic tube canister, a mainframe core, a weather station's spinning anemometer. These sketches are inked in a single weight (1.2px) of `#E8E6E0` Test-Pattern White over `#050507` Vacuum Black, with no shading, no fill, no color. They appear *only* as small (60–90px) inline ornaments at the start of each of the seven movements in the right log — one sketch per movement, hand-drawn in a slightly trembling line as if drawn by an exhausted overnight engineer in a logbook.

The seven movement-marker sketches are: I. a candle flame (continuance), II. an empty office chair seen from behind (the operator), III. a stack of dot-matrix paper folded accordion-style (frames that did not stop), IV. a stopwatch face frozen at 0:23 (the rule), V. a rotary-dial telephone receiver off the hook (dispatches), VI. a "DO NOT DISTURB" doorhanger (refusals), VII. a hand-drawn microphone with a power cable trailing into a dark frame edge (sign-off). Each sketch is rendered as inline SVG, drawn live with a `path-draw-svg` animation when the user first scrolls it into view — the line traces itself onto the page over 2.4 seconds.

**Organic blobs in the broadcast panel.** The left-side broadcast composition uses three **organic-blobs**, large amoeba-like SVG shapes with `filter: url(#displaceNoise)` distortion, each filled with a radial gradient from `#5DF5C8` Phosphor Mint at the edge to `#1F1A2E` Dust Plum at the core. They drift on slow Bezier paths, cross-fading position over 30–80 seconds per blob, with no easing — perfectly linear, like a planetarium projector. They never overlap by more than 12% of their area. They never leave the panel boundary.

**Scanlines and CRT roll.** A persistent overlay of horizontal scanlines (1px every 3px, `#FFFFFF` at 4% opacity) sits on top of the broadcast panel — never the log panel. Every 23 seconds, a single **horizontal roll bar** of `#FF4FB7` Test-Card Magenta at 30% opacity, 60px tall, sweeps top-to-bottom across the broadcast panel in 1.2 seconds. The log entries near that timestamp note the roll: *"03:42:46 — roll, no signal lost."*

**Tilt-3d in the log.** Each log block has a CSS perspective of 1200px and a per-block `transform: rotateX(var(--tilt))` that is computed from the block's distance to viewport center. At center: 0deg (flat). 200px above or below center: ~4deg tilt away. The shadow under each block is `#1F1A2E` Dust Plum at 40% opacity, offset 0 12px 24px. The effect must be *gentle* — never more than 4 degrees, never animated except by scroll position.

**No photography. No icons from any library. No 3D renders. No grain texture.** The only graphical elements on the entire site are: organic blobs (broadcast), seven hand-drawn equipment sketches (log), scanlines (broadcast), the periodic roll bar (broadcast). Anything else is type.

## Prompts for Implementation

Build continu.ax as a **single static HTML document with two fixed-position panels**. No SPA. No router. No external libraries except a single optional 4KB easing helper. No hero CTA. No pricing. No statistics grid. No "trusted by" logos. No newsletter modal. No cookie banner styled like a marketing surface (the site collects nothing). The page is a *broadcast and a logbook*, not a product page.

**Page shell.** A `<body style="background: #050507">` containing one `<main class="split">` with two children: `<aside class="broadcast">` (left, fixed, 50vw, 100vh) and `<section class="log">` (right, scrolling, 50vw min-height: 100vh). The `<aside>` uses `position: fixed; top: 0; left: 0; width: 50vw; height: 100vh; overflow: hidden;`. The `<section>` uses `margin-left: 50vw; padding: 12vh 6vw 24vh 6vw;` — yes, that much padding, the room is meant to feel deep.

**The broadcast panel — autonomous SVG composition.** Inside `.broadcast` place one inline `<svg viewBox="0 0 1000 1000" preserveAspectRatio="xMidYMid slice" style="width:100%;height:100%">`. Inside the SVG: a `<defs>` block containing one `<filter id="displaceNoise">` chain (feTurbulence baseFrequency 0.012, numOctaves 2, then feDisplacementMap scale 28); a `<radialGradient>` from `#5DF5C8` to `#1F1A2E`. Then three `<path>` elements representing the organic blobs, each starting from a hand-authored amoeba `d` attribute (smooth, ~12 anchor points, `C` curves only — no straight lines), each animating its `d` via a Web Animations API loop that interpolates between 4 hand-authored keyframe shapes over 30, 50, and 80 seconds respectively. Each blob also slowly translates via a `transform` animation along a separate 60–90 second linear path. Then a full-panel `<rect>` filled with `url(#scanlines)` — a `<pattern>` 3px tall, with a 1px white stripe at 4% opacity. Finally a hidden `<rect class="rollbar">` 60px tall, full panel width, fill `#FF4FB7` at 30% opacity, animated from `y=-60` to `y=1060` once every 23 seconds via a JS `setInterval` triggering a CSS class swap; transition is 1.2s linear.

**The log panel — narrative HTML.** Inside `.log`, the wordmark `continu.ax` in `<header>` at the very top, in Space Grotesk 24px weight 500, color `#FFD86B`. Then the seven `<article class="movement" data-mvt="I">` blocks, each containing: an `<h2>` with the Roman numeral and movement title in JetBrains Mono 56px weight 100 italic, color `#5DF5C8`; the inline-SVG hand-drawn sketch (60–90px); and a series of `<div class="entry">` log blocks each containing a `<time>`, a `<span class="station">` station ID, and a `<p>` of 1–4 sentences. Use real ISO-8601 timestamps spaced 1–9 minutes apart, totaling roughly 18 hours of fictional broadcast log. The seven movements together should contain about 80 entries — a long, slow read.

**Tilt-3d on scroll.** On the log container, set `perspective: 1200px`. Each `.entry` gets a CSS variable `--tilt` updated via `IntersectionObserver` + `requestAnimationFrame`: compute the entry's vertical center distance from viewport center, normalize to ±1, multiply by ±4deg, write to `style.setProperty('--tilt', ...)`. The entry's transform is `rotateX(var(--tilt))`. Apply a `transform: translateZ(0)` and a soft drop-shadow filter for the tilt to feel three-dimensional. Make sure the tilt never exceeds 4deg — the gentleness is essential.

**Movement-marker sketches — path-draw-svg animation.** Each of the seven hand-drawn sketches uses inline SVG `<path>` with a single stroke. Compute `pathLength` at runtime, set `stroke-dasharray: pathLength` and `stroke-dashoffset: pathLength` initially, then on `IntersectionObserver` entry transition `stroke-dashoffset` to 0 over 2.4s with a custom cubic-bezier(0.65, 0.05, 0.36, 1). The line should appear to be drawn by a slow human hand. Stroke is 1.2px, color `#E8E6E0` at 92% opacity, `stroke-linecap: round`, `stroke-linejoin: round`. Add a tiny imperfection: a `filter: url(#tremble)` with a very low feTurbulence to give the inked lines a faint, fragile waver — like ink applied to a logbook by someone tired.

**Scrolling and pacing.** Set `scroll-behavior: smooth` on the html. Disable scroll-snap — the scroll should be free, slow, exploratory. Set the body's `overscroll-behavior: none`. Hide the scrollbar (use `scrollbar-width: none` and `::-webkit-scrollbar { display: none; }`). Provide a minimal floating indicator in the bottom-right of the viewport: a 1px vertical line 80px tall, with a 6px `#FFD86B` Bulb Amber dot whose vertical position reflects scroll progress, and a tiny mono label `MVT III/VII` updated via IntersectionObserver as the user crosses movement boundaries. No other navigation UI. No back-to-top button.

**Cursor as scanline.** On the log panel only, the cursor is invisible by default. Replace it with a small horizontal mint scanline (`width: 18px; height: 1.5px; background: #5DF5C8; box-shadow: 0 0 8px #5DF5C8`) that follows the cursor with a 90ms spring delay (cursor-follow with elastic easing). On the broadcast panel, the cursor stays default.

**No interactions on the broadcast.** The broadcast panel does *not* respond to clicks, drags, hovers, or scroll. It is a *broadcast*. It runs because it runs.

**Storytelling discipline.** The log copy should never advertise the site. There is no "Get Started." There is no "Sign Up." Every sentence is an *observation*. The narrator is a fictional overnight engineer named only by their station code, `AX-0017`. They observe the broadcast, recall historical parallels (a mainframe in Stockholm that ran from 1979 to 2014; a fax machine in a Chicago hospital that received 3.2 million pages over 28 years; a weather station on Märket Island that has logged barometric pressure every 3 hours since 1881), and reflect quietly on what it means to *keep going*. The site ends with movement VII, which has only three log entries — the last one timestamped "—" (a single em-dash, no time), with text simply: *"the broadcast continues."*

**Loading.** No loading screen. No splash. The page renders immediately into the dark, with the broadcast already running and the wordmark already lit. The user arrives mid-broadcast. They were always going to arrive mid-broadcast.

## Uniqueness Notes

This design's differentiators — each a deliberate departure from the rest of the catalog and from default web aesthetics:

1. **A 50/50 immutable split-screen as the entire site.** The split-screen layout pattern is used in only 2% of the catalog's designs; we use it as the *foundational architecture*, not as a single section. Neither half ever expands, collapses, or stacks (except the 90-degree mobile rotation). This is a hard structural commitment that almost no site in the index makes — most asymmetric layouts give one side priority. continu.ax gives both sides perfect equality and never breaks the contract.

2. **An autonomous, non-interactive broadcast as primary visual.** Most sites in the catalog respond to scroll, to hover, to cursor. The left panel here is *deliberately uninteractable* — it runs on its own internal clock (the 23-second roll, the 30/50/80-second blob loops) regardless of the user. This rejects the assumption that a website's visuals exist *for* the user; instead they exist *with* the user. The user is a witness, not a driver.

3. **Hand-drawn imagery used at extreme restraint, only as movement-markers.** Hand-drawn aesthetics appear in 96% of the catalog — heavily overused. We acknowledge that overuse and respond by using hand-drawn artwork in exactly seven (7) places on the entire site, each one tiny (60–90px), monochrome, and revealed only via path-draw-svg animation on scroll. The hand-drawn vocabulary is preserved but radically rationed, which makes each appearance feel earned rather than decorative.

4. **Tech-mono as the dominant face for body prose, not just code.** Tech-mono typography sits at only 10% in the frequency analysis, and most uses are confined to small UI labels or code snippets. Here, JetBrains Mono is the *primary reading face* — body paragraphs, narrative prose, movement titles all rendered in monospace, including a thin-italic display weight that almost no other site explores. This makes the entire site feel like a logbook, not a brochure.

5. **Neon-electric palette (4% in catalog) used with monastic restraint.** The neon-electric palette is rare (4%) but typically used at maximum saturation across large surfaces. We invert that convention: 80%+ of every screen is `#050507` Vacuum Black, with neon mint and magenta appearing as *signals* — small accents, the broadcast blobs, the periodic roll bar. The result reads as electric without being aggressive.

6. **Tilt-3d at 4 degrees max — almost subliminal.** The tilt-3d pattern (20%) is usually applied to cards on hover at 8–15 degrees for a magazine-like flourish. Here it is applied to *every* log block as a function of scroll position, capped at 4 degrees, with no easing other than the natural easing of the scroll itself. The effect is closer to a vinyl record's slight wobble than to a 3D card flip — a reader may not consciously notice it for several minutes.

7. **A nostalgic-retro tone (3% in catalog) directed at infrastructural persistence rather than at decade-aesthetics.** Most nostalgic-retro sites lean on visual signifiers of a specific era — Y2K chrome, 80s neon, 70s wood paneling. continu.ax is nostalgic for *machines that simply did not stop*, regardless of their era. The nostalgia is for *continuance itself*, which is both more abstract and more emotionally specific than a decade-aesthetic.

8. **A 23-second metronome as the site's inner clock.** No other design in the catalog uses a fixed periodic event tied to a real-world unit (the 23-second figure references the average human breath cycle at rest, doubled). Visitors who stay long enough notice the rhythm. The rhythm is the site's heartbeat.

**Chosen seed:** aesthetic: zen, layout: split-screen, typography: tech-mono, palette: neon-electric, patterns: tilt-3d, imagery: hand-drawn, motifs: organic-blobs, tone: nostalgic-retro.

**Avoided patterns (from frequency analysis):** photography (98%, avoided entirely — no photos anywhere), hand-drawn used as primary imagery (96% — used only in 7 small marker sketches), gradient palette as wallpaper (96% — no gradient backgrounds anywhere; gradients are confined to the interior of the SVG blobs), warm palette dominance (96% — design is cold-mode by default, with one warm amber accent only), card-grid (76% — not used), full-bleed hero (90% — there is no hero), centered layout (81% — split-screen instead), parallax scroll-triggered choreography on prose (94%/17% — log uses tilt-3d only, no parallax bands), pastoral-romantic tone (26% — replaced by zen-contemplative narration about infrastructure), vintage motifs (26% — the nostalgia is for systems, not for decades).
<!-- DESIGN STAMP
  timestamp: 2026-05-09T12:15:59
  seed: seed:
  aesthetic: continu.ax is a **zen** broadcast room from a forgotten cable-access channel — a...
  content_hash: 42cd6c3c2fdc
-->
