/* console + chat + game + vault — Operative Console layer */
.term-wrap { position: fixed; inset: 0; z-index: 1000; display: none; align-items: flex-start; justify-content: center; padding: clamp(.5rem, 8vh, 14vh) 1rem 1rem; background: rgba(10,10,11,.55); backdrop-filter: blur(6px); }
.term-wrap.open { display: flex; }
.term { width: min(100%, 44rem); max-height: 70vh; display: flex; flex-direction: column; background: var(--ink-panel); border: 1px solid var(--line-2); border-radius: 8px; overflow: hidden; font-family: var(--mono); font-size: .82rem; box-shadow: 0 30px 80px -20px rgba(0,0,0,.8); position: relative; }
.term::after { content: ""; position: absolute; inset: 0; pointer-events: none; background: repeating-linear-gradient(0deg, transparent 0 2px, rgba(236,230,217,.018) 2px 3px); }
.term-head { display: flex; gap: .6rem; align-items: center; padding: .6rem .9rem; border-bottom: 1px solid var(--line); color: var(--bone-dim); font-size: .68rem; letter-spacing: .12em; text-transform: uppercase; }
.term-head .dot { width: 8px; height: 8px; border-radius: 50%; background: var(--accent); }
.term-body { padding: .9rem; overflow-y: auto; flex: 1; min-height: 9rem; }
.term-line { white-space: pre-wrap; word-break: break-word; color: var(--bone-soft); line-height: 1.55; }
.term-line.err { color: var(--accent); }
.term-line.ok { color: var(--live); }
.term-line.dim { color: var(--bone-faint); }
.term-in { display: flex; gap: .6rem; padding: .7rem .9rem; border-top: 1px solid var(--line); align-items: center; }
.term-in .ps1 { color: var(--accent); }
.term-in input { flex: 1; background: none; border: 0; outline: 0; color: var(--bone); font: inherit; caret-color: var(--accent); }
.term.phos { --accent: #6ee7a8; --accent-hi: #9ff0c4; }
@media (prefers-reduced-motion: no-preference) {
  .term-wrap.open .term { animation: term-in .22s var(--ease-out); }
  @keyframes term-in { from { transform: translateY(14px); opacity: 0 } }
}
@media (max-width: 640px) { .term-wrap { padding: 0; align-items: flex-end; } .term { max-height: 78vh; border-radius: 12px 12px 0 0; width: 100%; } }
.term-hint { cursor: pointer; }
.term-hint b { color: var(--accent); font-weight: 500; }
/* chat add-on (Task 7) */
.chat-sug { display: flex; flex-wrap: wrap; gap: .5rem; padding: 0 .9rem .7rem; }
.chat-sug button { font: inherit; font-size: .7rem; color: var(--bone-dim); background: none; border: 1px solid var(--line-2); border-radius: 99px; padding: .35rem .7rem; cursor: pointer; }
.chat-sug button:hover { border-color: var(--accent); color: var(--accent); }
.term-line.user { color: var(--bone); }
.term-line.user::before { content: "you ▸ "; color: var(--bone-faint); }
.term-line.ai::before { content: "cv ▸ "; color: var(--accent); }
/* game HUD (Task 5) */
.game-hud { position: absolute; top: 1rem; left: 50%; transform: translateX(-50%); z-index: 4; font-family: var(--mono); font-size: .72rem; letter-spacing: .14em; text-transform: uppercase; color: var(--bone-soft); background: rgba(15,15,18,.72); border: 1px solid var(--line-2); padding: .5rem .9rem; border-radius: 6px; cursor: pointer; }
.game-hud b { color: var(--accent); }
/* vault pages */
.vault-tag { display: inline-block; font-family: var(--mono); font-size: .66rem; letter-spacing: .18em; text-transform: uppercase; color: var(--ink); background: var(--accent); padding: .3rem .6rem; border-radius: 3px; margin-bottom: 1.2rem; }
pre.ascii { font-family: var(--mono); font-size: .72rem; line-height: 1.35; color: var(--bone-soft); overflow-x: auto; border: 1px solid var(--line); border-radius: 8px; padding: 1.2rem; background: var(--ink-rise); }
