:root {
  --artw-a11y-font-scale: 1;
  --artw-a11y-letter-spacing: 0;
  --artw-a11y-word-spacing: 0;
  --artw-a11y-line-height: normal;
}

html[data-artw-font="-2"] { --artw-a11y-font-scale: .90; }
html[data-artw-font="-1"] { --artw-a11y-font-scale: .95; }
html[data-artw-font="1"]  { --artw-a11y-font-scale: 1.10; }
html[data-artw-font="2"]  { --artw-a11y-font-scale: 1.25; }
html[data-artw-font="3"]  { --artw-a11y-font-scale: 1.50; }
html[data-artw-font="4"]  { --artw-a11y-font-scale: 1.75; }
html[data-artw-font="5"]  { --artw-a11y-font-scale: 2; }
html[data-artw-font] { font-size: calc(100% * var(--artw-a11y-font-scale)); }

html[data-artw-spacing="-2"] { --artw-a11y-letter-spacing: -.015em; --artw-a11y-word-spacing: -.025em; }
html[data-artw-spacing="-1"] { --artw-a11y-letter-spacing: -.0075em; --artw-a11y-word-spacing: -.0125em; }
html[data-artw-spacing="1"]  { --artw-a11y-letter-spacing: .03em; --artw-a11y-word-spacing: .05em; --artw-a11y-line-height: 1.5; }
html[data-artw-spacing="2"]  { --artw-a11y-letter-spacing: .06em; --artw-a11y-word-spacing: .10em; --artw-a11y-line-height: 1.65; }
html[data-artw-spacing="3"]  { --artw-a11y-letter-spacing: .09em; --artw-a11y-word-spacing: .14em; --artw-a11y-line-height: 1.8; }
html[data-artw-spacing="4"]  { --artw-a11y-letter-spacing: .12em; --artw-a11y-word-spacing: .16em; --artw-a11y-line-height: 2; }
html[data-artw-spacing] body { letter-spacing: var(--artw-a11y-letter-spacing); word-spacing: var(--artw-a11y-word-spacing); line-height: var(--artw-a11y-line-height); }

html[data-artw-links="1"] a:not(.btn):not([role="button"]):not(.artw-a11y__launcher) { text-decoration: underline !important; text-underline-offset: .16em; text-decoration-thickness: .09em; }

html[data-artw-contrast="high"] { color-scheme: dark; }
html[data-artw-contrast="high"] body { background: #000 !important; color: #fff !important; }
html[data-artw-contrast="high"] body :where(main,article,section,aside,header,footer,nav,div,p,li,span,h1,h2,h3,h4,h5,h6) { border-color: #fff; }
html[data-artw-contrast="high"] body :where(a) { color: #ffea00 !important; }
html[data-artw-contrast="high"] body :where(input,select,textarea,button) { background: #000; color: #fff; border-color: #fff; }

html[data-artw-cursor="large"],
html[data-artw-cursor="large"] body,
html[data-artw-cursor="large"] body * {
  cursor: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='40' height='40' viewBox='0 0 40 40'%3E%3Cpath d='M5 3v28l7-7 5 12 6-3-5-11h10z' fill='white' stroke='black' stroke-width='2'/%3E%3C/svg%3E") 5 3, auto !important;
}

.artw-a11y {
  --artw-a11y-primary: var(--artw-primary, #c21f4a);
  --artw-a11y-offset-x: 20px;
  --artw-a11y-offset-y: 24px;
  position: fixed;
  z-index: 2147483000;
  font-family: Arial, sans-serif;
  line-height: 1;
}
.artw-a11y--right-bottom { right: var(--artw-a11y-offset-x); bottom: var(--artw-a11y-offset-y); }
.artw-a11y--left-bottom { left: var(--artw-a11y-offset-x); bottom: var(--artw-a11y-offset-y); }
.artw-a11y--right-middle { right: var(--artw-a11y-offset-x); top: 50%; transform: translateY(-50%); }
.artw-a11y--left-middle { left: var(--artw-a11y-offset-x); top: 50%; transform: translateY(-50%); }
.artw-a11y__launcher {
  appearance: none;
  width: 38px;
  height: 38px;
  display: grid;
  place-items: center;
  border: 1px solid color-mix(in srgb, var(--artw-a11y-primary) 70%, #fff);
  border-radius: 9px;
  padding: 0;
  background: var(--artw-a11y-primary);
  color: #fff;
  box-shadow: 0 4px 14px rgba(0,0,0,.13);
  cursor: pointer;
  transition: transform .15s ease, box-shadow .15s ease, filter .15s ease;
}
.artw-a11y__launcher:hover { transform: translateY(-1px); box-shadow: 0 6px 16px rgba(0,0,0,.16); filter: brightness(.97); }
.artw-a11y__launcher:focus-visible { outline: 2px solid #fff; outline-offset: 2px; box-shadow: 0 0 0 4px var(--artw-a11y-primary); }
.artw-a11y__launcher-icon { width: 21px; height: 21px; display: block; }

@media (max-width: 640px) {
  .artw-a11y { --artw-a11y-offset-x: 14px; --artw-a11y-offset-y: 18px; }
  .artw-a11y__launcher { width: 38px; height: 38px; border-radius: 9px; }
}

@media (prefers-reduced-motion: reduce) {
  .artw-a11y__launcher { transition: none; }
}
