Tower defense · Phase 0 · Art direction — candidate B of II

Styleguide · Ref. AD-B · 04.09.2026

Bloom Protocol Specimens collected from a defended reef, plates I–VII

A living reef defending itself, drawn in a biologist's field notebook — organic growth risographed onto gridded paper.

The thesis, held to

Two spot inks on warm stock, printed slightly out of register. The player's things are grown — every silhouette is arcs repeated around a centre. The things attacking them are cut — straight edges, exact angles, nothing that could have lived. The board is a page; the HUD is an annotation in the margin.

Sources, and what is refused

i

Kunstformen der NaturErnst Haeckel · lithographic plates, 1904

Stealing
Radial symmetry, obsessive ink linework, specimens arranged on a plate.
Refusing
Its Victorian preciousness.

ii

MindustryAnuke · game

Stealing
Systems density and legible flow.
Refusing
Its industrial grey.

iii

Risograph printingDuplicator stencil process

Stealing
Two spot inks, visible misregistration, halftone, paper showing through.
Refusing
The hipster-poster cliché of pink-on-mint with nothing underneath.

Plate II

Live specimen

The shared deterministic sim (preview/demo.js, seed 20260904) wearing this direction's skin. Same seed, same run, every time. The numbers in the margin are read off the running sim, not typed in.

Fig. 0 — reef under load, 60 Hz fixed step

Ink: mint / cobalt / ochre / coral on paper

Ground is stock, not a surface: a warm sheet with the printed grid showing through. The lane is a channel of ink laid down with a visible halftone and a 2px slip on the second pass. Towers bloom outward on the frame they fire; hits throw halftone dots, never a glow.

Plate III

Two inks and a paper

Four hues, one paper, one ink. Each hue carries a job in the fiction; none is decorative, and none is used for a second job. Values are normative OKLCH.

Ink coverage
0–100%
at 3px pitch

--paper

oklch(96% 0.012 92)

Ground. Warm notebook stock.

--paper-2

oklch(92% 0.016 92)

Sunken cell, grid fill.

--ink

oklch(24% 0.045 165)

Line and text. Ink green-black, never pure black.

--ink-50

oklch(52% 0.030 165)

Secondary text, annotation.

--coral

oklch(70% 0.190 20)

Threat. Intruders, damage, breach.

--mint

oklch(76% 0.130 172)

Growth. Player towers, build, gain.

--ochre

oklch(80% 0.140 85)

Resource. Nutrients, currency, upgrades.

--cobalt

oklch(55% 0.160 255)

Control. Slow, tether, utility.

mint ochre multiply → darker

Ink overlap

Every crossing of two inks uses mix-blend-mode: multiply. These two chips are really overlapping — the lens between them is the product of both inks, the way a second pass through the drum darkens the first. Nothing is faked with a third colour, and nothing on this page uses a soft shadow to imply depth: ink either covers the paper or it doesn't.

Contrast, measured on paper

ink 14.4:1 · ink-50 4.8:1 · cobalt 4.4:1 · coral 2.6:1 · mint 1.8:1 · ochre 1.7:1 — coral, mint and ochre are fills behind ink linework, never body copy.

Plate IV

Fraunces, wonked

Display is Fraunces 700 with 'SOFT' 40, 'WONK' 1 — a serif with a wobble, so headings read hand-set rather than systemic. Body and every numeral is Chivo, tabular.

Display 61px
Scale 1.25
from 16px

Rhizophora

Rhizophora

font-size: 61px font-variation-settings: 'SOFT' 40, 'WONK' 1 — upper 'SOFT' 0, 'WONK' 0 — lower, for comparison. The wonk is in the z and the a.
61 / displayReef holds
49 / displayWave eleven
39 / displaySpore pod, tier iii
31 / displayNutrients banked
25 / displayIntruder cut from plate steel
20 / uiChivo 400 — the workhorse, set at twenty
16 / bodyChivo 400 at sixteen: the base of the scale, and every readout on the board.

Tabular — shipping

0000

Digits sit on a fixed advance. The counter changes 4× a second and the glyphs never move.

Proportional — banned

0000

Same number, default figures. Watch the right edge crawl. This is why the rule exists.

Plate caption, small caps, hairline rule

Every label on this page is set this way: Chivo 600, all-small-caps, 0.16em tracking, sitting under a 1px ink rule. It is the only label style in the direction.

Numerals in the world

Damage numbers, gold, wave, HP and timers all use font-variant-numeric: tabular-nums, in canvas as well as in the DOM.

Plate V

Grown, and cut

Specimens at final art quality. Radii come from the arc, not from a border: 999px for grown things, 0 for intruders. They are never mixed.

Player growth is radial — every tower is built from arcs repeated around a centre, like a coral or a seed head. The enemy is machine-cut — straight edges, exact angles, nothing grown.

Fig. 1 · Coral fan

Tower, tier i · mint. 12 arcs at 30°, a second whorl at 15° offset, polyps at every tip. Fires by opening the whole colony 26% outward.

20 u

Fig. 2 · Seed head

Tower, control · cobalt. 18 crescent rays at 20°, core on a 137.5° divergence. Slows what it touches; the rays sweep, they do not rotate as a rigid body.

20 u

Fig. 3 · Spore pod

Tower, resource · ochre. 7 lobes at 51.43°, inner whorl at half offset. Sheds spores on a cycle; the loose dots are the same halftone as the fill.

20 u

Fig. 4 · Intruder, heavy

Enemy · coral. Slopes are 2:1, 45° and vertical — nothing else. Mitred joins, butt caps, zero radius, and a health bar with square ends. No curve appears anywhere on it.

20 u

Plate VI

Four speeds, no others

Hover, tap or focus a row to fire it. Everything grows from the centre with a 6% overshoot; nothing translates in from off-screen, and nothing is linear.

Under prefers-reduced-motion: reduce the overshoot flattens and the hover trigger is dropped — the row still plays its duration on a deliberate press, so the ladder stays legible.

Plate VII

The print, up close

Three treatments, each next to the same ink laid flat. This is the difference between a vector illustration and something that went through a drum.

clean
grain 0.06
noise ×4
Paper grain. Fractal noise, opacity 0.06, multiplied over the whole page. The left half is lifted above that layer so it is genuinely clean; the inset is the same noise magnified ×4 and shown at strength, so you can see what is being multiplied in.
solid
3px pitch
Halftone. Dots on a 3px pitch carry every fill in the direction — canvas included. Inset is the same screen at ×4.
in register
off 2px
Misregistration. Same ink, same line. On the right the colour pass lands 2px off: paper opens on one side, ink spills past the line on the other. This is the single detail that stops it reading as a vector illustration.