.mission-figure {
  margin: 0;
  min-width: 0;
}
.mission-stage {
  perspective: 1000px;
  padding: 20px 6% 32px;
}
.mission-grid {
  position: relative;
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  aspect-ratio: 1;
  transform: rotateX(29deg) rotateY(-14deg) rotateZ(8deg);
  transform-style: preserve-3d;
  transition: transform 450ms ease;
}
.mission-figure[data-plan="true"] .mission-grid {
  transform: none;
}
.mission-tile {
  position: relative;
  margin: 9%;
  min-width: 0;
  background: #081c0b;
  border: 1px solid #89c5af50;
  box-shadow:
    3px 5px 0 #242c26,
    4px 6px 0 #89c5af45,
    6px 14px 18px #0007;
  overflow: hidden;
  isolation: isolate;
}
.mission-tile img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  image-rendering: pixelated;
  clip-path: inset(17% 0 0);
}
.mission-tile span {
  position: absolute;
  inset: 0 0 auto;
  padding: 2px 4px;
  color: var(--accent);
  background: #081c0b;
  font: 9px/1.3 var(--mono);
}
.mission-tile[data-signal="tx"] {
  border-color: #ffb36b;
  box-shadow:
    3px 5px 0 #242c26,
    0 0 10px #ffb36b60;
}
.mission-tile[data-signal="rx"] {
  border-color: #89c5af;
  box-shadow:
    3px 5px 0 #242c26,
    0 0 10px #89c5af60;
}
.mission-links {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  overflow: visible;
  pointer-events: none;
}
.mission-links .wiring {
  stroke: #89c5af25;
  stroke-width: 1;
  fill: none;
}
.mission-links .packet-path {
  stroke: #89c5af90;
  stroke-width: 1.5;
}
.mission-links circle {
  fill: #eeeae1;
}
.mission-caption {
  border-top: 1px solid var(--line);
  padding-top: 16px;
  font: 11px/1.8 var(--mono);
  color: var(--muted);
}
.mission-caption strong {
  color: var(--ink);
  font-weight: 400;
}
.mission-status {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  color: var(--accent);
  margin-bottom: 6px;
}
.mission-controls {
  display: flex;
  flex-wrap: wrap;
  gap: 4px 16px;
  margin-top: 12px;
}
.mission-controls[hidden] {
  display: none;
}
.mission-controls button {
  padding: 8px 0;
  min-height: 44px;
  border: 0;
  border-bottom: 1px solid var(--line);
  background: transparent;
  color: var(--ink);
  font: 11px var(--mono);
  cursor: pointer;
}
.mission-controls button:hover,
.mission-controls button[aria-pressed="true"] {
  color: var(--accent);
  border-color: var(--accent);
}
.mission-controls button:disabled {
  color: var(--muted);
  cursor: default;
}
.mission-controls button:focus-visible {
  outline: 2px solid var(--accent);
  outline-offset: 4px;
}
@media (max-width: 600px) {
  .mission-stage {
    max-width: 440px;
    margin-inline: auto;
  }
}
@media (prefers-reduced-motion: reduce) {
  .mission-grid {
    transition: none;
  }
}
