.dimi-ta {
	--dimi-ta-duration: 5s;
	--dimi-ta-delay: 0s;
	--dimi-ta-size: 72px;
	--dimi-ta-weight: 800;
	--dimi-ta-line: 1.05;
	--dimi-ta-spacing: 0;
	--dimi-ta-color-1: #6d5dfc;
	--dimi-ta-color-2: #00d4ff;
	--dimi-ta-color-3: #ffdf3d;
	--dimi-ta-link-hover-color: var(--dimi-ta-color-3);
	--dimi-ta-stroke: 1px;
	--dimi-ta-brush-stroke: 1px;
	--dimi-ta-stroke-linecap: butt;
	--dimi-ta-zigzag-iterations: 1;
	--dimi-ta-zigzag-fill: forwards;
	--dimi-ta-roll-count: 3;
	--dimi-ta-word-name: dimi-ta-word-default;
	display: block;
	margin: 0;
	color: var(--dimi-ta-color-1);
	font-size: var(--dimi-ta-size);
	font-weight: var(--dimi-ta-weight);
	letter-spacing: var(--dimi-ta-spacing);
	line-height: var(--dimi-ta-line);
	text-wrap: balance;
}

.dimi-ta--align-left {
	text-align: left;
}

.dimi-ta--align-center {
	text-align: center;
}

.dimi-ta--align-right {
	text-align: right;
}

.dimi-ta__text {
	display: inline-block;
	backface-visibility: hidden;
}

.dimi-ta--gradient .dimi-ta__text,
.dimi-ta--shimmer .dimi-ta__text {
	background: linear-gradient(90deg, var(--dimi-ta-color-1), var(--dimi-ta-color-2), var(--dimi-ta-color-3), var(--dimi-ta-color-1));
	background-size: 300% 100%;
	-webkit-background-clip: text;
	background-clip: text;
	color: transparent;
	animation: dimi-ta-gradient var(--dimi-ta-duration) linear infinite;
	animation-delay: var(--dimi-ta-delay);
	transform: translateZ(0);
	will-change: background-position;
}

.dimi-ta--shimmer .dimi-ta__text {
	background-image: linear-gradient(100deg, var(--dimi-ta-color-1) 0%, var(--dimi-ta-color-1) 35%, #fff 50%, var(--dimi-ta-color-2) 65%, var(--dimi-ta-color-1) 100%);
}

.dimi-ta--aurora .dimi-ta__text {
	position: relative;
	color: var(--dimi-ta-color-1);
	text-shadow:
		0 0 .18em color-mix(in srgb, var(--dimi-ta-color-2) 75%, transparent),
		0 0 .5em color-mix(in srgb, var(--dimi-ta-color-3) 45%, transparent);
	animation: dimi-ta-aurora var(--dimi-ta-duration) ease-in-out infinite alternate;
	animation-delay: var(--dimi-ta-delay);
	will-change: text-shadow, opacity;
}

.dimi-ta--neon .dimi-ta__text {
	color: var(--dimi-ta-color-1);
	text-shadow:
		0 0 .04em #fff,
		0 0 .16em var(--dimi-ta-color-1),
		0 0 .4em var(--dimi-ta-color-2),
		0 0 .85em var(--dimi-ta-color-2);
	animation: dimi-ta-neon var(--dimi-ta-duration) ease-in-out infinite;
	animation-delay: var(--dimi-ta-delay);
	will-change: opacity;
}

.dimi-ta--stroke .dimi-ta__text {
	color: transparent;
	-webkit-text-stroke: var(--dimi-ta-stroke) var(--dimi-ta-color-1);
	text-stroke: var(--dimi-ta-stroke) var(--dimi-ta-color-1);
	animation: dimi-ta-stroke-fill var(--dimi-ta-duration) ease-in-out infinite alternate;
	animation-delay: var(--dimi-ta-delay);
	will-change: color;
}

.dimi-ta--highlighted {
	color: var(--dimi-ta-color-1);
	overflow: visible;
	text-wrap: normal;
}

.dimi-ta__highlight-line {
	display: inline-flex;
	align-items: baseline;
	flex-wrap: nowrap;
	gap: .18em;
	max-width: 100%;
	white-space: nowrap;
}

.dimi-ta__highlighted {
	position: relative;
	display: inline-flex;
	flex: 0 0 auto;
	white-space: nowrap;
	word-break: keep-all;
	overflow-wrap: normal;
	z-index: 0;
}

.dimi-ta__highlight-before,
.dimi-ta__highlight-after {
	display: inline-block;
	flex: 0 0 auto;
	white-space: nowrap;
	word-break: keep-all;
	overflow-wrap: normal;
}

.dimi-ta__highlight-link {
	color: inherit !important;
	text-decoration: none !important;
	transition: color .2s ease;
}

.dimi-ta__highlight-link:hover,
.dimi-ta__highlight-link:focus-visible {
	color: var(--dimi-ta-link-hover-color) !important;
}

.dimi-ta__highlight-text {
	position: relative;
	display: inline-block;
	z-index: 2;
	white-space: nowrap;
	word-break: keep-all;
	overflow-wrap: normal;
}

.dimi-ta__highlight-svg {
	position: absolute;
	inset: -0.18em -0.16em -0.22em;
	z-index: 1;
	display: block;
	width: calc(100% + .32em);
	height: calc(100% + .4em);
	overflow: visible;
	pointer-events: none;
}

.dimi-ta__highlight-svg path {
	fill: none;
	stroke: var(--dimi-ta-color-2);
	stroke-width: max(var(--dimi-ta-stroke), .06em);
	stroke-linecap: round;
	stroke-linejoin: round;
	stroke-dasharray: 1000;
	stroke-dashoffset: 1000;
	vector-effect: non-scaling-stroke;
	animation: dimi-ta-highlight-draw var(--dimi-ta-duration) cubic-bezier(.2, .8, .2, 1) infinite;
	animation-delay: var(--dimi-ta-delay);
}

.dimi-ta--highlight-shape-underline .dimi-ta__highlight-svg,
.dimi-ta--highlight-shape-double-underline .dimi-ta__highlight-svg,
.dimi-ta--highlight-shape-curly .dimi-ta__highlight-svg {
	inset: auto -0.14em -0.28em;
	height: .55em;
}

.dimi-ta--highlight-shape-underline-zigzag .dimi-ta__highlight-svg {
	inset: auto;
	top: 50%;
	left: 50%;
	width: calc(100% + 20px);
	height: calc(100% + 20px);
	transform: translate(-50%, -50%);
}

.dimi-ta--highlight-shape-underline-zigzag .dimi-ta__highlight-svg path {
	opacity: 0;
	stroke-dasharray: 0, 1500;
	stroke-dashoffset: 0;
	stroke-width: var(--dimi-ta-brush-stroke);
	stroke-linecap: var(--dimi-ta-stroke-linecap);
	stroke-linejoin: miter;
	transition: .3s;
	animation-name: dimi-ta-highlight-zigzag;
	animation-duration: var(--dimi-ta-duration);
	animation-timing-function: ease;
	animation-iteration-count: var(--dimi-ta-zigzag-iterations);
	animation-fill-mode: var(--dimi-ta-zigzag-fill);
	animation-delay: var(--dimi-ta-delay);
}

.dimi-ta--highlight-shape-diagonal .dimi-ta__highlight-svg,
.dimi-ta--highlight-shape-strikethrough .dimi-ta__highlight-svg,
.dimi-ta--highlight-shape-x .dimi-ta__highlight-svg {
	inset: -0.08em -0.12em;
	width: calc(100% + .24em);
	height: calc(100% + .16em);
}

.dimi-ta--roller {
	display: flex;
	align-items: baseline;
	justify-content: center;
	gap: .25em;
	overflow: hidden;
}

.dimi-ta--align-left.dimi-ta--roller {
	justify-content: flex-start;
}

.dimi-ta--align-right.dimi-ta--roller {
	justify-content: flex-end;
}

.dimi-ta__roller {
	display: inline-block;
	height: 1em;
	overflow: hidden;
	color: var(--dimi-ta-color-2);
	vertical-align: baseline;
}

.dimi-ta__roller-list {
	display: grid;
	backface-visibility: hidden;
	min-width: max-content;
	transform: translate3d(0, 0, 0);
}

.dimi-ta__roller-list span {
	display: block;
	grid-area: 1 / 1;
	line-height: 1;
	opacity: 0;
	white-space: nowrap;
	animation: var(--dimi-ta-word-name) var(--dimi-ta-duration) cubic-bezier(.22, .85, .32, 1) infinite;
	animation-delay: calc(var(--dimi-ta-delay) + var(--dimi-ta-word-delay, 0s));
	backface-visibility: hidden;
	transform: translate3d(0, .65em, 0);
	will-change: opacity, transform;
}

.dimi-ta--roller-static .dimi-ta__roller-list span {
	opacity: 1;
	animation: none;
	transform: translate3d(0, 0, 0);
}

@keyframes dimi-ta-gradient {
	to {
		background-position: 300% 50%;
	}
}

@keyframes dimi-ta-aurora {
	0% {
		opacity: .9;
		text-shadow: 0 0 .2em var(--dimi-ta-color-2), 0 0 .55em var(--dimi-ta-color-3);
	}

	100% {
		opacity: 1;
		text-shadow: 0 0 .35em var(--dimi-ta-color-3), 0 0 .9em var(--dimi-ta-color-2);
	}
}

@keyframes dimi-ta-neon {
	0%,
	100% {
		opacity: 1;
	}

	46% {
		opacity: .78;
	}

	48%,
	52% {
		opacity: 1;
	}
}

@keyframes dimi-ta-stroke-fill {
	to {
		color: var(--dimi-ta-color-2);
		-webkit-text-stroke-color: var(--dimi-ta-color-1);
		text-stroke-color: var(--dimi-ta-color-1);
	}
}

@keyframes dimi-ta-highlight-draw {
	0% {
		opacity: 0;
		stroke-dashoffset: 1000;
	}

	12% {
		opacity: 1;
	}

	42%,
	72% {
		opacity: 1;
		stroke-dashoffset: 0;
	}

	100% {
		opacity: 0;
		stroke-dashoffset: 0;
	}
}

@keyframes dimi-ta-highlight-zigzag {
	0% {
		opacity: 1;
		stroke-dasharray: 0, 1500;
	}

	100% {
		opacity: 1;
		stroke-dasharray: 1500, 1500;
	}
}

@keyframes dimi-ta-word-default {
	0% {
		opacity: 0;
		transform: translate3d(0, .65em, 0);
	}

	8%,
	24% {
		opacity: 1;
		transform: translate3d(0, 0, 0);
	}

	34%,
	100% {
		opacity: 0;
		transform: translate3d(0, -.65em, 0);
	}
}

@supports not (text-shadow: 0 0 .18em color-mix(in srgb, #fff 75%, transparent)) {
	.dimi-ta--aurora .dimi-ta__text {
		text-shadow:
			0 0 .18em var(--dimi-ta-color-2),
			0 0 .5em var(--dimi-ta-color-3);
	}
}

@media (prefers-reduced-motion: reduce) {
	.dimi-ta__text,
	.dimi-ta__roller-list {
		animation-duration: 1ms !important;
		animation-iteration-count: 1 !important;
	}

	.dimi-ta__roller-list span {
		animation: none !important;
		opacity: 1;
		transform: none;
	}

	.dimi-ta__roller-list span:not(:first-child) {
		display: none;
	}

	.dimi-ta__highlight-svg path {
		animation: none !important;
		opacity: 1;
		stroke-dashoffset: 0;
	}
}
