.terminal-button {
  position: relative;
  isolation: isolate;
  box-sizing: border-box;
  max-width: 100%;
  --terminal-green: #b9d2b5;
}
body .terminal-button:not(.navcta) {
  min-width: min(100%, calc(var(--terminal-chars, 12) * 9.6px + 24px));
  justify-content: center;
}
.terminal-button:is(.inline-link,.cred-link,.ext) { display: inline-flex; }
body .terminal-button:not(:disabled):not([aria-disabled="true"]):is(:hover, :focus-visible, .is-terminal) {
  background: #080e0d !important;
  color: var(--terminal-green) !important;
  border-color: #90af75 !important;
}
.terminal-button::after {
  content: '';
  position: absolute;
  inset: 0;
  opacity: 0;
  pointer-events: none;
  background: repeating-linear-gradient(to bottom, transparent 0 2px, #b9d2b512 2px 3px);
  z-index: -1;
}
.terminal-button.is-terminal::after { opacity: 1; }
.terminal-button .button-label { font: inherit; white-space: normal; }
.terminal-button.is-terminal .button-label { opacity: 0; }
.terminal-button .terminal-output {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  pointer-events: none;
  font: 700 16px/1.4 'Courier New', Courier, monospace;
  letter-spacing: -.02em;
  text-shadow: 0 0 6px #b9d2b560;
  white-space: nowrap;
  opacity: 0;
}
.terminal-button.is-terminal .terminal-output { opacity: 1; }
.terminal-button .terminal-output-inner {
  display: inline-flex;
  align-items: center;
  justify-content: flex-start;
  width: max-content;
  max-width: none;
  font: inherit;
}
.terminal-button .terminal-output-inner > span { font: inherit; }
.terminal-typed::before { content: attr(data-terminal-text); }
.terminal-cursor {
  display: inline-block;
  flex-shrink: 0;
  width: .45em;
  height: 1em;
  margin-left: 3px;
  background: currentColor;
  box-shadow: 0 0 5px #b9d2b550;
}
.is-terminal .terminal-cursor { animation: terminal-cursor-pulse 1.1s steps(1,end) infinite; }
@keyframes terminal-cursor-pulse {
  0%,49% { opacity: 1; }
  50%,100% { opacity: 0; }
}
@media(prefers-reduced-motion:reduce) {
  .is-terminal .terminal-cursor { animation: none; }
}
@media(max-width:760px) {
  body .terminal-button:not(.navcta) {
    min-width: min(100%, calc(var(--terminal-chars, 12) * 8.4px + 20px));
  }
}
