/* A single terminal prompt and quiet, one-time entrances. */
.typewriter {
  display: inline-grid;
  vertical-align: bottom;
  padding-right: 1ch;
}
.typewriter-source,
.typewriter-display { grid-area: 1 / 1; }
.typewriter-display { display: none; }
.typewriter.is-typing .typewriter-source { opacity: 0; }
.typewriter.is-typing .typewriter-display { display: block; }
.typewriter-caret { color: #ffffff; }
.typewriter.is-complete .typewriter-caret {
  animation: terminal-caret .65s step-end 3 forwards;
}
@keyframes terminal-caret {
  0%, 49% { opacity: 1; }
  50%, 100% { opacity: 0; }
}
@keyframes answer-arrival {
  from { opacity: .4; }
  to { opacity: 1; }
}
@media (prefers-reduced-motion: no-preference) {
  /* JS prepares only offscreen content. No transforms or animation restarts. */
  .motion-ready {
    opacity: 0;
    transition: opacity .7s ease-out;
  }
  .motion-ready.motion-visible { opacity: 1; }
  .faq-list details[open] > p,
  .audience-panel { animation: answer-arrival .45s ease-out; }
  a .arrow-icon { transition: transform .2s ease; }
}
@media (hover: none) and (prefers-reduced-motion: no-preference) {
  /* Touch feedback ends on release instead of leaving a simulated hover. */
  .button:hover { transform: none; }
  .button:active { transform: scale(.98); }
}
@media (hover: hover) and (pointer: fine) and (prefers-reduced-motion: no-preference) {
  a.button:hover .arrow-icon,
  a.text-link[href="#kontakt"]:hover .arrow-icon { transform: translate(2px, -2px); }
  a[href="#beratung"]:hover .arrow-icon { transform: translateY(2px); }
  a.back-top:hover .arrow-icon { transform: translateY(-2px); }
}
@media (prefers-reduced-motion: reduce) {
  .typewriter.is-typing .typewriter-source { opacity: 1; }
  .typewriter.is-typing .typewriter-display { display: none; }
  .motion-ready { opacity: 1; transition: none; }
}
@media print {
  .motion-ready { opacity: 1; transition: none; }
}
