
/* Hellheart AI terminal FX — scoped to hellheart_ai.html */
body.hh-terminal #chatLog .cubeLine{
  position: relative;
  overflow: hidden;
  border: 1px solid rgba(255,230,0,.45) !important;
  background: rgba(0,0,0,.78) !important;
  box-shadow: 0 0 18px rgba(255,230,0,.20), inset 0 0 12px rgba(255,0,0,.10);
}

/* text (yellow default) + chromatic glitch offset */
body.hh-terminal #chatLog .cubeLine > div:last-child{
  color: #ffe600 !important;
  font-weight: 900 !important;
  text-shadow:
    1px 0 rgba(255,0,0,.75),
   -1px 0 rgba(0,255,255,.65),
    0 0 10px rgba(255,230,0,.55);
  white-space: pre-wrap;
}

/* typewriter cursor */
body.hh-terminal #chatLog .cubeLine.hh-typing > div:last-child::after{
  content:"▌";
  display:inline-block;
  margin-left:6px;
  opacity:.9;
  animation: hh-blink .75s steps(1) infinite;
}
@keyframes hh-blink{50%{opacity:0}}

/* scanlines */
body.hh-terminal #chatLog .cubeLine::before{
  content:"";
  pointer-events:none;
  position:absolute;
  inset:0;
  background: repeating-linear-gradient(
    to bottom,
    rgba(255,255,255,.06) 0px,
    rgba(0,0,0,0) 2px,
    rgba(0,0,0,0) 5px
  );
  mix-blend-mode: overlay;
  opacity: .24;
  transform: translateY(-10px);
  animation: hh-scan 2.2s linear infinite;
}
@keyframes hh-scan{
  0%{ transform: translateY(-12px); }
  100%{ transform: translateY(12px); }
}

/* random signal-loss burst */
body.hh-terminal #chatLog .cubeLine.hh-loss{
  animation: hh-loss .28s steps(2,end) 1;
}
@keyframes hh-loss{
  0%{ filter: brightness(.25) contrast(2.0) saturate(0); }
  45%{ filter: invert(1) contrast(1.2); }
  100%{ filter: none; }
}

/* glitch-in */
body.hh-terminal #chatLog .cubeLine.hh-glitch-in{
  animation: hh-pop 220ms ease-out both, hh-glitch 620ms steps(2,end) both;
}
@keyframes hh-pop{
  from{ transform: translateY(6px) scale(.99); opacity:0; }
  to{ transform: translateY(0) scale(1); opacity:1; }
}
@keyframes hh-glitch{
  0%{ transform: translate(0,0); }
  10%{ transform: translate(-2px,1px); }
  20%{ transform: translate(2px,-1px); }
  30%{ transform: translate(-1px,0); }
  40%{ transform: translate(3px,1px); }
  50%{ transform: translate(-3px,-1px); }
  60%{ transform: translate(1px,0); }
  70%{ transform: translate(-1px,1px); }
  80%{ transform: translate(2px,0); }
  90%{ transform: translate(-2px,-1px); }
  100%{ transform: translate(0,0); }
}
