/* ================================================================
   theme.css — shared color tokens + minimal chrome for nikita.sh
   Used by both index.html (the terminal) and cv.html (the resume).
   Keep this file the single source of truth for anything shared —
   page-specific layout (chips, jobs, etc.) stays in each page's
   own <style> block.
   ================================================================ */

:root{
  --bg:#050806;
  --panel:#070d09;
  --fg:#3dff8a;
  --fg-dim:#2a9c60;
  --fg-dim2:#1f6b45;
  --accent:#5ff1ff;
  --amber:#ffb454;
  --amber-glow:0 0 6px rgba(255,180,84,.6);
  --red:#ff5f56;
  --border:rgba(61,255,138,.28);
  --glow:0 0 4px rgba(61,255,138,.85), 0 0 12px rgba(61,255,138,.45), 0 0 24px rgba(61,255,138,.25);
}
*{box-sizing:border-box;}
html,body{height:100%;}
html{
  -webkit-text-size-adjust:100%; text-size-adjust:100%;
  scrollbar-width:none; /* Firefox */
  -ms-overflow-style:none; /* legacy Edge/IE */
}
html::-webkit-scrollbar{display:none;} /* Chrome/Safari/new Edge */
body{
  margin:0;
  background:
    radial-gradient(ellipse at 50% 0%, rgba(61,255,138,.06), transparent 60%),
    var(--bg);
  color:var(--fg);
  font-family:'JetBrains Mono', ui-monospace, 'SF Mono', Menlo, Consolas, monospace;
  min-height:100vh;
  display:flex;
  flex-direction:column;
  align-items:center;
  padding:28px 14px 16px;
  overflow-x:hidden;
  position:relative;
}

/* ---------- background matrix rain ---------- */
#matrix{
  position:fixed; inset:0; width:100%; height:100%;
  z-index:0; opacity:.24; pointer-events:none;
  transition:opacity .6s ease;
}
#matrix.off{opacity:0;}

/* ---------- CRT overlay ---------- */
.crt{
  position:fixed; inset:0; z-index:5; pointer-events:none;
  background:repeating-linear-gradient(
    to bottom,
    rgba(0,0,0,0) 0px,
    rgba(0,0,0,0) 1px,
    rgba(0,0,0,.22) 2px,
    rgba(0,0,0,0) 3px
  );
  mix-blend-mode:multiply;
  animation:flicker 6s infinite;
}
.vignette{
  position:fixed; inset:0; z-index:4; pointer-events:none;
  background:radial-gradient(ellipse at center, rgba(0,0,0,0) 55%, rgba(0,0,0,.55) 100%);
}
@keyframes flicker{
  0%,100%{opacity:.9;}
  92%{opacity:.9;}
  93%{opacity:.7;}
  94%{opacity:1;}
  95%{opacity:.75;}
  96%{opacity:1;}
}

.wrap{position:relative; z-index:2; width:100%; max-width:880px;}

.term{
  background:linear-gradient(180deg, rgba(15,25,17,.92), rgba(6,10,8,.96));
  border:1px solid var(--border);
  border-radius:10px;
  box-shadow:var(--glow), 0 20px 60px rgba(0,0,0,.6), inset 0 0 40px rgba(61,255,138,.03);
  overflow:hidden;
  backdrop-filter:blur(2px);
}
.term-head{
  display:flex; align-items:center; gap:8px;
  padding:10px 14px;
  background:rgba(0,0,0,.35);
  border-bottom:1px solid var(--border);
}
.dot{width:11px; height:11px; border-radius:50%; display:inline-block;}
.dot.r{background:var(--red); box-shadow:0 0 6px var(--red);}
.dot.y{background:var(--amber); box-shadow:0 0 6px var(--amber);}
.dot.g{background:var(--fg); box-shadow:0 0 6px var(--fg);}
.term-title{
  flex:1; text-align:center; font-size:12px; color:var(--fg-dim);
  letter-spacing:.04em;
}

.glow{text-shadow:var(--glow);}
.dim{color:var(--fg-dim);}
.accent{color:var(--accent); text-shadow:0 0 6px rgba(95,241,255,.7);}
.amber{color:var(--amber); text-shadow:var(--amber-glow);}
a{color:var(--accent);}
a:hover{text-shadow:0 0 8px var(--accent);}

.line{margin:0 0 2px; word-break:break-word;}

.topbar a{color:var(--fg-dim); text-decoration:none; padding:6px 8px; border-radius:4px;}
.topbar a:hover{color:var(--fg); text-shadow:var(--glow); background:rgba(61,255,138,.08);}

footer{
  margin-top:14px; font-size:11px; color:var(--fg-dim); text-align:center;
  letter-spacing:.03em;
}
footer a{color:var(--fg-dim); text-decoration:underline;}
footer a:hover{color:var(--fg);}
