.a11y-trigger {
  position: fixed;
  inset-inline-end: 12px;
  inset-block-end: 16px;
  z-index: 40;
  display: grid;
  place-items: center;
  inline-size: 50px;
  block-size: 50px;
  border: 2px solid var(--color-bg);
  border-radius: 50%;
  color: var(--color-on-primary);
  background: var(--color-primary);
  box-shadow: var(--glow-md);
  cursor: pointer;
}
.a11y-menu label { display: grid; gap: 4px; margin-block: 12px; }
.a11y-menu label.a11y-check { display: flex; align-items: center; min-block-size: 44px; gap: 10px; }
.a11y-menu input { inline-size: 20px; block-size: 20px; accent-color: var(--color-primary); }
.a11y-menu select { font: inherit; color: var(--color-text); background: var(--color-surface); border: 1px solid var(--color-border-strong); border-radius: 8px; padding-inline: 8px; min-block-size: 44px; }
@media (max-width: 767px) {
  .a11y-trigger { inset-block-end: calc(4.5rem + env(safe-area-inset-bottom)); }
}
:root[data-a11y-size="112"] { font-size: 112%; }
:root[data-a11y-size="125"] { font-size: 125%; }
:root[data-a11y-size="150"] { font-size: 150%; }
:root[data-a11y-palette="light"] {
  color-scheme: light;
  --color-bg: #eef5fc; --color-surface: #fff; --color-surface-2: #dcebf8;
  --color-text: #0d2138; --color-text-muted: #314e6b; --color-primary: #075687;
  --color-focus: #075687; --color-focus-halo: #fff; --color-border-strong: #456781;
  --color-code-slot: #fff; --bg-atmosphere: #eef5fc; --glass-bg: #fff; --glass-bg-strong: #fff;
  --toolbar-text: #0d2138; --color-warning-bg: #fff0ca; --color-error-bg: #ffe3e3;
}
:root[data-a11y-palette="contrast"] {
  --color-bg: #000; --color-surface: #000; --color-surface-2: #222;
  --color-text: #fff; --color-text-muted: #fff; --color-primary: #ffea68; --color-primary-hover: #fff3a0;
  --color-focus: #ffea68; --color-focus-halo: #000; --color-border-strong: #fff;
  --color-on-primary: #000; --color-code-slot: #000; --bg-atmosphere: #000;
  --glass-bg: #000; --glass-bg-strong: #000; --glass-border: 1px solid #fff; --toolbar-text: #fff;
  --gradient-primary: #ffea68; --gradient-primary-hover: #fff3a0; --glow-sm: none; --glow-md: none;
}
:root[data-a11y-palette="light"] .a11y-trigger { color: #fff; }
[data-a11y-links] a { text-decoration: underline 0.15em; text-underline-offset: 0.2em; font-weight: 600; }
[data-a11y-motion] *, [data-a11y-motion] *::before, [data-a11y-motion] *::after {
  animation: none !important; transition: none !important; scroll-behavior: auto !important;
}
