/* ==========================================================================
   ACCESSIBILITY
   ========================================================================== */

.aa-skip-link {
	position: absolute;
	inset-inline-start: 16px;
	inset-block-start: -100px;
	z-index: 999;
	padding: 12px 20px;
	background: var(--c-porcelain);
	color: var(--c-ink);
	border-radius: 999px;
	transition: inset-block-start var(--dur-fast) var(--ease-out);
}
.aa-skip-link:focus-visible { inset-block-start: 16px; }

:where(a, button, input, textarea, select, [tabindex]):focus-visible {
	outline: 2px solid var(--c-signal);
	outline-offset: 3px;
	border-radius: 2px;
}

.aa-u-visually-hidden {
	position: absolute;
	width: 1px;
	height: 1px;
	margin: -1px;
	padding: 0;
	overflow: hidden;
	clip-path: inset(50%);
	white-space: nowrap;
}

/* 演出を減らす設定：すべての要素を最終状態で静的表示し、情報欠落をゼロにする */
@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }

	*, *::before, *::after {
		animation-duration: 0.001ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: 0.001ms !important;
	}

	[data-aa-reveal] {
		opacity: 1 !important;
		filter: none !important;
		transform: none !important;
	}
}

/* JS 無効時も全内容を表示する */
.no-js [data-aa-reveal] { opacity: 1; transform: none; filter: none; }
