/* ==========================================================================
   REBIT SOFTWARE: ANIMÁCIÓK
   CSS transitionök. A láthatóságot az assets/js/animations.js figyeli
   IntersectionObserverrel.
   ========================================================================== */

[data-reveal] {
	opacity: 0;
	transform: translateY(24px);
	transition: opacity 0.7s var(--ease-out), transform 0.7s var(--ease-out);
	transition-delay: calc(var(--reveal-index, 0) * 90ms);
}

[data-reveal].is-revealed {
	opacity: 1;
	transform: translateY(0);
}

[data-reveal="fade"] {
	transform: none;
}

[data-reveal="scale"] {
	transform: scale(0.94);
}

[data-reveal="scale"].is-revealed {
	transform: scale(1);
}

[data-reveal="left"] {
	transform: translateX(-28px);
}

[data-reveal="left"].is-revealed {
	transform: translateX(0);
}

[data-reveal="right"] {
	transform: translateX(28px);
}

[data-reveal="right"].is-revealed {
	transform: translateX(0);
}

@media (prefers-reduced-motion: reduce) {
	[data-reveal] {
		opacity: 1 !important;
		transform: none !important;
		transition: none !important;
	}
}

/* Belépő animáció a fejlécnek / hero elemeknek oldalbetöltéskor */
.hero-copy .eyebrow,
.hero-copy h1,
.hero-copy .lede,
.hero-copy .hero-actions {
	animation: rebit-rise 0.8s var(--ease-out) both;
}

.hero-copy h1 {
	animation-delay: 0.08s;
}
.hero-copy .lede {
	animation-delay: 0.16s;
}
.hero-copy .hero-actions {
	animation-delay: 0.24s;
}

.hero-visual {
	animation: rebit-fade-scale 0.9s var(--ease-out) 0.2s both;
}

/* Pattogó "görgess lejjebb" nyíl a hero alján. */
.hero-scroll-cue {
	display: flex;
	justify-content: center;
	margin-top: var(--space-6);
	color: var(--color-primary);
	opacity: 0.6;
	animation: rebit-bounce 2.2s ease-in-out infinite;
}

.hero-scroll-cue .icon {
	width: 26px;
	height: 26px;
}

@keyframes rebit-bounce {
	0%,
	100% {
		transform: translateY(0);
	}
	50% {
		transform: translateY(8px);
	}
}

@keyframes rebit-bounce-sm {
	0%,
	100% {
		transform: translateY(0);
	}
	50% {
		transform: translateY(4px);
	}
}

@media (max-width: 640px) {
	.hero-scroll-cue {
		display: none;
	}
}

@keyframes rebit-rise {
	from {
		opacity: 0;
		transform: translateY(16px);
	}
	to {
		opacity: 1;
		transform: translateY(0);
	}
}

@keyframes rebit-fade-scale {
	from {
		opacity: 0;
		transform: scale(0.92) translateY(12px);
	}
	to {
		opacity: 1;
		transform: scale(1) translateY(0);
	}
}

@media (prefers-reduced-motion: reduce) {
	.hero-copy .eyebrow,
	.hero-copy h1,
	.hero-copy .lede,
	.hero-copy .hero-actions,
	.hero-visual,
	.hero-scroll-cue {
		animation: none;
	}
}

/* A számláló értékét a JS írja, a konténer a data-reveal animációt kapja. */

/* Lapváltási animáció a cross-document View Transitions API-val. Ahol a
   böngésző nem támogatja, animáció nélkül navigál. */
@view-transition {
	navigation: auto;
}

@media (prefers-reduced-motion: reduce) {
	@view-transition {
		navigation: none;
	}
}

::view-transition-old(root) {
	animation: rebit-vt-out 0.28s var(--ease-out) both;
}
::view-transition-new(root) {
	animation: rebit-vt-in 0.38s var(--ease-out) both;
}

@keyframes rebit-vt-out {
	to {
		opacity: 0;
	}
}

@keyframes rebit-vt-in {
	from {
		opacity: 0;
		transform: translateY(10px);
	}
}
