.sa-fx-card,
.sa-fx-btn {
	transition: transform .25s cubic-bezier(.2,.7,.3,1), box-shadow .25s ease, background-color .2s ease, border-color .2s ease;
	will-change: transform;
}
.sa-fx-card { cursor: pointer; }
@media (hover: hover) {
	.sa-fx-card:hover { transform: translateY(-4px); box-shadow: 0 2px 4px rgba(15,26,46,.06), 0 16px 36px rgba(15,26,46,.12); }
	.sa-fx-dark.sa-fx-card:hover { box-shadow: 0 16px 36px rgba(0,0,0,.35); border-color: rgba(245,166,35,.55) !important; }
	.sa-fx-btn:hover { transform: translateY(-2px); box-shadow: 0 8px 20px rgba(15,26,46,.18); }
	.sa-fx-item.sa-fx-card:hover { transform: translate(3px, -2px); box-shadow: 0 6px 16px rgba(15,26,46,.12); border-color: rgba(30,127,163,.55) !important; }
	.sa-fx-item.sa-fx-dark.sa-fx-card:hover { box-shadow: 0 8px 20px rgba(0,0,0,.35); border-color: rgba(245,166,35,.75) !important; background-color: rgba(245,166,35,.14) !important; }
}
.sa-fx-card.is-pressed { transform: translateY(-1px) scale(.985); transition-duration: .12s; }
.sa-fx-btn.is-pressed { transform: scale(.96); transition-duration: .1s; }
.sa-fx-item.is-pressed { transform: scale(.97); }

.sa-fx-rip {
	position: absolute; inset: 0; overflow: hidden; border-radius: inherit; pointer-events: none; z-index: 0;
}
.sa-fx-rip > i {
	position: absolute; border-radius: 50%; transform: translate(-50%, -50%) scale(0);
	background: radial-gradient(circle, rgba(245,166,35,.35) 0%, rgba(245,166,35,.12) 45%, rgba(245,166,35,0) 70%);
	animation: sa-fx-rip .65s cubic-bezier(.2,.7,.3,1) forwards;
}
.sa-fx-dark > .sa-fx-rip > i { background: radial-gradient(circle, rgba(245,166,35,.45) 0%, rgba(245,166,35,.16) 45%, rgba(245,166,35,0) 70%); }
.sa-fx-light > .sa-fx-rip > i { background: radial-gradient(circle, rgba(30,127,163,.22) 0%, rgba(30,127,163,.08) 45%, rgba(30,127,163,0) 70%); }
@keyframes sa-fx-rip { to { transform: translate(-50%, -50%) scale(1); opacity: 0; } }

html.sa-fx-js .sa-reveal { opacity: 0; transform: translateY(18px); }
html.sa-fx-js .sa-reveal.is-in {
	opacity: 1; transform: none;
	transition: opacity .6s ease, transform .6s cubic-bezier(.2,.7,.3,1);
	transition-delay: var(--sa-d, 0ms);
}

.sa-fx-tabin { animation: sa-fx-tabin .35s cubic-bezier(.2,.7,.3,1); }
@keyframes sa-fx-tabin { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: none; } }

@media (prefers-reduced-motion: reduce) {
	.sa-fx-card, .sa-fx-btn { transition: none; }
	.sa-fx-card:hover, .sa-fx-btn:hover, .sa-fx-card.is-pressed, .sa-fx-btn.is-pressed { transform: none; }
	.sa-fx-rip { display: none; }
	html.sa-fx-js .sa-reveal { opacity: 1; transform: none; }
	.sa-fx-tabin { animation: none; }
}
