/* console.css — terminal styling for /console/ (K235). On the site's --c-* tokens
   so the reading-mode toggle tracks it; a scanline + blink under motion, static
   under prefers-reduced-motion. No external refs, no assets. */

.console-wrap { max-width: min(72rem, 100%); margin-inline: auto; padding-inline: var(--s-5); padding-block-end: var(--s-9); }

.con-term {
  position: relative; overflow: hidden;
  display: flex; flex-direction: column; min-height: 60vh;
  border: var(--bw-base) solid var(--c-border);
  background: #050505;
  color: var(--c-fg);
  font-family: var(--font-mono);
}
.con-term::after {                       /* scanlines */
  content: ""; position: absolute; inset: 0; pointer-events: none; z-index: 1;
  background: repeating-linear-gradient(180deg, rgba(255,255,255,.03) 0 1px, transparent 1px 3px);
  opacity: .5;
}
.con-term > * { position: relative; z-index: 2; }

.con-head {
  display: flex; justify-content: space-between; gap: var(--s-3);
  padding: var(--s-3) var(--s-4);
  border-bottom: var(--bw-base) solid var(--c-border);
  font-size: var(--t-xs); letter-spacing: var(--ls-wide); text-transform: uppercase; color: var(--c-fg-dim);
}
.con-title { color: var(--c-accent); }
.con-status { text-align: right; }

.con-out {
  flex: 1 1 auto; overflow-y: auto;
  padding: var(--s-4);
  font-size: .98rem; line-height: 1.6;
  white-space: pre-wrap; word-break: break-word;
  min-height: 38vh; max-height: 56vh;
}
.con-line { margin: 0; }
.con-echo { color: var(--c-accent); }
.con-sys  { color: var(--c-fg); }
.con-dim  { color: var(--c-fg-dim); }

.con-in-row {
  display: flex; align-items: center; gap: var(--s-2);
  padding: var(--s-3) var(--s-4);
  border-top: var(--bw-base) solid var(--c-border);
}
.con-prompt { color: var(--c-accent); }
.con-in {
  flex: 1 1 auto; min-width: 0;
  background: transparent; border: 0; outline: none;
  color: var(--c-fg); font-family: var(--font-mono); font-size: 1rem;
  caret-color: var(--c-accent);
}
.con-in::placeholder { color: var(--c-fg-dim); }
.con-in-row::after {                     /* blinking cursor */
  content: "_"; color: var(--c-accent); animation: con-blink 1.1s steps(1) infinite;
}
@keyframes con-blink { 50% { opacity: 0; } }

.con-ctrl {
  display: flex; gap: var(--s-2); flex-wrap: wrap;
  padding: var(--s-2) var(--s-4) var(--s-3);
  border-top: var(--bw-base) solid var(--c-border);
}
.con-btn {
  font-family: var(--font-mono); font-size: var(--t-xs); letter-spacing: var(--ls-wide);
  background: transparent; border: var(--bw-base) solid var(--c-border);
  color: var(--c-fg-muted); padding: var(--s-1) var(--s-3); cursor: pointer;
}
.con-btn:hover:not(:disabled) { border-color: var(--c-accent); color: var(--c-accent); }
.con-btn:disabled { opacity: .45; cursor: default; }
.con-btn:focus-visible, .con-in:focus-visible, .con-out:focus-visible { outline: 2px solid var(--c-accent); outline-offset: 2px; }

.con-reveal { animation: con-fade .18s ease-out; }
@keyframes con-fade { from { opacity: .3; } to { opacity: 1; } }

/* page-scoped chrome around the terminal */
.con-page-foot {
  margin-block: var(--s-7) 0; padding-block-start: var(--s-5);
  border-top: var(--bw-base) solid var(--c-border);
  font-family: var(--font-mono); font-size: var(--t-xs);
  color: var(--c-fg-dim); letter-spacing: var(--ls-wide); line-height: 1.8; max-width: 46rem;
}
.con-page-accent { color: var(--c-accent); }
.con-page-foot code { color: var(--c-fg-muted); }
.con-noscript { color: var(--c-fg-dim); font-family: var(--font-mono); font-size: var(--t-sm); line-height: 1.6; }

@media (prefers-reduced-motion: reduce) {
  .con-term::after { display: none; }
  .con-in-row::after { animation: none; content: ""; }
  .con-reveal { animation: none; }
  .con-term, .con-btn, .con-in { transition: none; }
}

/* K275 — mobile touch: console takeover control chips ≥44px; the
   input row wraps. Console engine/scene/fx/sigil byte-frozen. */
@media (pointer: coarse) {
  .con-btn { min-height: 44px; min-width: 44px; }
}
@media (max-width: 640px) {
  .con-in-row { flex-wrap: wrap; }
}
