.has-gba-animation {
	--gba-duration: 800ms;
	--gba-delay: 0ms;
	--gba-steps: 30;
	animation-duration: var(--gba-duration);
	animation-delay: var(--gba-delay);
	animation-timing-function: cubic-bezier(0.16, 1, 0.3, 1);
	animation-fill-mode: both;
	transform-origin: center center;
	will-change: transform, opacity, clip-path;
}
html.gba-js .has-gba-animation.gba-pending:not(.gba-typewriter) {
	opacity: 0;
}
/* W edytorze blok ma być zawsze widoczny */
.editor-styles-wrapper .has-gba-animation.gba-pending:not(.gba-typewriter),
.block-editor-block-list__block.has-gba-animation.gba-pending:not(.gba-typewriter),
.block-editor-block-list__block.has-gba-animation.gba-editor-preview {
	opacity: 1 !important;
}
/* W adminie typewriter bez animowania */
.editor-styles-wrapper .has-gba-animation.gba-typewriter .gba-typewriter-text,
.block-editor-block-list__block.has-gba-animation.gba-typewriter .gba-typewriter-text {
	width: auto !important;
	max-width: 100%;
	overflow: visible;
	border-right: 0 !important;
	animation: none !important;
}
.has-gba-animation.gba-animate.gba-fade-in {
	animation-name: gbaFadeIn;
}

.has-gba-animation.gba-animate.gba-zoom-in {
	animation-name: gbaZoomIn;
}

.has-gba-animation.gba-animate.gba-slide-in-left {
	animation-name: gbaSlideInLeft;
}

.has-gba-animation.gba-animate.gba-slide-in-right {
	animation-name: gbaSlideInRight;
}

.has-gba-animation.gba-animate.gba-slide-in-up {
	animation-name: gbaSlideInUp;
}

.has-gba-animation.gba-animate.gba-slide-in-down {
	animation-name: gbaSlideInDown;
}

.has-gba-animation.gba-animate.gba-reveal {
	overflow: hidden;
	animation-name: gbaReveal;
}

.has-gba-animation.gba-typewriter {
	opacity: 1;
}

.has-gba-animation.gba-typewriter .gba-typewriter-text {
	display: inline-block;
	vertical-align: bottom;
	max-width: 100%;
	overflow: hidden;
	white-space: nowrap;
	width: 0;
	border-right: 0 solid currentColor;
}

.has-gba-animation.gba-typewriter.gba-animate .gba-typewriter-text {
	border-right-width: 2px;
	animation:
		gbaTypewriter var(--gba-duration) steps(var(--gba-steps), end) var(--gba-delay) both,
		gbaCaret .75s step-end infinite var(--gba-delay);
}

@keyframes gbaFadeIn {
	from {
		opacity: 0;
	}
	to {
		opacity: 1;
	}
}

@keyframes gbaZoomIn {
	from {
		opacity: 0;
		transform: scale(0.88);
	}
	to {
		opacity: 1;
		transform: scale(1);
	}
}

@keyframes gbaSlideInLeft {
	from {
		opacity: 0;
		transform: translateX(-40px);
	}
	to {
		opacity: 1;
		transform: translateX(0);
	}
}

@keyframes gbaSlideInRight {
	from {
		opacity: 0;
		transform: translateX(40px);
	}
	to {
		opacity: 1;
		transform: translateX(0);
	}
}

@keyframes gbaSlideInUp {
	from {
		opacity: 0;
		transform: translateY(40px);
	}
	to {
		opacity: 1;
		transform: translateY(0);
	}
}

@keyframes gbaSlideInDown {
	from {
		opacity: 0;
		transform: translateY(-40px);
	}
	to {
		opacity: 1;
		transform: translateY(0);
	}
}

@keyframes gbaReveal {
	from {
		opacity: 0;
		clip-path: inset(0 100% 0 0);
	}
	to {
		opacity: 1;
		clip-path: inset(0 0 0 0);
	}
}

@keyframes gbaTypewriter {
	from {
		width: 0;
	}
	to {
		width: var(--gba-text-width, 100%);
	}
}

@keyframes gbaCaret {
	from,
	to {
		border-color: transparent;
	}
	50% {
		border-color: currentColor;
	}
}

@media (prefers-reduced-motion: reduce) {
	.has-gba-animation,
	.has-gba-animation .gba-typewriter-text {
		animation: none !important;
		opacity: 1 !important;
		transform: none !important;
		clip-path: none !important;
		width: auto !important;
		border-right: 0 !important;
	}
}