/* ============================================================
   ВЕКТОР-9 // CYBERDECK SYSTEMS — 2087
   Стиль: киберпанк 1980-х / кассетный футуризм / CRT
   ============================================================ */

:root{
  --bg:        #06020c;
  --bg2:       #0d0517;
  --panel:     #120a24;
  --line:      #2c1552;
  --text:      #e9e2ff;
  --dim:       #9a8fc7;

  --acc:       #ff2079;  /* основной неон */
  --acc2:      #00e5ff;  /* вторичный неон */
  --good:      #05ffa1;
  --warn:      #ffb000;
  --danger:    #ff3860;

  --glow-acc:  0 0 6px var(--acc), 0 0 18px color-mix(in srgb, var(--acc) 60%, transparent);
  --glow-acc2: 0 0 6px var(--acc2), 0 0 18px color-mix(in srgb, var(--acc2) 60%, transparent);

  --f-pixel: 'Press Start 2P', 'PT Mono', monospace;
  --f-mono:  'PT Mono', 'Courier New', monospace;
  --f-block: 'Rubik Mono One', 'PT Mono', monospace;
}

/* фосфорные темы (переключаются из терминала) */
body.theme-magenta{ --acc:#ff2079; }
body.theme-cyan   { --acc:#00e5ff; --acc2:#ff2079; }
body.theme-green  { --acc:#05ffa1; --acc2:#ffb000; }
body.theme-amber  { --acc:#ffb000; --acc2:#ff2079; }

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

html{ scroll-behavior:smooth; }

body{
  background:var(--bg);
  color:var(--text);
  font-family:var(--f-mono);
  font-size:15px;
  line-height:1.55;
  overflow-x:hidden;
  min-height:100vh;
  background-image:
    radial-gradient(1200px 500px at 50% -10%, color-mix(in srgb, var(--acc) 12%, transparent), transparent 60%),
    radial-gradient(900px 500px at 85% 110%, color-mix(in srgb, var(--acc2) 10%, transparent), transparent 60%);
}

::selection{ background:var(--acc); color:#000; }

/* скроллбар */
::-webkit-scrollbar{ width:10px; height:10px; }
::-webkit-scrollbar-track{ background:var(--bg2); }
::-webkit-scrollbar-thumb{ background:var(--acc); border:2px solid var(--bg2); }

code{ color:var(--acc2); }
b{ color:var(--acc); }
a{ color:var(--acc2); text-decoration:none; }
a:hover{ color:#fff; text-shadow:var(--glow-acc2); }

img{ image-rendering:auto; }

/* ============================================================
   CRT СЛОИ
   ============================================================ */
.crt-scanlines{
  position:fixed; inset:0; pointer-events:none; z-index:9990;
  background:repeating-linear-gradient(
    to bottom,
    rgba(0,0,0,0) 0px,
    rgba(0,0,0,0) 2px,
    rgba(0,0,0,.22) 3px,
    rgba(0,0,0,0) 4px
  );
  mix-blend-mode:multiply;
}
.crt-vignette{
  position:fixed; inset:0; pointer-events:none; z-index:9991;
  background:radial-gradient(ellipse at center, transparent 55%, rgba(0,0,0,.55) 100%);
}
.crt-noise{
  position:fixed; inset:-100px; pointer-events:none; z-index:9989; opacity:.05;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='128' height='128'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2'/%3E%3C/filter%3E%3Crect width='128' height='128' filter='url(%23n)'/%3E%3C/svg%3E");
  animation:noise-move .4s steps(4) infinite;
}
@keyframes noise-move{
  0%{ transform:translate(0,0); } 25%{ transform:translate(-30px,20px); }
  50%{ transform:translate(20px,-30px); } 75%{ transform:translate(-20px,-10px); }
  100%{ transform:translate(0,0); }
}
body.crt-off .crt-scanlines, body.crt-off .crt-vignette, body.crt-off .crt-noise{ display:none; }

/* переключение «канала» между вкладками */
#channel-flash{
  position:fixed; inset:0; z-index:9994; pointer-events:none;
  background:linear-gradient(180deg,#fff, var(--acc2));
  opacity:0; transform:scaleY(0);
}
#channel-flash.on{
  animation:ch-switch .28s steps(3) forwards;
}
@keyframes ch-switch{
  0%{ opacity:1; transform:scaleY(0.02); }
  50%{ opacity:.9; transform:scaleY(1); }
  100%{ opacity:0; transform:scaleY(1); }
}

/* полноэкранный глитч */
body.big-glitch main{ animation:big-glitch .5s steps(2) both; }
@keyframes big-glitch{
  0%{ transform:translateX(0); filter:none; }
  20%{ transform:translateX(-14px) skewX(3deg); filter:hue-rotate(90deg) saturate(3); }
  40%{ transform:translateX(10px); filter:invert(1); }
  60%{ transform:translateX(-6px) skewX(-2deg); filter:hue-rotate(-120deg); }
  80%{ transform:translateX(4px); filter:contrast(3); }
  100%{ transform:translateX(0); filter:none; }
}

/* ============================================================
   BOOT
   ============================================================ */
#boot{
  position:fixed; inset:0; z-index:10000; background:#02040a;
  display:flex; align-items:center; justify-content:center;
  cursor:pointer; transition:opacity .6s;
}
#boot.done{ opacity:0; pointer-events:none; }
.boot-inner{ width:min(760px, 92vw); }
#boot-log{
  font-family:var(--f-mono); font-size:clamp(12px, 2vw, 15px);
  color:var(--good); white-space:pre-wrap; text-shadow:0 0 8px color-mix(in srgb, var(--good) 70%, transparent);
  min-height:40vh;
}
.boot-skip{ margin-top:24px; color:var(--dim); font-size:12px; letter-spacing:2px; animation:blink 1s steps(2) infinite; }

@keyframes blink{ 50%{ opacity:0; } }
.blink-fast{ animation:blink 0.9s steps(2) infinite; }
.blink-slow{ animation:blink 1.8s steps(2) infinite; }

/* ============================================================
   СВЕТОДИОДЫ
   ============================================================ */
.led{
  display:inline-block; width:8px; height:8px; border-radius:50%;
  background:var(--good); box-shadow:0 0 8px var(--good);
  margin-right:6px; vertical-align:middle;
}
.led-red{ background:var(--danger); box-shadow:0 0 8px var(--danger); }
.led-amber{ background:var(--warn); box-shadow:0 0 8px var(--warn); }

/* ============================================================
   ШАПКА
   ============================================================ */
.header{
  position:sticky; top:0; z-index:9000;
  display:flex; align-items:center; gap:18px; flex-wrap:wrap;
  padding:10px 18px;
  background:linear-gradient(180deg, rgba(6,2,12,.96), rgba(6,2,12,.88));
  border-bottom:2px solid var(--acc);
  box-shadow:0 4px 24px rgba(0,0,0,.7), 0 1px 0 var(--acc2) inset;
}
.logo{
  display:flex; align-items:baseline; gap:10px;
  font-family:var(--f-pixel); font-size:14px; color:var(--acc);
  text-shadow:var(--glow-acc); letter-spacing:1px;
}
.logo:hover{ color:#fff; }
.logo-sub{ font-family:var(--f-mono); font-size:9px; color:var(--dim); letter-spacing:3px; }

.nav{ display:flex; gap:4px; flex-wrap:wrap; margin-left:auto; }
.nav-link{
  font-family:var(--f-pixel); font-size:10px; text-transform:uppercase;
  color:var(--dim); padding:10px 12px; border:1px solid transparent;
  transition:all .12s;
}
.nav-link:hover{ color:var(--acc2); border-color:var(--acc2); text-shadow:var(--glow-acc2); }
.nav-link.active{
  color:#000; background:var(--acc); text-shadow:none;
  box-shadow:0 0 14px color-mix(in srgb, var(--acc) 70%, transparent);
}
.nav-link.active::before{ content:'[ '; }
.nav-link.active::after{ content:' ]'; }

.header-right{ display:flex; align-items:center; gap:10px; flex-wrap:wrap; }
.hud-btn{
  font-family:var(--f-mono); font-size:11px; letter-spacing:1px;
  background:transparent; color:var(--dim); border:1px solid var(--line);
  padding:6px 10px; cursor:pointer; transition:all .12s;
}
.hud-btn:hover{ color:var(--acc2); border-color:var(--acc2); box-shadow:var(--glow-acc2); }
.hud-btn b{ color:var(--good); font-weight:400; }
.cart-btn b{ color:var(--warn); }
.cart-btn.pulse{ animation:cart-pulse .6s steps(3); }
@keyframes cart-pulse{ 50%{ background:var(--warn); color:#000; } }

.clock{ text-align:right; font-size:11px; line-height:1.3; color:var(--dim); }
#clock-time{ color:var(--acc2); text-shadow:0 0 8px color-mix(in srgb, var(--acc2) 80%, transparent); letter-spacing:2px; }

/* ============================================================
   БЕГУЩАЯ СТРОКА
   ============================================================ */
.ticker{
  overflow:hidden; border-bottom:1px solid var(--line);
  background:linear-gradient(90deg, color-mix(in srgb, var(--acc) 8%, transparent), transparent 30%, transparent 70%, color-mix(in srgb, var(--acc2) 8%, transparent));
  font-size:12px; letter-spacing:1px; color:var(--warn);
  white-space:nowrap;
}
.ticker-track{ display:inline-block; padding:6px 0; animation:ticker 40s linear infinite; }
.ticker-track span{ margin:0 30px; }
@keyframes ticker{ from{ transform:translateX(0); } to{ transform:translateX(-50%); } }

/* ============================================================
   РОУТЫ / СТРАНИЦЫ
   ============================================================ */
main{ position:relative; z-index:1; padding-bottom:60px; }
.route{ display:none; animation:route-in .3s steps(4); }
.route.active{ display:block; }
@keyframes route-in{ from{ opacity:0; transform:translateY(6px); } to{ opacity:1; transform:none; } }

.page-head{
  padding:46px 24px 26px; text-align:center;
  border-bottom:1px dashed var(--line);
}
.page-title{
  font-family:var(--f-pixel); font-size:clamp(15px, 3.4vw, 26px);
  color:var(--acc); text-shadow:var(--glow-acc); letter-spacing:2px;
  margin-bottom:14px;
}
.page-sub{ color:var(--dim); font-size:12px; letter-spacing:2px; }
.page-note{ text-align:center; color:var(--dim); font-size:11px; padding:26px; letter-spacing:1px; }
.page-note, .page-sub{ font-family:var(--f-mono); }

/* ============================================================
   ГЛИТЧ-ТЕКСТ
   ============================================================ */
.glitch{ position:relative; }
.glitch::before, .glitch::after{
  content:attr(data-text); position:absolute; left:0; top:0; width:100%;
  overflow:hidden; opacity:0; pointer-events:none;
}
.glitch::before{ color:var(--acc2); z-index:-1; animation:gl-x 3.2s infinite steps(2); }
.glitch::after{ color:var(--acc); z-index:-2; animation:gl-y 2.7s infinite steps(2); }
@keyframes gl-x{
  0%,86%{ opacity:0; } 88%{ opacity:.8; transform:translate(-4px,-2px); clip-path:inset(10% 0 60% 0); }
  92%{ opacity:.8; transform:translate(3px,1px); clip-path:inset(50% 0 20% 0); } 96%,100%{ opacity:0; }
}
@keyframes gl-y{
  0%,90%{ opacity:0; } 92%{ opacity:.7; transform:translate(4px,2px); clip-path:inset(30% 0 40% 0); }
  96%{ opacity:.7; transform:translate(-2px,-1px); clip-path:inset(0 0 80% 0); } 98%,100%{ opacity:0; }
}

/* ============================================================
   HERO
   ============================================================ */
.hero{
  position:relative; min-height:86vh; overflow:hidden;
  display:flex; flex-direction:column; align-items:center; justify-content:center;
  text-align:center; padding:60px 20px 0;
  border-bottom:2px solid var(--acc);
}
.hero-sky{ position:absolute; inset:0; z-index:-1; background:linear-gradient(180deg,#05010d 0%, #12032b 55%, #2b0a4b 78%, var(--bg) 100%); }
.hero-stars{
  position:absolute; inset:0 0 40% 0;
  background-image:
    radial-gradient(1px 1px at 12% 22%, #fff, transparent),
    radial-gradient(2px 2px at 34% 12%, var(--acc2), transparent),
    radial-gradient(1px 1px at 57% 28%, #fff, transparent),
    radial-gradient(2px 2px at 71% 9%, var(--acc), transparent),
    radial-gradient(1px 1px at 86% 30%, #fff, transparent),
    radial-gradient(1px 1px at 24% 40%, var(--acc2), transparent),
    radial-gradient(1px 1px at 93% 15%, #fff, transparent),
    radial-gradient(2px 2px at 6% 8%, #fff, transparent);
  opacity:.8; animation:stars 6s steps(6) infinite;
}
@keyframes stars{ 50%{ opacity:.4; } }

.sun{
  position:absolute; left:50%; bottom:34%; transform:translateX(-50%);
  width:min(360px, 60vw); aspect-ratio:1; border-radius:50%;
  background:linear-gradient(180deg,#ffe600 0%, #ff7a18 45%, #ff2079 78%, #b3128f 100%);
  box-shadow:0 0 60px 10px rgba(255,60,140,.5), 0 0 140px 40px rgba(255,60,140,.18);
  -webkit-mask-image:linear-gradient(180deg,#000 0 46%,transparent 46% 48%,#000 48% 58%,transparent 58% 60%,#000 60% 68%,transparent 68% 71%,#000 71% 77%,transparent 77% 81%,#000 81% 85%,transparent 85% 90%,#000 90% 93%,transparent 93%);
          mask-image:linear-gradient(180deg,#000 0 46%,transparent 46% 48%,#000 48% 58%,transparent 58% 60%,#000 60% 68%,transparent 68% 71%,#000 71% 77%,transparent 77% 81%,#000 81% 85%,transparent 85% 90%,#000 90% 93%,transparent 93%);
}
.grid-floor{
  position:absolute; left:-50%; right:-50%; bottom:0; height:44%;
  background:
    linear-gradient(to top, color-mix(in srgb, var(--acc) 40%, transparent), transparent 70%),
    repeating-linear-gradient(to right, color-mix(in srgb, var(--acc) 55%, transparent) 0 2px, transparent 2px 60px),
    repeating-linear-gradient(to top, color-mix(in srgb, var(--acc2) 55%, transparent) 0 2px, transparent 2px 40px);
  transform:perspective(420px) rotateX(62deg);
  transform-origin:top center;
  animation:grid-move 2.2s linear infinite;
  opacity:.8;
}
@keyframes grid-move{ from{ background-position:0 0, 0 0, 0 0; } to{ background-position:0 0, 0 0, 0 40px; } }

.ascii-logo{
  font-size:clamp(6px, 1.5vw, 12px); line-height:1.15; color:var(--acc2);
  text-shadow:0 0 10px color-mix(in srgb, var(--acc2) 70%, transparent);
  margin:0 auto 26px; display:inline-block;
}
.hero-title{
  font-family:var(--f-pixel); font-size:clamp(14px, 3vw, 30px);
  color:#fff; letter-spacing:2px; margin-bottom:20px;
  text-shadow:3px 3px 0 var(--acc), -2px -2px 0 var(--acc2), 0 0 22px rgba(255,255,255,.4);
}
.hero-sub{ color:var(--dim); font-size:clamp(13px, 2vw, 16px); margin-bottom:30px; }
.hero-sub b{ color:var(--acc); }

.hero-cta{ display:flex; gap:14px; justify-content:center; flex-wrap:wrap; margin-bottom:26px; }
.hero-warn{ color:var(--warn); font-size:11px; letter-spacing:2px; text-shadow:0 0 10px color-mix(in srgb, var(--warn) 60%, transparent); }

/* кнопки */
.btn{
  display:inline-block; font-family:var(--f-pixel); font-size:11px;
  padding:14px 20px; cursor:pointer; border:2px solid var(--acc);
  color:var(--acc); background:transparent; text-transform:uppercase;
  letter-spacing:1px; position:relative; transition:all .1s;
}
.btn:hover{ background:var(--acc); color:#000; box-shadow:0 0 20px color-mix(in srgb, var(--acc) 80%, transparent); }
.btn:active{ transform:translateY(2px); }
.btn-primary{ background:var(--acc); color:#000; box-shadow:0 0 14px color-mix(in srgb, var(--acc) 60%, transparent); }
.btn-primary:hover{ background:#fff; color:#000; border-color:#fff; }
.btn-ghost{ border-color:var(--acc2); color:var(--acc2); }
.btn-ghost:hover{ background:var(--acc2); color:#000; box-shadow:var(--glow-acc2); }
.btn-mini{ font-size:8px; padding:10px 12px; margin-top:12px; }

/* панель статистики */
.stats-panel{
  margin-top:auto; width:100%; max-width:1100px;
  display:grid; grid-template-columns:repeat(4, 1fr);
  border:1px solid var(--line); border-bottom:none;
  background:rgba(6,2,12,.8); backdrop-filter:blur(3px);
}
.stat{ padding:16px 8px; border-right:1px solid var(--line); }
.stat:last-child{ border-right:none; }
.stat-num{
  font-family:var(--f-block); font-size:clamp(15px, 2.6vw, 24px);
  color:var(--good); text-shadow:0 0 12px color-mix(in srgb, var(--good) 70%, transparent);
}
.stat-num.danger{ color:var(--danger); text-shadow:0 0 12px color-mix(in srgb, var(--danger) 70%, transparent); }
.stat-label{ font-size:10px; letter-spacing:2px; color:var(--dim); margin-top:6px; }

/* блоки на главной */
.home-blocks{
  display:grid; grid-template-columns:repeat(auto-fit, minmax(280px, 1fr));
  gap:20px; padding:40px 24px; max-width:1200px; margin:0 auto;
}
.home-block{
  border:1px solid var(--line); background:linear-gradient(180deg, rgba(18,10,36,.8), rgba(6,2,12,.6));
  padding:22px; position:relative;
}
.home-block::after{
  content:''; position:absolute; top:-1px; left:-1px; width:14px; height:14px;
  border-top:3px solid var(--acc); border-left:3px solid var(--acc);
}
.home-block:hover{ border-color:var(--acc); box-shadow:inset 0 0 30px color-mix(in srgb, var(--acc) 8%, transparent); }
.home-block h3{ color:var(--acc2); font-family:var(--f-pixel); font-size:10px; margin-bottom:12px; letter-spacing:1px; }
.home-block p{ color:var(--dim); font-size:13px; }

/* ============================================================
   ПРОДУКТЫ
   ============================================================ */
.product-grid{
  display:grid; grid-template-columns:repeat(auto-fill, minmax(310px, 1fr));
  gap:24px; padding:36px 24px; max-width:1300px; margin:0 auto;
}
.product-card{
  background:var(--panel); border:1px solid var(--line);
  display:flex; flex-direction:column; position:relative;
  transition:transform .15s, border-color .15s, box-shadow .15s;
}
.product-card::before{
  content:''; position:absolute; inset:-1px; pointer-events:none;
  border:1px solid transparent;
}
.product-card:hover{
  transform:translateY(-4px); border-color:var(--acc);
  box-shadow:0 0 24px color-mix(in srgb, var(--acc) 25%, transparent), 0 12px 30px rgba(0,0,0,.6);
}
.product-img{
  position:relative; aspect-ratio:4/3; overflow:hidden;
  background:
    repeating-linear-gradient(to top, #1b0b2f 0 2px, transparent 2px 24px),
    radial-gradient(circle at 50% 60%, #2b0a4b, #0a0214);
  border-bottom:1px solid var(--line);
}
.product-img::after{ /* NO SIGNAL за изображением */
  content:'▓ NO SIGNAL ▓'; position:absolute; inset:0; z-index:-0;
  display:flex; align-items:center; justify-content:center;
  color:var(--dim); font-family:var(--f-pixel); font-size:10px; letter-spacing:3px;
}
.product-img img{
  position:relative; z-index:1; width:100%; height:100%; object-fit:cover;
  filter:saturate(1.2) contrast(1.08);
  transition:transform .25s, filter .25s;
}
.product-card:hover img{ transform:scale(1.05); filter:saturate(1.6) contrast(1.15) hue-rotate(-8deg); }
.product-id{
  position:absolute; z-index:2; top:8px; left:8px;
  font-size:10px; letter-spacing:2px; color:var(--acc2);
  background:rgba(0,0,0,.65); padding:4px 8px; border:1px solid var(--acc2);
}
.product-tag{
  position:absolute; z-index:2; top:8px; right:8px;
  font-family:var(--f-pixel); font-size:8px; color:#000;
  background:var(--good); padding:5px 8px;
}
.product-tag.tag-danger{ background:var(--danger); color:#fff; animation:blink 1.4s steps(2) infinite; }
.product-body{ padding:18px; display:flex; flex-direction:column; gap:10px; flex:1; }
.product-body h3{ font-family:var(--f-pixel); font-size:12px; color:#fff; line-height:1.6; text-shadow:2px 2px 0 var(--acc); }
.product-desc{ color:var(--dim); font-size:13px; }
.spec-list{ list-style:none; font-size:12px; color:var(--text); }
.spec-list li{ padding:3px 0; border-bottom:1px dashed color-mix(in srgb, var(--line) 60%, transparent); }
.spec-list li::first-letter{ color:var(--acc2); }
.product-foot{
  margin-top:auto; display:flex; align-items:center; justify-content:space-between; gap:10px;
  padding-top:12px; border-top:1px solid var(--line);
}
.price{ font-family:var(--f-block); font-size:17px; color:var(--warn); text-shadow:0 0 10px color-mix(in srgb, var(--warn) 60%, transparent); }
.price small{ font-size:10px; }
.btn-buy{ font-size:8px; padding:10px 12px; }

/* ============================================================
   ДАТАНЕТ (телетекст)
   ============================================================ */
.teletext{
  max-width:1000px; margin:36px auto; padding:0 20px;
}
.tt-head{
  display:flex; justify-content:space-between; gap:10px; flex-wrap:wrap;
  background:var(--acc); color:#000; font-family:var(--f-pixel);
  font-size:11px; padding:14px 18px; letter-spacing:1px;
}
.tt-article{
  border:1px solid var(--line); border-top:none; padding:22px;
  background:linear-gradient(180deg, rgba(18,10,36,.5), rgba(6,2,12,.3));
}
.tt-meta{ font-size:11px; color:var(--dim); letter-spacing:2px; margin-bottom:10px; }
.tt-tag{
  display:inline-block; font-family:var(--f-pixel); font-size:8px;
  background:var(--danger); color:#fff; padding:4px 8px; margin-right:10px;
  animation:blink 2s steps(2) infinite;
}
.tt-tag.tag-green{ background:var(--good); color:#000; animation:none; }
.tt-tag.tag-amber{ background:var(--warn); color:#000; animation:none; }
.tt-tag.tag-red{ background:var(--danger); }
.tt-article h3{
  font-family:var(--f-pixel); font-size:12px; line-height:1.8; color:var(--acc2);
  margin-bottom:14px; text-shadow:2px 2px 0 rgba(0,0,0,.6);
}
.tt-cols{ display:grid; grid-template-columns:280px 1fr; gap:18px; align-items:start; }
.tt-img{
  width:100%; border:2px solid var(--line); filter:saturate(1.3) contrast(1.1);
}
.tt-img:hover{ filter:saturate(1.7) hue-rotate(-10deg); border-color:var(--acc); }
.tt-article p{ color:#c9bff0; font-size:13px; margin-bottom:10px; }
.tt-foot{
  border:1px solid var(--line); border-top:none; padding:12px 18px;
  font-size:11px; color:var(--dim); letter-spacing:1px; text-align:center;
}

/* ============================================================
   ТЕРМИНАЛ
   ============================================================ */
.terminal-wrap{ max-width:1000px; margin:36px auto; padding:0 20px; }
.terminal-titlebar{
  display:flex; align-items:center; justify-content:space-between; gap:12px;
  background:linear-gradient(90deg, var(--line), var(--panel));
  padding:10px 14px; font-size:11px; letter-spacing:1px; color:var(--dim);
}
.tt-dots{ display:inline-flex; gap:6px; }
.tt-dots i{ width:10px; height:10px; border-radius:50%; background:var(--danger); display:block; }
.tt-dots i:nth-child(2){ background:var(--warn); }
.tt-dots i:nth-child(3){ background:var(--good); }
.terminal{
  background:#03020a; border:1px solid var(--line); border-top:none;
  min-height:440px; max-height:60vh; overflow-y:auto;
  padding:18px; font-size:14px; cursor:text;
}
#term-output div{ white-space:pre-wrap; word-break:break-word; margin-bottom:2px; }
.term-ok{ color:var(--good); } .term-err{ color:var(--danger); }
.term-dim{ color:var(--dim); } .term-acc{ color:var(--acc); } .term-acc2{ color:var(--acc2); }
.term-warn{ color:var(--warn); }
#term-form{ display:flex; align-items:center; gap:8px; margin-top:8px; }
.term-prompt{ color:var(--acc); text-shadow:var(--glow-acc); white-space:nowrap; }
#term-input{
  flex:1; background:transparent; border:none; outline:none;
  color:#fff; font-family:var(--f-mono); font-size:14px; caret-color:var(--good);
}
.term-caret{ width:9px; height:16px; background:var(--good); animation:blink 1s steps(2) infinite; }
.terminal-hint{ padding:10px 14px; border:1px solid var(--line); border-top:none; font-size:11px; color:var(--dim); background:rgba(6,2,12,.6); }

/* ============================================================
   КОРП
   ============================================================ */
.corp-grid{
  display:grid; grid-template-columns:1.5fr 1fr; gap:26px;
  max-width:1200px; margin:36px auto; padding:0 24px;
}
.corp-main h3, .corp-side h3{
  font-family:var(--f-pixel); font-size:11px; color:var(--acc);
  text-shadow:var(--glow-acc); margin:26px 0 14px;
}
.corp-main p{ color:var(--dim); margin-bottom:12px; font-size:14px; }
.corp-main p b{ color:var(--acc); }
.corp-photo img{ width:100%; border:2px solid var(--line); filter:saturate(1.3); }
.corp-photo img:hover{ border-color:var(--acc2); filter:saturate(1.7); }
.corp-photo-cap{ font-size:10px; color:var(--dim); letter-spacing:1px; padding:8px 0; }
.timeline{ list-style:none; border-left:2px solid var(--acc); padding-left:18px; }
.timeline li{ padding:8px 0; color:var(--dim); font-size:13px; position:relative; }
.timeline li::before{
  content:'◆'; color:var(--acc2); position:absolute; left:-26px; text-shadow:var(--glow-acc2);
}
.timeline b{ color:var(--warn); font-family:var(--f-block); }
.team-list{ list-style:none; }
.team-list li{ padding:10px 0; border-bottom:1px dashed var(--line); }
.team-handle{ display:block; color:var(--acc2); font-family:var(--f-pixel); font-size:9px; letter-spacing:1px; margin-bottom:5px; }
.team-list em{ color:var(--dim); font-style:normal; font-size:12px; }
.org-chart{
  background:#03020a; border:1px solid var(--line); padding:16px;
  font-size:12px; color:var(--good); overflow-x:auto;
}
.corp-facts{ display:grid; grid-template-columns:repeat(3,1fr); gap:10px; margin-top:20px; }
.corp-facts div{
  border:1px solid var(--line); padding:14px 8px; text-align:center; background:rgba(18,10,36,.5);
}
.corp-facts b{ display:block; font-family:var(--f-block); font-size:18px; color:var(--warn); }
.corp-facts span{ font-size:10px; color:var(--dim); letter-spacing:1px; }

/* ============================================================
   СВЯЗЬ
   ============================================================ */
.contact-grid{
  display:grid; grid-template-columns:1fr 1.2fr; gap:26px;
  max-width:1100px; margin:36px auto; padding:0 24px;
}
.contact-info{ display:flex; flex-direction:column; gap:0; }
.contact-line{
  display:flex; justify-content:space-between; gap:12px; align-items:baseline;
  padding:14px 6px; border-bottom:1px dashed var(--line); font-size:13px;
}
.contact-line span{ color:var(--dim); font-family:var(--f-pixel); font-size:9px; }
.contact-line b{ color:var(--acc2); text-align:right; }
.contact-art{ margin-top:24px; color:var(--good); font-size:13px; text-align:center; text-shadow:0 0 8px color-mix(in srgb, var(--good) 60%, transparent); }

.contact-form{
  display:flex; flex-direction:column; gap:16px;
  border:1px solid var(--line); padding:24px; background:rgba(18,10,36,.45);
  position:relative;
}
.contact-form::after{
  content:''; position:absolute; top:-1px; right:-1px; width:14px; height:14px;
  border-top:3px solid var(--acc2); border-right:3px solid var(--acc2);
}
.contact-form label{ font-family:var(--f-pixel); font-size:9px; color:var(--dim); letter-spacing:1px; display:flex; flex-direction:column; gap:8px; }
.contact-form input, .contact-form textarea{
  background:#03020a; border:1px solid var(--line); color:#fff;
  font-family:var(--f-mono); font-size:14px; padding:12px; outline:none; resize:vertical;
}
.contact-form input:focus, .contact-form textarea:focus{ border-color:var(--acc); box-shadow:var(--glow-acc); }
.contact-log{
  background:#03020a; border:1px solid var(--line); padding:12px;
  font-size:12px; color:var(--good); min-height:80px; white-space:pre-wrap;
}

/* ============================================================
   КОРЗИНА / ТОСТ / СТАТУС-БАР
   ============================================================ */
.cart-drawer{
  position:fixed; top:0; right:0; bottom:0; width:min(420px, 92vw); z-index:9500;
  background:linear-gradient(180deg, #0d0517, #06020c);
  border-left:2px solid var(--acc); box-shadow:-20px 0 60px rgba(0,0,0,.8);
  transform:translateX(105%); transition:transform .25s steps(6);
  padding:20px; display:flex; flex-direction:column; gap:14px;
}
.cart-drawer.open{ transform:translateX(0); }
.cart-head{ display:flex; justify-content:space-between; align-items:center; font-family:var(--f-pixel); font-size:11px; color:var(--acc); }
.cart-list{ list-style:none; flex:1; overflow-y:auto; display:flex; flex-direction:column; gap:10px; }
.cart-list li{
  display:flex; justify-content:space-between; gap:10px; align-items:center;
  border:1px solid var(--line); padding:10px; font-size:12px; background:rgba(18,10,36,.5);
}
.cart-list .rm{ background:none; border:none; color:var(--danger); cursor:pointer; font-family:var(--f-mono); font-size:14px; }
.cart-list .rm:hover{ text-shadow:0 0 8px var(--danger); }
.cart-total{ font-family:var(--f-block); color:var(--warn); font-size:16px; text-align:right; }
.cart-log{ background:#03020a; border:1px solid var(--line); padding:10px; font-size:11px; color:var(--good); min-height:60px; white-space:pre-wrap; }

.toast{
  position:fixed; left:20px; bottom:52px; z-index:9600;
  background:var(--good); color:#000; font-family:var(--f-pixel); font-size:9px;
  padding:14px 16px; letter-spacing:1px; opacity:0; pointer-events:none;
  transform:translateY(8px); transition:all .2s steps(4);
  box-shadow:0 0 24px color-mix(in srgb, var(--good) 60%, transparent);
}
.toast.show{ opacity:1; transform:translateY(0); }

.statusbar{
  position:fixed; left:0; right:0; bottom:0; z-index:9000;
  display:flex; align-items:center; gap:16px; padding:6px 14px;
  background:#05010d; border-top:1px solid var(--acc);
  font-size:11px; letter-spacing:1px; color:var(--dim); flex-wrap:wrap;
}
.sb-ok{ color:var(--good); }
.sb-blink{ color:var(--good); animation:blink 1s steps(2) infinite; }
.sb-grow{ margin-left:auto; text-align:right; }

main{ padding-bottom:30px; }

/* ============================================================
   АДАПТИВ
   ============================================================ */
@media (max-width: 900px){
  .tt-cols{ grid-template-columns:1fr; }
  .corp-grid, .contact-grid{ grid-template-columns:1fr; }
  .stats-panel{ grid-template-columns:repeat(2, 1fr); }
  .stat:nth-child(2){ border-right:none; }
  .stat{ border-bottom:1px solid var(--line); }
  .logo-sub{ display:none; }
}
@media (max-width: 560px){
  .nav-link{ font-size:8px; padding:8px; }
  .header{ gap:10px; }
  .hero{ min-height:78vh; }
}

@media (prefers-reduced-motion: reduce){
  *{ animation-duration:.01s !important; animation-iteration-count:1 !important; transition-duration:.01s !important; }
}
