/* half_adder.css — XOR + AND wired to two inputs (see half_adder.js). */
.ha-svg { display: block; width: 100%; height: auto; }
.ha-wire { fill: none; stroke: rgba(148, 163, 184, 0.5); stroke-width: 2; }
.ha-wire.is-on { stroke: #34d399; stroke-width: 2.6; filter: drop-shadow(0 0 3px rgba(52, 211, 153, 0.5)); }
.ha-in { cursor: pointer; }
.ha-in rect { fill: rgba(255, 255, 255, 0.04); stroke: rgba(255, 255, 255, 0.22); stroke-width: 1.4; transition: fill 0.12s, stroke 0.12s; }
.ha-in.is-on rect { fill: color-mix(in srgb, #34d399 24%, #0b1220); stroke: #34d399; }
.ha-in:hover rect { stroke: #e2e8f0; }
.ha-inlab { fill: #cbd5e1; font-size: 13px; font-weight: 800; }
.ha-inval { fill: #f1f5f9; font-size: 16px; font-weight: 800; font-family: ui-monospace, monospace; }
.ha-gate { fill: rgba(129, 140, 248, 0.14); stroke: #818cf8; stroke-width: 1.6; }
.ha-gate.is-on { fill: color-mix(in srgb, #818cf8 30%, #0b1220); stroke: #a5b4fc; }
.ha-glab { fill: #e0e7ff; font-size: 13px; font-weight: 800; letter-spacing: 0.04em; }
.ha-out { fill: rgba(255, 255, 255, 0.05); stroke: rgba(255, 255, 255, 0.25); stroke-width: 1.4; }
.ha-out.is-on { fill: color-mix(in srgb, #fbbf24 30%, #0b1220); stroke: #fbbf24; filter: drop-shadow(0 0 6px rgba(251, 191, 36, 0.45)); }
.ha-outval { fill: #fff; font-size: 14px; font-weight: 800; font-family: ui-monospace, monospace; }
.ha-outlab { fill: #94a3b8; font-size: 10px; font-weight: 600; }
