.mt-motion-typography {
	--mt-duration: 0.8s;
	--mt-stagger: 0.05s;
	--mt-delay: 0s;
	--mt-block-color: #111111;
	--mt-stroke-color: currentColor;
	--mt-stroke-width: 1px;
	--mt-cursor-color: currentColor;
	--mt-channel-a: #ff003c;
	--mt-channel-b: #00d9ff;
	--mt-glow-color: #00d9ff;
	--mt-spotlight-dim: #555555;
	--mt-spotlight-highlight: #ffffff;
	display: block;
}

.mt-motion-typography__link {
	color: inherit;
	display: inline-block;
	text-decoration: none;
}

.mt-motion-typography__text {
	display: inline-block;
	margin: 0;
	max-width: 100%;
	position: relative;
	white-space: normal;
}

.mt-motion-typography__segment {
	display: inline-block;
	opacity: 0;
	transform-origin: center;
	white-space: pre;
}

.mt-motion-typography.is-ready .mt-motion-typography__text {
	visibility: visible;
}

.mt-motion-typography.is-playing .mt-motion-typography__segment {
	animation-delay: calc(var(--mt-delay) + (var(--mt-index) * var(--mt-stagger)));
	animation-duration: var(--mt-duration);
	animation-fill-mode: both;
	animation-timing-function: cubic-bezier(0.2, 0.7, 0.2, 1);
}

.mt-preset-fade_in.is-playing .mt-motion-typography__segment { animation-name: mtFadeIn; }
.mt-preset-slide_up.is-playing .mt-motion-typography__segment { animation-name: mtSlideUp; }
.mt-preset-slide_down.is-playing .mt-motion-typography__segment { animation-name: mtSlideDown; }
.mt-preset-slide_left.is-playing .mt-motion-typography__segment { animation-name: mtSlideLeft; }
.mt-preset-slide_right.is-playing .mt-motion-typography__segment { animation-name: mtSlideRight; }
.mt-preset-zoom_in.is-playing .mt-motion-typography__segment { animation-name: mtZoomIn; }
.mt-preset-zoom_out.is-playing .mt-motion-typography__segment { animation-name: mtZoomOut; }
.mt-preset-scale_in.is-playing .mt-motion-typography__segment { animation-name: mtScaleIn; }
.mt-preset-rise_up.is-playing .mt-motion-typography__segment { animation-name: mtRiseUp; }
.mt-preset-fall_down.is-playing .mt-motion-typography__segment { animation-name: mtFallDown; }
.mt-preset-blur_in.is-playing .mt-motion-typography__segment { animation-name: mtBlurIn; }
.mt-preset-focus_in.is-playing .mt-motion-typography__segment { animation-name: mtFocusIn; }
.mt-preset-blur_in_right.is-playing .mt-motion-typography__segment { animation-name: mtBlurInRight; }
.mt-preset-blur_in_left.is-playing .mt-motion-typography__segment { animation-name: mtBlurInLeft; }
.mt-preset-blur_drop.is-playing .mt-motion-typography__segment { animation-name: mtBlurDrop; }
.mt-preset-blur_rise.is-playing .mt-motion-typography__segment { animation-name: mtBlurRise; }
.mt-preset-slit_in_vertical.is-playing .mt-motion-typography__segment { animation-name: mtSlitInVertical; }
.mt-preset-slit_in_horizontal.is-playing .mt-motion-typography__segment { animation-name: mtSlitInHorizontal; }
.mt-preset-spotlight .mt-motion-typography__segment {
	background: linear-gradient(90deg, var(--mt-spotlight-dim) 0%, var(--mt-spotlight-highlight) 50%, var(--mt-spotlight-dim) 100%);
	background-clip: text;
	background-size: 220% auto;
	color: transparent;
	-webkit-background-clip: text;
}
.mt-preset-spotlight.is-playing .mt-motion-typography__segment { animation-name: mtSpotlight; }
.mt-preset-outline_to_solid.is-playing .mt-motion-typography__segment { animation-name: mtOutlineToSolid; }
.mt-preset-solid_to_outline.is-playing .mt-motion-typography__segment { animation-name: mtSolidToOutline; }
.mt-preset-shadow_first.is-playing .mt-motion-typography__segment { animation-name: mtShadowFirst; }
.mt-preset-bounce.is-playing .mt-motion-typography__segment { animation-name: mtBounce; }
.mt-preset-drop_in.is-playing .mt-motion-typography__segment { animation-name: mtDropIn; }
.mt-preset-bounce_in_left.is-playing .mt-motion-typography__segment { animation-name: mtBounceInLeft; }
.mt-preset-bounce_in_right.is-playing .mt-motion-typography__segment { animation-name: mtBounceInRight; }
.mt-preset-pop_in.is-playing .mt-motion-typography__segment { animation-name: mtPopIn; }
.mt-preset-elastic_scale.is-playing .mt-motion-typography__segment { animation-name: mtElasticScale; }
.mt-preset-rubber_band.is-playing .mt-motion-typography__segment { animation-name: mtRubberBand; }
.mt-preset-jello.is-playing .mt-motion-typography__segment { animation-name: mtJello; }
.mt-preset-tada.is-playing .mt-motion-typography__segment { animation-name: mtTada; }
.mt-preset-springy_text.is-playing .mt-motion-typography__segment { animation-name: mtSpringyText; }
.mt-preset-flip_bounce.is-playing .mt-motion-typography__segment { animation-name: mtFlipBounce; }
.mt-preset-heartbeat_burst.is-playing .mt-motion-typography__segment { animation-name: mtHeartbeatBurst; }
.mt-preset-water_drop.is-playing .mt-motion-typography__segment { animation-name: mtWaterDrop; }
.mt-preset-glitch.is-playing .mt-motion-typography__segment,
.mt-preset-glitch_rgb.is-playing .mt-motion-typography__segment {
	animation-name: mtGlitchRgb;
	animation-timing-function: steps(2, end);
}
.mt-preset-flicker.is-playing .mt-motion-typography__segment { animation-name: mtFlicker; }
.mt-preset-flicker_in.is-playing .mt-motion-typography__segment { animation-name: mtFlickerIn; }
.mt-preset-color_shift.is-playing .mt-motion-typography__segment { animation-name: mtColorShift; }
.mt-preset-pulse_neon.is-playing .mt-motion-typography__segment {
	animation-name: mtPulseNeon;
	animation-iteration-count: 2;
}
.mt-preset-flip_in.is-playing .mt-motion-typography__segment,
.mt-preset-flip_in_x.is-playing .mt-motion-typography__segment { animation-name: mtFlipInX; backface-visibility: hidden; }
.mt-preset-flip_in_y.is-playing .mt-motion-typography__segment { animation-name: mtFlipInY; backface-visibility: hidden; }
.mt-preset-rotate_in.is-playing .mt-motion-typography__segment { animation-name: mtRotateIn; }
.mt-preset-rotate_in_x.is-playing .mt-motion-typography__segment { animation-name: mtRotateInX; }
.mt-preset-rotate_in_y.is-playing .mt-motion-typography__segment { animation-name: mtRotateInY; }
.mt-preset-rotate_3d_in.is-playing .mt-motion-typography__segment { animation-name: mtRotate3dIn; }
.mt-preset-cube_flip_x.is-playing .mt-motion-typography__segment { animation-name: mtCubeFlipX; }
.mt-preset-cube_flip_y.is-playing .mt-motion-typography__segment { animation-name: mtCubeFlipY; }
.mt-preset-space_in.is-playing .mt-motion-typography__segment { animation-name: mtSpaceIn; }
.mt-preset-perspective_in.is-playing .mt-motion-typography__segment { animation-name: mtPerspectiveIn; }
.mt-preset-boomerang.is-playing .mt-motion-typography__segment { animation-name: mtBoomerang; }
.mt-preset-slingshot.is-playing .mt-motion-typography__segment { animation-name: mtSlingshot; }
.mt-preset-roll_in.is-playing .mt-motion-typography__segment { animation-name: mtRollIn; }
.mt-preset-roll_in_top.is-playing .mt-motion-typography__segment { animation-name: mtRollInTop; }
.mt-preset-roll_in_bottom.is-playing .mt-motion-typography__segment { animation-name: mtRollInBottom; }
.mt-preset-fly_in_up.is-playing .mt-motion-typography__segment { animation-name: mtFlyInUp; }
.mt-preset-fly_in_down.is-playing .mt-motion-typography__segment { animation-name: mtFlyInDown; }
.mt-preset-giant_slide.is-playing .mt-motion-typography__segment { animation-name: mtGiantSlide; }
.mt-preset-speed_dash.is-playing .mt-motion-typography__segment { animation-name: mtSpeedDash; }
.mt-preset-zip_in.is-playing .mt-motion-typography__segment { animation-name: mtZipIn; }
.mt-preset-anti_gravity.is-playing .mt-motion-typography__segment { animation-name: mtAntiGravity; }
.mt-preset-falling_leaves.is-playing .mt-motion-typography__segment { animation-name: mtFallingLeaves; }
.mt-preset-movie_credits.is-playing .mt-motion-typography__segment { animation-name: mtMovieCredits; }
.mt-preset-staircase.is-playing .mt-motion-typography__segment { animation-name: mtStaircase; }
.mt-preset-wave.is-playing .mt-motion-typography__segment {
	animation-name: mtWave;
	animation-iteration-count: 2;
}
.mt-preset-swing.is-playing .mt-motion-typography__segment { animation-name: mtSwing; }
.mt-preset-swing_in.is-playing .mt-motion-typography__segment { animation-name: mtSwingIn; }
.mt-preset-swing_out.is-playing .mt-motion-typography__segment { animation-name: mtSwingOut; }
.mt-preset-pendulum.is-playing .mt-motion-typography__segment { animation-name: mtPendulum; }
.mt-preset-shake_x.is-playing .mt-motion-typography__segment { animation-name: mtShakeX; }
.mt-preset-shake_y.is-playing .mt-motion-typography__segment { animation-name: mtShakeY; }
.mt-preset-wobble.is-playing .mt-motion-typography__segment { animation-name: mtWobble; }
.mt-preset-stretch.is-playing .mt-motion-typography__segment { animation-name: mtStretch; }
.mt-preset-squeeze.is-playing .mt-motion-typography__segment { animation-name: mtSqueeze; }
.mt-preset-squeeze_expand.is-playing .mt-motion-typography__segment { animation-name: mtSqueezeExpand; }
.mt-preset-tracking_expand.is-playing .mt-motion-typography__segment { animation-name: mtTrackingExpand; }
.mt-preset-tracking_contract.is-playing .mt-motion-typography__segment { animation-name: mtTrackingContract; }
.mt-preset-expand_forward.is-playing .mt-motion-typography__segment { animation-name: mtExpandForward; }
.mt-preset-contract_back.is-playing .mt-motion-typography__segment { animation-name: mtContractBack; }
.mt-preset-skew_in_up.is-playing .mt-motion-typography__segment { animation-name: mtSkewInUp; }
.mt-preset-skew_in_down.is-playing .mt-motion-typography__segment { animation-name: mtSkewInDown; }
.mt-preset-skew_in_left.is-playing .mt-motion-typography__segment { animation-name: mtSkewInLeft; }
.mt-preset-skew_in_right.is-playing .mt-motion-typography__segment { animation-name: mtSkewInRight; }
.mt-preset-unfold_vertical.is-playing .mt-motion-typography__segment { animation-name: mtUnfoldVertical; }
.mt-preset-unfold_horizontal.is-playing .mt-motion-typography__segment { animation-name: mtUnfoldHorizontal; }
.mt-preset-text_shadow_pop.is-playing .mt-motion-typography__segment { animation-name: mtTextShadowPop; }
.mt-preset-glow_in.is-playing .mt-motion-typography__segment { animation-name: mtGlowIn; }
.mt-preset-pulse.is-playing .mt-motion-typography__segment { animation-name: mtPulse; }
.mt-preset-flash.is-playing .mt-motion-typography__segment { animation-name: mtFlash; }
.mt-preset-smoke_in.is-playing .mt-motion-typography__segment { animation-name: mtSmokeIn; }
.mt-preset-smoke_out.is-playing .mt-motion-typography__segment { animation-name: mtSmokeOut; }
.mt-preset-slot_drop.is-playing .mt-motion-typography__segment { animation-name: mtSlotDrop; }

.mt-preset-block_reveal .mt-motion-typography__text { overflow: hidden; }
.mt-motion-typography__block {
	background: var(--mt-block-color);
	inset: 0;
	position: absolute;
	transform: scaleX(0);
	transform-origin: left;
	z-index: 2;
}
.mt-preset-block_reveal.is-playing .mt-motion-typography__block {
	animation: mtBlockReveal var(--mt-duration) cubic-bezier(0.86, 0, 0.07, 1) both;
	animation-delay: var(--mt-delay);
}
.mt-preset-block_reveal .mt-motion-typography__segment { opacity: 0; }
.mt-preset-block_reveal.is-playing .mt-motion-typography__segment {
	animation: mtBlockText var(--mt-duration) steps(1, end) both;
	animation-delay: var(--mt-delay);
}

.mt-motion-typography__cursor {
	background: var(--mt-cursor-color);
	display: inline-block;
	height: 1em;
	margin-left: 0.12em;
	vertical-align: -0.12em;
	width: 0.08em;
}
.mt-motion-typography.is-playing .mt-motion-typography__cursor { animation: mtCursorBlink 1s steps(1, end) infinite; }

@keyframes mtFadeIn { from { opacity: 0; } to { opacity: 1; } }
@keyframes mtSlideUp { from { opacity: 0; transform: translateY(0.9em); } to { opacity: 1; transform: translateY(0); } }
@keyframes mtSlideDown { from { opacity: 0; transform: translateY(-0.9em); } to { opacity: 1; transform: translateY(0); } }
@keyframes mtSlideLeft { from { opacity: 0; transform: translateX(-0.9em); } to { opacity: 1; transform: translateX(0); } }
@keyframes mtSlideRight { from { opacity: 0; transform: translateX(0.9em); } to { opacity: 1; transform: translateX(0); } }
@keyframes mtZoomIn { from { opacity: 0; transform: scale(0.35); } to { opacity: 1; transform: scale(1); } }
@keyframes mtZoomOut { from { opacity: 0; transform: scale(1.8); } to { opacity: 1; transform: scale(1); } }
@keyframes mtScaleIn { from { opacity: 0; transform: scale(0); } to { opacity: 1; transform: scale(1); } }
@keyframes mtRiseUp { from { opacity: 0; transform: translateY(1.6em); } to { opacity: 1; transform: translateY(0); } }
@keyframes mtFallDown { from { opacity: 0; transform: translateY(-1.6em); } to { opacity: 1; transform: translateY(0); } }
@keyframes mtBlurIn { from { filter: blur(12px); opacity: 0; transform: scale(1.06); } to { filter: blur(0); opacity: 1; transform: scale(1); } }
@keyframes mtFocusIn { from { filter: blur(16px); opacity: 0; transform: scale(1.35); } to { filter: blur(0); opacity: 1; transform: scale(1); } }
@keyframes mtBlurInRight { from { filter: blur(10px); opacity: 0; transform: translateX(1.2em); } to { filter: blur(0); opacity: 1; transform: translateX(0); } }
@keyframes mtBlurInLeft { from { filter: blur(10px); opacity: 0; transform: translateX(-1.2em); } to { filter: blur(0); opacity: 1; transform: translateX(0); } }
@keyframes mtBlurDrop { from { filter: blur(10px); opacity: 0; transform: translateY(-1.1em); } to { filter: blur(0); opacity: 1; transform: translateY(0); } }
@keyframes mtBlurRise { from { filter: blur(10px); opacity: 0; transform: translateY(1.1em); } to { filter: blur(0); opacity: 1; transform: translateY(0); } }
@keyframes mtSlitInVertical { from { opacity: 0; transform: scaleY(0); } to { opacity: 1; transform: scaleY(1); } }
@keyframes mtSlitInHorizontal { from { opacity: 0; transform: scaleX(0); } to { opacity: 1; transform: scaleX(1); } }
@keyframes mtSpotlight { from { background-position: 200% center; opacity: 1; } to { background-position: -200% center; opacity: 1; } }
@keyframes mtOutlineToSolid {
	0% { -webkit-text-stroke: var(--mt-stroke-width) var(--mt-stroke-color); color: transparent; opacity: 0; }
	50% { -webkit-text-stroke: var(--mt-stroke-width) var(--mt-stroke-color); color: transparent; opacity: 1; }
	100% { -webkit-text-stroke: 0 transparent; color: currentColor; opacity: 1; }
}
@keyframes mtSolidToOutline {
	0% { -webkit-text-stroke: 0 transparent; color: currentColor; opacity: 0; }
	50% { -webkit-text-stroke: 0 transparent; color: currentColor; opacity: 1; }
	100% { -webkit-text-stroke: var(--mt-stroke-width) var(--mt-stroke-color); color: transparent; opacity: 1; }
}
@keyframes mtShadowFirst {
	0% { color: transparent; opacity: 0; text-shadow: 0 1.2em 0.8em transparent; }
	55% { color: transparent; opacity: 1; text-shadow: 0 0 0.25em currentColor; }
	100% { color: currentColor; opacity: 1; text-shadow: 0 0 0 transparent; }
}
@keyframes mtBounce {
	0% { opacity: 0; transform: translateY(-1.4em); }
	55% { opacity: 1; transform: translateY(0.28em); }
	75% { transform: translateY(-0.12em); }
	100% { opacity: 1; transform: translateY(0); }
}
@keyframes mtDropIn {
	0% { opacity: 0; transform: translateY(-2.5em); }
	60% { opacity: 1; transform: translateY(0.35em); }
	82% { transform: translateY(-0.12em); }
	100% { opacity: 1; transform: translateY(0); }
}
@keyframes mtBounceInLeft {
	0% { opacity: 0; transform: translateX(-2.2em); }
	60% { opacity: 1; transform: translateX(0.35em); }
	80% { transform: translateX(-0.16em); }
	100% { opacity: 1; transform: translateX(0); }
}
@keyframes mtBounceInRight {
	0% { opacity: 0; transform: translateX(2.2em); }
	60% { opacity: 1; transform: translateX(-0.35em); }
	80% { transform: translateX(0.16em); }
	100% { opacity: 1; transform: translateX(0); }
}
@keyframes mtPopIn { 0% { opacity: 0; transform: scale(0.5); } 80% { opacity: 1; transform: scale(1.18); } 100% { opacity: 1; transform: scale(1); } }
@keyframes mtElasticScale { 0% { opacity: 0; transform: scale(0); } 60% { opacity: 1; transform: scale(1.3); } 82% { transform: scale(0.9); } 100% { opacity: 1; transform: scale(1); } }
@keyframes mtRubberBand {
	0% { opacity: 0; transform: scale(1); }
	30% { opacity: 1; transform: scale3d(1.25, 0.75, 1); }
	40% { transform: scale3d(0.75, 1.25, 1); }
	50% { transform: scale3d(1.15, 0.85, 1); }
	65% { transform: scale3d(0.95, 1.05, 1); }
	75% { transform: scale3d(1.05, 0.95, 1); }
	100% { opacity: 1; transform: scale(1); }
}
@keyframes mtJello {
	0% { opacity: 0; transform: skew(0); }
	20% { opacity: 1; transform: skew(-13deg, -13deg); }
	40% { transform: skew(7deg, 7deg); }
	60% { transform: skew(-3deg, -3deg); }
	80% { transform: skew(1.5deg, 1.5deg); }
	100% { opacity: 1; transform: skew(0); }
}
@keyframes mtTada {
	0% { opacity: 0; transform: scale(1); }
	15%, 25% { opacity: 1; transform: scale(0.9) rotate(-3deg); }
	35%, 55%, 75% { transform: scale(1.1) rotate(3deg); }
	45%, 65%, 85% { transform: scale(1.1) rotate(-3deg); }
	100% { opacity: 1; transform: scale(1) rotate(0); }
}
@keyframes mtSpringyText { 0% { opacity: 0; transform: scaleY(0); transform-origin: bottom; } 50% { opacity: 1; transform: scaleY(1.5); } 75% { transform: scaleY(0.8); } 100% { opacity: 1; transform: scaleY(1); } }
@keyframes mtFlipBounce { 0% { opacity: 0; transform: perspective(500px) rotateX(90deg); } 50% { opacity: 1; transform: perspective(500px) rotateX(-20deg); } 75% { transform: perspective(500px) rotateX(10deg); } 100% { opacity: 1; transform: perspective(500px) rotateX(0); } }
@keyframes mtHeartbeatBurst { 0% { opacity: 0; transform: scale(0.5); } 30% { opacity: 1; transform: scale(1.2); } 50% { transform: scale(0.9); } 70% { transform: scale(1.1); } 100% { opacity: 1; transform: scale(1); } }
@keyframes mtWaterDrop { 0% { opacity: 0; transform: translateY(-1.8em) scale(0.1, 2); } 55% { opacity: 1; transform: translateY(0) scale(1.45, 0.55); } 100% { opacity: 1; transform: translateY(0) scale(1); } }
@keyframes mtGlitchRgb {
	0% { opacity: 0; text-shadow: 0 0 transparent; transform: translate(0); }
	15% { opacity: 1; text-shadow: 2px 0 var(--mt-channel-a), -2px 0 var(--mt-channel-b); transform: translate(-1px, 1px); }
	35% { text-shadow: -2px 0 var(--mt-channel-a), 2px 0 var(--mt-channel-b); transform: translate(1px, -1px); }
	60% { text-shadow: 1px 0 var(--mt-channel-a), -1px 0 var(--mt-channel-b); transform: translate(-1px, 0); }
	100% { opacity: 1; text-shadow: 0 0 transparent; transform: translate(0); }
}
@keyframes mtFlicker { 0%, 2%, 6%, 11%, 18% { opacity: 0; } 1%, 5%, 10%, 17%, 100% { opacity: 1; } }
@keyframes mtFlickerIn { 0% { opacity: 0; } 12% { opacity: 1; } 24% { opacity: 0; } 36% { opacity: 1; } 48% { opacity: 0; } 65%, 100% { opacity: 1; } }
@keyframes mtColorShift { 0% { color: currentColor; opacity: 0; } 35% { color: var(--mt-channel-a); opacity: 1; } 70% { color: var(--mt-channel-b); } 100% { color: currentColor; opacity: 1; } }
@keyframes mtPulseNeon {
	0%, 100% { opacity: 1; text-shadow: 0 0 0 transparent; transform: scale(1); }
	50% { opacity: 1; text-shadow: 0 0 0.18em currentColor, 0 0 0.45em var(--mt-glow-color), 0 0 0.85em var(--mt-glow-color); transform: scale(1.08); }
}
@keyframes mtFlipInX { from { opacity: 0; transform: perspective(500px) rotateX(90deg); } to { opacity: 1; transform: perspective(500px) rotateX(0); } }
@keyframes mtFlipInY { from { opacity: 0; transform: perspective(500px) rotateY(90deg); } to { opacity: 1; transform: perspective(500px) rotateY(0); } }
@keyframes mtRotateIn { from { opacity: 0; transform: rotate(-160deg) scale(0.2); } to { opacity: 1; transform: rotate(0) scale(1); } }
@keyframes mtRotateInX { from { opacity: 0; transform: perspective(500px) rotateX(90deg); } to { opacity: 1; transform: perspective(500px) rotateX(0); } }
@keyframes mtRotateInY { from { opacity: 0; transform: perspective(500px) rotateY(90deg); } to { opacity: 1; transform: perspective(500px) rotateY(0); } }
@keyframes mtRotate3dIn { from { opacity: 0; transform: perspective(600px) rotate3d(1, 1, 1, 90deg); } to { opacity: 1; transform: perspective(600px) rotate3d(0, 0, 0, 0deg); } }
@keyframes mtCubeFlipX { from { opacity: 0; transform: perspective(500px) rotateX(-90deg) translateZ(0.4em); } to { opacity: 1; transform: perspective(500px) rotateX(0) translateZ(0); } }
@keyframes mtCubeFlipY { from { opacity: 0; transform: perspective(500px) rotateY(-90deg) translateZ(0.4em); } to { opacity: 1; transform: perspective(500px) rotateY(0) translateZ(0); } }
@keyframes mtSpaceIn { from { opacity: 0; transform: perspective(900px) translateZ(-16em) scale(0.25); } to { opacity: 1; transform: perspective(900px) translateZ(0) scale(1); } }
@keyframes mtPerspectiveIn { from { opacity: 0; transform: perspective(900px) translateZ(4em); } to { opacity: 1; transform: perspective(900px) translateZ(0); } }
@keyframes mtBoomerang { 0% { opacity: 0; transform: perspective(600px) translateZ(-8em) rotate(45deg); } 50% { opacity: 1; transform: perspective(600px) translateZ(1.5em) rotate(-10deg); } 100% { opacity: 1; transform: perspective(600px) translateZ(0) rotate(0); } }
@keyframes mtSlingshot { 0% { opacity: 0; transform: perspective(700px) translateZ(-10em) scale(0.1); } 60% { opacity: 1; transform: perspective(700px) translateZ(1.5em) scale(1.2); } 100% { opacity: 1; transform: perspective(700px) translateZ(0) scale(1); } }
@keyframes mtRollIn { from { opacity: 0; transform: translateX(-2.2em) rotate(-120deg); } to { opacity: 1; transform: translateX(0) rotate(0); } }
@keyframes mtRollInTop { from { opacity: 0; transform: translateY(-1.8em) rotate(-120deg); } to { opacity: 1; transform: translateY(0) rotate(0); } }
@keyframes mtRollInBottom { from { opacity: 0; transform: translateY(1.8em) rotate(120deg); } to { opacity: 1; transform: translateY(0) rotate(0); } }
@keyframes mtFlyInUp { from { opacity: 0; transform: translateY(4em); } to { opacity: 1; transform: translateY(0); } }
@keyframes mtFlyInDown { from { opacity: 0; transform: translateY(-4em); } to { opacity: 1; transform: translateY(0); } }
@keyframes mtGiantSlide { from { opacity: 0; transform: translateX(-2.4em) scale(2.4); } to { opacity: 1; transform: translateX(0) scale(1); } }
@keyframes mtSpeedDash { 0% { opacity: 0; transform: translateX(-3em) skewX(-45deg); } 70% { opacity: 1; transform: translateX(0.3em) skewX(-10deg); } 100% { opacity: 1; transform: translateX(0) skewX(0); } }
@keyframes mtZipIn { 0% { opacity: 0; transform: scale(0) rotate(-10deg); } 80% { opacity: 1; transform: scale(1.12) rotate(8deg); } 100% { opacity: 1; transform: scale(1) rotate(0); } }
@keyframes mtAntiGravity { 0% { opacity: 0; transform: translateY(0); } 45% { opacity: 1; transform: translateY(-0.45em); } 100% { opacity: 0; transform: translateY(-1.4em); } }
@keyframes mtFallingLeaves { 0% { opacity: 0; transform: translate(0, -1.2em) rotate(0); } 50% { opacity: 1; transform: translate(0.5em, 0) rotate(35deg); } 100% { opacity: 0; transform: translate(-0.45em, 1.2em) rotate(85deg); } }
@keyframes mtMovieCredits { 0% { opacity: 0; transform: translateY(1.4em); } 20%, 80% { opacity: 1; } 100% { opacity: 0; transform: translateY(-1.4em); } }
@keyframes mtStaircase { from { opacity: 0; transform: translateY(1.1em); } to { opacity: 1; transform: translateY(0); } }
@keyframes mtWave { 0%, 100% { opacity: 1; transform: translateY(0); } 50% { opacity: 1; transform: translateY(-0.42em); } }
@keyframes mtSwing { 0% { opacity: 0; transform: rotate(15deg); } 25% { opacity: 1; transform: rotate(15deg); } 50% { transform: rotate(-10deg); } 75% { transform: rotate(5deg); } 100% { opacity: 1; transform: rotate(0); } }
@keyframes mtSwingIn { from { opacity: 0; transform: rotateX(-100deg); transform-origin: top; } to { opacity: 1; transform: rotateX(0); transform-origin: top; } }
@keyframes mtSwingOut { from { opacity: 1; transform: rotateX(0); transform-origin: top; } to { opacity: 0; transform: rotateX(-100deg); transform-origin: top; } }
@keyframes mtPendulum { 0% { opacity: 0; transform: rotate(10deg); transform-origin: top; } 50% { opacity: 1; transform: rotate(-5deg); } 100% { opacity: 1; transform: rotate(0); transform-origin: top; } }
@keyframes mtShakeX { 0%, 100% { opacity: 1; transform: translateX(0); } 20%, 60% { transform: translateX(-0.25em); } 40%, 80% { transform: translateX(0.25em); } }
@keyframes mtShakeY { 0%, 100% { opacity: 1; transform: translateY(0); } 20%, 60% { transform: translateY(-0.25em); } 40%, 80% { transform: translateY(0.25em); } }
@keyframes mtWobble { 0% { opacity: 0; transform: translateX(0); } 15% { opacity: 1; transform: translateX(-15%) rotate(-5deg); } 30% { transform: translateX(10%) rotate(3deg); } 45% { transform: translateX(-10%) rotate(-3deg); } 60% { transform: translateX(5%) rotate(2deg); } 75% { transform: translateX(-2%) rotate(-1deg); } 100% { opacity: 1; transform: translateX(0); } }
@keyframes mtStretch { 0% { opacity: 0; transform: scaleX(1); } 50% { opacity: 1; transform: scaleX(1.5); } 100% { opacity: 1; transform: scaleX(1); } }
@keyframes mtSqueeze { 0% { opacity: 0; transform: scaleY(1); } 50% { opacity: 1; transform: scaleY(0.5); } 100% { opacity: 1; transform: scaleY(1); } }
@keyframes mtSqueezeExpand { 0% { letter-spacing: -0.35em; opacity: 0; transform: scaleY(0.15); } 50% { letter-spacing: 0.12em; opacity: 1; transform: scaleY(1.18); } 100% { letter-spacing: 0; opacity: 1; transform: scaleY(1); } }
@keyframes mtTrackingExpand { from { letter-spacing: -0.45em; opacity: 0; } to { letter-spacing: 0.05em; opacity: 1; } }
@keyframes mtTrackingContract { from { letter-spacing: 0.9em; opacity: 0; } to { letter-spacing: 0.05em; opacity: 1; } }
@keyframes mtExpandForward { from { letter-spacing: -0.45em; opacity: 0; transform: perspective(700px) translateZ(-8em); } to { letter-spacing: 0.05em; opacity: 1; transform: perspective(700px) translateZ(0); } }
@keyframes mtContractBack { from { letter-spacing: 0.05em; opacity: 1; transform: perspective(700px) translateZ(0); } to { letter-spacing: -0.45em; opacity: 0; transform: perspective(700px) translateZ(-8em); } }
@keyframes mtSkewInUp { from { opacity: 0; transform: translateY(0.9em) skewY(20deg); } to { opacity: 1; transform: translateY(0) skewY(0); } }
@keyframes mtSkewInDown { from { opacity: 0; transform: translateY(-0.9em) skewY(-20deg); } to { opacity: 1; transform: translateY(0) skewY(0); } }
@keyframes mtSkewInLeft { from { opacity: 0; transform: translateX(-0.9em) skewX(30deg); } to { opacity: 1; transform: translateX(0) skewX(0); } }
@keyframes mtSkewInRight { from { opacity: 0; transform: translateX(0.9em) skewX(-30deg); } to { opacity: 1; transform: translateX(0) skewX(0); } }
@keyframes mtUnfoldVertical { from { opacity: 0; transform: perspective(500px) rotateX(-90deg); } to { opacity: 1; transform: perspective(500px) rotateX(0); } }
@keyframes mtUnfoldHorizontal { from { opacity: 0; transform: perspective(500px) rotateY(-90deg); } to { opacity: 1; transform: perspective(500px) rotateY(0); } }
@keyframes mtTextShadowPop { from { opacity: 0; text-shadow: 0 0 rgba(0, 0, 0, 0.45); transform: translate(0); } to { opacity: 1; text-shadow: 1px 1px rgba(0, 0, 0, 0.45), 2px 2px rgba(0, 0, 0, 0.38), 3px 3px rgba(0, 0, 0, 0.3); transform: translate(-0.08em, -0.08em); } }
@keyframes mtGlowIn { 0% { opacity: 0; text-shadow: 0 0 0 transparent; } 55% { opacity: 1; text-shadow: 0 0 0.65em var(--mt-glow-color); } 100% { opacity: 1; text-shadow: 0 0 0 transparent; } }
@keyframes mtPulse { 0% { opacity: 0; transform: scale(1); } 50% { opacity: 1; transform: scale(1.18); } 100% { opacity: 1; transform: scale(1); } }
@keyframes mtFlash { 0%, 50%, 100% { opacity: 1; } 25%, 75% { opacity: 0; } }
@keyframes mtSmokeIn { from { filter: blur(18px); opacity: 0; transform: translateY(-0.5em) scale(1.35); } to { filter: blur(0); opacity: 1; transform: translateY(0) scale(1); } }
@keyframes mtSmokeOut { from { filter: blur(0); opacity: 1; transform: translateY(0) scale(1); } to { filter: blur(18px); opacity: 0; transform: translateY(-0.5em) scale(1.35); } }
@keyframes mtSlotDrop { 0% { filter: blur(5px); opacity: 0; transform: translateY(-3em); } 55% { filter: blur(2px); opacity: 1; transform: translateY(0.25em); } 100% { filter: blur(0); opacity: 1; transform: translateY(0); } }
@keyframes mtBlockReveal { 0% { transform: scaleX(0); transform-origin: left; } 45% { transform: scaleX(1); transform-origin: left; } 55% { transform: scaleX(1); transform-origin: right; } 100% { transform: scaleX(0); transform-origin: right; } }
@keyframes mtBlockText { 0%, 49% { opacity: 0; } 50%, 100% { opacity: 1; } }
@keyframes mtCursorBlink { 0%, 50%, 100% { opacity: 1; } 51%, 99% { opacity: 0; } }

@media (prefers-reduced-motion: reduce) {
	.mt-motion-typography .mt-motion-typography__segment,
	.mt-motion-typography .mt-motion-typography__block,
	.mt-motion-typography .mt-motion-typography__cursor {
		animation: none !important;
		filter: none !important;
		opacity: 1 !important;
		transform: none !important;
	}
}

