.a11y-visually-hidden {
	position: absolute !important;
	width: 1px !important;
	height: 1px !important;
	padding: 0 !important;
	margin: -1px !important;
	overflow: hidden !important;
	clip: rect(0, 0, 0, 0) !important;
	white-space: nowrap !important;
	border: 0 !important;
}

.skip-link {
	position: fixed;
	top: 1rem;
	left: 1rem;
	z-index: 10000;
	transform: translateY(-200%);
	padding: 0.8rem 1.2rem;
	color: #fff;
	background: #111;
	font-weight: 700;
}

.skip-link:focus {
	transform: translateY(0);
}

#gallery-canvas:focus-visible,
#gallery-canvas.keyboard-focused:focus {
	outline-offset: -6px !important;
}

/* Native fallback remains available without JavaScript and in high-contrast mode. */
body :focus-visible,
body .keyboard-focused:focus {
	outline: 2px solid #e6007e !important;
	outline-offset: 3px !important;
}

body .focus-highlight-target:focus-visible,
body .focus-highlight-target.keyboard-focused:focus {
	outline: none !important;
}

.keyboard-focus-highlight[hidden] {
	display: none !important;
}

.keyboard-focus-highlight {
	position: fixed;
	z-index: 2147483646;
	box-sizing: border-box;
	border: 2px solid #e6007e;
	pointer-events: none;
	user-select: none;
	animation: keyboard-focus-reveal 160ms ease-out;
}

.keyboard-focus-highlight--subtle {
	border-width: 1px;
	border-color: #9ca3af;
	animation: none;
}

@keyframes keyboard-focus-reveal {
	from { opacity: 0; }
	to { opacity: 1; }
}

@media (prefers-reduced-motion: reduce) {
	.keyboard-focus-highlight { animation: none; }
}

body :is(a, button, input, textarea, select, [tabindex]) {
	scroll-margin-block: 2rem;
}

.gallery-keyboard-control {
	padding: 0.65rem 0.9rem;
	border: 1px solid #fff;
	border-radius: 0.35rem;
	color: #fff;
	background: #111;
	font: inherit;
	font-size: 0.875rem;
	line-height: 1.4;
	cursor: pointer;
}

.gallery-keyboard-control:hover {
	background: #333;
}

@media (min-width: 768px) and (hover: hover) and (pointer: fine) {
	.team-card:focus-within :is(.overlay, .text-anim, .people-card-blur),
	.team-card:focus-within .people-card-overlay::before {
		opacity: 1;
		transform: none;
	}

	html[data-motion-paused] *,
	html[data-motion-paused] *::before,
	html[data-motion-paused] *::after {
		animation-play-state: paused !important;
		transition-duration: 0s !important;
		scroll-behavior: auto !important;
	}

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

@media (forced-colors: active) {
	body :focus-visible,
	body .keyboard-focused:focus,
	body .focus-highlight-target:focus-visible,
	body .focus-highlight-target.keyboard-focused:focus {
		outline: 2px solid Highlight !important;
	}
	.keyboard-focus-highlight { display: none !important; }
}
