:root,
[data-theme="terminal"] {
  --bg: #000000;
  --fg: #ffffff;
  --muted: rgba(255,255,255,.66);
  --dim: rgba(255,255,255,.42);
  --soft: rgba(255,255,255,.13);
  --panel: rgba(7,7,7,.88);
  --glow: rgba(255,255,255,.16);
}
[data-theme="matrix"] { --bg:#000; --fg:#9cffb1; --muted:rgba(156,255,177,.72); --dim:rgba(156,255,177,.45); --soft:rgba(156,255,177,.18); --panel:rgba(0,12,4,.90); --glow:rgba(156,255,177,.22); }
[data-theme="nord"] { --bg:#2e3440; --fg:#d8dee9; --muted:rgba(216,222,233,.70); --dim:rgba(216,222,233,.45); --soft:rgba(216,222,233,.18); --panel:rgba(46,52,64,.90); --glow:rgba(136,192,208,.22); }
[data-theme="tokyo"] { --bg:#1a1b26; --fg:#c0caf5; --muted:rgba(192,202,245,.70); --dim:rgba(192,202,245,.45); --soft:rgba(122,162,247,.20); --panel:rgba(26,27,38,.90); --glow:rgba(122,162,247,.24); }
[data-theme="dracula"] { --bg:#282a36; --fg:#f8f8f2; --muted:rgba(248,248,242,.70); --dim:rgba(248,248,242,.45); --soft:rgba(189,147,249,.22); --panel:rgba(40,42,54,.90); --glow:rgba(189,147,249,.24); }
[data-theme="gruvbox"] { --bg:#282828; --fg:#ebdbb2; --muted:rgba(235,219,178,.72); --dim:rgba(235,219,178,.46); --soft:rgba(250,189,47,.22); --panel:rgba(40,40,40,.90); --glow:rgba(250,189,47,.20); }
[data-theme="catppuccin"] { --bg:#1e1e2e; --fg:#cdd6f4; --muted:rgba(205,214,244,.72); --dim:rgba(205,214,244,.45); --soft:rgba(203,166,247,.22); --panel:rgba(30,30,46,.90); --glow:rgba(203,166,247,.24); }
[data-theme="ubuntu"] { --bg:#2c001e; --fg:#f7f7f7; --muted:rgba(247,247,247,.70); --dim:rgba(247,247,247,.45); --soft:rgba(233,84,32,.24); --panel:rgba(44,0,30,.90); --glow:rgba(233,84,32,.25); }
[data-theme="arch"] { --bg:#0f1419; --fg:#e6edf3; --muted:rgba(230,237,243,.70); --dim:rgba(230,237,243,.45); --soft:rgba(23,147,209,.24); --panel:rgba(15,20,25,.90); --glow:rgba(23,147,209,.26); }
[data-theme="fedora"] { --bg:#0b1f3a; --fg:#ffffff; --muted:rgba(255,255,255,.70); --dim:rgba(255,255,255,.45); --soft:rgba(81,161,220,.24); --panel:rgba(11,31,58,.90); --glow:rgba(81,161,220,.26); }
[data-theme="mac"] { --bg:#111113; --fg:#f5f5f7; --muted:rgba(245,245,247,.70); --dim:rgba(245,245,247,.45); --soft:rgba(180,180,190,.22); --panel:rgba(20,20,22,.90); --glow:rgba(220,220,230,.20); }
[data-theme="powershell"] { --bg:#012456; --fg:#f3f8ff; --muted:rgba(243,248,255,.72); --dim:rgba(243,248,255,.45); --soft:rgba(100,180,255,.26); --panel:rgba(1,36,86,.90); --glow:rgba(100,180,255,.28); }
[data-theme="solarized"] { --bg:#002b36; --fg:#eee8d5; --muted:rgba(238,232,213,.72); --dim:rgba(238,232,213,.45); --soft:rgba(38,139,210,.24); --panel:rgba(0,43,54,.90); --glow:rgba(38,139,210,.24); }

* { box-sizing:border-box; }
html, body { margin:0; min-height:100%; background:var(--bg); color:var(--fg); font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono",monospace; }
body { overflow:hidden; }
button, input { font:inherit; }
button { color:var(--fg); background:transparent; border:1px solid var(--soft); cursor:pointer; }
button:hover { border-color:var(--fg); background:rgba(255,255,255,.06); }
a { color:var(--fg); text-underline-offset:3px; }

.noise { position:fixed; inset:0; z-index:1; pointer-events:none; opacity:.08; background-image:radial-gradient(circle at 20% 20%,rgba(255,255,255,.18) 0 1px,transparent 1px),radial-gradient(circle at 80% 30%,rgba(255,255,255,.12) 0 1px,transparent 1px); background-size:120px 120px,190px 190px; }
.app-shell { position:relative; z-index:2; min-height:100vh; padding:clamp(12px,2vw,28px); display:grid; place-items:center; }
.app-shell::before { content:""; position:fixed; inset:0; pointer-events:none; background:linear-gradient(rgba(255,255,255,.022) 50%,transparent 50%),radial-gradient(circle at center,transparent 0 40%,rgba(0,0,0,.88) 100%); background-size:100% 4px,auto; }

.hidden { display:none !important; }

.boot { display:grid; place-items:center; gap:18px; text-align:center; opacity:0; transform:translateY(10px) scale(.985); animation:enter .85s ease forwards; filter:drop-shadow(0 0 30px var(--glow)); }
.boot-logo { animation:pulse 2.6s ease-in-out infinite; }
.boot-line { display:flex; align-items:baseline; justify-content:center; font-size:clamp(2.1rem,7vw,6rem); line-height:1; white-space:nowrap; }
.prompt { margin-right:.3em; }
.cursor { display:inline-block; width:.55ch; height:.9em; margin-left:.12em; background:var(--fg); vertical-align:-.08em; animation:blink .92s steps(1) infinite; box-shadow:0 0 18px var(--glow); }
.boot-subtitle { margin:0; color:var(--muted); letter-spacing:.1em; font-size:clamp(.85rem,1.5vw,1.15rem); opacity:0; transform:translateY(8px); animation:subtitleIn .8s ease 3s forwards; }

.tui {
  width:min(1320px,96vw);
  height:min(900px,94vh);
  border:1px solid var(--soft);
  background:var(--panel);
  box-shadow:0 0 0 1px rgba(255,255,255,.04),0 0 70px var(--glow);
  display:grid;
  grid-template-rows:44px minmax(0,1fr) minmax(190px,246px) auto;
  backdrop-filter:blur(10px);
  overflow:hidden;
}
.topbar { display:grid; grid-template-columns:1fr auto 120px; align-items:center; border-bottom:1px solid var(--soft); padding:0 14px; gap:16px; }
.brand { display:flex; gap:10px; align-items:center; font-weight:700; letter-spacing:.08em; text-transform:uppercase; }
.brand-icon { border:1px solid var(--soft); padding:4px 7px; }
.edition { color:var(--dim); font-size:.68rem; border-left:1px solid var(--soft); padding-left:10px; }
.top-actions {
  display:flex;
  align-items:center;
  gap:8px;
  min-height:44px;
}
.top-actions > button {
  padding:7px 10px;
  font-size:.78rem;
  color:var(--muted);
  height:30px;
  display:flex;
  align-items:center;
}
.clock { text-align:right; color:var(--muted); font-size:.78rem; }

.workspace { min-height:0; display:grid; grid-template-columns:330px 1fr; }
.sidebar, .main-pane { min-height:0; border-bottom:1px solid var(--soft); }
.sidebar { border-right:1px solid var(--soft); background:rgba(255,255,255,.025); }
.pane-title { height:34px; display:flex; align-items:center; padding:0 14px; color:var(--muted); border-bottom:1px solid var(--soft); font-size:.78rem; letter-spacing:.08em; text-transform:uppercase; }
#treeView {
  height:calc(100% - 34px);
  overflow:auto;
}

.tree-card {
  border:1px solid var(--soft);
  background:rgba(255,255,255,.026);
  padding:10px;
  margin:0 0 10px;
}

.tree-title {
  color:var(--fg);
  font-size:.74rem;
  letter-spacing:.12em;
  text-transform:uppercase;
  margin:0 0 8px;
}

.tree-row {
  display:grid;
  grid-template-columns:minmax(74px, .8fr) minmax(0, 1fr);
  gap:8px;
  padding:4px 0;
  border-top:1px solid rgba(255,255,255,.055);
}

.tree-row:first-of-type {
  border-top:0;
}

.tree-dir {
  color:var(--dim);
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}

.tree-name {
  color:var(--muted);
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}

.content-card { height:calc(100% - 34px); overflow:auto; padding:clamp(18px,3vw,34px); color:var(--muted); line-height:1.7; }
.content-card h1,.content-card h2,.content-card h3 { color:var(--fg); margin:0 0 14px; line-height:1.1; }
.content-card h1 { font-size:clamp(2rem,4vw,4rem); letter-spacing:-.05em; }
.content-card pre { white-space:pre-wrap; margin:0; border:1px solid var(--soft); padding:12px; color:var(--fg); background:rgba(255,255,255,.03); }
.content-card p { max-width:920px; }
.content-card li { margin:.25rem 0; }

.bio-grid {
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(220px,1fr));
  gap:14px;
  margin:18px 0;
}

.bio-card {
  border:1px solid var(--soft);
  background:rgba(255,255,255,.035);
  padding:14px;
}

.bio-card strong {
  color:var(--fg);
  display:block;
  margin-bottom:6px;
}

.terminal-panel {
  min-height:0;
  background:rgba(0,0,0,.48);
  overflow:hidden;
  border-top:1px solid var(--soft);
  display:block;
  cursor:text;
}
.terminal-output {
  height:100%;
  overflow:auto;
  color:var(--muted);
  line-height:1.55;
  font-size:.92rem;
  min-height:0;
  padding:14px 16px 16px;
  scroll-behavior:auto;
}
.block {
  white-space:pre-wrap;
  margin:0 0 8px;
}
.command { color:var(--fg); }
.dim { color:var(--dim); }
.input-line {
  display:flex;
  align-items:center;
  margin:2px 0 0;
  padding:0;
  border:0;
  background:transparent;
}
.user { color:var(--fg); }
.path { color:var(--muted); margin-right:10px; }
#commandInput { flex:1; min-width:80px; border:0; outline:0; color:var(--fg); background:transparent; caret-color:var(--fg); }

.command-tips {
  display:flex;
  align-items:center;
  justify-content:center;
  flex-wrap:wrap;
  gap:8px 18px;
  padding:8px 14px;
  color:var(--dim);
  font-size:.76rem;
  line-height:1.35;
  border-top:1px solid var(--soft);
  text-align:center;
  min-height:48px;
}
kbd { border:1px solid var(--soft); padding:2px 5px; color:var(--fg); background:rgba(255,255,255,.04); }

.nonroot { width:min(1160px,95vw); height:min(860px,92vh); display:grid; place-items:center; overflow:auto; padding:18px; }
.nonroot-frame { width:100%; max-height:100%; overflow:auto; border:1px solid var(--soft); background:linear-gradient(135deg,rgba(255,255,255,.055),rgba(255,255,255,.015)); box-shadow:0 0 70px var(--glow); padding:clamp(22px,4vw,52px); }
.nonroot-header { display:flex; justify-content:space-between; align-items:flex-start; gap:20px; border-bottom:1px solid var(--soft); padding-bottom:22px; }
.back-button { padding:11px 14px; white-space:nowrap; }
.eyebrow { margin:0 0 14px; color:var(--muted); letter-spacing:.18em; text-transform:uppercase; }
.nonroot h1 { margin:0; font-size:clamp(2.4rem,7vw,6rem); line-height:.95; letter-spacing:-.07em; max-width:820px; }
.lead { max-width:820px; color:var(--muted); line-height:1.7; font-size:clamp(1rem,1.7vw,1.2rem); margin:22px 0; }
.quick-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(240px,1fr)); gap:14px; margin:28px 0; }
.quick-grid button { padding:18px; text-align:left; min-height:130px; display:flex; flex-direction:column; gap:8px; background:rgba(0,0,0,.28); }
.quick-grid span { color:var(--dim); font-size:.78rem; }
.quick-grid strong { font-size:1.1rem; }
.quick-grid small { color:var(--muted); line-height:1.5; }
.simple-output { border-top:1px solid var(--soft); padding-top:24px; color:var(--muted); line-height:1.7; min-height:220px; white-space:pre-wrap; }

.matrix-layer { position:fixed; inset:0; z-index:9; pointer-events:none; color:var(--fg); font-size:14px; line-height:1; overflow:hidden; opacity:.72; }
.matrix-col { position:absolute; top:-120vh; white-space:pre; animation:rain linear forwards; }

@keyframes rain { to { transform:translateY(220vh); } }
@keyframes enter { to { opacity:1; transform:translateY(0) scale(1); } }
@keyframes subtitleIn { to { opacity:1; transform:translateY(0); } }
@keyframes blink { 50% { opacity:0; } }
@keyframes pulse { 50% { filter:drop-shadow(0 0 16px var(--glow)); } }

@media (max-width: 960px) {
  body { overflow:auto; }
  .app-shell { padding:10px; min-height:100svh; }
  .tui { height:94svh; grid-template-rows:44px minmax(0,1fr) minmax(220px,270px) auto; }
  .topbar { grid-template-columns:1fr 80px; }
  .top-actions,.edition { display:none; }
  .workspace { grid-template-columns:1fr; }
  .sidebar { display:none; }
  .command-tips { flex-direction:column; gap:4px; font-size:.72rem; }
  .nonroot { width:100%; height:94svh; padding:8px; align-items:start; }
  .nonroot-frame { max-height:none; min-height:100%; }
  .nonroot-header { flex-direction:column; }
}
@media (prefers-reduced-motion: reduce) {
  *,*::before,*::after { animation:none !important; transition:none !important; }
  .boot,.boot-subtitle { opacity:1; transform:none; }
}

.bio-hero{display:grid;grid-template-columns:minmax(150px,220px) 1fr;gap:24px;align-items:center;margin:0 0 24px;}
.bio-photo {
  width:100%;
  aspect-ratio:1;
  border:1px solid var(--soft);
  background:
    linear-gradient(rgba(0,0,0,.08), rgba(0,0,0,.16)),
    url("../assets/profile.png") center center / cover no-repeat;
  display:grid;
  place-items:end center;
  overflow:hidden;
  box-shadow:0 0 36px var(--glow);
}
.bio-photo::after {
  content:"";
}
.bio-kicker{color:var(--dim);letter-spacing:.16em;text-transform:uppercase;font-size:.78rem;margin:0 0 10px;}
.bio-title{color:var(--fg);font-size:clamp(2rem,4vw,4.4rem);line-height:.96;letter-spacing:-.06em;margin:0 0 14px;}
.bio-lead{color:var(--muted);max-width:780px;line-height:1.75;}
@media (max-width:720px){.bio-hero{grid-template-columns:1fr}.bio-photo{max-width:220px}}




.nonroot-profile {
  display:grid;
  grid-template-columns:160px 1fr;
  gap:22px;
  align-items:center;
  border:1px solid var(--soft);
  background:rgba(255,255,255,.025);
  padding:18px;
  margin:18px 0 24px;
}

.nonroot-profile .bio-photo {
  max-width:160px;
}

.nonroot-profile h2 {
  color:var(--fg);
  margin:0 0 8px;
  font-size:clamp(1.6rem,4vw,3rem);
  letter-spacing:-.05em;
}

.nonroot-profile p {
  color:var(--muted);
  margin:0;
  line-height:1.65;
}

.intrusion-alert {
  position:fixed;
  inset:0;
  z-index:20;
  display:grid;
  place-items:center;
  pointer-events:none;
  background:rgba(60,0,0,.22);
  animation:intrusion-fade 2.8s ease forwards;
}

.intrusion-alert::before {
  content:"";
  position:absolute;
  inset:0;
  background:
    repeating-linear-gradient(0deg, rgba(255,0,0,.12) 0 2px, transparent 2px 8px),
    radial-gradient(circle at center, transparent 0 34%, rgba(255,0,0,.16) 100%);
  animation:intrusion-scan .55s steps(2) infinite;
}

.intrusion-box {
  position:relative;
  border:2px solid #ff3b3b;
  color:#ff4d4d;
  background:rgba(0,0,0,.86);
  padding:26px 32px;
  text-align:center;
  box-shadow:0 0 50px rgba(255,0,0,.35);
  text-transform:uppercase;
  letter-spacing:.12em;
}

.intrusion-box strong {
  display:block;
  color:#fff;
  font-size:clamp(1.4rem,4vw,3.4rem);
  margin-bottom:10px;
}

.intrusion-box span {
  display:block;
  color:#ff8a8a;
  font-size:.82rem;
}

@keyframes intrusion-scan {
  50% { opacity:.55; transform:translateY(2px); }
}

@keyframes intrusion-fade {
  0% { opacity:0; }
  12% { opacity:1; }
  84% { opacity:1; }
  100% { opacity:0; visibility:hidden; }
}

@media (max-width:720px) {
  .nonroot-profile {
    grid-template-columns:1fr;
  }
}


.terminal-output .command {
  color:var(--fg);
  margin-top:8px;
}

.terminal-output .command:first-child {
  margin-top:0;
}

.terminal-output .block:not(.command) {
  padding-left:0;
}

#commandInput {
  line-height:1.4;
}

.nonroot-rescue {
  height:34px;
  min-width:186px;
  display:flex;
  flex-direction:column;
  justify-content:center;
  align-items:flex-start;
  gap:1px;
  padding:4px 10px;
  border-color:rgba(255,70,70,.78);
  color:#ff6b6b;
  box-shadow:0 0 18px rgba(255,70,70,.14);
  background:rgba(255,70,70,.035);
}

.nonroot-rescue span {
  font-size:.78rem;
  line-height:1;
  color:#ff6b6b;
}

.nonroot-rescue small {
  display:block;
  max-width:165px;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  font-size:.55rem;
  line-height:1.1;
  color:#ff8a8a;
  text-transform:none;
  letter-spacing:0;
}

.nonroot-rescue:hover {
  border-color:#ff4d4d;
  background:rgba(255,70,70,.10);
}

@media (max-width: 1120px) {
  .nonroot-rescue {
    min-width:auto;
    width:auto;
  }

  .nonroot-rescue small {
    display:none;
  }
}






.terminal-output {
  overflow:visible !important;
  min-height:auto !important;
}


/* Release 0.2.4-content-engine nonroot redesign */
.nonroot {
  width:min(1180px,95vw);
  height:min(880px,94vh);
  display:block;
  overflow:auto;
  padding:18px;
}

.nonroot-frame {
  width:100%;
  min-height:100%;
  max-height:none;
  overflow:visible;
  border:1px solid var(--soft);
  background:
    radial-gradient(circle at 20% 0%, rgba(255,255,255,.075), transparent 35%),
    linear-gradient(135deg, rgba(255,255,255,.052), rgba(255,255,255,.014));
  box-shadow:0 0 70px var(--glow);
  padding:clamp(22px,4vw,52px);
}

.nonroot-clean-header {
  border-bottom:1px solid var(--soft);
  padding-bottom:24px;
  margin-bottom:28px;
}

.nonroot-clean-header h1 {
  margin:0;
  max-width:900px;
  font-size:clamp(2.4rem,6vw,5.8rem);
  line-height:.95;
  letter-spacing:-.075em;
}

.nonroot-hero {
  display:grid;
  grid-template-columns:minmax(170px,240px) 1fr;
  gap:28px;
  align-items:center;
  padding:22px;
  border:1px solid var(--soft);
  background:rgba(0,0,0,.20);
  margin-bottom:34px;
}

.nonroot-hero h2 {
  color:var(--fg);
  margin:0 0 10px;
  font-size:clamp(2rem,4vw,4rem);
  letter-spacing:-.06em;
  line-height:.95;
}

.nonroot-hero p {
  color:var(--muted);
  line-height:1.7;
  max-width:780px;
}

.nonroot-actions {
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  margin-top:18px;
}

.nonroot-actions button {
  padding:11px 14px;
  background:rgba(255,255,255,.035);
}

.catalog-section {
  display:grid;
  grid-template-columns:260px 1fr;
  gap:24px;
  align-items:start;
  margin-bottom:28px;
}

.catalog-section h2 {
  color:var(--fg);
  margin:0;
  font-size:clamp(1.6rem,3vw,3rem);
  letter-spacing:-.05em;
}

.catalog-grid {
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(220px,1fr));
  gap:14px;
}

.catalog-grid button {
  min-height:154px;
  padding:18px;
  text-align:left;
  display:flex;
  flex-direction:column;
  justify-content:space-between;
  gap:10px;
  background:rgba(0,0,0,.24);
  transition:transform .16s ease, border-color .16s ease, background .16s ease;
}

.catalog-grid button:hover {
  transform:translateY(-2px);
  border-color:var(--fg);
  background:rgba(255,255,255,.055);
}

.catalog-grid span {
  color:var(--dim);
  font-size:.75rem;
}

.catalog-grid strong {
  color:var(--fg);
  font-size:1.16rem;
}

.catalog-grid small {
  color:var(--muted);
  line-height:1.45;
}

.simple-output {
  border-top:1px solid var(--soft);
  padding-top:24px;
  color:var(--muted);
  line-height:1.7;
  min-height:220px;
  white-space:pre-wrap;
}

.back-button {
  margin-bottom:22px;
}

@media (max-width:900px) {
  .catalog-section,
  .nonroot-hero {
    grid-template-columns:1fr;
  }
}


.terminal-line {
  white-space:pre-wrap;
  margin:0 0 8px;
}

.terminal-result {
  white-space:pre-wrap;
  margin:0 0 10px;
  color:var(--muted);
}

.terminal-current {
  display:flex;
  align-items:center;
  gap:0;
  white-space:nowrap;
  margin-top:2px;
}

.terminal-current .user,
.terminal-current .path {
  flex:0 0 auto;
}

.terminal-current input {
  flex:1;
  min-width:80px;
  border:0;
  outline:0;
  color:var(--fg);
  background:transparent;
  caret-color:var(--fg);
  padding:0;
  line-height:1.55;
}

.terminal-output .command {
  color:var(--fg);
}

.terminal-output .dim {
  color:var(--dim);
}

.terminal-output::-webkit-scrollbar,
.content-card::-webkit-scrollbar,
#treeView::-webkit-scrollbar,
.nonroot::-webkit-scrollbar {
  width:10px;
}

.terminal-output::-webkit-scrollbar-thumb,
.content-card::-webkit-scrollbar-thumb,
#treeView::-webkit-scrollbar-thumb,
.nonroot::-webkit-scrollbar-thumb {
  background:var(--soft);
  border:2px solid transparent;
  background-clip:padding-box;
}

.terminal-output::-webkit-scrollbar-track,
.content-card::-webkit-scrollbar-track,
#treeView::-webkit-scrollbar-track,
.nonroot::-webkit-scrollbar-track {
  background:transparent;
}


.tree-nav {
  padding:12px;
  display:flex;
  flex-direction:column;
  gap:10px;
}

.tree-group {
  border:1px solid var(--soft);
  background:rgba(255,255,255,.025);
  padding:10px;
}

.tree-group-title {
  color:var(--fg);
  font-size:.72rem;
  letter-spacing:.14em;
  text-transform:uppercase;
  margin:0 0 8px;
  opacity:.95;
}

.tree-link {
  width:100%;
  border:0;
  border-top:1px solid rgba(255,255,255,.06);
  padding:8px 0 7px;
  text-align:left;
  color:var(--muted);
  background:transparent;
  display:flex;
  flex-direction:column;
  gap:2px;
}

.tree-link:first-of-type {
  border-top:0;
}

.tree-link:hover {
  color:var(--fg);
  background:transparent;
  transform:none;
}

.tree-link strong {
  color:inherit;
  font-size:.86rem;
  font-weight:600;
}

.tree-link small {
  color:var(--dim);
  font-size:.68rem;
  line-height:1.3;
}

.edition {
  min-width:max-content;
}


/* Release 0.2.1 mobile responsiveness pass */
@media (max-width: 760px) {
  .app-shell {
    padding:0;
    min-height:100svh;
    place-items:stretch;
  }

  .tui {
    width:100vw;
    height:100svh;
    border:0;
    grid-template-rows:auto 1fr minmax(220px,34svh) auto;
  }

  .topbar {
    grid-template-columns:1fr;
    gap:8px;
    padding:10px;
    align-items:start;
  }

  .brand {
    flex-wrap:wrap;
    gap:8px;
  }

  .edition {
    border-left:0;
    padding-left:0;
    display:block;
    width:100%;
    font-size:.64rem;
  }

  .clock {
    display:none;
  }

  .top-actions {
    display:flex;
    width:100%;
    overflow:auto;
    padding-bottom:4px;
  }

  .top-actions > button,
  .nonroot-rescue {
    flex:0 0 auto;
  }

  .workspace {
    grid-template-columns:1fr;
    min-height:0;
  }

  .sidebar {
    display:none;
  }

  .content-card {
    padding:18px;
  }

  .content-card h1 {
    font-size:2.25rem;
  }

  .terminal-panel {
    min-height:220px;
  }

  .terminal-output {
    font-size:.82rem;
    padding:12px;
  }

  .command-tips {
    display:none;
  }

  .nonroot {
    width:100vw;
    height:100svh;
    padding:0;
  }

  .nonroot-frame {
    border:0;
    box-shadow:none;
    padding:20px;
  }

  .nonroot-clean-header h1 {
    font-size:2.5rem;
  }

  .nonroot-hero {
    padding:16px;
  }

  .catalog-grid {
    grid-template-columns:1fr;
  }
}

@media (min-width: 761px) and (max-width: 1100px) {
  .tui {
    width:98vw;
    height:94vh;
    grid-template-rows:44px 1fr 260px 58px;
  }

  .workspace {
    grid-template-columns:250px 1fr;
  }

  .top-actions {
    overflow:auto;
  }
}


/* Release 0.2.2 mobile and nonroot portfolio pass */
.portfolio-contact-row {
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(220px,1fr));
  gap:10px;
  margin-top:22px;
}

.portfolio-contact-row a {
  border:1px solid var(--soft);
  background:rgba(255,255,255,.035);
  color:var(--fg);
  padding:12px 14px;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}

.portfolio-mode .nonroot-clean-header {
  border-bottom:1px solid var(--soft);
  padding-bottom:28px;
}

.portfolio-mode .catalog-grid button {
  min-height:170px;
}

@media (max-width: 760px) {
  .tui {
    display:none !important;
  }

  .boot {
    display:none !important;
  }

  .nonroot {
    display:block !important;
    width:100vw;
    height:auto;
    min-height:100svh;
    padding:0;
    overflow:auto;
  }

  .nonroot.hidden {
    display:block !important;
  }

  .nonroot-frame {
    min-height:100svh;
    border:0;
    box-shadow:none;
    padding:20px;
    background:
      radial-gradient(circle at 20% 0%, rgba(255,255,255,.07), transparent 34%),
      linear-gradient(135deg,rgba(255,255,255,.052),rgba(255,255,255,.014));
  }

  .back-button {
    display:none;
  }

  .nonroot-clean-header h1 {
    font-size:3.1rem;
    line-height:.95;
  }

  .portfolio-contact-row {
    grid-template-columns:1fr;
  }

  .nonroot-hero {
    grid-template-columns:1fr;
    padding:16px;
  }

  .catalog-section {
    grid-template-columns:1fr;
  }

  .catalog-grid {
    grid-template-columns:1fr;
  }

  .simple-output {
    margin-bottom:24px;
  }
}


/* Release 0.2.3 markdown polish */
.md-status {
  display:inline-flex;
  color:#9cffb1;
  border:1px solid rgba(156,255,177,.30);
  background:rgba(156,255,177,.08);
  padding:6px 10px;
  margin:0 0 12px;
  font-size:.78rem;
  letter-spacing:.08em;
  text-transform:uppercase;
}

.md-stack {
  color:var(--dim);
  border-left:2px solid var(--fg);
  padding:6px 0 6px 12px;
  margin:0 0 18px;
  font-size:.88rem;
}

.md-badge {
  display:inline-flex;
  color:var(--fg);
  border:1px solid var(--soft);
  background:rgba(255,255,255,.04);
  padding:5px 8px;
  margin:0 6px 8px 0;
  font-size:.78rem;
}

.md-grid {
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(210px,1fr));
  gap:12px;
  margin:18px 0;
}

.md-card {
  border:1px solid var(--soft);
  background:rgba(255,255,255,.035);
  padding:16px;
}

.md-card h3 {
  color:var(--fg);
  margin:0 0 8px;
  font-size:1rem;
}

.md-card p {
  margin:0;
  color:var(--muted);
  line-height:1.6;
}

.md-callout {
  border:1px solid var(--soft);
  padding:14px 16px;
  margin:18px 0;
  line-height:1.65;
}

.md-callout.green {
  border-color:rgba(156,255,177,.25);
  background:rgba(156,255,177,.06);
}

.md-callout.yellow {
  border-color:rgba(255,210,120,.28);
  background:rgba(255,210,120,.07);
}

.md-callout.purple {
  border-color:rgba(203,166,247,.30);
  background:rgba(203,166,247,.07);
}

.md-link {
  display:inline-flex;
  border:1px solid var(--soft);
  color:var(--fg);
  background:rgba(255,255,255,.035);
  padding:8px 10px;
  margin:4px 8px 4px 0;
  text-decoration:none;
}

.md-link:hover {
  border-color:var(--fg);
}

.content-card h2 {
  margin-top:26px;
}

.content-card h2:first-child {
  margin-top:0;
}


.nonroot-hero .bio-photo,
.bio-hero .bio-photo {
  min-height:180px;
  background:
    linear-gradient(rgba(0,0,0,.08), rgba(0,0,0,.16)),
    url("../assets/profile.png") center center / cover no-repeat;
}

@media (max-width: 760px) {
  .nonroot-hero .bio-photo,
  .bio-hero .bio-photo {
    max-width:240px;
    min-height:240px;
  }
}


/* Release 0.2.4 structured portfolio engine */
.portfolio-rendered {
  display:flex;
  flex-direction:column;
  gap:28px;
}

.portfolio-mode-top {
  display:flex;
  justify-content:flex-start;
  margin-bottom:18px;
}

.portfolio-hero {
  display:grid;
  grid-template-columns:minmax(0,1.25fr) minmax(210px,320px);
  gap:32px;
  align-items:center;
  border:1px solid var(--soft);
  background:
    radial-gradient(circle at 20% 0%, rgba(255,255,255,.06), transparent 34%),
    rgba(255,255,255,.024);
  padding:24px;
}

.portfolio-hero h1 {
  margin:0;
  color:var(--fg);
  font-size:clamp(3rem,7vw,6.5rem);
  line-height:.9;
  letter-spacing:-.075em;
}

.portfolio-hero h2 {
  color:var(--muted);
  margin:12px 0 0;
  font-size:clamp(1.3rem,2.5vw,2rem);
}

.portfolio-lead {
  color:var(--muted);
  max-width:840px;
  line-height:1.75;
  margin:22px 0;
}

.portfolio-photo {
  aspect-ratio:1;
  border:1px solid var(--soft);
  background-position:center;
  background-size:cover;
  background-repeat:no-repeat;
  box-shadow:0 0 44px var(--glow);
}

.portfolio-links {
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(190px,1fr));
  gap:10px;
}

.portfolio-link {
  border:1px solid var(--soft);
  background:rgba(255,255,255,.035);
  padding:11px 12px;
  color:var(--fg);
  overflow:hidden;
  white-space:nowrap;
  text-overflow:ellipsis;
}

.portfolio-highlights {
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(180px,1fr));
  gap:12px;
}

.portfolio-highlight {
  border:1px solid var(--soft);
  background:rgba(255,255,255,.03);
  padding:16px;
}

.portfolio-highlight strong {
  display:block;
  color:var(--fg);
  font-size:1.2rem;
}

.portfolio-highlight small {
  color:var(--muted);
}

.portfolio-section {
  border-top:1px solid var(--soft);
  padding-top:26px;
}

.portfolio-section h2 {
  color:var(--fg);
  font-size:clamp(1.8rem,4vw,3.4rem);
  letter-spacing:-.055em;
  margin:0 0 18px;
}

.portfolio-section p {
  color:var(--muted);
  line-height:1.7;
}

.portfolio-chip-row {
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin-top:14px;
}

.portfolio-chip-row span {
  border:1px solid var(--soft);
  background:rgba(255,255,255,.035);
  color:var(--fg);
  padding:7px 9px;
  font-size:.78rem;
}

.portfolio-signal-list {
  color:var(--muted);
  line-height:1.8;
  padding-left:20px;
}

.portfolio-skill-grid,
.portfolio-project-grid {
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(260px,1fr));
  gap:14px;
}

.portfolio-skill,
.portfolio-project {
  border:1px solid var(--soft);
  background:rgba(255,255,255,.026);
  padding:18px;
}

.portfolio-skill h3,
.portfolio-project h3 {
  color:var(--fg);
  margin:0 0 10px;
}

.portfolio-skill.green { border-color:rgba(156,255,177,.28); }
.portfolio-skill.blue { border-color:rgba(122,162,247,.30); }
.portfolio-skill.yellow { border-color:rgba(255,210,120,.30); }
.portfolio-skill.red { border-color:rgba(255,90,90,.28); }
.portfolio-skill.purple { border-color:rgba(203,166,247,.30); }
.portfolio-skill.cyan { border-color:rgba(100,220,255,.28); }

.project-tag {
  display:inline-flex;
  margin-bottom:12px;
  color:var(--fg);
  border:1px solid var(--soft);
  padding:5px 8px;
  font-size:.72rem;
  letter-spacing:.08em;
  text-transform:uppercase;
}

.project-why {
  border-left:2px solid var(--fg);
  padding-left:12px;
}

.view-terminal {
  margin-top:14px;
  border:1px solid var(--soft);
  background:rgba(255,255,255,.04);
  color:var(--fg);
  padding:10px 12px;
}

.view-terminal:hover {
  border-color:var(--fg);
}

@media (max-width:760px) {
  .portfolio-hero {
    grid-template-columns:1fr;
    padding:18px;
  }

  .portfolio-photo {
    max-width:260px;
    width:100%;
  }

  .portfolio-links {
    grid-template-columns:1fr;
  }

  .portfolio-skill-grid,
  .portfolio-project-grid {
    grid-template-columns:1fr;
  }
}
