.build-layout {
  align-items: start;
}

.tutor-bubble {
  position: sticky;
  top: 18px;
  overflow: visible;
  border: 2px solid #8ec5ff;
  background: linear-gradient(145deg, #ffffff 0%, #eef7ff 100%);
}

.tutor-bubble::before {
  content: "";
  position: absolute;
  left: -18px;
  top: 52px;
  width: 32px;
  height: 32px;
  border-left: 2px solid #8ec5ff;
  border-bottom: 2px solid #8ec5ff;
  background: #f9fcff;
  transform: rotate(45deg);
}

.tutor-heading {
  position: relative;
  z-index: 1;
  display: flex;
  align-items: center;
  gap: 12px;
}

.tutor-avatar {
  display: grid;
  place-items: center;
  width: 52px;
  height: 52px;
  border-radius: 15px;
  background: linear-gradient(145deg, #1266d8, #00a992);
  box-shadow: 0 8px 18px rgba(18, 102, 216, .22);
  font-size: 1.65rem;
}

.tutor-name {
  margin: 0 0 2px;
  color: #1266d8;
  font-size: .75rem;
  font-weight: 900;
  letter-spacing: .13em;
}

.tutor-bubble .step-label {
  margin: 0;
}

.hotspot.endpoint-selected {
  border-color: #f7b844;
  background: rgba(247, 184, 68, .35);
  box-shadow: 0 0 0 5px rgba(247, 184, 68, .22);
}

#build-choice-layer {
  position: absolute;
  inset: 0;
  z-index: 3;
  pointer-events: none;
}

#build-assembly-layer {
  position: absolute;
  inset: 0;
  z-index: 1;
  width: 100%;
  height: 100%;
  pointer-events: none;
}

.physical-wire {
  fill: none;
  stroke: url(#wire-gradient);
  stroke: #53666b;
  stroke-width: 9;
  stroke-linecap: round;
  filter: drop-shadow(2px 3px 2px rgba(25, 40, 45, .32));
}

.component-lead {
  fill: none;
  stroke: #afb6ae;
  stroke-width: 3;
}

.physical-led ellipse:first-of-type {
  fill: #42b88b;
  stroke: #238964;
  stroke-width: 2;
  filter: drop-shadow(2px 4px 3px rgba(27, 76, 60, .3));
}

.physical-led .led-shine {
  fill: rgba(197, 255, 226, .55);
  stroke: none;
}

.lab-image-wrap > .hotspot {
  z-index: 4;
}

.build-choice,
.build-cleared {
  position: absolute;
}

.build-choice {
  pointer-events: auto;
  border: 3px solid rgba(18, 102, 216, .82);
  border-radius: 8px;
  background: rgba(18, 102, 216, .07);
  transition: background .16s, border-color .16s, box-shadow .16s;
}

.build-choice.wire {
  border-color: rgba(139, 78, 209, .9);
  background: rgba(139, 78, 209, .08);
}

.build-choice:hover,
.build-choice:focus-visible {
  border-color: #f7b844;
  background: rgba(247, 184, 68, .25);
  box-shadow: 0 0 0 4px rgba(247, 184, 68, .22);
  outline: 0;
}

.build-choice[hidden],
.build-cleared[hidden] {
  display: none;
}

.build-cleared {
  z-index: 2;
  box-sizing: border-box;
  border: 3px solid rgba(91, 121, 158, .82);
  border-radius: 8px;
  background: #fff;
  pointer-events: none;
}

@media (max-width: 800px) {
  .tutor-bubble {
    position: relative;
    top: auto;
    order: 1;
  }

  .tutor-bubble::before {
    left: 50%;
    top: -17px;
    transform: translateX(-50%) rotate(135deg);
  }

  .lab-image-wrap {
    order: 0;
  }
}
