/* ── Quake-style dropdown terminal ── always dark ── */

#quake-terminal {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 50vh;
  z-index: 9999;
  transform: translateY(-100%);
  transition: transform 0.25s cubic-bezier(0.33, 1, 0.68, 1);
  display: flex;
  flex-direction: column;
  font-family: 'Menlo', 'SF Mono', 'Monaco', 'Inconsolata', 'Fira Mono',
               'Droid Sans Mono', 'Source Code Pro', monospace;
  font-size: 13px;
  line-height: 1.5;
  background: #1a1b26;
  color: #a9b1d6;
  box-shadow: 0 4px 24px rgba(0, 0, 0, 0.5);
  -webkit-font-smoothing: antialiased;
}
#quake-terminal.open { transform: translateY(0); }

/* ── Title bar ── */
#quake-terminal .qt-titlebar {
  display: flex;
  align-items: center;
  height: 36px;
  padding: 0 14px;
  background: #13141c;
  flex-shrink: 0;
  user-select: none;
  -webkit-user-select: none;
  border-bottom: 1px solid #1a1b26;
}
#quake-terminal .qt-dots {
  display: flex;
  gap: 7px;
  margin-right: 12px;
}
#quake-terminal .qt-dot {
  width: 12px;
  height: 12px;
  border-radius: 50%;
  cursor: pointer;
  transition: opacity 0.15s;
}
#quake-terminal .qt-dot:hover { opacity: 0.8; }
#quake-terminal .qt-dot-close { background: #ff5f57; }
#quake-terminal .qt-dot-min { background: #febc2e; }
#quake-terminal .qt-dot-max { background: #28c840; }
#quake-terminal .qt-titlebar-text {
  flex: 1;
  text-align: center;
  color: #565f89;
  font-size: 12px;
  letter-spacing: 0.02em;
}

/* ── Output area ── */
#quake-terminal .qt-output {
  flex: 1;
  overflow-y: auto;
  padding: 10px 16px;
  white-space: pre-wrap;
  word-break: break-word;
}
#quake-terminal .qt-output::selection,
#quake-terminal .qt-output *::selection {
  background: #283457;
  color: #c0caf5;
}
#quake-terminal .qt-output::-webkit-scrollbar { width: 6px; }
#quake-terminal .qt-output::-webkit-scrollbar-track { background: transparent; }
#quake-terminal .qt-output::-webkit-scrollbar-thumb {
  background: #292e42;
  border-radius: 3px;
}

/* ── Input line ── */
#quake-terminal .qt-input-line {
  display: flex;
  align-items: center;
  padding: 8px 16px 10px;
  background: #13141c;
  flex-shrink: 0;
  border-top: 1px solid #1a1b26;
}
#quake-terminal .qt-prompt {
  margin-right: 0;
  user-select: none;
  white-space: nowrap;
  display: flex;
  gap: 0;
}
#quake-terminal .qt-prompt-user { color: #9ece6a; font-weight: 500; }
#quake-terminal .qt-prompt-sep { color: #565f89; }
#quake-terminal .qt-prompt-dir { color: #7aa2f7; }
#quake-terminal .qt-prompt-dollar { color: #565f89; margin: 0 6px 0 4px; }

#quake-terminal .qt-input {
  flex: 1;
  background: none;
  border: none;
  outline: none;
  color: #c0caf5;
  font-family: inherit;
  font-size: inherit;
  line-height: inherit;
  caret-color: #c0caf5;
  padding: 0;
}
#quake-terminal .qt-input::selection {
  background: #283457;
}

/* ── Semantic colors ── */
#quake-terminal .qt-help-cmd { color: #7aa2f7; }
#quake-terminal .qt-help-desc { color: #565f89; }
#quake-terminal .qt-error { color: #f7768e; }
#quake-terminal .qt-muted { color: #565f89; }
#quake-terminal .qt-accent { color: #7aa2f7; }
#quake-terminal .qt-green { color: #9ece6a; }
#quake-terminal .qt-yellow { color: #e0af68; }
#quake-terminal .qt-mauve { color: #bb9af7; }
#quake-terminal .qt-peach { color: #ff9e64; }

/* ── bat chrome ── */
#quake-terminal .qt-bat-block { margin: 6px 0; }
#quake-terminal .qt-bat-row {
  display: flex;
  align-items: baseline;
}
#quake-terminal .qt-bat-row .qt-bat-line-no { flex-shrink: 0; }
#quake-terminal .qt-bat-row .qt-bat-sep { flex-shrink: 0; margin: 0 6px 0 2px; }
#quake-terminal .qt-bat-content { flex: 1; min-width: 0; }

#quake-terminal .qt-bat-header {
  background: #24283b;
  color: #7aa2f7;
  padding: 1px 10px;
  display: inline-block;
  margin-bottom: 2px;
  border-radius: 2px;
}
#quake-terminal .qt-bat-sep { color: #292e42; }
#quake-terminal .qt-bat-line-no {
  color: #3b4261;
  user-select: none;
  text-align: right;
  display: inline-block;
  width: 4ch;
}
#quake-terminal .qt-bat-code-label { color: #e0af68; }

/* ── Headers ── */
#quake-terminal .qt-h1 { color: #f7768e; font-weight: bold; }
#quake-terminal .qt-h2 { color: #ff9e64; font-weight: bold; }
#quake-terminal .qt-h3 { color: #e0af68; font-weight: bold; }
#quake-terminal .qt-h4 { color: #9ece6a; }
#quake-terminal .qt-h5 { color: #7aa2f7; }
#quake-terminal .qt-h6 { color: #bb9af7; }

#quake-terminal .qt-blockquote { color: #565f89; }

/* ── KaTeX in terminal ── */
#quake-terminal .katex { color: #c0caf5; }
#quake-terminal .katex-display { margin: 4px 0; text-align: center; }
#quake-terminal .katex-display > .katex { text-align: center; }
#quake-terminal .katex .mord,
#quake-terminal .katex .mbin,
#quake-terminal .katex .mrel,
#quake-terminal .katex .mop,
#quake-terminal .katex .mopen,
#quake-terminal .katex .mclose,
#quake-terminal .katex .mpunct,
#quake-terminal .katex .minner { color: #c0caf5; }
#quake-terminal .qt-img {
  color: #565f89;
  text-decoration: none;
  cursor: pointer;
  border-bottom: 1px dotted #3b4261;
}
#quake-terminal .qt-img:hover { color: #7aa2f7; border-bottom-color: #7aa2f7; }
#quake-terminal .qt-link-url { color: #3b4261; }
#quake-terminal .qt-link {
  color: #7aa2f7;
  text-decoration: none;
  cursor: pointer;
  border-bottom: 1px dotted #3b4261;
}
#quake-terminal .qt-link:hover {
  color: #89b4fa;
  border-bottom-color: #7aa2f7;
}

/* ── lists ── */
#quake-terminal .qt-li {
  display: inline-flex;
  align-items: baseline;
  padding-left: 1ch;
}
#quake-terminal .qt-li-nested {
  padding-left: 3ch;
}
#quake-terminal .qt-li-bullet {
  flex-shrink: 0;
  color: #565f89;
  min-width: 2.5ch;
}
#quake-terminal .qt-li-content {
  flex: 1;
  min-width: 0;
  word-break: break-word;
}

/* ── ls ── */
#quake-terminal .qt-ls-date { color: #565f89; min-width: 12ch; display: inline-block; }
#quake-terminal .qt-ls-title { color: #a9b1d6; }
#quake-terminal .qt-ls-tag { color: #bb9af7; }

/* ── tree ── */
#quake-terminal .qt-tree-year { color: #e0af68; font-weight: bold; }
#quake-terminal .qt-tree-branch { color: #3b4261; }

/* ── about ── */
#quake-terminal .qt-about-line { white-space: pre-wrap; word-break: break-word; }
#quake-terminal .qt-about-entry {
  display: flex;
  align-items: baseline;
  margin: 2px 0;
}
#quake-terminal .qt-about-date {
  color: #7aa2f7;
  min-width: 14ch;
  flex-shrink: 0;
}
#quake-terminal .qt-about-content {
  flex: 1;
  min-width: 0;
  word-break: break-word;
}

/* ── welcome ── */
#quake-terminal .qt-welcome { color: #565f89; }

/* ── Terminal icon — inherits .contact-icons a styles from style.css ── */
.contact-icons .terminal-toggle { cursor: pointer; }

/* ── Mobile ── */
@media (max-width: 768px) {
  #quake-terminal {
    height: 100vh;
    height: 100dvh;
    font-size: 12px;
  }
  #quake-terminal .qt-titlebar { height: 32px; }
  #quake-terminal .qt-dot { width: 10px; height: 10px; }
}
