/*
 * Typewriter (Over philosophy quote, spec §5): the untyped remainder is present but invisible, so layout never shifts.
 * Markup contract (motion.js): [data-typewriter] > .typewriter__typed + .typewriter__rest + .typewriter__caret, plus the
 * full quote once more in an .sr-only span for screen readers (the animated spans are aria-hidden).
 * Without JS the remainder is simply visible.
 */
.js .typewriter__rest { opacity: 0; user-select: none; }
.typewriter__caret {
	display: none;
	width: 2px;
	height: 1em;
	margin-inline-start: calc(var(--spacing) * 0.5);
	vertical-align: middle;
	background-color: var(--color-brand-orange);
	animation: tc-pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite;
}
.js .typewriter__caret { display: inline-block; }
@keyframes tc-pulse { 50% { opacity: 0.5; } }
@media (prefers-reduced-motion: reduce) { .typewriter__caret { animation: none; } }
