.lichttext {
	--lt-color: #ffcc33;
	--lt-align: left;
	--lt-shadow: rgba(0, 0, 0, 0);
	--lt-shadow-blur: 14px;
	--lt-reflection: 0.55;
	--lt-gap: 0px;
	display: block;
	display: flow-root;
	width: 100%;
	max-width: 100%;
	min-width: 0;
	height: auto;
	position: relative;
	z-index: 0;
	isolation: isolate;
	box-sizing: border-box;
	margin: 0 !important;
	margin-block: 0 !important;
	margin-bottom: var(--lt-gap) !important;
	margin-block-end: var(--lt-gap) !important;
	padding: 0;
	text-align: var(--lt-align);
}

.lichttext > :first-child {
	margin-top: 0 !important;
	margin-block-start: 0 !important;
}

.lichttext > :last-child {
	margin-bottom: 0 !important;
	margin-block-end: 0 !important;
}

.lichttext.lichttext--direct {
	padding: 0 !important;
	padding-block: 0 !important;
}

.lichttext *,
.lichttext *::before,
.lichttext *::after {
	box-sizing: border-box;
}

.lichttext :where(h1, h2, h3, h4, h5, h6, p, div) {
	text-align: var(--lt-align);
}

.lichttext__visual {
	white-space: pre-wrap;
}

.lichttext__word {
	display: inline-block;
	max-width: 100%;
	white-space: nowrap;
}

.lichttext__word--breakable {
	display: inline;
	white-space: normal;
}

.lichttext__char {
	position: relative;
	display: inline-block;
	text-shadow: 0 0 var(--lt-shadow-blur) var(--lt-shadow);
	transform-origin: 50% 100%;
}

.lichttext--forced-color,
.lichttext--forced-color .lichttext__visual,
.lichttext--forced-color .lichttext__visual *,
.lichttext--forced-color .lichttext__char {
	color: var(--lt-color) !important;
}

.lichttext--prepared:not(.lichttext--running):not(.lichttext--complete):not(.lichttext--reduced-motion) .lichttext__char {
	opacity: 0;
}

.lichttext--running .lichttext__char {
	animation-fill-mode: both;
	animation-timing-function: cubic-bezier(0.2, 0.72, 0.24, 1);
	backface-visibility: hidden;
	will-change: opacity, transform;
}

.lichttext--complete .lichttext__char {
	opacity: 1;
	filter: none;
	transform: none;
	animation: none;
	backface-visibility: visible;
	will-change: auto;
}

.lichttext--running[data-effect="legen"] .lichttext__char {
	animation-name: lichttext-legen;
}

.lichttext--running[data-effect="gleiten"] .lichttext__char {
	animation-name: lichttext-gleiten;
}

.lichttext--running[data-effect="zoom"] .lichttext__char {
	animation-name: lichttext-zoom;
}

.lichttext--running[data-effect="sanft"] .lichttext__char {
	animation-name: lichttext-sanft;
}

.lichttext--running[data-effect="drehen"] .lichttext__char {
	animation-name: lichttext-drehen;
	transform-origin: 50% 50%;
}

.lichttext--running .lichttext__char::after {
	position: absolute;
	inset: 0;
	content: attr(data-char);
	color: transparent;
	background: linear-gradient(105deg, transparent 15%, rgba(255, 255, 255, 0.95) 48%, transparent 78%);
	background-position: 160% 0;
	background-size: 230% 100%;
	-webkit-background-clip: text;
	background-clip: text;
	opacity: 0;
	pointer-events: none;
	animation-name: lichttext-reflex;
	animation-duration: inherit;
	animation-delay: inherit;
	animation-fill-mode: both;
	animation-timing-function: ease-out;
}

.lichttext__sr-only {
	position: absolute !important;
	width: 1px !important;
	height: 1px !important;
	padding: 0 !important;
	margin: -1px !important;
	overflow: hidden !important;
	clip: rect(0, 0, 0, 0) !important;
	white-space: nowrap !important;
	border: 0 !important;
}

@keyframes lichttext-legen {
	0% {
		opacity: 0;
		filter: blur(7px);
		transform: perspective(500px) translateY(-0.42em) rotateX(-72deg) scale(1.08);
	}
	62% {
		opacity: 1;
		filter: blur(0.4px);
		transform: perspective(500px) translateY(0.04em) rotateX(7deg) scale(0.99);
	}
	100% {
		opacity: 1;
		filter: blur(0);
		transform: perspective(500px) translateY(0) rotateX(0) scale(1);
	}
}

@keyframes lichttext-gleiten {
	0% {
		opacity: 0;
		filter: blur(8px);
		transform: translate3d(-0.45em, 0.18em, 0) skewX(-7deg);
	}
	100% {
		opacity: 1;
		filter: blur(0);
		transform: translate3d(0, 0, 0) skewX(0);
	}
}

@keyframes lichttext-zoom {
	0% {
		opacity: 0;
		filter: blur(6px);
		transform: scale(1.38);
	}
	100% {
		opacity: 1;
		filter: blur(0);
		transform: scale(1);
	}
}

@keyframes lichttext-sanft {
	0% {
		opacity: 0;
		filter: blur(5px);
		transform: translateY(0.22em);
	}
	100% {
		opacity: 1;
		filter: blur(0);
		transform: translateY(0);
	}
}

@keyframes lichttext-drehen {
	0% {
		opacity: 0;
		filter: blur(5px);
		transform: perspective(650px) rotateY(-68deg) translateZ(0.08em) scale(0.96);
	}
	58% {
		opacity: 1;
		filter: blur(0.4px);
		transform: perspective(650px) rotateY(8deg) translateZ(0) scale(1.01);
	}
	100% {
		opacity: 1;
		filter: blur(0);
		transform: perspective(650px) rotateY(0) translateZ(0) scale(1);
	}
}

@keyframes lichttext-reflex {
	0%, 48% {
		background-position: 160% 0;
		opacity: 0;
	}
	66% {
		opacity: var(--lt-reflection);
	}
	100% {
		background-position: -80% 0;
		opacity: 0;
	}
}

@media (prefers-reduced-motion: reduce) {
	.lichttext .lichttext__char,
	.lichttext .lichttext__char::after {
		opacity: 1 !important;
		filter: none !important;
		transform: none !important;
		animation: none !important;
	}
}
