/* AQF Core — shared front-end styles (motion effects, sticky, helpers). */

.aqfc-motion {
	transform:
		translate3d(
			calc(var(--aqfc-tx, 0px) + var(--aqfc-mx, 0px)),
			calc(var(--aqfc-ty, 0px) + var(--aqfc-my, 0px)),
			0
		)
		rotate(var(--aqfc-rotate, 0deg))
		scale(var(--aqfc-scale, 1));
	opacity: var(--aqfc-opacity, 1);
	filter: blur(var(--aqfc-blur, 0px));
	will-change: transform, opacity;
}

.aqfc-motion--tilt {
	transform:
		perspective(1000px)
		translate3d(
			calc(var(--aqfc-tx, 0px) + var(--aqfc-mx, 0px)),
			calc(var(--aqfc-ty, 0px) + var(--aqfc-my, 0px)),
			0
		)
		rotateX(var(--aqfc-rx, 0deg))
		rotateY(var(--aqfc-ry, 0deg))
		rotate(var(--aqfc-rotate, 0deg))
		scale(var(--aqfc-scale, 1));
	transition: transform 0.15s ease-out;
}

.aqfc-sticky--active {
	transition: background-color 0.3s, box-shadow 0.3s, padding 0.3s;
}

.aqfc-sticky-spacer {
	visibility: hidden;
	pointer-events: none;
}

@media (prefers-reduced-motion: reduce) {
	.aqfc-motion,
	.aqfc-motion--tilt {
		transform: none !important;
		filter: none !important;
		opacity: 1 !important;
		transition: none !important;
	}
}

.aqfc-placeholder {
	padding: 24px;
	border: 1px dashed currentColor;
	border-radius: 4px;
	opacity: 0.6;
	text-align: center;
	font-size: 14px;
}

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

@keyframes aqfc-spin {
	to {
		transform: rotate(360deg);
	}
}

/* Page scroll lock while a dialog is open (aqfc.lockScroll). */
html.aqfc-scroll-lock,
html.aqfc-scroll-lock body {
	overflow: hidden;
}
