/* driftless Orchestrator — animated terminal simulation (DW-018)
   Shared by the Orchestrator page (hero + section) and the home page product
   node. Extracted from the page-scoped <style> so the component is reusable.

   ac-12: the terminal body is a FIXED height and scrolls internally — the rest
   of the page never shifts as lines are typed. The JS auto-scrolls to keep the
   active cursor visible. */

.orch-terminal {
  background: var(--ink-950);
  border: 1px solid var(--ink-700);
  border-radius: var(--radius-md);
  overflow: hidden;
  box-shadow: 0 24px 60px -24px rgba(10, 14, 22, 0.55);
  font-family: var(--font-mono);
  color: #d7dce2;
  width: 100%;
  text-align: left;
  display: flex;
  flex-direction: column;
}
.orch-terminal-chrome {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 10px 14px;
  background: var(--ink-900);
  border-bottom: 1px solid var(--ink-800);
  flex: 0 0 auto;
}
.orch-terminal-dots { display: flex; gap: 6px; flex: 0 0 auto; }
.orch-terminal-dots span { width: 11px; height: 11px; border-radius: 50%; display: inline-block; }
.orch-terminal-dots span:nth-child(1) { background: #ff5f57; }
.orch-terminal-dots span:nth-child(2) { background: #febc2e; }
.orch-terminal-dots span:nth-child(3) { background: #28c840; }
.orch-terminal-title { font-size: 12px; color: var(--ink-400); margin-left: 6px; }

.orch-terminal-body {
  padding: 16px 18px;
  font-size: 13px;
  line-height: 1.7;
  white-space: pre-wrap;
  word-break: break-word;
  overflow-x: auto;
  overflow-y: auto; /* ac-12: scroll internally instead of growing */
  flex: 1 1 auto;   /* fill the remaining fixed height */
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none; /* ac-15: hide scrollbar, keep scroll */
  -ms-overflow-style: none;
}
.orch-terminal-body::-webkit-scrollbar { display: none; } /* ac-15 */
.orch-line { white-space: pre-wrap; }
.orch-prompt { color: var(--teal-400); }
.orch-ok { color: var(--green-500); }
.orch-warn { color: var(--amber-500); }
.orch-info { color: var(--teal-300); }
.orch-dim { color: var(--ink-400); }
.orch-bright { color: #f5f7f9; font-weight: 600; }
.orch-cursor {
  display: inline-block;
  width: 8px;
  height: 15px;
  vertical-align: text-bottom;
  background: var(--teal-400);
  margin-left: 2px;
  animation: orch-blink 1.05s steps(1) infinite;
}
@keyframes orch-blink { 0%, 50% { opacity: 1; } 50.01%, 100% { opacity: 0; } }

/* Fixed-height variants (ac-12). --fill stretches to its media container. */
.orch-terminal--hero { height: 320px; }
.orch-terminal--section { max-width: 880px; margin: 0 auto; height: 360px; }
.orch-terminal--section .orch-terminal-body { font-size: 13.5px; }
.orch-terminal--node { height: 100%; }
.orch-terminal--node .orch-terminal-chrome { padding: 7px 10px; }
.orch-terminal--node .orch-terminal-title { font-size: 10.5px; }
.orch-terminal--node .orch-terminal-body { font-size: 11.5px; padding: 10px 12px; line-height: 1.6; }

@media (max-width: 768px) {
  .orch-terminal--hero { height: 260px; }
  .orch-terminal--section { height: 300px; }
  .orch-terminal-body { font-size: 12px; padding: 12px 14px; }
  .orch-terminal--section .orch-terminal-body { font-size: 12.5px; }
}