ZEROlobby
22/22 strict⌘Kvisitor
skip to main
v · 2026-05-10
skin
——:——:——zcovenant · audit
ambient field· four tiers · one canvas

the brand has a heartbeat

a kinetic background that adapts to the device, the motion preference, and the semantic state of the page. css-only on still phones, webgl shader on capable hardware. paused when the tab loses focus. forced to still on prefers-reduced-motion.

01 · four tierscapability-aware fallback chain

four renderers, one fallback chain

capability governor probes the device once on mount and chooses the highest tier that passes every gate. the chain falls D C B A. tier A is always reachable.

plate · 01.1 · renderer × capability matrix
metric
tiers
unit
count
window
static
agg
identity
source
brand/ambient/engine.contract.json
fresh
release-pinned
A
still
renderercssfps0gpuoptional
B
drift
renderercanvas-2dfps30gpuoptional
C
field
rendererwebgl2fps60gpurequired
D
compute
rendererwebgpufps60gpurequired
the engine ships all four tiers · runtime picks one · tier D currently aliases to tier C until WebGPU adoption stabilises.
02 · semantic statespage state drives ambient hue, speed, amplitude

five states · one bus

set data-semantic-state on <html> and the ambient field adapts. the engine reads --ambient-hue, --ambient-speed, --ambient-amplitude live from the cascade.

plate · 02.1 · semantic-state map
metric
states
unit
count
window
static
agg
identity
source
brand/ambient/engine.contract.json#governors.semantic.states
fresh
release-pinned
settle
default · resting state
slow drift
ceremony
drop · settlement · league posting
amber pulse
refusal
covenant clause · refused entry
red shift
capture
user pointer down · scroll-into-view edge
focus ripple
live
tick stream active · live data flowing
acid pulse
03 · glass compositionliquid glass surface · three thicknesses · three postures

glass composes above ambient

the glass layer reads ambient tint live. three thicknesses (thin / default / thick) and three postures (rest / capture / lift) cover every floating panel, modal backdrop, and card surface.

plate · 03.1 · glass layer · live demo
metric
thickness
unit
px
window
live
agg
identity
source
GlassLayer · variant prop
fresh
live
thin

8 px blur · light cards

strip cells · inline floating panels

default

16 px blur · floating panels

menu surfaces · tooltips · receipts

thick

24 px blur · modal backdrop

dialog · drop ceremony · settlement

capture

capture posture · pointer-active

brand-signal border · 1.005x scale

04 · accessibility floorfive guardrails · one always-reachable still tier

never animate against the user

the engine downgrades to tier A on prefers-reduced-motion, low memory, low concurrency, save-data, or low contrast. it pauses on document.hidden. battery is respected by default.

reducedMotionmust downgrade to tier A when prefers-reduced-motion: reduce
saveDatamust downgrade at least one tier when prefers-reduced-data: reduce or connection.saveData is true
lowMemorymust downgrade to tier A when navigator.deviceMemory < 4 GB or hardwareConcurrency < 4
batterymust pause when document.hidden
contrastambient brightness must never overlap content tone within 0.4 contrast ratio (AA floor)
05 · capability probewhat your device gets · live

this device · this tier

the probe reads data-ambient-tier from <html> and reports the underlying capability stack. shipped as a primitive (capability-probe) for QA and for /ambient.

plate · 05.1 · device probe
metric
tier
unit
A|B|C|D
window
live
agg
last
source
navigator + matchMedia + WebGL probe
fresh
live · client-side
probing…
the probe is read-only. to override the tier, set data-ambient-force="A|B|C|D" on <html> before the engine mounts.
ssr posture
the engine renders nothing on the server. the html element is stamped with data-ambient-tier="A" by the layout, then upgraded on the client after capability detection. no flash, no layout shift.
06 · closing ruleone engine · every surface

the brand is the field, not the figure

a brand that holds still in 2026 reads as dead. a brand that flails reads as cheap. an ambient field at 60 fps that the shader can pause on a heartbeat reads as alive.
ambient brand engine doctrine