/* ops-board.css — styles for the embeddable Ops Board (see ops-board.js).
   Scoped to .opsboard; self-contained so it can't leak into the page. */

.opsboard {
  position: relative;
  width: 100%;
  aspect-ratio: 16 / 9;
  max-height: 74vh;
  min-height: 320px;
  border: 1px solid var(--ink, #0F0F12);
  border-radius: 6px;
  overflow: hidden;
  background: #F6F4EE;
  box-shadow: 0 10px 40px rgba(20, 16, 8, 0.10);
  font-family: "Space Mono", "SF Mono", Menlo, Consolas, monospace;
}
.opsboard__canvas { display: block; width: 100%; height: 100%; }

/* HUD — absolutely placed within the board, never fixed to the viewport */
.opsboard__tag,
.opsboard__hint { position: absolute; z-index: 2; transition: opacity 0.3s ease; }

.opsboard__tag {
  top: 12px; left: 14px;
  display: inline-flex; align-items: center; gap: 0.6ch;
  background: rgba(251, 250, 245, 0.82);
  border: 1px solid #B4AD9C; border-radius: 2px;
  padding: 4px 8px;
  font-size: 11px; letter-spacing: 0.14em; text-transform: uppercase; color: #0F0F12;
}
.opsboard__dot {
  width: 8px; height: 8px; border-radius: 50%; background: #8B877C;
  box-shadow: 0 0 0 3px rgba(0, 0, 0, 0.04);
}
/* legend as a caption row beneath the figure (kept off the canvas so it can
   never overlap a node — bottom-left "COMPANY 04" collision, 2026-07-14) */
.opsboard__legend { display: flex; flex-wrap: wrap; gap: 6px 18px; margin-top: 12px; }
.opsboard__leg {
  display: inline-flex; align-items: center; gap: 7px;
  font-size: 10.5px; letter-spacing: 0.06em; text-transform: uppercase; color: #56534B;
}
.opsboard__leg i { width: 15px; height: 3px; border-radius: 2px; display: inline-block; }
.opsboard__hint {
  bottom: 12px; right: 14px;
  font-size: 10px; letter-spacing: 0.1em; text-transform: uppercase; color: #8B877C;
}

/* Cinematic-view button */
.opsboard__fly {
  position: absolute; z-index: 3; top: 12px; right: 14px;
  font-family: inherit; font-size: 11px; letter-spacing: 0.08em; text-transform: uppercase;
  color: #0F0F12; background: rgba(251, 250, 245, 0.9);
  border: 1px solid #0F0F12; border-radius: 3px; padding: 6px 12px;
  cursor: pointer; transition: background 0.15s ease, color 0.15s ease;
}
.opsboard__fly:hover { background: #FF6B00; color: #fff; border-color: #FF6B00; }
.opsboard__fly:focus-visible { outline: 2px solid #FF6B00; outline-offset: 2px; }

/* during a flythrough, hide the readout chrome but keep the exit button */
.opsboard.is-flying .opsboard__tag,
.opsboard.is-flying .opsboard__hint { opacity: 0; }

/* surrounding copy for the Fig. 02 section */
.opsboard-lead {
  font-family: "Inter", system-ui, -apple-system, sans-serif;
  font-size: 1.05rem; line-height: 1.6; color: #56534B;
  max-width: 62ch; margin: 0 0 22px;
}
.opsboard-lead em { font-style: normal; font-weight: 600; color: #0F0F12; }
.opsboard-note {
  font-family: "Space Mono", "SF Mono", Menlo, monospace;
  font-size: 0.72rem; letter-spacing: 0.04em; text-transform: uppercase;
  color: #8B877C; margin-top: 12px;
}

@media (prefers-reduced-motion: reduce) {
  .opsboard__fly { display: none; }
}
@media (max-width: 640px) {
  .opsboard { aspect-ratio: 4 / 5; min-height: 380px; }
}
