/* The orb: the face of every agent (decision: agents-are-orbs). js/orb.js draws
   it; this sheet sizes it and gives it a still, pale glass sphere in the
   agent's hue on its backing until its first frame is drawn, so first paint
   never waits on the GPU and never flashes a solid colour. */
archon-orb {
  --orb-h: 262;
  --orb-light: oklch(0.99 0.008 var(--orb-h));
  --orb-mid: oklch(0.93 0.035 var(--orb-h));
  --orb-deep: oklch(0.82 0.08 var(--orb-h));
}
/* On dark, the still sphere is dark glass, never a bright disc. */
html[data-theme="archon-dark"] archon-orb {
  --orb-light: oklch(0.42 0.04 var(--orb-h));
  --orb-mid: oklch(0.28 0.05 var(--orb-h));
  --orb-deep: oklch(0.2 0.05 var(--orb-h));
}
/* An agent the roster cannot name: colourless glass. */
archon-orb[chroma="0"] {
  --orb-light: oklch(0.99 0 0);
  --orb-mid: oklch(0.93 0 0);
  --orb-deep: oklch(0.82 0 0);
}
archon-orb {
  position: relative;
  display: block;
  width: 100%;
  height: 100%;
  border-radius: 50%;
  background: radial-gradient(circle at 36% 30%, var(--orb-light), var(--orb-mid) 62%, var(--orb-deep));
}
/* Once drawn, the glass sits on its backing: a soft disc that keeps the orb
   reading as an object on any surface, however busy what is behind it. */
archon-orb[data-lit] {
  background: radial-gradient(circle closest-side, var(--orb-backing) 96%, transparent 100%);
}
archon-orb > canvas {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  display: block;
}
/* An agent's tile is its orb: no fill and no glyph behind the glass. */
.avatar.avatar--orb {
  background: none;
}
.avatar--orb > archon-orb {
  position: absolute;
  inset: 0;
}
