.circuit-page {
  position: relative;
  isolation: isolate;
}

/* Gaming's dashboard sits above the body-level circuit. */
:root .circuit-page > .dashboard {
  background: transparent;
}

.site-circuit {
  --pcb-bg: var(--bg);
  --pcb-copper: #567066;
  --pcb-signal: var(--light-accent, #c5f544);
  --pcb-trail: color-mix(in srgb, var(--pcb-signal) 52%, var(--red, #4b6510));
  --pcb-outline: color-mix(in srgb, var(--red, #4b6510) 85%, transparent);
  --pcb-edge-mask: linear-gradient(90deg, #000e, #0009 15%, #0005 29%, #0003 50%, #0005 66%, #000c 84%, #000);
  --pcb-text-mask: radial-gradient(ellipse 36% 31% at 18% 23%, #0004, #0008 52%, #000);
  position: fixed;
  inset: 0;
  z-index: -1;
  overflow: hidden;
  pointer-events: none;
  mask-image: var(--pcb-edge-mask), var(--pcb-text-mask);
  mask-composite: intersect;
}

/* The approved Home composition spans the document. Interior pages keep the
   board at viewport height so longer content does not stretch its geometry. */
.home-animations > .site-circuit {
  position: absolute;
}

:root[data-theme="dark"] .site-circuit {
  --pcb-copper: #879e56;
  --pcb-signal: var(--dark-accent, #c5f544);
  --pcb-trail: var(--pcb-signal);
  --pcb-outline: transparent;
}

:root[data-theme="eva01"] .site-circuit {
  --pcb-copper: #a58cc2;
  --pcb-signal: var(--eva-action, #e8790c);
  --pcb-trail: var(--pcb-signal);
  --pcb-outline: transparent;
}

.site-circuit__board {
  display: block;
  width: 100%;
  height: 100%;
}

.site-circuit__board--mobile { display: none; }

@media (max-width: 600px) {
  .site-circuit {
    --pcb-trace-width: 1;
    --pcb-edge-mask: linear-gradient(90deg, #000e, #0009 12%, #0004 30%, #0002 50%, #0004 70%, #000b 88%, #000);
    --pcb-text-mask: radial-gradient(ellipse 58% 29% at 30% 21%, #0004, #0008 52%, #000);
  }
  .site-circuit__board--desktop { display: none; }
  .site-circuit__board--mobile { display: block; }
}

@media screen and (prefers-reduced-motion: no-preference) {
  @supports (offset-path: path("M0 0L1 1")) {
    .site-circuit {
      --pcb-pulse-display: inline;
      --pcb-animation: site-circuit-flow;
    }
  }
}

@media print {
  .site-circuit { display: none; }
}
