/* ==========================================
UndefinedVerseOfficial
Accessibility System
========================================== */

/* Screen-reader-only content */

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

.sr-only-focusable:focus,
.sr-only-focusable:active {
position: static;
width: auto;
height: auto;
margin: 0;
overflow: visible;
clip: auto;
white-space: normal;
}

/* Keyboard focus */

:focus {
outline: none;
}

:focus-visible {
outline: 2px solid var(--color-chrome);
outline-offset: 4px;
}

a:focus-visible,
button:focus-visible,
input:focus-visible,
textarea:focus-visible,
select:focus-visible {
outline: 2px solid var(--color-chrome);
outline-offset: 3px;
}

/* Touch accessibility */

button,
[role="button"],
a {
touch-action: manipulation;
}

button,
[role="button"] {
min-width: 24px;
min-height: 24px;
}

/* Prevent accidental text selection */

.no-select {
-webkit-user-select: none;
user-select: none;
}

/* Readable content */

.readable {
max-width: 70ch;
}

/* Skip navigation */

.skip-link {
position: fixed;
top: var(--space-3);
left: var(--space-3);
z-index: var(--z-toast);
padding: var(--space-3) var(--space-4);
transform: translateY(-150%);
border: 1px solid var(--color-border-strong);
border-radius: var(--radius-md);
background: var(--color-chrome);
color: var(--color-obsidian);
font-weight: var(--font-weight-semibold);
}

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

/* Reduced motion */

@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;
}
}

/* High contrast preference */

@media (prefers-contrast: more) {
:root {
--color-border: rgba(244, 245, 246, 0.4);
--color-border-strong: rgba(244, 245, 246, 0.75);
--color-text-muted: #D0D3D8;
}
}