/* v6 illustration layer
   One house style for the hero engine (snippets/signal-orbit) and the signal-lab
   bench (snippets/signal-bench): the kit-ladder technical line drawing.
   Flat bench plates, hairline ink/blue strokes, designator callouts in the code
   face, orange only for live parts (lit LEDs, current, an energised coil).
   No gradients, gloss, side walls or drop shadows. Overrides older glossy CSS. */

/* ---------- Hero field: flat bench with a faint engineering grid ---------- */
body .kinetic-hero.kinetic-hero[data-hero]{background:var(--bg)}
.kinetic-hero .hero-field__halo{display:none}
body .kinetic-hero .hero-grid.hero-grid{inset:0;transform:none;opacity:1;animation:none;
  background-image:linear-gradient(#ffffff08 1px,transparent 1px),linear-gradient(90deg,#ffffff08 1px,transparent 1px);
  background-size:48px 48px;background-position:-1px -1px;
  -webkit-mask-image:linear-gradient(90deg,transparent 0,#000 38%,#000 100%);mask-image:linear-gradient(90deg,transparent 0,#000 38%,#000 100%)}

/* ---------- Shared drawing primitives ---------- */
.signal-orbit,.signal-bench{filter:none}
/* hairlines stay hairlines at every size; heavier strokes (wires, pins, bands) scale with the drawing */
.signal-orbit :is(.orbital-guides *,.so-centerlines *,.so-leader,.so-pads *,.so-plate,.so-face,.so-ticks *,.so-tooth,.so-gear-ring,.so-well,.so-coil,.so-coil-wind,.so-blade,.so-hub,.so-screws *,.so-body,.so-screen,.so-glyph,.so-cap-top,.so-stripe,.so-res,.so-led-well,.so-pin1,.so-callout *,.orbit-lab-only *),
.signal-bench :is(.bench-reference *,.sb-plate,.sb-field,.sb-rail-p,.sb-rail-n,.sb-body,.sb-cell,.sb-glyph,.sb-glyph-faint,.sb-notch,.sb-pin1,.sb-res,.sb-led,.sb-led-rim,.sb-mount *,.sb-well,.sb-blade,.sb-hub,.sb-screen,.sb-graticule,.sb-callout *,.sb-jumper-end){vector-effect:non-scaling-stroke}

/* callouts: kit-ladder markers with reference designators */
:is(.so-callout,.sb-callout) :is(.so-callout__lead,.sb-callout__lead){fill:none;stroke:var(--ink-3);stroke-width:1}
:is(.so-callout,.sb-callout) :is(.so-callout__dot,.sb-callout__dot){fill:var(--ink-2)}
:is(.so-callout,.sb-callout) :is(.so-callout__badge,.sb-callout__badge){fill:var(--bg);stroke:var(--ink-2);stroke-width:1.25}
:is(.so-callout,.sb-callout) text{font-family:var(--font-code);font-size:12.5px;font-weight:500;letter-spacing:0;text-anchor:middle;fill:var(--ink)}

/* ---------- Hero engine (signal-orbit) ---------- */
.signal-orbit .orbital-guides *{stroke:var(--ink-3);stroke-opacity:.16;stroke-width:1}
.signal-orbit .orbital-guides .so-guide-dots{stroke-opacity:.3;stroke-dasharray:1 9}
.signal-orbit .so-centerlines path{stroke:var(--line-2);stroke-width:1;stroke-dasharray:18 5 3 5}
.signal-orbit .orbit-wires .so-wire{stroke:var(--blue);stroke-width:2.5;stroke-opacity:.9}
.signal-orbit .orbit-wires .so-current{stroke:var(--orange);stroke-width:3}
.signal-orbit .so-pads rect{fill:var(--bg);stroke:var(--blue);stroke-width:1.5}
.signal-orbit .so-leader{stroke:var(--ink-3);stroke-width:1}
.signal-orbit .so-dot{fill:var(--ink-2)}

.signal-orbit .so-body{fill:var(--bg-raised);stroke:var(--ink-3);stroke-width:1.5}
.signal-orbit .so-screen{fill:var(--bg-sunk);stroke:var(--line-2);stroke-width:1}
.signal-orbit .so-pins{stroke:var(--ink-3);stroke-width:5;stroke-linecap:butt}
.signal-orbit .so-chip-text{fill:var(--ink);font-family:var(--font-display);font-weight:700;font-size:19px;letter-spacing:.04em}
.signal-orbit .so-trace-mark{stroke:var(--blue);stroke-width:2}
.signal-orbit .so-pin1{fill:none;stroke:var(--ink-2);stroke-width:1.25}
.signal-orbit .so-leg{stroke:var(--ink-3);stroke-width:3;stroke-linecap:round}
.signal-orbit .so-leg-row{stroke:var(--ink-3);stroke-width:2.5}
.signal-orbit .so-glyph{stroke:var(--ink-3);stroke-width:1.25}
.signal-orbit .so-cap-top{fill:var(--bg-hi);stroke:var(--ink-3);stroke-width:1.5}
.signal-orbit .so-stripe{fill:var(--bg-hi);stroke:var(--ink-3);stroke-width:1}
.signal-orbit .so-stripe-mark{stroke:var(--ink-2);stroke-width:2}
.signal-orbit .so-value{fill:var(--ink-2);font-family:var(--font-code);font-size:12px;letter-spacing:.02em}
.signal-orbit .so-res{fill:var(--bg-hi);stroke:var(--ink-3);stroke-width:1.5}
.signal-orbit .so-band{stroke:var(--ink-2);stroke-width:4}
.signal-orbit .so-led-well{fill:var(--bg-sunk);stroke:var(--line-2);stroke-width:1}

.signal-orbit .so-plate{fill:var(--bg-raised);stroke:var(--ink-3);stroke-width:1.5}
.signal-orbit .so-face{fill:var(--bg-sunk);stroke:var(--line-2);stroke-width:1}
.signal-orbit .so-ticks path{stroke:var(--ink-3);stroke-width:1}
.signal-orbit .so-tooth{fill:var(--bg-raised);stroke:var(--ink-3);stroke-width:1.25}
.signal-orbit .so-gear-ring{stroke:var(--blue);stroke-width:1.5}
.signal-orbit .so-slot{stroke:var(--ink-3);stroke-width:2;stroke-linecap:round}
.signal-orbit .so-well{fill:var(--bg);stroke:var(--ink-3);stroke-width:1.5}
.signal-orbit .so-coil{fill:color-mix(in oklab,var(--orange) 12%,var(--bg));stroke:var(--orange);stroke-width:1.5}
.signal-orbit .so-coil-wind{stroke:var(--orange);stroke-opacity:.45;stroke-width:1;stroke-dasharray:2 5}
.signal-orbit .so-blade{fill:var(--bg-raised);stroke:var(--ink-2);stroke-width:1.25;stroke-linejoin:round}
.signal-orbit .so-hub{fill:var(--bg-raised);stroke:var(--ink-2);stroke-width:1.5}
.signal-orbit .so-badge{fill:var(--blue)}
.signal-orbit .so-kit{fill:#fff;font-family:var(--font-display);font-weight:700;font-size:24px;letter-spacing:.02em}
.signal-orbit .so-screws *{stroke:var(--ink-3);stroke-width:1.25}

/* live parts: the coil glow and the LED bank (subtle, orange only) */
.signal-orbit .orbit-halo{fill:var(--orange);opacity:.16}
.signal-orbit .orbit-light{fill:var(--orange);filter:drop-shadow(0 0 3px #ff7a0066)}
.signal-orbit .orbit-lab-only{stroke:var(--blue-text);stroke-width:1}

/* engine off: nothing is live, so nothing is orange */
.kinetic-hero[data-powered=false] .signal-orbit .so-coil{fill:var(--bg-hi);stroke:var(--ink-3)}
.kinetic-hero[data-powered=false] .signal-orbit .so-coil-wind{stroke:var(--ink-3);stroke-opacity:.5}
.kinetic-hero[data-powered=false] .signal-orbit .orbit-light{fill:color-mix(in oklab,var(--orange) 16%,var(--bg));filter:none;animation-play-state:paused;opacity:1}
.kinetic-hero[data-powered=false] .signal-orbit .orbit-halo{opacity:0}
@media (prefers-reduced-motion:no-preference){
  .signal-orbit :is(.so-coil,.so-coil-wind,.orbit-light){transition:fill .3s var(--ease-out,ease),stroke .3s var(--ease-out,ease)}
}

/* ---------- Signal lab bench (signal-bench) ---------- */
.signal-bench .bench-reference *{stroke:var(--ink-3);stroke-opacity:.35;stroke-width:1}
.signal-bench .bench-reference .sb-ref-dash{stroke-dasharray:3 9}
.signal-bench .bench-reference .sb-ref-dots{stroke-dasharray:1 9}

.signal-bench .sb-plate{fill:var(--bg-raised);stroke:var(--ink-3);stroke-width:1.5}
.signal-bench .sb-field{fill:var(--bg-raised);stroke:var(--line-2);stroke-width:1}
.signal-bench .sb-hole{fill:color-mix(in oklab,var(--ink-3) 45%,var(--bg-raised))}
.signal-bench .sb-channel{fill:var(--bg-sunk)}
.signal-bench .sb-rail-p{stroke:var(--blue);stroke-width:1.5}
.signal-bench .sb-rail-n{stroke:var(--ink-3);stroke-width:1.5}

/* the trace: dashed "to wire" plan line, blue as it is built, orange current when closed */
.signal-bench .bench-trace-base.bench-trace-base{stroke:var(--ink-3);stroke-opacity:.45;stroke-width:2;stroke-dasharray:5 6}
.signal-bench .bench-trace{stroke:var(--blue);stroke-width:3}
.signal-lab[data-powered=true] .signal-bench .bench-trace-base.bench-trace-base{stroke:var(--blue);stroke-opacity:1;stroke-width:3;stroke-dasharray:none}
.signal-lab[data-powered=true] .signal-bench .bench-trace{stroke:var(--orange)}

.signal-bench .sb-body{fill:var(--bg-raised);stroke:var(--ink-3);stroke-width:1.5}
.signal-bench .sb-cell{fill:var(--bg-sunk);stroke:var(--line-2);stroke-width:1}
.signal-bench .sb-glyph{stroke:var(--ink-2);stroke-width:1.5;stroke-linecap:round}
.signal-bench .sb-glyph-faint{stroke:var(--line-2);stroke-width:1.5}
.signal-bench .sb-pins{stroke:var(--ink-3);stroke-width:5}
.signal-bench .sb-notch{stroke:var(--ink-3);stroke-width:1.25}
.signal-bench .sb-chip-text{fill:var(--ink);font-family:var(--font-display);font-weight:700;font-size:22px;letter-spacing:.04em}
.signal-bench .sb-pin1{fill:none;stroke:var(--ink-2);stroke-width:1.25}
.signal-bench .sb-jumper{stroke:var(--blue);stroke-width:4;stroke-linecap:round}
.signal-bench .sb-jumper-end{fill:var(--bg);stroke:var(--blue);stroke-width:1.5}
.signal-bench .sb-leg{stroke:var(--ink-3);stroke-width:2.5;stroke-linecap:round}
.signal-bench .sb-res{fill:var(--bg-hi);stroke:var(--ink-3);stroke-width:1.5}
.signal-bench .sb-band{stroke:var(--ink-2);stroke-width:3.5}
.signal-bench .sb-led{fill:color-mix(in oklab,var(--orange) 16%,var(--bg));stroke:color-mix(in oklab,var(--orange) 55%,var(--bg));stroke-width:1.5}
.signal-bench .sb-led-rim{fill:var(--bg-hi);stroke:var(--ink-3);stroke-width:1.25}
.signal-bench .bench-led-glow{fill:var(--orange)}
.signal-bench .sb-mount *{stroke:var(--ink-3);stroke-width:1}
.signal-bench .sb-well{fill:var(--bg-sunk);stroke:var(--ink-3);stroke-width:1.5}
.signal-bench .sb-blade{fill:var(--bg-hi);stroke:var(--ink-2);stroke-width:1.25;stroke-linejoin:round}
.signal-bench .sb-hub{fill:var(--bg-raised);stroke:var(--ink-2);stroke-width:1.5}
.signal-bench .sb-screen{fill:var(--bg-sunk);stroke:var(--line-2);stroke-width:1}
.signal-bench .sb-graticule{stroke:var(--line-2);stroke-width:1}
.signal-bench .bench-mini-wave{stroke:var(--orange);stroke-width:2;stroke-linejoin:round}
.signal-bench .sb-status{fill:var(--line-2)}
.signal-bench .bench-labels text{fill:var(--ink-3);font-family:var(--font-mono);font-stretch:92%;font-weight:600;font-size:12px;letter-spacing:.08em}

/* closed circuit: LED, hub and status light up */
.signal-lab:not([data-powered=true]) .signal-bench .bench-mini-wave{stroke:var(--ink-3)}
.signal-lab[data-powered=true] .signal-bench .bench-led-glow{opacity:.32}
.signal-lab[data-powered=true] .signal-bench .sb-led{fill:var(--orange);stroke:var(--orange-hi)}
.signal-lab[data-powered=true] .signal-bench :is(.sb-hub,.sb-status){fill:var(--orange)}
.signal-lab[data-powered=true] .signal-bench .sb-hub{stroke:var(--orange-hi)}
@media (prefers-reduced-motion:no-preference){
  .signal-bench :is(.sb-led,.sb-hub,.sb-status,.bench-trace-base,.bench-trace){transition:fill .3s var(--ease-out,ease),stroke .3s var(--ease-out,ease),stroke-dashoffset .35s}
}

/* small screens: drawings shrink below legible callout size */
@media (max-width:600px){
  .signal-orbit .so-callout{display:none}
}
