:root {
	--aa-motion-fast: 220ms;
	--aa-motion-medium: 420ms;
	--aa-motion-slow: 700ms;
	--aa-motion-ease: cubic-bezier(.22, 1, .36, 1);
}

/* Every hover value below has its matching transition on the resting state,
   so both pointer-in and pointer-out are intentionally animated. */
.aa-wordmark {
	display: inline-block;
	transition: letter-spacing var(--aa-motion-medium) var(--aa-motion-ease), opacity var(--aa-motion-fast) ease;
}

.aa-nav a {
	display: inline-block;
	transition: opacity var(--aa-motion-fast) ease, transform var(--aa-motion-fast) var(--aa-motion-ease);
}

.aa-menu-toggle span:not(.screen-reader-text) {
	transition: transform var(--aa-motion-fast) var(--aa-motion-ease), opacity var(--aa-motion-fast) ease;
}

.aa-button,
.aa-glass-button {
	transition: background-color var(--aa-motion-fast) ease,
		border-color var(--aa-motion-fast) ease,
		color var(--aa-motion-fast) ease,
		transform var(--aa-motion-medium) var(--aa-motion-ease),
		box-shadow var(--aa-motion-medium) var(--aa-motion-ease);
}

.aa-button span,
.aa-glass-button span {
	display: inline-block;
	transition: transform var(--aa-motion-medium) var(--aa-motion-ease);
}

.aa-text-link,
.aa-project h3,
.aa-archive-card h2,
.aa-service-list h3,
.aa-project-index-meta h2 {
	text-decoration-line: underline;
	text-decoration-thickness: 1px;
	text-decoration-color: transparent;
	text-underline-offset: .18em;
	transition: color var(--aa-motion-fast) ease,
		text-decoration-color var(--aa-motion-medium) ease,
		text-underline-offset var(--aa-motion-medium) var(--aa-motion-ease),
		transform var(--aa-motion-medium) var(--aa-motion-ease);
}

.aa-press-card h3 {
	text-decoration: none;
	transition: color var(--aa-motion-fast) ease,
		transform var(--aa-motion-medium) var(--aa-motion-ease);
}

.aa-service-list a {
	transition: padding-left var(--aa-motion-medium) var(--aa-motion-ease),
		color var(--aa-motion-fast) ease,
		background-color var(--aa-motion-fast) ease;
}

.aa-service-list a > span,
.aa-service-list a > b {
	transition: opacity var(--aa-motion-fast) ease, transform var(--aa-motion-medium) var(--aa-motion-ease);
}

.aa-project img,
.aa-archive-card img,
.aa-project-index-card figure img,
.aa-service-panel-image img,
.aa-press-card img {
	transition: transform var(--aa-motion-slow) var(--aa-motion-ease), filter var(--aa-motion-medium) ease;
	will-change: transform;
}

.aa-project p,
.aa-project span,
.aa-archive-card p,
.aa-archive-card span,
.aa-project-index-meta p,
.aa-project-index-meta span,
.aa-press-card p,
.aa-press-card span {
	transition: opacity var(--aa-motion-fast) ease, transform var(--aa-motion-medium) var(--aa-motion-ease);
}

.aa-footer a {
	display: block;
	width: fit-content;
	transition: opacity var(--aa-motion-fast) ease, transform var(--aa-motion-medium) var(--aa-motion-ease);
}

.aa-form input,
.aa-form textarea {
	transition: border-color var(--aa-motion-fast) ease, background-color var(--aa-motion-fast) ease;
}

@media (hover: hover) and (pointer: fine) {
	.aa-wordmark:hover {
		letter-spacing: .18em;
		opacity: .7;
	}

	.aa-nav a:hover {
		opacity: .52;
		transform: translateY(-2px);
	}

	.aa-menu-toggle[aria-expanded="false"]:hover span:nth-child(1),
	.aa-menu-toggle[aria-expanded="false"]:hover span:nth-child(3) {
		transform: translateX(3px);
	}

	.aa-menu-toggle[aria-expanded="false"]:hover span:nth-child(2) {
		transform: translateX(-3px);
	}

	.aa-button:hover,
	.aa-glass-button:hover {
		transform: translateY(-3px);
		box-shadow: 0 10px 24px rgba(17, 18, 15, .12);
	}

	.aa-button:hover span,
	.aa-glass-button:hover span {
		transform: translateX(4px);
	}

	.aa-text-link:hover,
	.aa-project a:hover h3,
	.aa-archive-card a:hover h2,
	.aa-project-index-card a:hover h2,
	.aa-service-list a:hover h3 {
		text-decoration-color: currentColor;
		text-underline-offset: .28em;
	}

	.aa-project a:hover h3,
	.aa-archive-card a:hover h2,
	.aa-project-index-card a:hover h2,
	.aa-press-card a:hover h3 {
		transform: translateX(5px);
	}

	.aa-project a:hover img,
	.aa-archive-card a:hover img,
	.aa-project-index-card a:hover figure img,
	.aa-press-card a:hover img {
		transform: scale(1.045);
		filter: saturate(1.04) contrast(1.02);
	}

	.aa-project a:hover p,
	.aa-project a:hover span,
	.aa-archive-card a:hover p,
	.aa-archive-card a:hover span,
	.aa-project-index-card a:hover p,
	.aa-project-index-card a:hover span,
	.aa-press-card a:hover p,
	.aa-press-card a:hover span {
		opacity: .62;
		transform: translateX(3px);
	}

	.aa-service-list a:hover > span {
		opacity: .55;
		transform: translateX(3px);
	}

	.aa-service-list a:hover > b {
		transform: translateX(5px);
	}

	.aa-service-panel-image:hover img {
		transform: scale(1.04);
		filter: saturate(1.04) contrast(1.02);
	}

	.aa-footer a:hover {
		opacity: .62;
		transform: translateX(4px);
	}

	.aa-form input:hover,
	.aa-form textarea:hover {
		border-color: var(--aa-accent);
		background-color: rgba(169, 164, 120, .045);
	}
}

@media (prefers-reduced-motion: reduce) {
	.aa-wordmark,
	.aa-nav a,
	.aa-menu-toggle span,
	.aa-button,
	.aa-glass-button,
	.aa-button span,
	.aa-glass-button span,
	.aa-text-link,
	.aa-project h3,
	.aa-archive-card h2,
	.aa-service-list a,
	.aa-service-list h3,
	.aa-project-index-meta h2,
	.aa-press-card h3,
	.aa-project img,
	.aa-archive-card img,
	.aa-project-index-card img,
	.aa-service-panel-image img,
	.aa-press-card img,
	.aa-footer a,
	.aa-form input,
	.aa-form textarea {
		transition-duration: .01ms !important;
	}
}
