/*
 * Motion. Add classes in GenerateBlocks > Advanced > Additional CSS class.
 *   qc-reveal   fade + rise as it enters the viewport
 *   qc-stagger  put on a parent: children reveal one after another
 * Calm, no overshoot (brand guide §8). Transform + opacity only.
 */
@media (prefers-reduced-motion: no-preference) {

	@supports (animation-timeline: view()) {
		@keyframes qc-rise { from { opacity: 0; transform: translateY(24px); } to { opacity: 1; transform: none; } }

		.qc-reveal, .qc-stagger > * {
			animation: qc-rise linear both;
			animation-timeline: view();
			animation-range: entry 0% entry 60%;
		}
		.qc-stagger > :nth-child(2) { animation-range: entry 8% entry 68%; }
		.qc-stagger > :nth-child(3) { animation-range: entry 16% entry 76%; }
		.qc-stagger > :nth-child(4) { animation-range: entry 24% entry 84%; }
	}

	.qc-hover-lift { transition: transform var(--qc-dur) var(--qc-ease); }
	.qc-hover-lift:hover { transform: translateY(-4px); }
}

/*
 * Smooth scrolling for in-page links (the waitlist CTA, contents lists). Native CSS, no scroll library:
 * libraries hijack the wheel and fight scroll-driven animations. scroll-padding keeps targets clear of the sticky header.
 */
html { scroll-padding-top: var(--qc-header-h); }
@media (prefers-reduced-motion: no-preference) {
	html { scroll-behavior: smooth; }
}
