:root {
  --font-mono: "Space Mono", ui-monospace, "SF Mono", Menlo, Consolas, monospace;
  --container-max: 1120px;
  --radius-panel: 10px;
  --radius-small: 4px;
  --anchor-offset: 84px;

  --color-bg: #000;
  --color-panel: #020a04;
  --color-raised: #05130a;
  --color-text: #c3e6c8;
  --color-muted: #7ba887;
  --color-dim: #48704f;
  --color-line: #14301c;
  --color-line-strong: #275233;
  --color-green: #37f26d;
  --color-green-bright: #8dffae;
  --color-amber: #ffb000;
  --color-error: #ff6d64;
  --glow-green: 0 0 10px #37f26d59;
  --glow-amber: 0 0 8px #ffb00073;
}

@media (prefers-color-scheme: light) {
  :root:not([data-theme="dark"]) {
    --color-bg: #fff;
    --color-panel: #fff;
    --color-raised: #f6f8f6;
    --color-text: #1a1a1a;
    --color-muted: #444;
    --color-dim: #666;
    --color-line: #bbb;
    --color-line-strong: #999;
    --color-green: #111;
    --color-green-bright: #111;
    --color-amber: #b45f00;
    --glow-green: none;
    --glow-amber: none;
  }
}
:root[data-theme="light"] {
  --color-bg: #fff;
  --color-panel: #fff;
  --color-raised: #f6f8f6;
  --color-text: #1a1a1a;
  --color-muted: #444;
  --color-dim: #666;
  --color-line: #bbb;
  --color-line-strong: #999;
  --color-green: #111;
  --color-green-bright: #111;
  --color-amber: #b45f00;
  --glow-green: none;
  --glow-amber: none;
}

*, ::before, ::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
@media (prefers-reduced-motion: no-preference) { html { scroll-behavior: smooth; } }

body {
  margin: 0;
  font-family: var(--font-mono);
  font-size: 15px;
  line-height: 1.65;
  color: var(--color-text);
  background: var(--color-bg);
}
a { color: var(--color-green); text-decoration: underline; text-decoration-color: var(--color-line-strong); text-underline-offset: 3px; }
a:hover { color: var(--color-green-bright); text-decoration-color: currentColor; }
:focus-visible { outline: 2px solid var(--color-amber); outline-offset: 3px; }
h1, h2, h3 { line-height: 1.2; margin: 0; font-weight: 700; }
p { margin: 0 0 1em; }
ul { padding-left: 1.4em; }
kbd, code {
  font-family: inherit;
  font-size: 0.92em;
  padding: 0.05em 0.4em;
  border: 1px solid var(--color-line-strong);
  border-radius: var(--radius-small);
  background: var(--color-raised);
}
.dim { color: var(--color-dim); }
.container { width: min(100% - 32px, var(--container-max)); margin-inline: auto; }
section[id], article[id] { scroll-margin-top: var(--anchor-offset); }

.skip { position: absolute; left: -999px; top: 8px; padding: 8px 12px; background: var(--color-amber); color: #111; z-index: 100; }
.skip:focus { left: 8px; }

.topbar {
  position: sticky; top: 0; z-index: 50;
  display: flex; align-items: center; gap: 24px; flex-wrap: wrap;
  padding: 14px 16px;
  background: color-mix(in srgb, var(--color-bg) 88%, transparent);
  backdrop-filter: blur(8px);
  border-bottom: 1px solid var(--color-line);
}
.brand { text-decoration: none; font-weight: 700; white-space: nowrap; }
.brand-user { color: var(--color-green); text-shadow: var(--glow-green); }
.brand-path { color: var(--color-muted); }
.topbar nav { display: flex; gap: 18px; flex-wrap: wrap; margin-left: auto; }
.topbar nav a { text-decoration: none; color: var(--color-text); }
.topbar nav a:hover { color: var(--color-green-bright); }
.theme-toggle { background: none; border: 1px solid var(--color-line-strong); color: var(--color-text); border-radius: var(--radius-small); cursor: pointer; font: inherit; padding: 2px 10px; }
.theme-toggle:hover { border-color: var(--color-green); color: var(--color-green); }

.hero { padding: 72px 0 40px; }
.prompt-line { color: var(--color-muted); margin-bottom: 0.4em; }
.hero h1 { font-size: clamp(2rem, 5vw, 3.4rem); color: var(--color-green-bright); text-shadow: var(--glow-green); }
.hero-title { color: var(--color-amber); text-shadow: var(--glow-amber); margin-top: 0.6em; font-weight: 700; }
.hero-lead { max-width: 62ch; font-size: 1.05rem; color: var(--color-text); }
.actions { display: flex; gap: 12px; flex-wrap: wrap; margin: 24px 0 14px; }
.btn {
  display: inline-block; padding: 9px 18px; text-decoration: none;
  border: 1px solid var(--color-line-strong); border-radius: var(--radius-small);
  color: var(--color-text); background: var(--color-panel);
}
.btn:hover { border-color: var(--color-green); color: var(--color-green-bright); box-shadow: var(--glow-green); }
.btn-primary { background: var(--color-amber); border-color: var(--color-amber); color: #111; font-weight: 700; }
.btn-primary:hover { color: #111; background: var(--color-amber); box-shadow: var(--glow-amber); filter: brightness(1.08); }
.hero-note { font-size: 0.9rem; }

.terminal {
  border: 1px solid var(--color-line-strong);
  border-radius: var(--radius-panel);
  background: var(--color-panel);
  box-shadow: 0 0 0 1px var(--color-line) inset, 0 24px 60px -30px #000;
  overflow: hidden;
}
.terminal-bar {
  display: flex; align-items: center; gap: 8px;
  padding: 10px 14px;
  background: var(--color-raised);
  border-bottom: 1px solid var(--color-line);
}
.dot { width: 11px; height: 11px; border-radius: 50%; display: inline-block; }
.dot-red { background: #ff5f57; } .dot-amber { background: #febc2e; } .dot-green { background: #28c840; }
.terminal-name { margin-left: auto; color: var(--color-dim); font-size: 0.85rem; }
.terminal-body { padding: 18px 20px 14px; min-height: 360px; max-height: 70vh; overflow-y: auto; }
.ascii { margin: 0 0 12px; color: var(--color-green); text-shadow: var(--glow-green); font-family: ui-monospace, Menlo, Consolas, "DejaVu Sans Mono", monospace; font-size: 0.8rem; line-height: 1.2; text-shadow: none; overflow-x: auto; }
@media (max-width: 560px) { .ascii { display: none; } }
.term-intro { color: var(--color-muted); }
.term-nojs { color: var(--color-amber); }
.term-output { white-space: pre-wrap; word-break: break-word; }
.term-output .cmd { color: var(--color-muted); }
.term-output .cmd .brand-user { color: var(--color-green); }
.term-output .out { display: block; color: var(--color-text); }
.term-output .out.err { color: var(--color-error); }
.term-output .out.hl { color: var(--color-amber); font-weight: 700; }
.term-output .out.title { color: var(--color-green-bright); font-weight: 700; }
.term-output .out.muted { color: var(--color-dim); }
.term-output .out a { color: var(--color-green); }
.term-form { display: flex; align-items: center; gap: 10px; margin-top: 6px; }
.term-label { white-space: nowrap; font-weight: 700; }
.term-input {
  flex: 1; min-width: 0; font: inherit; color: var(--color-green-bright); background: transparent;
  border: 0; outline: 0; caret-color: var(--color-amber); padding: 4px 0;
}
.term-input::placeholder { color: var(--color-dim); }
.term-input:disabled { opacity: 0.5; }
.term-hint { font-size: 0.82rem; margin: 8px 0 0; }

.manpage { margin: 64px auto 48px; }
.man-header, .man-footer {
  display: flex; justify-content: space-between; gap: 12px; flex-wrap: wrap;
  color: var(--color-dim); font-size: 0.85rem; letter-spacing: 0.04em;
  padding: 8px 0; border-bottom: 1px dashed var(--color-line);
}
.man-footer { border-bottom: 0; border-top: 1px dashed var(--color-line); margin-top: 32px; }
.man-section { padding: 40px 0 8px; }
.man-section h2 { font-size: 1.5rem; color: var(--color-green-bright); text-shadow: var(--glow-green); margin-bottom: 14px; text-transform: uppercase; letter-spacing: 0.06em; }
.man-section h2::before { content: "## "; color: var(--color-dim); }
.synopsis { color: var(--color-amber); margin-bottom: 1.2em; }
.man-section > p { max-width: 78ch; }

.entry { padding: 18px 0 8px; border-top: 1px solid var(--color-line); }
.entry header { display: flex; justify-content: space-between; gap: 12px; flex-wrap: wrap; align-items: baseline; }
.entry h3 { font-size: 1.05rem; color: var(--color-text); }
.period { color: var(--color-amber); font-size: 0.9rem; white-space: nowrap; }
.org { color: var(--color-muted); margin: 2px 0 8px; }
.entry ul { margin: 0 0 10px; }
.entry li { margin-bottom: 4px; }
.entry li::marker { color: var(--color-green); }

.tags { list-style: none; padding: 0; margin: 6px 0 4px; display: flex; gap: 8px; flex-wrap: wrap; }
.tags li { font-size: 0.78rem; padding: 1px 8px; border: 1px solid var(--color-line-strong); border-radius: var(--radius-small); color: var(--color-muted); background: var(--color-raised); }

.projects { display: grid; gap: 16px; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); }
.project { padding: 18px; border: 1px solid var(--color-line); border-radius: var(--radius-panel); background: var(--color-panel); display: flex; flex-direction: column; }
.project:hover { border-color: var(--color-line-strong); }
.project h3 { font-size: 1rem; color: var(--color-green-bright); margin-bottom: 8px; word-break: break-word; }
.project p { flex: 1; }
.links { display: flex; gap: 14px; flex-wrap: wrap; margin: 6px 0 0; }
.links a::before { content: "[ "; color: var(--color-dim); }
.links a::after { content: " ]"; color: var(--color-dim); }

.skills { display: grid; grid-template-columns: max-content 1fr; gap: 10px 24px; margin: 0; }
.skills dt { color: var(--color-amber); }
.skills dd { margin: 0; }
@media (max-width: 560px) { .skills { grid-template-columns: 1fr; gap: 2px; } .skills dd { margin-bottom: 12px; } }

.contact-line { font-size: 1.15rem; }
.faq { margin: 0; }
.faq dt { color: var(--color-green); font-weight: 700; margin-top: 14px; }
.faq dd { margin: 4px 0 0; max-width: 78ch; }

.site-footer { padding: 24px 0 40px; color: var(--color-dim); font-size: 0.85rem; border-top: 1px solid var(--color-line); }

@media (max-width: 720px) {
  .topbar { gap: 10px; }
  .topbar nav { margin-left: 0; gap: 12px; font-size: 0.9rem; }
  .hero { padding-top: 40px; }
  .terminal-body { padding: 14px; }
}
@media print {
  .topbar, .terminal, .hero .actions, .hero-note, .site-footer, .theme-toggle { display: none !important; }
  body { color: #000; background: #fff; }
  a { color: #000; }
}
