/* Luna accessibility baseline: keyboard, contrast, touch and motion. */
:root {
	--luna-focus: #245c49;
	--luna-focus-ring: rgba(36, 92, 73, .28);
}

.luna-skip-link {
	position: fixed;
	z-index: 100000;
	top: 12px;
	right: 12px;
	padding: 12px 18px;
	border: 2px solid #fff;
	border-radius: 12px;
	background: #173d31;
	color: #fff;
	font-weight: 800;
	text-decoration: none;
	transform: translateY(-180%);
	transition: transform .18s ease;
}
.luna-skip-link:focus { transform: translateY(0); }

:where(a, button, input, select, textarea, summary, [role="button"], [tabindex]):focus { outline: none; }
:where(a, button, input, select, textarea, summary, [role="button"], [tabindex]):focus-visible {
	outline: 3px solid var(--luna-focus) !important;
	outline-offset: 3px !important;
	box-shadow: 0 0 0 5px var(--luna-focus-ring) !important;
}

:where(button, input[type="button"], input[type="submit"], input[type="reset"], .button, [role="button"]) {
	min-inline-size: 17px !important;
	min-block-size: 17px !important;
}
:where(input:not([type="checkbox"]):not([type="radio"]), select, textarea) { min-block-size: 44px !important; }
:where(input[type="checkbox"], input[type="radio"]) { inline-size: 20px; block-size: 20px; }

[aria-disabled="true"], :disabled { cursor: not-allowed; }
[hidden] { display: none !important; }
.screen-reader-text,
.luna-sr-only {
	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;
}
.screen-reader-text:focus {
	clip: auto !important;
	width: auto !important;
	height: auto !important;
	margin: 0 !important;
}

/* Previously very pale secondary copy failed on white/glass surfaces. */
:where(.sub, .lede, .desc, .meta, .muted, .header-search-status, .lspwa-body) small { color: #625d5e; }
::placeholder { color: #6e696a; opacity: 1; }

@media (max-width: 782px) {
	:where(a, button, .button, summary, [role="button"]) { touch-action: manipulation; }
	.site-header .header-icon,
	.site-header .header-menu-toggle { min-width: 44px; min-height: 44px; }
}

@media (prefers-reduced-motion: reduce) {
	html:focus-within { scroll-behavior: auto !important; }
	*, *::before, *::after {
		animation-duration: .01ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: .01ms !important;
		scroll-behavior: auto !important;
	}
	.reveal, .stagger-item, [data-reveal] { opacity: 1 !important; transform: none !important; }
	#three-canvas, .starfield, .cursor-orb, .liquid-cursor { display: none !important; }
}

@media (forced-colors: active) {
	:where(button, .button, input, select, textarea, .glass) { border: 1px solid CanvasText !important; }
}
