
/* v13 scenes, lane ai: per-scene rules for the 5 AI rows (#ai-ask/sort/make/run/plug).
   Shared material is in scenes.css (frozen). Contract: tasks/scenes-contract.md.
   The five share one family: input cards on a tray, one breathing core on a paper
   plate, a paper result card that shows a grey skeleton at rest and fills in green
   when the story lands. Classes below only add what scenes.css lacks; every colour
   is a scenes.css token. */

.aimap-scene svg { overflow: visible; }

/* type: labels 8 units, values 8.5 (about 11px and 12px on desktop) */
.aimap-scene .fp-mech svg text { font-size: 8px; }
.aimap-scene .fp-mech svg text.sx-val { font-size: 8.5px; }
.aimap-scene .fp-mech svg text.ax-big { font-size: 12px; font-weight: 600; }

/* the core reacting: one hairline ring leaves it and fades (one-shot, never looping) */
.aimap-scene .ax-ping { fill: none; stroke: var(--sx-green); stroke-width: var(--sx-w-hair); }

/* a packet that carries "no answer" / a failure: paper with an ink edge */
.aimap-scene .ax-hollow { fill: var(--sx-card); stroke: var(--sx-soft); stroke-width: var(--sx-w-wire); }

/* small solid marks: research dots, play button, filled slots */
.aimap-scene .ax-dot { fill: var(--sx-green); }

/* checks: deep green disc with a paper tick */
.aimap-scene .ax-deep { fill: var(--sx-green-deep); }
.aimap-scene .ax-ck { fill: none; stroke: var(--sx-card); stroke-width: 1.25; stroke-linecap: round; stroke-linejoin: round; }
.aimap-scene .ax-ckl { fill: none; stroke: var(--sx-green-deep); stroke-width: var(--sx-w-lit); stroke-linecap: round; stroke-linejoin: round; }

/* icons in the hairline vocabulary; -on is the same icon gone live */
.aimap-scene .ax-icon { fill: none; stroke: var(--sx-soft); stroke-width: var(--sx-w-wire); stroke-linecap: round; stroke-linejoin: round; }
.aimap-scene .ax-icon-on { fill: var(--sx-green-tint); stroke: var(--sx-green-deep); stroke-width: var(--sx-w-wire); stroke-linecap: round; stroke-linejoin: round; }
.aimap-scene path.ax-icon-on { fill: none; }

/* rejected / not found / failed: ink, never red */
.aimap-scene .ax-x { fill: none; stroke: var(--sx-ink); stroke-width: var(--sx-w-wire); stroke-linecap: round; }

/* written text in a result (an answer line, a log line that needs you) */
.aimap-scene .ax-text { fill: color-mix(in oklab, var(--sx-ink) 40%, transparent); }

/* a waiting ring (run: the job stops for you) */
.aimap-scene .ax-ring { fill: none; stroke: var(--sx-green); stroke-width: var(--sx-w-wire); stroke-linecap: round; }

/* brand kit swatches (make) */
.aimap-scene .ax-sw-ink { fill: var(--sx-ink); }
.aimap-scene .ax-sw-soft { fill: var(--sx-soft); }
.aimap-scene .ax-sw-tint { fill: var(--sx-green-tint); stroke: var(--sx-hair); stroke-width: var(--sx-w-hair); }

/* grow from the left edge / from the top edge */
.aimap-scene .ax-lx { transform-box: fill-box; transform-origin: 0 50%; }
.aimap-scene .ax-ty { transform-box: fill-box; transform-origin: 50% 0; }
