/* ============================================================
   HACKING MINIGAME — slice-scoped styles.
   ============================================================ */

/* Outer container injected into #output */
.hack-screen {
  border: 1px solid var(--green-dim);
  padding: 14px 18px;
  margin: 6px 0 10px;
  animation: fadeIn .2s ease-in;
}

/* Title row */
.hack-header {
  font-weight: bold;
  letter-spacing: .07em;
  text-shadow: 0 0 8px var(--green), 0 0 18px var(--green-dim);
  margin-bottom: 8px;
}

/* Attempts pip bar */
.hack-attempts { margin: 6px 0 10px; letter-spacing: .04em; }
.hack-pip {
  display: inline-block;
  width: 14px; height: 14px;
  background: var(--green);
  margin-right: 3px;
  vertical-align: middle;
  box-shadow: 0 0 6px var(--green);
  transition: background .3s, box-shadow .3s;
}
.hack-pip.spent {
  background: var(--green-dark);
  box-shadow: none;
  border: 1px solid var(--green-dim);
}

/* Two-column layout: memory dump | word list */
.hack-columns {
  display: flex;
  gap: 28px;
  align-items: flex-start;
  flex-wrap: wrap;
}

/* Left: hex memory dump */
.hack-dump {
  flex: 1;
  min-width: 200px;
  color: var(--green-mid);
  font-size: 12px;
  line-height: 1.85;
  letter-spacing: .03em;
}
.hack-dump-addr { color: var(--green-dim); }
.hack-dump-word { color: var(--green); font-weight: bold; }

/* Right: clickable word list */
.hack-words-col { min-width: 140px; line-height: 1.85; }

/* Individual word button */
.hack-word {
  display: block;
  cursor: pointer;
  padding: 1px 4px;
  letter-spacing: .08em;
  transition: color .08s, background .08s, text-shadow .08s;
  border-radius: 2px;
}
.hack-word:hover:not(.used),
.hack-word:focus:not(.used) {
  outline: none; color: #fff;
  background: rgba(51, 255, 51, .09);
  text-shadow: 0 0 10px var(--green), 0 0 22px var(--green-dim);
}
.hack-word.used {
  color: var(--green-dark);
  pointer-events: none;
  text-decoration: line-through;
}
.hack-word.correct {
  color: #fff;
  text-shadow: 0 0 10px var(--green), 0 0 22px var(--green-dim);
  pointer-events: none;
}

/* Guess feedback log */
.hack-log { margin-top: 10px; font-size: 12px; color: var(--green-mid); min-height: 1.8em; }
.hack-log-entry { display: block; animation: fadeIn .15s ease-in; }
.hack-log-match { color: var(--green); font-weight: bold; }
.hack-log-zero  { color: var(--green-dim); }

/* Terminal-locked state */
.hack-locked-msg {
  margin-top: 10px;
  color: var(--red);
  text-shadow: 0 0 8px var(--red);
  font-weight: bold;
  letter-spacing: .06em;
}

/* Access-granted state */
.hack-granted-msg {
  margin-top: 10px;
  color: var(--green);
  text-shadow: 0 0 10px var(--green), 0 0 24px var(--green-mid);
  font-weight: bold;
  letter-spacing: .06em;
}

/* Architect unlock banner */
.hack-unlock-banner {
  margin-top: 8px;
  padding: 6px 10px;
  border: 1px solid var(--green);
  color: var(--green);
  text-shadow: 0 0 8px var(--green);
  letter-spacing: .06em;
  animation: fadeIn .4s ease-in;
}
