/* ============================================================
   Сириус · Горный контур — HUD в стиле artem-os (терминал, монохром)
   чёрный экран · моноширинный шрифт · [ ]-кнопки · тонкие линии · скэнлайны
   ============================================================ */

:root{
  --screen:#000000;
  --panel:#111111;
  --inset:#090909;
  --ink:#ffffff;
  --ink-2:#c8c8c8;
  --ink-3:#8c8c8c;
  --line:#4d4d4d;
  --line-2:#2b2b2b;
  --mono:"JetBrains Mono","IBM Plex Mono","SFMono-Regular",ui-monospace,Consolas,"Liberation Mono",Menlo,monospace;
  --scan:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='3' height='3'%3E%3Crect width='3' height='1' y='0' fill='%23ffffff' opacity='0.05'/%3E%3C/svg%3E");
  --pad:clamp(12px,1.6vw,22px);
}

*,*::before,*::after{box-sizing:border-box;border-radius:0}
html,body{height:100%}
body{
  margin:0;background:var(--screen);color:var(--ink);
  font-family:var(--mono);
  font-size:clamp(12px,.42vw + 11px,14px);
  line-height:1.5;letter-spacing:.01em;
  overflow:hidden;-webkit-font-smoothing:antialiased;
}
body::after{content:"";position:fixed;inset:0;z-index:95;pointer-events:none;background-image:var(--scan);background-size:3px 3px}
::selection{background:var(--ink);color:var(--screen)}
*::-webkit-scrollbar{width:10px;height:10px}
*::-webkit-scrollbar-track{background:transparent}
*::-webkit-scrollbar-thumb{background:var(--line);border:2px solid var(--panel)}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}
h1,h2,p{margin:0}

.caret{display:inline-block;width:.55em;height:.95em;margin-left:.15em;background:var(--ink);vertical-align:-.12em;animation:blink .9s steps(1,end) infinite}
@keyframes blink{0%,49%{opacity:1}50%,100%{opacity:0}}
.sep{color:var(--ink-3)}
.ps1{color:var(--ink)}
.pwd{color:var(--ink-2)}
.dot-i{width:7px;height:7px;background:var(--ink);display:inline-block;animation:pulse 1.4s steps(1,end) infinite}
@keyframes pulse{0%,49%{opacity:1}50%,100%{opacity:.15}}
kbd{font-family:var(--mono);font-size:.85em;padding:0 .35em;border:1px solid var(--line)}

/* ── сцена и подписи ─────────────────────────────────────────── */
#stage{position:fixed;inset:0;z-index:0}
#stage canvas{display:block}
.labels{position:fixed;inset:0;pointer-events:none;z-index:6;overflow:hidden}
.labels span{
  position:absolute;left:0;top:0;transform:translate(-50%,-160%);
  font:500 10.5px/1.35 var(--mono);letter-spacing:.02em;
  color:var(--ink);background:rgba(0,0,0,.72);
  border:1px solid var(--line);padding:2px 6px;white-space:nowrap;
  will-change:transform,opacity;
}
.labels span[data-kind="proposal"]{font-weight:700;border-color:var(--ink-2)}

/* ── общий блок HUD ──────────────────────────────────────────── */
.hud{
  position:fixed;z-index:10;
  background:rgba(0,0,0,.80);
  border:1px solid var(--line);
  backdrop-filter:blur(7px);
  padding:10px 12px;
}
.hud::before{content:"";position:absolute;inset:2px;border:1px solid var(--line-2);pointer-events:none}

/* ── навигация ───────────────────────────────────────────────── */
.nav{
  position:fixed;top:0;left:0;right:0;z-index:20;
  display:flex;align-items:center;gap:clamp(10px,1.6vw,22px);
  padding:8px var(--pad);
  background:rgba(0,0,0,.84);border-bottom:1px solid var(--line);
  backdrop-filter:blur(8px);
  font-size:.95em;
}
.nav-logo{margin:0;font-size:9px;line-height:1.05;letter-spacing:0;color:var(--ink-2);white-space:pre}
.nav-brand{display:flex;align-items:center;gap:.45em;white-space:nowrap;letter-spacing:.02em}
.nav-cmd{color:var(--ink-2)}
.nav-meta{display:flex;align-items:center;gap:.5em;color:var(--ink-3);margin-left:clamp(6px,1.4vw,18px);overflow:hidden;white-space:nowrap}
.nav-meta .tag{color:var(--ink)}
.nav-right{margin-left:auto;display:flex;align-items:center;gap:clamp(8px,1.4vw,18px);color:var(--ink-3)}
.nav-clock{letter-spacing:.1em;color:var(--ink-2)}
.nav-btn{border:1px solid var(--line);padding:0 .5em;color:var(--ink-2)}
.nav-btn:hover{background:var(--ink);color:var(--screen);border-color:var(--ink)}

/* ── слои ────────────────────────────────────────────────────── */
.hud-layers{top:52px;right:var(--pad);width:250px}
.l-cap{display:flex;align-items:center;gap:.5em;color:var(--ink-3);letter-spacing:.2em;text-transform:uppercase;font-size:.82em;margin-bottom:8px;padding-bottom:7px;border-bottom:1px solid var(--line-2)}
.l-row{display:flex;align-items:center;gap:.5em;padding:2px 0;cursor:pointer;color:var(--ink-2)}
.l-row input{position:absolute;opacity:0;width:0;height:0;pointer-events:none}
.l-row .mk{color:var(--ink-3);white-space:pre}
.l-row input:checked + .mk{color:var(--ink)}
.l-row span{color:var(--ink-2)}
.l-row:hover span{color:var(--ink)}
.l-row .mk-on{display:inline}
.l-row .mk-off{display:none}
.l-row input:checked ~ .mk-on{display:inline}
.l-row input:checked ~ .mk-off{display:none}
.l-row input:not(:checked) ~ .mk-on{display:none}
.l-row input:not(:checked) ~ .mk-off{display:inline}
.f-dirs{display:flex;flex-wrap:wrap;gap:5px;margin-top:9px;padding-top:8px;border-top:1px solid var(--line-2)}
.f-dirs button{
  font-size:.85em;padding:1px 6px;border:1px solid var(--line-2);color:var(--ink-3);
}
.f-dirs button::before{content:"[ "}
.f-dirs button::after{content:" ]"}
.f-dirs button:hover{border-color:var(--line);color:var(--ink-2)}
.f-dirs button.on{background:var(--ink);border-color:var(--ink);color:var(--screen)}
.f-dirs button.on::before,.f-dirs button.on::after{color:var(--screen)}

/* ── виды ────────────────────────────────────────────────────── */
.hud-views{
  left:var(--pad);bottom:var(--pad);
  display:flex;flex-wrap:wrap;gap:6px;max-width:min(62vw,720px);
  padding:8px 10px;
}
.hud-views button{
  font-size:.92em;padding:2px 7px;border:1px solid var(--line-2);color:var(--ink-2);white-space:nowrap;
}
.hud-views button::before{content:"[ "}
.hud-views button::after{content:" ]"}
.hud-views button::before,.hud-views button::after{color:var(--ink-3)}
.hud-views button:hover{background:var(--ink);color:var(--screen);border-color:var(--ink)}
.hud-views button:hover::before,.hud-views button:hover::after{color:var(--screen)}
.hud-views button.on{background:var(--ink);border-color:var(--ink);color:var(--screen);font-weight:700}
.hud-views button.on::before,.hud-views button.on::after{color:var(--screen)}

/* ── карточка объекта ────────────────────────────────────────── */
.hud-panel{top:52px;right:var(--pad);width:330px;max-height:calc(100vh - 190px);overflow:auto;padding:0}
.hud-panel[hidden]{display:none}
.hud-panel::before{display:none}
.p-bar{
  display:flex;align-items:center;justify-content:space-between;gap:8px;
  padding:7px 10px;border-bottom:1px solid var(--line);
  color:var(--ink);letter-spacing:.12em;text-transform:uppercase;font-size:.82em;
}
.p-kind{display:inline-flex;align-items:center;gap:.5em;color:var(--ink);letter-spacing:.12em;text-transform:uppercase;font-size:.82em}
.p-kind::before{content:"";width:7px;height:7px;background:var(--k,#fff);flex:none}
.p-close{font-size:.9em;color:var(--ink-3);padding:0 2px}
.p-close:hover{color:var(--ink)}
.p-title{margin:12px 12px 8px;font-size:1.35em;font-weight:700;line-height:1.25;letter-spacing:0}
.p-dirs{display:flex;flex-wrap:wrap;gap:5px;margin:0 12px 10px}
.p-dirs span{font-size:.85em;color:var(--ink-3)}
.p-dirs span::before{content:"/";color:var(--line)}
.p-desc{margin:0 12px 10px;color:var(--ink-2);font-size:.96em;line-height:1.6}
.p-meta{margin:0 12px 8px;color:var(--ink-3);font-size:.86em;letter-spacing:.03em}
.p-src{margin:0 12px 12px;padding-top:9px;border-top:1px solid var(--line-2);color:var(--ink-3);font-size:.86em}
.p-src b{color:var(--ink-2);font-weight:400}
.p-prompt{margin:0;padding:7px 12px;border-top:1px solid var(--line-2);color:var(--ink-3);font-size:.86em}

/* ── панель программы ───────────────────────────────────────── */
.hud-program{width:390px;max-height:calc(100vh - 130px)}
.pr-list{margin:0 12px 10px;display:grid;gap:6px}
.pr-row{display:grid;grid-template-columns:auto 1fr;gap:.7em;align-items:baseline;font-size:.9em}
.pr-row b{color:var(--ink);font-weight:400;letter-spacing:.06em;text-transform:uppercase;font-size:.86em;white-space:nowrap}
.pr-row span{color:var(--ink-2)}
.pr-objects{margin:0 12px 12px;padding-top:9px;border-top:1px solid var(--line-2);display:grid;gap:2px}
.pr-objects .pr-cap{color:var(--ink-3);letter-spacing:.14em;text-transform:uppercase;font-size:.82em;margin-bottom:5px}
.pr-objects button{display:grid;grid-template-columns:auto 1fr;gap:.5em;text-align:left;padding:1px 0;color:var(--ink-2);font-size:.92em}
.pr-objects button::before{content:"[ → ]";color:var(--ink-3);white-space:nowrap}
.pr-objects button:hover{color:var(--screen);background:var(--ink)}
.pr-objects button:hover::before{color:var(--screen)}

/* ── статистика и подсказка ──────────────────────────────────── */
.hud-stats{
  right:var(--pad);bottom:var(--pad);text-align:right;color:var(--ink-3);
  font-size:.88em;letter-spacing:.03em;line-height:1.55;padding:8px 10px;
}
.hud-stats b{color:var(--ink);font-weight:400}
.hud-hint{
  left:50%;bottom:var(--pad);transform:translateX(-50%);
  color:var(--ink-3);font-size:.85em;padding:5px 10px;letter-spacing:.04em;white-space:nowrap;
}
.hud-hint i{color:var(--line);font-style:normal;margin:0 .35em}

/* ── загрузка: терминальный бут ──────────────────────────────── */
#loader{
  position:fixed;inset:0;z-index:90;background:var(--screen);
  display:grid;place-items:center;
  transition:opacity .35s linear,visibility .35s;
}
#loader.gone{opacity:0;visibility:hidden;pointer-events:none}
.ld-box{width:min(760px,92vw);padding:0 4px}
.ld-logo{margin:0 0 14px;font-size:clamp(9px,1.5vw,14px);line-height:1.02;color:var(--ink);white-space:pre}
.ld-head{display:flex;flex-wrap:wrap;gap:.45em;align-items:center;color:var(--ink-2);font-size:.95em;margin-bottom:10px}
.ld-head .sep{color:var(--ink-3)}
.ld-log{
  margin:0 0 14px;padding:10px 0;border-top:1px solid var(--line-2);border-bottom:1px solid var(--line-2);
  min-height:8.4em;max-height:34vh;overflow:hidden;
  font-size:.9em;line-height:1.65;color:var(--ink-2);white-space:pre-wrap;
}
.ld-log .t{color:var(--ink-3)}
.ld-log .ok{color:var(--ink)}
.ld-log .warn{color:var(--ink-2)}
.ld-bar{display:flex;align-items:center;gap:.85rem;font-size:.85em;color:var(--ink-2)}
.ld-bar__track{flex:1;height:9px;border:1px solid var(--line);overflow:hidden}
.ld-bar i{display:block;height:100%;width:0;background:var(--ink);transition:width .2s steps(6,end)}
.ld-note{color:var(--ink-2);letter-spacing:.1em;min-width:4.6em;text-align:right}
.ld-stamp{position:absolute;bottom:clamp(8px,2.2vh,18px);right:var(--pad);color:var(--ink-3);font-size:.72em;letter-spacing:.18em;text-transform:uppercase}

@media (max-width:900px){
  .nav-meta{display:none}
  .hud-layers{width:min(72vw,250px);top:46px}
  .hud-panel{left:var(--pad);right:var(--pad);width:auto;top:auto;bottom:110px;max-height:44vh}
  .hud-hint{display:none}
}
