:root{
  --bg:#0a0a0a;
  --panel:#0b0b0b;
  --text:#f1f1f1;
  --muted:#6e7781;
  --line:#232323;
  --blue:#55b8ff;
  --green:#59e06d;
  --orange:#ff9d2e;
  --max:820px;
}
*{box-sizing:border-box}
html{background:var(--bg);scroll-behavior:smooth}
body{margin:0;background:var(--bg);color:var(--text);font-family:"IBM Plex Mono",Consolas,"Liberation Mono",monospace;font-size:13px;line-height:1.72}
a{color:var(--blue);text-decoration:none}a:hover{text-decoration:underline}
.topbar{height:32px;border-bottom:1px solid #202020;background:#0b0b0b;position:sticky;top:0;z-index:10}
.topbar-inner{height:100%;width:min(100%,1500px);margin:0 auto;display:flex;align-items:center;padding:0 12px}
.brand{color:#777f87;margin-right:18px;white-space:nowrap;font-size:12px}
.nav{display:flex;height:100%;align-items:stretch;gap:0;overflow-x:auto}
.nav a{display:flex;align-items:center;color:#6f757c;padding:0 13px;border-bottom:1px solid transparent;letter-spacing:.02em;white-space:nowrap}
.nav a.active{color:#fff;border-bottom-color:#71bcef}.nav a:hover{color:#fff;text-decoration:none}
.page{width:min(var(--max),calc(100% - 34px));margin:34px auto 72px}
.output-box{position:relative;border:1px solid var(--line);background:#0a0a0a;padding:14px 22px 13px;margin-bottom:32px;color:#737b84}
.output-box>div:not(.output-label){margin:1px 0}.output-label{position:absolute;top:-8px;left:16px;background:var(--bg);padding:0 8px;font-size:9px;color:#3e4348;letter-spacing:.22em}
.ok{color:var(--green)}.info{color:var(--orange)}
.prompt{margin:29px 0 13px;color:#fff;font-weight:600}.prompt::before{content:"$ ";color:var(--blue)}
.orange{color:var(--orange)}
.whois{display:grid;grid-template-columns:160px 1fr;gap:28px;align-items:start;margin-bottom:30px}
.portrait{width:160px;height:172px;object-fit:cover;border:1px solid #2b2b2b;border-radius:2px}
.kv{display:grid;grid-template-columns:58px 1fr;gap:5px 14px;margin:0;padding-top:1px}.kv dt{color:#717984}.kv dd{margin:0;color:#f0f0f0}.kv strong{color:#fff}
.text-block{border-left:1px solid #252525;padding:10px 18px;color:#efefef}.text-block p{margin:0 0 13px}.text-block p:last-child{margin-bottom:0}
.link-buttons{display:flex;flex-wrap:wrap;gap:8px}.link-buttons a{border:1px solid #202020;color:#747b82;padding:7px 12px}.link-buttons a:hover{border-color:#3b3b3b;color:#fff;text-decoration:none}
.mini-log{display:flex;align-items:center;gap:12px;color:#dcdcdc}.mini-log .date{color:#555e66}.badge{border:1px solid var(--orange);color:var(--orange);padding:1px 7px;font-size:10px}
.project-list,.contact-list,.publication-list{border-top:1px solid var(--line)}
.project{display:grid;grid-template-columns:44px 1fr auto;gap:14px;align-items:center;padding:12px 0;border-bottom:1px solid var(--line);position:relative}.project:after{content:"▸";position:absolute;right:2px;top:7px;color:#41464b;font-size:10px}.project-num{color:#42484e;font-size:10px}.project-title{font-weight:600;color:#fff;line-height:1.45}.project-meta{text-align:right;color:var(--orange);font-size:10px;white-space:nowrap}.project-tags{grid-column:2/4;display:flex;gap:5px;justify-content:flex-end}.project-tags span{border:1px solid var(--orange);color:var(--orange);padding:1px 6px;font-size:9px}
.pub{display:grid;grid-template-columns:44px 1fr auto;gap:14px;align-items:center;padding:13px 0;border-bottom:1px solid var(--line)}.pub-num{color:#42484e;font-size:10px}.pub-title{color:#fff;font-weight:600;line-height:1.45}.paper-link{color:var(--orange);border:1px solid var(--orange);padding:2px 7px;font-size:10px;white-space:nowrap}.paper-link:hover{background:#16100a;text-decoration:none}
.contact-row{display:grid;grid-template-columns:44px 120px 1fr 18px;border-bottom:1px solid var(--line);align-items:center;min-height:48px}.contact-row>div{padding:9px 14px}.contact-row .num{color:#42484e;font-size:10px;border-right:1px solid var(--line)}.contact-row .label{color:#6f7780;border-right:1px solid var(--line)}.contact-row .value{color:#fff}.contact-row .arrow{color:#4a4f54;text-align:right;padding-right:0}
.cv-list{border-left:1px solid #252525;padding-left:18px}.cv-item{margin-bottom:17px}.cv-date{color:var(--orange);font-size:10px}.muted{color:#777f87}.skills{display:flex;flex-wrap:wrap;gap:7px}.skills span{border:1px solid #222;padding:3px 7px;color:#8a929a}
.terminal-footer{border-top:1px solid #1c1c1c;margin-top:46px;padding-top:11px;color:#50565c}.terminal-footer .host{color:var(--blue)}
.empty-space{min-height:520px}
@media(max-width:700px){
  body{font-size:12px}.page{width:min(100% - 24px,var(--max));margin-top:24px}.whois{grid-template-columns:1fr}.portrait{width:145px;height:158px}.project,.pub{grid-template-columns:32px 1fr}.project-meta,.paper-link{grid-column:2;text-align:left;justify-self:start}.project-tags{grid-column:2;justify-content:flex-start}.contact-row{grid-template-columns:34px 92px 1fr 12px}.nav a{padding:0 10px}
}
