:root {
  --bg:         #1a1b26;
  --bg-surface: #24253a;
  --bg-panel:   #1e1f33;
  --border:     #414868;
  --text:       #c0caf5;
  --text-dim:   #565f89;
  --text-bright:#e0e6ff;
  --purple:     #7D56F4;
  --pink:       #FF6AC1;
  --teal:       #04B575;
  --yellow:     #FEDD38;
  --red:        #f7768e;
  --green:      #9ece6a;
  --font:       'JetBrains Mono', ui-monospace, 'Cascadia Code', monospace;
}

*, *::before, *::after { margin: 0; padding: 0; box-sizing: border-box; }

body {
  font-family: var(--font);
  font-size: 15px;
  line-height: 1.7;
  color: var(--text);
  background: var(--bg);
  -webkit-font-smoothing: antialiased;
  display: flex;
  flex-direction: column;
  align-items: center;
  min-height: 100vh;
  padding: 40px 16px 0;
}

a { color: var(--purple); text-decoration: none; transition: color 0.2s; }
a:hover { color: var(--pink); }

/* ---- Terminal window ---- */
.terminal {
  width: 100%;
  max-width: 820px;
  border: 1px solid var(--border);
  border-radius: 12px;
  overflow: hidden;
  box-shadow: 0 0 60px rgba(125, 86, 244, 0.06);
}

.terminal-header {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 14px 18px;
  background: var(--bg-surface);
  border-bottom: 1px solid var(--border);
}

.dot { width: 12px; height: 12px; border-radius: 50%; }
.dot-red    { background: var(--red); }
.dot-yellow { background: var(--yellow); }
.dot-green  { background: var(--green); }

.terminal-title {
  font-size: 13px;
  color: var(--text-dim);
  margin-left: 8px;
}

.terminal-body {
  padding: 28px 28px 20px;
  background: var(--bg-panel);
}

/* ---- Lines ---- */
.line {
  margin-top: 28px;
  font-size: 16px;
}
.line:first-child { margin-top: 0; }

.prompt {
  color: var(--teal);
  margin-right: 8px;
  user-select: none;
}

.cmd {
  color: var(--text-bright);
  font-weight: 600;
}

/* ---- Output blocks ---- */
.output {
  margin-top: 8px;
  margin-bottom: 12px;
  padding-left: 20px;
}

.output p {
  margin-bottom: 8px;
}

.dim { color: var(--text-dim); }
.hl  { color: var(--purple); font-weight: 600; }
.teal { color: var(--teal); }

/* ---- ASCII logo ---- */
.ascii-logo {
  font-size: 8px;
  line-height: 1.15;
  color: var(--purple);
  margin-bottom: 16px;
  overflow-x: auto;
  white-space: pre;
  letter-spacing: -0.5px;
}

/* ---- Projects ---- */
.project {
  margin-bottom: 20px;
}
.project:last-child { margin-bottom: 0; }

.file {
  color: var(--teal);
  font-weight: 600;
}

.project-detail {
  margin-top: 6px;
  padding-left: 16px;
  border-left: 1px solid var(--border);
  font-size: 14px;
}

.project-detail p {
  color: var(--text);
  margin-bottom: 8px;
}

.tag {
  font-size: 12px;
  font-weight: 600;
  color: var(--text-dim);
  border: 1px solid var(--border);
  padding: 2px 8px;
  border-radius: 4px;
  margin-right: 4px;
  display: inline-block;
}

.project-detail a {
  display: inline-block;
  margin-top: 8px;
  font-size: 14px;
}

/* ---- Values ---- */
.values p {
  margin-bottom: 4px;
  color: var(--text-bright);
  font-size: 14px;
}

/* ---- Contact ---- */
.label {
  color: var(--text-dim);
  display: inline-block;
  min-width: 100px;
  font-size: 13px;
  text-transform: uppercase;
  letter-spacing: 0.5px;
}

/* ---- Cursor ---- */
.cursor {
  color: var(--text-bright);
  animation: blink 1s step-end infinite;
}
@keyframes blink {
  0%, 100% { opacity: 1; }
  50% { opacity: 0; }
}

/* ---- Footer ---- */
.footer {
  margin-top: 32px;
  padding: 24px 0 40px;
  text-align: center;
  color: var(--text-dim);
  font-size: 12px;
  font-family: var(--font);
}

/* ---- Responsive ---- */
@media (max-width: 600px) {
  body { padding: 16px 8px 0; }
  .terminal-body { padding: 20px 16px 16px; }
  .ascii-logo { font-size: 5px; }
  .line { font-size: 14px; }
  .output { padding-left: 12px; }
}

@media (max-width: 400px) {
  .ascii-logo { font-size: 3.5px; }
}
