/* 30 Terminal section: command UI, signal meter, wire globe. */
.desktop {
  position: relative;
  min-height: 0;
  overflow: hidden;
  contain: paint;
  background:
    linear-gradient(90deg, transparent 22%, rgba(255,255,255,.018) 22.1% 22.2%, transparent 22.3%),
    radial-gradient(circle at 59% 48%, #0d1714 0, #050806 46%, #020403 100%);
}

.terminal {
  position: absolute;
  inset: 0 auto 0 0;
  z-index: 5;
  width: 23%;
  padding: clamp(12px, 1.3vw, 22px) clamp(10px, 1.2vw, 19px);
  overflow: hidden;
  color: var(--terminal);
  border-right: 1px solid rgba(126,190,96,.25);
  background: rgba(2,8,5,.83);
  text-shadow: 0 0 4px rgba(100,255,88,.4);
  cursor: text;
}

.terminal-scroll { height: 70%; overflow: auto; scrollbar-width: none; line-height: 1.47; white-space: pre-wrap; }
.terminal-scroll::-webkit-scrollbar { display: none; }
.terminal-line { min-height: 1.2em; }
.terminal-line.dim { opacity: .75; }
.terminal-line.error { color: #ff6b5f; }
.terminal-line.system { color: #b8ff8b; }
.terminal-form { display: flex; align-items: center; gap: .5em; margin-top: .4em; }
.terminal-form input { min-width: 0; flex: 1; border: 0; outline: 0; background: transparent; color: var(--terminal); text-transform: uppercase; caret-color: transparent; }
.terminal-cursor { width: .62em; height: 2px; background: var(--terminal); animation: cursor-blink .86s steps(2,end) infinite; }

.terminal-orb { position: absolute; left: 10%; bottom: 9%; width: clamp(54px, 6vw, 94px); aspect-ratio: 1; border: 1px solid var(--blue); border-radius: 50%; opacity: .9; background: repeating-radial-gradient(ellipse at center, transparent 0 8px, rgba(20,61,255,.5) 9px 10px); }
.terminal-orb::before, .terminal-orb::after { content: ""; position: absolute; inset: 7% 30%; border: 1px solid var(--blue); border-radius: 50%; }
.terminal-orb::after { inset: 30% 7%; }
.orb-latitude, .orb-longitude { position: absolute; background: var(--blue); }
.orb-latitude { left: 4%; right: 4%; top: 50%; height: 1px; }
.orb-longitude { top: 4%; bottom: 4%; left: 50%; width: 1px; }
.signal-box { position: absolute; left: 8%; right: 9%; bottom: 2.4%; display: grid; grid-template-columns: 1fr auto; gap: 5px 8px; padding: 8px 9px; border: 1px solid var(--terminal); }
.signal-box > span { grid-column: 1 / -1; }
.signal-box strong { align-self: end; }
.signal-bars { display: grid; grid-template-columns: repeat(14,1fr); gap: 2px; align-items: end; }
.signal-bars i { display: block; height: 8px; background: var(--terminal); opacity: .95; }
.signal-bars i.off { opacity: .13; }

