.signal-assembly{--assembly-angle-x: 58deg;--assembly-angle-z: -28deg;position:relative;width:100%;min-width:0;margin:0;color:var(--bh-starlight)}.signal-assembly .signal-assembly__caption{display:grid;gap:8px}.signal-assembly .signal-assembly__eyebrow,.signal-assembly .signal-assembly__mode,.signal-assembly .signal-assembly__instructions,.signal-assembly .signal-assembly__datum,.signal-assembly .signal-assembly__coordinate{font-family:var(--font-mono);font-size:9px;line-height:1.6;letter-spacing:.08em;color:var(--bh-mist)}.signal-assembly .signal-assembly__eyebrow{text-transform:uppercase;color:var(--bh-cyan)}.signal-assembly .signal-assembly__title{font-family:var(--font-body);font-size:clamp(20px,2.3vw,28px);line-height:1.25;letter-spacing:-.04em}.signal-assembly .signal-assembly__toolbar{display:flex;flex-wrap:wrap;gap:4px;margin-top:22px;border-bottom:1px solid color-mix(in srgb,var(--bh-starlight) 12%,transparent)}.signal-assembly .signal-assembly__toolbar button,.signal-assembly .signal-assembly__stages button{min-height:44px;border:0;border-radius:0;background:transparent;color:var(--bh-mist);font-family:var(--font-mono);font-size:10px;line-height:1.3;cursor:pointer}.signal-assembly .signal-assembly__toolbar button{padding:10px 12px;border-bottom:1px solid transparent}.signal-assembly .signal-assembly__toolbar button[aria-pressed=true]{border-bottom-color:var(--bh-cyan);color:var(--bh-cyan)}.signal-assembly .signal-assembly__toolbar .signal-assembly__reset{margin-left:auto;padding-right:0}.signal-assembly .signal-assembly__toolbar button:hover,.signal-assembly .signal-assembly__stages button:hover{color:var(--bh-starlight)}.signal-assembly button:focus-visible,.signal-assembly .signal-assembly__viewport:focus-visible{outline:2px solid var(--bh-gold);outline-offset:-2px}.signal-assembly .signal-assembly__crop{overflow:hidden}.signal-assembly .signal-assembly__viewport{position:relative;height:378px;perspective:920px;perspective-origin:50% 45%;cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none;background:radial-gradient(ellipse at center,color-mix(in srgb,var(--bh-violet) 9%,transparent),transparent 67%)}.signal-assembly .signal-assembly__viewport[data-dragging=true]{cursor:grabbing}.signal-assembly .signal-assembly__datum{position:absolute;top:18px;left:0;font-size:8px;letter-spacing:.16em}.signal-assembly .signal-assembly__coordinate{position:absolute;bottom:8px;right:0;font-size:8px;letter-spacing:.14em}.signal-assembly .signal-assembly__rig{position:absolute;top:50%;left:50%;width:220px;height:220px;transform-style:preserve-3d;transform:translate(-50%,-50%) rotateX(var(--assembly-angle-x)) rotate(var(--assembly-angle-z));transition:transform .16s ease-out}.signal-assembly .signal-assembly__viewport[data-dragging=true] .signal-assembly__rig{transition:none}.signal-assembly .signal-assembly__base{position:absolute;inset:-14px;border:1px solid color-mix(in srgb,var(--bh-violet) 28%,transparent);border-radius:36px;transform:translateZ(-120px);background:linear-gradient(color-mix(in srgb,var(--bh-violet) 10%,transparent) 1px,transparent 1px),linear-gradient(90deg,color-mix(in srgb,var(--bh-violet) 10%,transparent) 1px,transparent 1px);background-size:24px 24px}.signal-assembly .signal-assembly__layer{position:absolute;inset:0;transform-style:preserve-3d;transform:translateZ(calc(var(--assembly-level) * 17px));transition:transform .42s cubic-bezier(.2,.7,.25,1)}.signal-assembly .signal-assembly__rig[data-exploded=true] .signal-assembly__layer{transform:translateZ(calc(var(--assembly-level) * 96px))}.signal-assembly .signal-assembly__face,.signal-assembly .signal-assembly__underside{position:absolute;inset:0;border:1px solid color-mix(in srgb,var(--assembly-ink) 50%,var(--bh-nebula));border-radius:24px;background:linear-gradient(135deg,var(--bh-nebula),var(--bh-midnight) 60%)}.signal-assembly .signal-assembly__face{transform:translateZ(1px);box-shadow:inset 0 0 0 5px var(--bh-midnight),inset 0 0 0 6px color-mix(in srgb,var(--assembly-ink) 15%,transparent)}.signal-assembly .signal-assembly__layer[data-active=true] .signal-assembly__face{border-color:var(--assembly-ink);box-shadow:inset 0 0 0 5px var(--bh-midnight),inset 0 0 0 6px color-mix(in srgb,var(--assembly-ink) 32%,transparent),0 0 22px color-mix(in srgb,var(--assembly-ink) 9%,transparent)}.signal-assembly .signal-assembly__underside{transform:translateZ(-11px);background:var(--bh-midnight)}.signal-assembly .signal-assembly__side{position:absolute;width:172px;height:12px;left:24px;top:0;transform-origin:center top;border-top:1px solid color-mix(in srgb,var(--assembly-ink) 55%,var(--bh-nebula));border-bottom:1px solid color-mix(in srgb,var(--assembly-ink) 25%,var(--bh-nebula));background:repeating-linear-gradient(90deg,var(--bh-nebula) 0 6px,var(--bh-midnight) 6px 8px)}.signal-assembly .signal-assembly__side--north{transform:rotateX(-90deg)}.signal-assembly .signal-assembly__side--south{top:220px;transform:rotateX(-90deg)}.signal-assembly .signal-assembly__side--east{top:24px;left:220px;transform-origin:left top;transform:rotate(90deg) rotateX(-90deg)}.signal-assembly .signal-assembly__side--west{top:24px;left:0;transform-origin:left top;transform:rotate(90deg) rotateX(-90deg)}.signal-assembly .signal-assembly__circuit{position:absolute;inset:0;width:100%;height:100%;fill:none}.signal-assembly .signal-assembly__ring{stroke:color-mix(in srgb,var(--assembly-ink) 50%,transparent);stroke-width:1;stroke-dasharray:220 18 80 18}.signal-assembly .signal-assembly__ring--inner{stroke:color-mix(in srgb,var(--assembly-ink) 22%,transparent);stroke-dasharray:2 5}.signal-assembly .signal-assembly__traces{stroke:color-mix(in srgb,var(--assembly-ink) 38%,transparent);stroke-width:1;stroke-linecap:square}.signal-assembly .signal-assembly__contacts{stroke:var(--assembly-ink);stroke-width:2}.signal-assembly .signal-assembly__glyph{stroke:var(--assembly-ink);stroke-width:1.7;stroke-linejoin:round}.signal-assembly .signal-assembly__socket{position:absolute;width:16px;height:16px;border:1px solid color-mix(in srgb,var(--assembly-ink) 48%,var(--bh-nebula));border-radius:50%;background:var(--bh-midnight);box-shadow:inset 0 0 0 4px var(--bh-nebula)}.signal-assembly .signal-assembly__socket--one{left:17px;bottom:17px}.signal-assembly .signal-assembly__socket--two{right:17px;top:17px}.signal-assembly .signal-assembly__engraving{position:absolute;bottom:18px;right:30px;color:var(--bh-starlight);font-family:var(--font-mono);font-size:8px;letter-spacing:.12em;line-height:1;text-transform:uppercase}.signal-assembly .signal-assembly__instructions{margin:2px 0 18px;font-size:9px;letter-spacing:0}.signal-assembly .signal-assembly__stages{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0;border-top:1px solid color-mix(in srgb,var(--bh-starlight) 14%,transparent);border-bottom:1px solid color-mix(in srgb,var(--bh-starlight) 14%,transparent)}.signal-assembly .signal-assembly__stages button{display:flex;flex-wrap:wrap;gap:6px;align-items:center;padding:12px 4px;text-align:left;border-bottom:2px solid transparent}.signal-assembly .signal-assembly__stages button span{color:var(--assembly-ink);font-size:9px}.signal-assembly .signal-assembly__stages button[aria-pressed=true]{color:var(--bh-starlight);border-bottom-color:var(--assembly-ink)}.signal-assembly .signal-assembly__detail{min-height:102px;padding-top:18px}.signal-assembly .signal-assembly__detail h4{margin:0 0 6px;font-family:var(--font-body);font-size:14px;line-height:1.4;font-weight:500}.signal-assembly .signal-assembly__detail p,.signal-assembly .signal-assembly__disclaimer{margin:0;font-family:var(--font-body);color:var(--bh-mist);font-size:12px;line-height:1.6}.signal-assembly .signal-assembly__disclaimer{margin-top:12px;font-size:10px}.signal-assembly .signal-assembly__overview{display:grid;justify-items:center;margin:20px 0 18px}.signal-assembly .signal-assembly__static{width:min(100%,320px);height:auto}.signal-assembly .signal-assembly__static-guide{stroke:var(--bh-violet);stroke-dasharray:2 5;fill:none}.signal-assembly .signal-assembly__static-edge{fill:var(--bh-midnight);stroke:color-mix(in srgb,var(--assembly-ink) 40%,var(--bh-nebula))}.signal-assembly .signal-assembly__static-face{fill:var(--bh-nebula);stroke:color-mix(in srgb,var(--assembly-ink) 55%,var(--bh-nebula))}.signal-assembly .signal-assembly__static-face[data-active=true]{stroke:var(--assembly-ink);stroke-width:2}.signal-assembly .signal-assembly__static-ring,.signal-assembly .signal-assembly__static-trace{fill:none;stroke:color-mix(in srgb,var(--assembly-ink) 60%,transparent)}.signal-assembly .signal-assembly__static-number{fill:var(--bh-starlight);font-family:var(--font-mono);font-size:10px}.signal-assembly .signal-assembly__mode{margin-top:6px;text-align:center;letter-spacing:0}@media(prefers-reduced-motion:reduce){.signal-assembly .signal-assembly__rig,.signal-assembly .signal-assembly__layer{transition:none}}
