/* ── Terminal ── */
.terminal { background: #070707; border: 1px solid var(--border-strong); border-radius: var(--radius); overflow: hidden; box-shadow: 0 30px 80px rgba(0, 0, 0, .5), 0 0 0 1px rgba(0, 200, 83, .04); font: 13px/1.75 var(--mono); }
.terminal-bar { display: flex; align-items: center; gap: 7px; padding: 12px 16px; border-bottom: 1px solid var(--border); background: #0e0e0e; }
.terminal-bar i { width: 10px; height: 10px; border-radius: 50%; background: #2a2a2a; }
.terminal-bar span { margin-left: 10px; font-size: 12px; color: var(--text-dim); }
.terminal-body { padding: 18px 20px; min-height: 300px; overflow-x: auto; }
.t-line { white-space: pre; }
.t-cmd { color: var(--white); }
.t-cmd::before { content: "$ "; color: var(--accent); }
.t-comment { color: var(--text-dim); }
.t-out { color: var(--text-muted); }
.t-warn { color: #ffb020; }
.t-success { color: var(--accent); }
.t-blank { height: 1em; }
.js .terminal .t-line { opacity: 0; transition: opacity .25s; }
.js .terminal .t-line.on { opacity: 1; }
.t-cursor { display: inline-block; width: 8px; height: 15px; vertical-align: -2px; background: var(--accent); animation: blink 1s steps(1) infinite; }
@keyframes blink { 50% { opacity: 0; } }
