/**
 * Strategic Core — animações.
 * Os elementos só ficam ocultos depois que o JS marca o <html> (st-reveal-ready):
 * sem JS, tudo aparece normalmente.
 */

.st-reveal-ready .st-will-reveal {
	opacity: 0;
	transition:
		opacity var(--st-anim-duration, 700ms) cubic-bezier(0.22, 1, 0.36, 1),
		transform var(--st-anim-duration, 700ms) cubic-bezier(0.22, 1, 0.36, 1),
		filter var(--st-anim-duration, 700ms) cubic-bezier(0.22, 1, 0.36, 1);
	will-change: opacity, transform;
}

/* Estilos padrão */
.st-anim-smooth .st-will-reveal {
	transform: translate3d(0, 24px, 0);
}

.st-anim-creative .st-will-reveal {
	transform: translate3d(0, 36px, 0) scale(0.97);
	filter: blur(6px);
}

/* Direção escolhida no elemento */
.st-will-reveal[data-st-reveal="fade"] { transform: none; filter: none; }
.st-will-reveal[data-st-reveal="up"] { transform: translate3d(0, 32px, 0); }
.st-will-reveal[data-st-reveal="down"] { transform: translate3d(0, -32px, 0); }
.st-will-reveal[data-st-reveal="left"] { transform: translate3d(40px, 0, 0); }
.st-will-reveal[data-st-reveal="right"] { transform: translate3d(-40px, 0, 0); }
.st-will-reveal[data-st-reveal="zoom"] { transform: scale(0.92); }

.st-reveal-ready .st-will-reveal.is-revealed {
	opacity: 1;
	transform: none;
	filter: none;
}

/* Rolagem suave */
html:has(body.st-smooth-scroll) {
	scroll-behavior: smooth;
}

/* Transição de página */
body[class*="st-page-transition-"] {
	animation: stPageIn var(--st-transition-duration, 280ms) var(--st-transition-easing, ease) both;
}

body.st-page-transition-slide {
	animation-name: stPageSlideIn;
}

body.st-page-transition-slide_left { animation-name: stPageSlideLeftIn; }
body.st-page-transition-scale { animation-name: stPageScaleIn; }
body.st-page-transition-blur { animation-name: stPageBlurIn; }

body.st-leaving {
	opacity: 0;
	transition: opacity var(--st-transition-duration, 280ms) var(--st-transition-easing, ease), transform var(--st-transition-duration, 280ms) var(--st-transition-easing, ease), filter var(--st-transition-duration, 280ms) var(--st-transition-easing, ease);
}

body.st-page-transition-slide.st-leaving {
	transform: translate3d(0, -16px, 0);
}

body.st-page-transition-slide_left.st-leaving { transform: translate3d(-24px, 0, 0); }
body.st-page-transition-scale.st-leaving { transform: scale(.97); }
body.st-page-transition-blur.st-leaving { filter: blur(8px); }

body[class*="st-page-transition-"]::after {
	content: "";
	position: fixed;
	inset: 0;
	z-index: 2147483000;
	background: var(--st-transition-overlay, #fff);
	opacity: 0;
	visibility: hidden;
	pointer-events: none;
	transition: opacity var(--st-transition-duration, 280ms) var(--st-transition-easing, ease), visibility 0s linear var(--st-transition-duration, 280ms);
}
body.st-leaving::after { opacity: .24; visibility: visible; transition-delay: 0s; }

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

@keyframes stPageSlideIn {
	from { opacity: 0; transform: translate3d(0, 18px, 0); }
	to { opacity: 1; transform: none; }
}

@keyframes stPageSlideLeftIn { from { opacity: 0; transform: translate3d(24px,0,0); } to { opacity: 1; transform: none; } }
@keyframes stPageScaleIn { from { opacity: 0; transform: scale(.97); } to { opacity: 1; transform: none; } }
@keyframes stPageBlurIn { from { opacity: 0; filter: blur(8px); } to { opacity: 1; filter: none; } }

/* Preloader */
.stc-preloader {
	position: fixed;
	inset: 0;
	z-index: 2147483600;
	display: grid;
	place-items: center;
	background: var(--st-preloader-bg, #fff);
	transition: opacity 0.45s ease, visibility 0s linear 0.45s;
	/* Limite de segurança mesmo sem JS. */
	animation: stPreloaderFailsafe 0s linear 6s forwards;
}

.stc-preloader.is-done {
	opacity: 0;
	visibility: hidden;
}

.stc-preloader__spinner {
	width: 42px;
	height: 42px;
	border: 3px solid color-mix(in srgb, var(--st-preloader-fg, #2f5bff) 20%, transparent);
	border-top-color: var(--st-preloader-fg, #2f5bff);
	border-radius: 50%;
	animation: stSpin 0.8s linear infinite;
}

.stc-preloader--bar {
	place-items: start stretch;
}

.stc-preloader__bar {
	display: block;
	height: 3px;
	background: var(--st-preloader-fg, #2f5bff);
	transform-origin: left;
	animation: stBar 1.6s cubic-bezier(0.22, 1, 0.36, 1) infinite;
}

.stc-preloader__logo {
	width: auto;
	max-width: 180px;
	height: auto;
	max-height: 80px;
	animation: stPulse 1.4s ease-in-out infinite;
}

@keyframes stSpin { to { transform: rotate(360deg); } }
@keyframes stBar { 0% { transform: scaleX(0); } 70% { transform: scaleX(0.85); } 100% { transform: scaleX(1); opacity: 0; } }
@keyframes stPulse { 0%, 100% { opacity: 1; transform: scale(1); } 50% { opacity: 0.6; transform: scale(0.96); } }
@keyframes stPreloaderFailsafe { to { opacity: 0; visibility: hidden; } }

@media (prefers-reduced-motion: reduce) {
	.st-reveal-ready .st-will-reveal { opacity: 1; transform: none; filter: none; transition: none; }
	body[class*="st-page-transition-"] { animation: none; }
	.stc-preloader__spinner, .stc-preloader__bar, .stc-preloader__logo { animation: none; }
}
