:root {
	--fw-motion-ease: cubic-bezier(0.22, 1, 0.36, 1);
	--fw-motion-soft: 180ms;
	--fw-motion-medium: 520ms;
	--fw-motion-slow: 760ms;
	--fw-reveal-shift: 42px;
}

@media (prefers-reduced-motion: no-preference) {
	html {
		scroll-behavior: smooth;
	}

	body:not(.is-loaded) .site-header,
	body:not(.is-loaded) .fw-hero__content,
	body:not(.is-loaded) .fw-hero__visual {
		opacity: 0;
	}

	body.is-loaded .site-header {
		animation: finalwork-slide-down var(--fw-motion-medium) var(--fw-motion-ease) both;
	}

	body.is-loaded .fw-hero__eyebrow,
	body.is-loaded .fw-hero__title,
	body.is-loaded .fw-hero__text,
	body.is-loaded .fw-hero__actions,
	body.is-loaded .fw-hero__phone,
	body.is-loaded .fw-hero__badges,
	body.is-loaded .fw-hero__trust {
		animation: finalwork-rise var(--fw-motion-slow) var(--fw-motion-ease) both;
	}

	body.is-loaded .fw-hero__title {
		animation-delay: 70ms;
	}

	body.is-loaded .fw-hero__text {
		animation-delay: 140ms;
	}

	body.is-loaded .fw-hero__actions {
		animation-delay: 210ms;
	}

	body.is-loaded .fw-hero__phone,
	body.is-loaded .fw-hero__badges {
		animation-delay: 280ms;
	}

	body.is-loaded .fw-hero__trust {
		animation-delay: 350ms;
	}

	body.is-loaded .fw-hero-card {
		animation: finalwork-card-in 980ms var(--fw-motion-ease) 140ms both;
	}

	body.is-loaded .fw-hero-floating {
		animation: finalwork-pop 900ms var(--fw-motion-ease) both, finalwork-float 3.9s ease-in-out 1s infinite;
	}

	body.is-loaded .fw-hero-floating--conversion {
		animation-delay: 340ms, 1.25s;
	}

	body.is-loaded .fw-hero-floating--response {
		animation-delay: 460ms, 1.4s;
	}

	.fw-problem-card,
	.fw-service-card,
	.fw-trust-point,
	.fw-process-step,
	.fw-case-card,
	.fw-package-card,
	.fw-faq-item,
	.fw-contact__form-card {
		will-change: transform;
	}

	.fw-reveal {
		opacity: 0;
		transform: translate3d(0, var(--fw-reveal-shift), 0) scale(0.98);
		transition: transform var(--fw-motion-slow) var(--fw-motion-ease), opacity var(--fw-motion-slow) var(--fw-motion-ease);
		transition-delay: var(--fw-stagger, 0ms);
	}

	.fw-reveal.is-inview {
		opacity: 1;
		transform: translate3d(0, 0, 0) scale(1);
	}

	.fw-reveal--left {
		transform: translate3d(-52px, 24px, 0) scale(0.98);
	}

	.fw-reveal--right {
		transform: translate3d(52px, 24px, 0) scale(0.98);
	}

	.fw-reveal--up {
		transform: translate3d(0, 56px, 0) scale(0.97);
	}

	.fw-reveal--scale {
		transform: translate3d(0, 24px, 0) scale(0.92);
	}

	.fw-problem-card:hover,
	.fw-service-card:hover,
	.fw-trust-point:hover,
	.fw-process-step:hover,
	.fw-case-card:hover,
	.fw-package-card:hover {
		transform: translateY(-6px);
	}

	.fw-btn,
	.site-burger,
	.site-phone,
	.mobile-bottom-bar__button,
	.fw-contact-form input,
	.fw-contact-form select,
	.fw-contact-form textarea {
		transition-duration: var(--fw-motion-soft);
		transition-timing-function: var(--fw-motion-ease);
	}

	.fw-btn:hover,
	.fw-btn:focus-visible,
	.mobile-bottom-bar__button:hover,
	.mobile-bottom-bar__button:focus-visible {
		transform: translateY(-2px);
	}

	.fw-btn:active,
	.site-burger:active,
	.site-phone:active,
	.mobile-bottom-bar__button:active {
		transform: translateY(1px) scale(0.98);
	}

	.site-burger span {
		transition: transform var(--fw-motion-soft) var(--fw-motion-ease), opacity var(--fw-motion-soft) var(--fw-motion-ease);
	}

	.mobile-menu-is-open .site-burger span:nth-child(1) {
		transform: translateY(4px) rotate(45deg);
	}

	.mobile-menu-is-open .site-burger span:nth-child(2) {
		transform: translateY(-4px) rotate(-45deg);
	}

	.mobile-menu:not([hidden]) {
		animation: finalwork-menu-in 260ms var(--fw-motion-ease) both;
	}

	.mobile-menu:not([hidden]) a {
		animation: finalwork-rise 360ms var(--fw-motion-ease) both;
	}

	.mobile-menu:not([hidden]) li:nth-child(2) a {
		animation-delay: 35ms;
	}

	.mobile-menu:not([hidden]) li:nth-child(3) a {
		animation-delay: 70ms;
	}

	.mobile-menu:not([hidden]) li:nth-child(4) a {
		animation-delay: 105ms;
	}

	.mobile-menu:not([hidden]) li:nth-child(5) a {
		animation-delay: 140ms;
	}

	.mobile-menu:not([hidden]) li:nth-child(6) a {
		animation-delay: 175ms;
	}

	.fw-faq-item__answer {
		animation: finalwork-faq-open 260ms var(--fw-motion-ease) both;
		transform-origin: top;
	}

	.fw-package-card.is-recommended {
		animation: finalwork-highlight 3.8s ease-in-out infinite;
	}

	.fw-contact-form__submit:hover .fw-contact-form__icon,
	.fw-contact-form__telegram:hover .fw-contact-form__icon,
	.fw-package-card__button:hover span[aria-hidden="true"],
	.fw-hero__primary:hover .fw-hero__button-arrow {
		animation: finalwork-nudge 680ms var(--fw-motion-ease) both;
	}
}

@media (prefers-reduced-motion: no-preference) and (max-width: 767px) {
	body.is-loaded .fw-hero__eyebrow,
	body.is-loaded .fw-hero__title,
	body.is-loaded .fw-hero__text,
	body.is-loaded .fw-hero__actions,
	body.is-loaded .fw-hero__phone,
	body.is-loaded .fw-hero__badges,
	body.is-loaded .fw-hero__trust {
		animation-duration: 620ms;
	}

	body.is-loaded .fw-hero-floating {
		animation: finalwork-mobile-chip 620ms var(--fw-motion-ease) both, finalwork-float-mobile 3.2s ease-in-out 900ms infinite;
	}

	body.is-loaded .fw-hero-floating--response {
		animation-delay: 120ms;
	}

	body.is-loaded .fw-hero-floating--conversion {
		animation-delay: 190ms;
	}

	.fw-problem-card,
	.fw-service-card,
	.fw-trust-point,
	.fw-process-step,
	.fw-case-card,
	.fw-package-card,
	.fw-faq-item {
		transition: transform var(--fw-motion-soft) var(--fw-motion-ease), box-shadow var(--fw-motion-soft) var(--fw-motion-ease), border-color var(--fw-motion-soft) var(--fw-motion-ease);
	}

	.fw-problem-card:active,
	.fw-service-card:active,
	.fw-trust-point:active,
	.fw-process-step:active,
	.fw-case-card:active,
	.fw-package-card:active,
	.fw-faq-item:active {
		transform: scale(0.985);
	}

	.mobile-bottom-bar {
		animation: finalwork-bottom-bar 460ms var(--fw-motion-ease) 280ms both;
	}

	.mobile-bottom-bar__button:first-child {
		animation: finalwork-soft-pulse 3.6s ease-in-out 1.2s infinite;
	}

	.fw-contact__panel {
		animation: finalwork-panel-glow 4.5s ease-in-out infinite;
	}

	.fw-reveal {
		--fw-reveal-shift: 28px;
	}

	.fw-reveal--left,
	.fw-reveal--right,
	.fw-reveal--up,
	.fw-reveal--scale {
		transform: translate3d(0, 34px, 0) scale(0.98);
	}
}

@media (prefers-reduced-motion: reduce) {
	*,
	*::before,
	*::after {
		animation-duration: 0.01ms !important;
		animation-iteration-count: 1 !important;
		scroll-behavior: auto !important;
		transition-duration: 0.01ms !important;
	}
}

@keyframes finalwork-slide-down {
	from {
		opacity: 0;
		transform: translateY(-16px);
	}
	to {
		opacity: 1;
		transform: translateY(0);
	}
}

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

@keyframes finalwork-card-in {
	from {
		opacity: 0;
		transform: translateY(44px) scale(0.9) rotateX(9deg);
	}
	to {
		opacity: 1;
		transform: translateY(0) scale(1) rotateX(0deg);
	}
}

@keyframes finalwork-pop {
	from {
		opacity: 0;
		transform: translateY(26px) scale(0.75) rotate(-6deg);
	}
	to {
		opacity: 1;
		transform: translateY(0) scale(1) rotate(0deg);
	}
}

@keyframes finalwork-float {
	0%,
	100% {
		transform: translateY(0) rotate(0deg);
	}
	25% {
		transform: translateY(-10px) rotate(1.2deg);
	}
	50% {
		transform: translateY(-4px) rotate(-1deg);
	}
	75% {
		transform: translateY(-12px) rotate(0.6deg);
	}
}

@keyframes finalwork-mobile-chip {
	from {
		opacity: 0;
		transform: translateX(-20px) translateY(8px) scale(0.9);
	}
	to {
		opacity: 1;
		transform: translateX(0) translateY(0) scale(1);
	}
}

@keyframes finalwork-float-mobile {
	0%,
	100% {
		transform: translateY(0);
	}
	50% {
		transform: translateY(-6px);
	}
}

@keyframes finalwork-menu-in {
	from {
		opacity: 0;
		transform: translateY(-8px) scale(0.98);
	}
	to {
		opacity: 1;
		transform: translateY(0) scale(1);
	}
}

@keyframes finalwork-faq-open {
	from {
		opacity: 0;
		transform: translateY(-8px);
	}
	to {
		opacity: 1;
		transform: translateY(0);
	}
}

@keyframes finalwork-highlight {
	0%,
	100% {
		box-shadow: 0 26px 54px rgba(15, 23, 42, 0.14);
	}
	50% {
		box-shadow: 0 28px 60px rgba(30, 58, 138, 0.22);
	}
}

@keyframes finalwork-nudge {
	0%,
	100% {
		transform: translateX(0);
	}
	45% {
		transform: translateX(5px);
	}
}

@keyframes finalwork-bottom-bar {
	from {
		opacity: 0;
		transform: translateY(100%);
	}
	to {
		opacity: 1;
		transform: translateY(0);
	}
}

@keyframes finalwork-soft-pulse {
	0%,
	100% {
		box-shadow: 0 10px 24px rgba(8, 145, 178, 0.2);
	}
	50% {
		box-shadow: 0 14px 30px rgba(8, 145, 178, 0.34);
	}
}

@keyframes finalwork-panel-glow {
	0%,
	100% {
		box-shadow: none;
	}
	50% {
		box-shadow: inset 0 0 0 1px rgba(8, 145, 178, 0.08), 0 18px 45px rgba(15, 23, 42, 0.04);
	}
}
