/* DG ONE · G3-04 · Jornada "A bancada DG ONE" (figura /anatomy) + teaser da home.
   Folha nova, carregada depois de styles.css (aprovado e intocado). Sem estilos inline (CSP). */

/* ---------- kit Anatomy: tokens no tema DG ONE (#0B0B0B / #83EA05) ---------- */
.iso{
  --anatomy-page:#0B0B0B;--anatomy-card:#0f110e;--anatomy-text:#A9AFA3;--anatomy-strong:#F2F4EE;--anatomy-muted:#7d8478;
  --anatomy-paper:#0f110e;--anatomy-face:#1a1e17;--anatomy-top:#1d221a;
  --anatomy-shade-0:#0c0e0b;--anatomy-shade-1:#10130f;--anatomy-shade-2:#141712;--anatomy-shade-3:#181c16;
  --anatomy-lit-top:#25301b;--anatomy-lit-shade:#1a2214;
  --anatomy-hi:#d9ddd3;--anatomy-mid:#6c7366;--anatomy-lo:#3d4339;--anatomy-faint:#262b23;--anatomy-lit:#83EA05;
  --anatomy-halo:#030403;--anatomy-halo-opacity:.92;--anatomy-dot:#e6ebe0;
  --anatomy-weight:.6px;--anatomy-ease:cubic-bezier(.32,.72,0,1);
  --anatomy-mono:ui-monospace,"Ubuntu Sans Mono","Ubuntu Mono",Menlo,Consolas,monospace;
}
.iso-svg{display:block;width:100%;height:auto;overflow:visible}
.iso-svg path,.iso-svg circle,.iso-svg rect{vector-effect:non-scaling-stroke}
.iso-fill{fill:var(--anatomy-paper);stroke:none}
.iso-solid[data-lit]>.iso-fill{fill:var(--anatomy-face)}
.iso-shade,.iso-top{stroke:none}
.iso-shade[data-shade="0"]{fill:var(--anatomy-shade-0)}
.iso-shade[data-shade="1"]{fill:var(--anatomy-shade-1)}
.iso-shade[data-shade="2"]{fill:var(--anatomy-shade-2)}
.iso-shade[data-shade="3"]{fill:var(--anatomy-shade-3)}
.iso-top{fill:var(--anatomy-top)}
.iso-solid[data-lit]>.iso-top{fill:var(--anatomy-lit-top)}
.iso-solid[data-lit]>.iso-shade{fill:var(--anatomy-lit-shade)}
.iso-solid[data-lit]>.iso-edge{stroke:var(--anatomy-lit)}
.iso-halo{fill:var(--anatomy-halo);stroke:none;filter:blur(9px);opacity:var(--anatomy-halo-opacity);transform:translateY(3px)}
.iso-halo.bx-soft{filter:blur(4px)}
.iso-line{fill:none;stroke:var(--anatomy-lo);stroke-width:var(--anatomy-weight);stroke-linecap:round;stroke-linejoin:round}
.iso-line[data-tone="hi"]{stroke:var(--anatomy-hi)}
.iso-line[data-tone="mid"]{stroke:var(--anatomy-mid)}
.iso-line[data-tone="lo"]{stroke:var(--anatomy-lo)}
.iso-line[data-tone="faint"]{stroke:var(--anatomy-faint)}
.iso-line[data-tone="lit"]{stroke:var(--anatomy-lit)}
.iso-dots circle{fill:var(--anatomy-dot);stroke:none;opacity:.32}
.iso-dots[data-tone="hi"] circle{opacity:.85}
.iso-dots[data-tone="mid"] circle{opacity:.45}
.iso-dots[data-tone="lo"] circle{opacity:.22}
.iso-dots[data-tone="faint"] circle{opacity:.12}
.iso-face-text{fill:var(--anatomy-mid);font-family:var(--anatomy-mono);letter-spacing:.08em;font-weight:600}
.iso-face-text[data-tone="hi"]{fill:var(--anatomy-hi)}
.iso-face-text[data-tone="lo"]{fill:var(--anatomy-lo)}

/* ---------- peças específicas da bancada ---------- */
.bx-signal-base{stroke-width:1.4px}
.bx-signal{vector-effect:none!important;fill:none;stroke:var(--green);stroke-width:2.2;stroke-linecap:round;filter:drop-shadow(0 0 3px rgba(131,234,5,.7))}
.bx-node .iso-edge{transition:stroke .5s var(--ease)}
.bx-node.is-on .iso-edge{stroke:var(--green)}
.bx-node.is-on .iso-top{fill:#2b3a1c}
.bx-screen{fill:#090b08}
.bx-screen-edge{fill:none;stroke:var(--anatomy-lo);stroke-width:.6px}
.bx-bubble{fill:#232820;opacity:.55;transition:opacity .45s var(--ease),fill .45s var(--ease)}
.bx-bubble[data-side="out"]{fill:#2a3a1a}
.bx-slot{fill:#060706;stroke:var(--anatomy-lo);stroke-width:.6px}
.bx-plate{fill:none;stroke:var(--anatomy-faint);stroke-width:.6px}
.bx-wait{fill:none;stroke:var(--anatomy-mid);stroke-width:.8px;opacity:0;transition:opacity .4s var(--ease)}
.bx-led{fill:#1c2019;stroke:var(--anatomy-lo);stroke-width:.5px;transition:fill .35s var(--ease)}
.bx-lever path{fill:none;stroke:var(--anatomy-hi);stroke-width:1.6px;stroke-linecap:round}
.bx-knob{fill:var(--anatomy-hi);stroke:none}
.bx-lever .bx-lever-on{opacity:0}
.bx-lever.is-on .bx-lever-on{opacity:1}
.bx-lever.is-on .bx-lever-off{opacity:0}
.bx-lever path,.bx-lever circle{transition:opacity .28s var(--ease)}
.bx-ticket-dot{fill:var(--green)}
.bx-hit{fill:transparent;stroke:none;cursor:pointer;pointer-events:all}

/* estação ativa: a peça observada recebe o acento (um só por vez) */
.bx-svg [data-subject] .iso-edge{transition:stroke .5s var(--ease)}
.bx-svg [data-subject] .iso-top{transition:fill .5s var(--ease)}
.bx-svg[data-active="0"] [data-subject="0"] .iso-edge,
.bx-svg[data-active="2"] [data-subject="2"] .iso-edge,
.bx-svg[data-active="4"] [data-subject="4"] .iso-edge{stroke:var(--green)}
.bx-svg[data-active="0"] [data-subject="0"] .iso-top,
.bx-svg[data-active="2"] [data-subject="2"] .iso-top,
.bx-svg[data-active="4"] [data-subject="4"] .iso-top{fill:#25301b}
.bx-svg[data-active="1"] .bx-bubble{opacity:1}
.bx-svg[data-active="1"] .bx-bubble[data-side="out"][data-i="3"]{fill:var(--green)}
.bx-svg[data-active="2"] .bx-wait{opacity:1;animation:bx-wait 2.4s var(--ease) infinite}
.bx-svg[data-active="3"] .bx-led.is-on{fill:var(--green)}
@keyframes bx-wait{0%,100%{opacity:.15}50%{opacity:.9}}
