/* Generated by scripts/sync-logical-art.py from machines.json.
 * Do not edit: the pre-deploy drift gate compares sha256.
 *
 * Each machine's accent, sampled from its hardware where possible.
 * A machine that cannot cite one takes the neutral.
 * The studio itself stays achromatic; these belong to the machines.
 */

/* Morse: brass, from the sounder and key hardware of the period, which is the one material every telegraph office had in common. The colour marks a letter whose code costs more than its frequency deserves. */
[data-machine="morse"] { --machine: #c8b273; }

/* Baudot: chosen, not sampled, and the reason is the roster rather than the hardware. Morse at #c8b273 and Punch Cards at #bcac90 already hold the brass-and-paper end of the palette, and a third machine about paper tape sampled off paper tape would be indistinguishable from both at pill size. This marks a punched hole and the shift state, so it had to be legible against them rather than agree with them. */
[data-machine="baudot"] { --machine: #7fb2d9; }

/* Punch Cards: Sampled 2026-08-06, replacing a provisional guess. Modal colour of the clean stock on the face card of a 1969 IBM 5081 deck, photographed by Arnold Reinhold (Wikimedia Commons, 'Punched card program deck.agr.jpg', CC BY-SA 3.0 / GFDL; sampled, not republished). Measured hue 38deg, saturation 25%, and 8.75:1 against the page, so it clears the 4.5:1 an accent has to carry. Caveat kept on purpose: this is one photograph under unknown white balance, not an IBM stock specification, and IBM cards shipped in several colours. It is evidence, which is more than the previous value had, and it is not a spec. */
[data-machine="punch-cards"] { --machine: #bcac90; }

/* Interlace: Chosen, not sampled. Picked with la-accent-pick.py, which measures against every accent already on the timeline: 18.14 deltaE (CIEDE2000) from its nearest neighbour, hamming, and 13.12:1 on --la-page. A cool blue-white because that is roughly what a monochrome television phosphor was, which is an association rather than a measurement and is recorded here as one. The obvious cyans were refused by the picker: baudot and fifteen-planes already hold that part of the space. */
[data-machine="interlace"] { --machine: #d0d0ff; }

/* Rangekeeper: provisional; brass and dial-lamp amber */
[data-machine="rangekeeper"] { --machine: #c9a227; }

/* Bitwise: a switching arrangement has no colour to sample, so it takes the neutral. */
[data-machine="bitwise"] { --machine: var(--la-instrument); }

/* Trigger: none earned yet, and phosphor green was declined on purpose: it is the tube's colour, and this page refuses to simulate the tube. */
[data-machine="trigger"] { --machine: var(--la-instrument); }

/* Bit, Nibble, Byte: undecided; a unit of information has no hardware to sample, so it takes the neutral. */
[data-machine="bit-nibble-byte"] { --machine: var(--la-instrument); }

/* Hamming: chosen, not sampled, and there is nothing to sample: a checking number is arithmetic, not an object. Violet because every other hue on this roster is held by a machine with a physical referent to photograph, and borrowing one of those would imply a material this machine does not have. It marks the position the checking number names. */
[data-machine="hamming"] { --machine: #a78bd0; }

/* Huffman: Chosen, not sampled. The 1952 paper is four pages of monochrome typesetting and there is no object to photograph. Picked with la-accent-pick.py, which measures against every accent already on the timeline: this is 19.48 deltaE (CIEDE2000) from its nearest neighbour, punch-cards, and reads 12.00:1 on --la-page. Warm, because the machine it answers is Morse, and pale rather than brass so the two do not read as one. */
[data-machine="huffman"] { --machine: #ffbbaa; }

/* Core Memory: none earned yet. Ferrite cores are a dark grey-brown and the colour varies by batch and by photograph, so there is nothing reliable to sample. Takes the studio neutral. */
[data-machine="core-memory"] { --machine: var(--la-instrument); }

/* The Interrupt: none earned yet. */
[data-machine="interrupt"] { --machine: var(--la-instrument); }

/* Score Reel: none earned yet. Score reels are white numerals on a dark drum lit by a 6.3-volt lamp, and the colour in every photograph is the lamp rather than the machine. Takes the studio neutral until one is measured. */
[data-machine="score-reel"] { --machine: var(--la-instrument); }

/* CRC: chosen, not sampled. A CRC is arithmetic and has no object to photograph, and the roster already spends its reds and oranges on machines that are about damage. Green because the one thing that earns colour here is a burst the check CAUGHT, which is the good outcome, and the machine is worth a page precisely because that outcome is guaranteed rather than likely. */
[data-machine="crc"] { --machine: #7ec8a9; }

/* ASCII: Chosen by measurement, not sampled. The tempting sample would be a green terminal phosphor or the paper in a Teletype, and both would be a guess dressed as a measurement: ASCII is a table of numbers and has no colour of its own. So hue 132 is the midpoint of the largest unoccupied arc on the timeline's hue wheel, 47 degrees between Turnaround at 108 and CRC at 155. It sits 34.5 deltaE from its nearest neighbour and reads 13.21:1 on --la-page. That it lands near a phosphor green is a coincidence worth enjoying and not a provenance. */
[data-machine="ascii"] { --machine: #60f07b; }

/* Abend: provisional; the pale green of fanfold greenbar printout, which is what a job actually came back as. */
[data-machine="abend"] { --machine: #a8c8a0; }

/* Fifteen Planes: chosen, not sampled. There is nothing to photograph: this is arithmetic. Colour marks the one measured thing, which here is the structure that should not be there, so it goes on the planes and on nothing else. Cool rather than warm because the roster spends its reds on damage and its greens on checks that came out right, and a generator quietly failing in a dimension nobody looked at is neither: it is a measurement nobody took. Distinct from Baudot's softer blue and CRC's green-teal. */
[data-machine="fifteen-planes"] { --machine: #63c5d4; }

/* Backoff: the yellow of 10BASE5 coaxial cable, whose jacket was yellow-to-orange fluorinated ethylene propylene, chosen for fire resistance and nicknamed the frozen yellow garden hose. The colour marks collisions on the page, which are the event this machine explains rather than an error in it. */
[data-machine="backoff"] { --machine: #e0b341; }

/* Checkout: the 632.8 nm helium-neon line the first supermarket scanners read with. The wavelength is a fact; turning a monochromatic line into an sRGB triple is a choice, and this is a reasonable one rather than a measured one. */
[data-machine="checkout"] { --machine: #e8402a; }

/* Front Panel: sampled off the Altair's lamps */
[data-machine="frontpanel"] { --machine: #ff4b3e; }

/* Fringes: Chosen, not sampled. Picked with la-accent-pick.py: 18.46 deltaE (CIEDE2000) from its nearest neighbour, pagerank, and 5.41:1 on --la-page. Magenta because that is literally the fringe: a subpixel-rendered stem goes magenta on one edge and green on the other, which is what the machine is named for. The picker refused the softer pinks and purples nearby, which belong to pagerank and UTF-8. */
[data-machine="fringes"] { --machine: #ff2288; }

/* Zero Address: none earned yet. The artifact is an instruction set, which has no colour. */
[data-machine="zero-address"] { --machine: var(--la-instrument); }

/* Z-Characters: none earned yet. The artifact is a file rather than an object, and the packaging colours belong to Infocom's designers rather than to the machine. Takes the studio neutral. */
[data-machine="z-characters"] { --machine: var(--la-instrument); }

/* 300 Baud: Resolved 2026-08-07, and the answer is the neutral. The provisional #f0a500 was wrong twice over: a Smartmodem's indicators are red, not amber, and the colour that can actually be evidenced is the unlit lens, sampled at #9f0007 from a photograph of a 1982 unit. That is 2.13:1 against the page background where an accent has to carry 4.5:1, so it cannot be the accent. Source: Wikimedia Commons, 'Hayes Smartmodem 1982 (2).jpg' by Aeroid, CC BY-SA 4.0, sampled not republished. */
[data-machine="300baud"] { --machine: var(--la-instrument); }

/* Interleave: none earned. A CD's rainbow is diffraction, not pigment, so there is no colour on the object to sample. Takes the studio neutral; the only hue on the page is damage. */
[data-machine="interleave"] { --machine: var(--la-instrument); }

/* Eight Sprites: Chosen, not sampled, and the NES is the reason it could not be sampled: the 2C02 has no canonical RGB palette. It generates an NTSC signal directly, so every RGB rendering of 'the NES palette' is one decoder's opinion and they disagree visibly. Taking a value from one of them and calling it measured would be inventing a provenance. So it was measured a different way: hue 235 is the midpoint of the largest unoccupied arc on the timeline's hue wheel, 58 degrees between Baudot at 206 and Hamming at 264, at the median saturation of the accents in use. It sits 29.7 deltaE from its nearest neighbour and reads 5.37:1 on --la-page, with headroom over AA because an accent on this site also has to clear contrast on panels lighter than the page. */
[data-machine="eight-sprites"] { --machine: #717bf0; }

/* Floating Point: sampled from the ceramic lid of an Intel 8087, the first chip to implement a draft of 754. The gold of the lid marking, not the pin plating. One photograph, so it is a reading and not a measurement. */
[data-machine="floating-point"] { --machine: #e0b341; }

/* UTF-8: Chosen, not sampled. The object would be the placemat Ken Thompson worked the bit-packing out on, and Rob Pike's account ends 'I very clearly remember Ken writing on the placemat and wished we had kept it!' There is nothing to photograph. So it was measured instead: hue 294 is the midpoint of the largest unoccupied arc on the timeline's hue wheel, 60 degrees wide between Hamming at 264 and PageRank at 324; saturation 0.53 is the median of every accent already in use. It sits 36.3 deltaE from its nearest neighbour and reads 6.42:1 on --la-page. */
[data-machine="utf-8"] { --machine: #d569e0; }

/* Masking: chosen, not sampled, and there is nothing to sample: masking is an event in a listener rather than an object with a colour. A warm orange because the one thing that earns colour here is a component the model threw away, and it had to read as a loss against the blues and greens the rest of the roster uses for signal. */
[data-machine="masking"] { --machine: #c86f4a; }

/* Winsock: Chosen, not sampled. Picked with la-accent-pick.py against 22 published accents: 19.16 deltaE (CIEDE2000) from its nearest neighbour, count-distinct, and 5.51:1 on --la-page. The picker refused every cyan and teal tried first, which belong to fifteen-planes and crc, and the magenta, which is Fringes. A terminal green for a machine about the moment a modem stopped screeching. */
[data-machine="winsock"] { --machine: #559900; }

/* PageRank: chosen, not sampled. Nothing here is photographable and the page must not borrow Google's brand colours, which would read as endorsement of a company rather than a reading of a paper. Colour marks the one measured thing, which on this page is the TOTAL: the number the paper says will be one. The roster spends its reds on damage and its greens on checks that came out right, and a sum that is neither wrong nor harmful but simply not what its own paper claims is neither of those, so it takes the one hue nothing else on the roster uses. */
[data-machine="pagerank"] { --machine: #cf8fb5; }

/* Count Distinct: Chosen, not sampled. HyperLogLog has no object to photograph: it is four pages of analysis and a few kilobytes of registers. This lime-olive was picked to sit apart from every accent already on the timeline, and saying so is better than inventing a provenance for it. */
[data-machine="count-distinct"] { --machine: #b9c96a; }

/* LLM Lab: chosen, not sampled */
[data-machine="llmlab"] { --machine: #10b981; }
