@font-face { font-family: 'Terminal Chinese'; src: url('fonts/MiSans-Regular.woff2') format('woff2'); font-weight:400; font-display:swap; }
/* Reusable static side-card. Palette is an interpretation, not official tokens. */
.orbit-terminal {
  --terminal-shell:#2c2c2c; --terminal-bg:#121212; --terminal-fg:#e5e5e5;
  --terminal-muted:#8c8c8c; --terminal-accent:#d4d4d4; --terminal-line:#2a2a2a;
  width:min(360px, calc(100vw - 40px)); box-sizing:border-box; padding:0 5px 5px; border-radius:15px;
  background:var(--terminal-shell); border:1px solid #3c3c3c;
  box-shadow:0 3px 5px #17171714,0 14px 30px -10px #22222238;
  color:var(--terminal-fg); font-family:'Terminal Chinese','Cascadia Code',Consolas,sans-serif;
  font-size:11px; font-weight:400; font-synthesis:none; line-height:1.65; text-align:left;
}
.orbit-terminal * { box-sizing:border-box; }
.terminal-chrome { height:29px; display:flex; align-items:center; padding:0 8px; gap:10px; }
.terminal-lights { display:flex; gap:5px; }
.terminal-lights i { width:9px; height:9px; border-radius:50%; background:#ff5f57; }
.terminal-lights i:nth-child(2) { background:#febc2e; }.terminal-lights i:nth-child(3) { background:#28c840; }
.terminal-window-title { color:#afafaf; font-size:9px; margin-left:7px; }
.terminal-window-icon { margin-left:auto; width:14px; height:14px; color:#989898; }
.terminal-surface { background:var(--terminal-bg); border:1px solid #1b1b1b; border-radius:10px; overflow:hidden; }
.terminal-prompt { display:flex; gap:8px; margin:10px 10px 0; padding:8px 9px; background:#202020; border:1px solid #2f2f2f; border-radius:4px; }
.terminal-prompt > span { color:var(--terminal-accent); font-size:14px; line-height:18px; }
.terminal-prompt p { margin:0; min-width:0; color:#e7e7e7; line-height:1.75; white-space:normal; overflow-wrap:anywhere; }
.terminal-log { padding:16px 15px 12px; min-height:159px; }
.terminal-log-heading { display:flex; align-items:center; gap:7px; color:#cacaca; font-size:11px; }
.terminal-spark { color:var(--terminal-accent); font-size:15px; line-height:16px; }
.terminal-steps { list-style:none; margin:12px 0 0 6px; padding:0 0 0 12px; border-left:1px solid #323232; }
.terminal-steps li { display:flex; gap:7px; margin:0 0 10px; color:#bebebe; line-height:1.6; }
.terminal-steps li:last-child { margin-bottom:0; }
.terminal-check { color:#aaaaaa; flex:0 0 10px; font-size:10px; }
.terminal-steps small { display:block; color:#999; font-size:10px; margin-top:2px; }
.terminal-steps .terminal-current { color:#e2e2e2; }
.terminal-spinner { width:10px; height:10px; flex:0 0 10px; margin-top:3px; border:1px solid #4c4c4c; border-top-color:var(--terminal-accent); border-right-color:var(--terminal-accent); border-radius:50%; transform:rotate(25deg); }
.terminal-runtime { margin:4px 14px 9px; display:flex; align-items:center; justify-content:space-between; font-family:'Cascadia Code',Consolas,'Terminal Chinese',monospace; font-size:10px; font-variant-numeric:tabular-nums; color:#969696; }
.terminal-runtime-label { display:flex; align-items:center; gap:6px; color:var(--terminal-accent); }
.terminal-runtime-label i { width:4px; height:4px; border-radius:50%; background:var(--terminal-accent); }
.terminal-runtime b { font-weight:400; color:#555555; margin:0 4px; }
.terminal-input { margin:0 10px 10px; min-height:54px; display:flex; align-items:flex-start; gap:8px; padding:7px 8px; border:1px solid var(--terminal-line); border-radius:5px; color:#a6a6a6; }
.terminal-input > span:first-child { font-size:14px; }
.terminal-input-hint { flex:1; min-width:0; min-height:38px; font-size:11px; line-height:19px; white-space:normal; overflow-wrap:anywhere; color:#737373; }
.terminal-input-hint.is-composing { color:#ddd; }
.terminal-input i { margin-left:auto; width:5px; height:9px; background:#7d7d7d; opacity:.6; }
.terminal-footer { height:29px; display:flex; align-items:center; gap:8px; padding:0 11px; border-top:1px solid var(--terminal-line); font-size:9px; }
.terminal-engine { display:flex; align-items:center; gap:5px; color:#e3e3e3; }
.terminal-engine svg { width:13px; height:13px; color:var(--terminal-accent); }
.terminal-mode { color:#8d8d8d; }.terminal-demo-label { margin-left:auto; font-size:8px; color:#707070; }
/* Isolated review page: does not affect the Orbit homepage. */
.terminal-study { margin:0; min-height:100svh; display:grid; place-items:center; background:#f4f4f4; font-family:'Terminal Chinese',sans-serif; }
.terminal-study-layout { padding:40px 20px; }
.terminal-study-label { display:flex; justify-content:space-between; align-items:center; width:min(360px, calc(100vw - 40px)); margin-bottom:16px; font-size:10px; color:#868686; }
.terminal-study-label > span:last-child { font-size:9px; color:#a7a7a7; }
.terminal-study-note { color:#9e9e9e; text-align:center; font-size:10px; line-height:1.9; margin:18px 0 0; }
@media(max-width:350px) { .orbit-terminal,.terminal-study-label { width:280px; }.terminal-study-layout { padding-inline:12px; } }
.term-type { display:grid; position:relative; white-space:normal; }
.terminal-steps small.term-type { display:grid; }
.term-type > span { grid-area:1/1; }
.term-type-ink { position:absolute; inset:0; }
.term-type-size { visibility:hidden; }
.terminal-steps li > div { min-width:0; }
.terminal-state-icon { display:block; flex:0 0 12px; width:12px; height:14px; margin-top:2px; color:#ddd; }
.terminal-state-icon svg { display:block; width:12px; height:12px; overflow:visible; }
.terminal-state-icon circle,.terminal-state-icon path { fill:none; stroke:currentColor; stroke-width:1.5; stroke-linecap:round; stroke-linejoin:round; }
.terminal-state-icon circle { transform-origin:8px 8px; }
.terminal-steps li[data-state=active] { color:#eee; }
.terminal-steps li[data-state=done] { color:#aaa; }
.terminal-controls { display:flex; align-items:center; justify-content:center; gap:15px; margin-top:17px; color:#bbb; }
.terminal-controls[hidden] { display:none; }
.terminal-controls button { border:0; padding:3px 8px; background:none; color:#777; cursor:pointer; font:10px 'Terminal Chinese',sans-serif; }
.terminal-controls button:focus-visible { outline:1px solid #777; outline-offset:3px; }
.terminal-companion { display:none; }
@media (min-width:801px) and (prefers-reduced-motion:no-preference) {
  .scroll-stage .terminal-companion { display:block; position:absolute; z-index:4; left:max(24px, calc(50% - 590px)); top:50%; transform-origin:left top; opacity:0; visibility:hidden; }
}
@media (prefers-reduced-motion:reduce) {
  .terminal-companion { display:block; margin:24px auto; }
}
