.a11y-switcher__trigger {
  width: 32px;
  height: 32px;
  padding: 0;
  justify-content: center;
  gap: 0;
  border-radius: var(--radius-full);
  color: var(--color-text);
  transition: background-color var(--duration-fast) var(--ease-default), color var(--duration-fast) var(--ease-default);
}
.a11y-switcher__trigger:hover { color: var(--color-text); background: var(--color-accent-subtle) }
.a11y-switcher__trigger::after { display: none }
.a11y-switcher__icon { width: 19px; height: 19px }

.a11y-panel {
  width: 292px;
  padding: var(--space-4) var(--space-4) var(--space-3);
  display: flex;
  flex-direction: column;
  gap: var(--space-2);
  border-radius: var(--radius-xl);
}

.a11y-panel__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-2);
  padding-bottom: var(--space-3);
  border-bottom: 1px solid var(--color-border-subtle);
}
.a11y-panel__title {
  margin: 0;
  font-size: var(--text-sm);
  font-weight: var(--weight-semibold);
  color: var(--color-text);
}
.a11y-panel__count {
  font-size: var(--text-xs);
  font-weight: var(--weight-medium);
  color: var(--color-text-muted);
  background: var(--color-bg-subtle);
  border: 1px solid var(--color-border-subtle);
  padding: 2px var(--space-2);
  border-radius: var(--radius-full);
  white-space: nowrap;
  transition: color var(--duration-fast) var(--ease-default), background-color var(--duration-fast) var(--ease-default), border-color var(--duration-fast) var(--ease-default);
}
.a11y-panel__count.is-active {
  color: var(--color-accent-strong);
  background: var(--color-accent-subtle);
  border-color: transparent;
}

.a11y-panel__section {
  display: flex;
  flex-direction: column;
  gap: 1px;
  padding: var(--space-2) 0;
}
.a11y-panel__section + .a11y-panel__section { border-top: 1px solid var(--color-border-subtle) }
.a11y-panel__section-title {
  margin: 0 0 var(--space-1);
  padding-left: 2px;
  font-size: 11px;
  font-weight: var(--weight-semibold);
  text-transform: uppercase;
  letter-spacing: 0.07em;
  color: var(--color-text-muted);
}
.a11y-panel__row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-3);
  min-height: 34px;
  padding: 2px 0;
}
.a11y-panel__label {
  font-size: var(--text-sm);
  color: var(--color-text-secondary);
  line-height: 1.3;
}

.a11y-panel__sizes {
  display: inline-flex;
  align-items: center;
  gap: 2px;
  padding: 2px;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-full);
  background: var(--color-bg-subtle);
  flex: none;
}
.a11y-panel__size {
  min-width: 30px;
  height: 25px;
  padding: 0 var(--space-1);
  border: 0;
  border-radius: var(--radius-full);
  background: none;
  color: var(--color-text);
  font-family: inherit;
  font-size: var(--text-sm);
  font-weight: var(--weight-semibold);
  cursor: pointer;
  transition: background-color var(--duration-fast) var(--ease-default), color var(--duration-fast) var(--ease-default), opacity var(--duration-fast) var(--ease-default);
}
.a11y-panel__size:hover:not(:disabled) { background: var(--color-surface-hover) }
.a11y-panel__size:disabled { opacity: 0.35; cursor: default }

.a11y-panel__switch {
  position: relative;
  width: 42px;
  height: 24px;
  flex: none;
  padding: 0;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-full);
  background: var(--color-bg-subtle);
  cursor: pointer;
  transition: background-color var(--duration-fast) var(--ease-default), border-color var(--duration-fast) var(--ease-default);
}
.a11y-panel__switch > span {
  position: absolute;
  top: 2px;
  left: 2px;
  width: 18px;
  height: 18px;
  border-radius: var(--radius-full);
  background: var(--color-text-muted);
  transition: transform var(--duration-fast) var(--ease-default), background-color var(--duration-fast) var(--ease-default);
}
.a11y-panel__switch:hover:not([aria-checked="true"]) { border-color: var(--color-text-muted) }
.a11y-panel__switch[aria-checked="true"] { background: var(--color-accent); border-color: var(--color-accent) }
.a11y-panel__switch[aria-checked="true"] > span { transform: translateX(18px); background: #fff }

.a11y-panel__footer {
  padding-top: var(--space-3);
  border-top: 1px solid var(--color-border-subtle);
  margin-top: auto;
}
.a11y-panel__reset {
  width: 100%;
  padding: var(--space-2) var(--space-3);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);
  background: none;
  color: var(--color-text-secondary);
  font-family: inherit;
  font-size: var(--text-sm);
  font-weight: var(--weight-medium);
  cursor: pointer;
  transition: color var(--duration-fast) var(--ease-default), border-color var(--duration-fast) var(--ease-default), background-color var(--duration-fast) var(--ease-default);
}
.a11y-panel__reset:hover {
  color: var(--color-text);
  border-color: var(--color-text-muted);
  background: var(--color-bg-subtle);
}

@media (max-width: 768px) {
  .a11y-panel {
    position: fixed;
    top: auto;
    left: 0;
    right: 0;
    bottom: 0;
    width: auto;
    max-height: 84vh;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
    z-index: calc(var(--z-overlay) + 1);
    padding: var(--space-3) var(--space-5) calc(var(--space-5) + env(safe-area-inset-bottom));
    border: 1px solid var(--color-border);
    border-bottom: 0;
    border-radius: var(--radius-xl) var(--radius-xl) 0 0;
    box-shadow: 0 -16px 48px rgba(0, 0, 0, 0.28);
    transform: translateY(100%);
    transition: transform var(--duration-normal) var(--ease-default), opacity var(--duration-fast) var(--ease-default), visibility var(--duration-fast) var(--ease-default);
  }
  .header__item--menu.is-open > .a11y-panel { transform: translateY(0) }
  .a11y-panel::before {
    content: '';
    display: block;
    width: 36px;
    height: 4px;
    margin: 0 auto var(--space-3);
    border-radius: var(--radius-full);
    background: var(--color-border);
  }
  .a11y-panel__section { padding: var(--space-3) 0 }
  .a11y-panel__row { min-height: 38px }
  .a11y-panel__label { font-size: var(--text-base) }
}

html[data-a11y-text="1"] { font-size: 17.6px }
html[data-a11y-text="2"] { font-size: 19.2px }
html[data-a11y-text="3"] { font-size: 20.8px }

html[data-a11y-contrast="high"] {
  --color-text: #05070a;
  --color-text-secondary: #1c222b;
  --color-text-muted: #333c48;
  --color-border: #05070a;
  --color-border-subtle: #545e6c;
  --color-bg: #ffffff;
  --color-bg-elevated: #ffffff;
  --color-bg-subtle: #eceef1;
  --color-surface: #ffffff;
  --color-surface-hover: #e8ebef;
  --color-accent: #0a58c8;
  --color-accent-strong: #06408f;
}
html[data-theme="dark"][data-a11y-contrast="high"] {
  --color-text: #ffffff;
  --color-text-secondary: #eef1f5;
  --color-text-muted: #d2d8e0;
  --color-border: #ffffff;
  --color-border-subtle: #8a93a1;
  --color-bg: #000000;
  --color-bg-elevated: #000000;
  --color-bg-subtle: #0d0f13;
  --color-surface: #000000;
  --color-surface-hover: #16191f;
  --color-accent: #86bdff;
  --color-accent-strong: #b8d9ff;
}

html[data-a11y-spacing="wide"] p,
html[data-a11y-spacing="wide"] li,
html[data-a11y-spacing="wide"] a,
html[data-a11y-spacing="wide"] blockquote,
html[data-a11y-spacing="wide"] figcaption,
html[data-a11y-spacing="wide"] label,
html[data-a11y-spacing="wide"] input,
html[data-a11y-spacing="wide"] textarea,
html[data-a11y-spacing="wide"] td,
html[data-a11y-spacing="wide"] th {
  line-height: 1.7 !important;
  letter-spacing: 0.05em !important;
  word-spacing: 0.16em !important;
}

html[data-a11y-bold="on"] body,
html[data-a11y-bold="on"] p,
html[data-a11y-bold="on"] li,
html[data-a11y-bold="on"] a,
html[data-a11y-bold="on"] label,
html[data-a11y-bold="on"] h3,
html[data-a11y-bold="on"] h4,
html[data-a11y-bold="on"] h5,
html[data-a11y-bold="on"] h6,
html[data-a11y-bold="on"] td,
html[data-a11y-bold="on"] th,
html[data-a11y-bold="on"] span,
html[data-a11y-bold="on"] button {
  font-weight: 600 !important;
}

html[data-a11y-links="underline"] a:not(.btn):not(.header__link):not(.mobile-menu__link):not(.footer__column-link) {
  text-decoration: underline !important;
  text-underline-offset: 3px !important;
  text-decoration-thickness: 1.5px !important;
}

html[data-a11y-cursor="large"] *,
html[data-a11y-cursor="large"] *::before {
  cursor: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='32' height='32' viewBox='0 0 32 32'%3E%3Cpath d='M6 4l18 12-7 1 4 8-4 2-4-8-7 5z' fill='%23fff' stroke='%23000' stroke-width='2' stroke-linejoin='round'/%3E%3C/svg%3E") 6 4, auto !important;
}

html[data-a11y-grayscale="on"] {
  filter: grayscale(1) !important;
}

html[data-a11y-motion="reduced"] *,
html[data-a11y-motion="reduced"] *::before,
html[data-a11y-motion="reduced"] *::after {
  animation-duration: 0.01ms !important;
  animation-iteration-count: 1 !important;
  transition-duration: 0.01ms !important;
}
html[data-a11y-motion="reduced"] { scroll-behavior: auto }
html[data-a11y-motion="reduced"] .skill-marquee__track {
  animation-duration: var(--marquee-duration, 30s) !important;
  animation-iteration-count: infinite !important;
}

@media (prefers-reduced-motion: reduce) {
  .a11y-switcher__trigger,
  .a11y-panel,
  .a11y-panel__count,
  .a11y-panel__size,
  .a11y-panel__switch,
  .a11y-panel__switch > span,
  .a11y-panel__reset { transition: none }
}
