/* Backbone accessibility menu + the modes it switches on. */
.a11y-btn { position: fixed; z-index: 90; left: 18px; bottom: 18px; width: 52px; height: 52px; border-radius: 50%; border: 0; cursor: pointer;
  display: grid; place-items: center; background: #2456FF; color: #fff;
  box-shadow: 0 1px 0 rgba(255,255,255,.3) inset, 0 10px 24px -8px rgba(10,10,46,.55); transition: transform .14s ease, background-color .14s ease; }
.a11y-btn:hover { background: #1B44E0; }
.a11y-btn:active { transform: scale(.96); }
.a11y-btn svg { width: 26px; height: 26px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.a11y-btn:focus-visible, .a11y-panel :focus-visible { outline: 3px solid #FFB21E; outline-offset: 3px; }

.a11y-panel { position: fixed; z-index: 91; left: 18px; bottom: 82px; width: min(340px, calc(100vw - 36px)); max-height: calc(100vh - 110px); overflow: auto;
  background: #fff; color: #0A0A2E; border-radius: 20px; padding: 18px; font-family: "Discovery FS", Arial, sans-serif; font-size: 15px; line-height: 1.4;
  box-shadow: 0 0 0 1px rgba(10,10,46,.08), 0 30px 60px -20px rgba(10,10,46,.45); text-align: start; }
.a11y-panel[hidden] { display: none; }
.a11y-panel__head { display: flex; align-items: center; justify-content: space-between; margin-bottom: 14px; }
.a11y-panel h2 { margin: 0; font-size: 18px; font-weight: 900; }
.a11y-x { width: 36px; height: 36px; border-radius: 10px; border: 0; background: #F3F5FA; color: #0A0A2E; cursor: pointer; display: grid; place-items: center; }
.a11y-x svg { width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; }
.a11y-size { display: flex; align-items: center; gap: 8px; padding: 10px 12px; border-radius: 14px; background: #F3F5FA; margin-bottom: 10px; }
.a11y-size span { margin-inline-end: auto; font-weight: 700; }
.a11y-size button { min-width: 44px; height: 40px; border-radius: 10px; border: 1px solid #E3E6F0; background: #fff; color: #0A0A2E; font: inherit; font-weight: 700; cursor: pointer; }
.a11y-size button:disabled { opacity: .45; cursor: default; }
.a11y-size output { min-width: 48px; text-align: center; font-variant-numeric: tabular-nums; }
.a11y-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.a11y-opt { display: grid; justify-items: center; gap: 6px; padding: 12px 8px; min-height: 76px; border-radius: 14px; border: 1px solid #E3E6F0; background: #fff; color: #0A0A2E; font: inherit; font-weight: 500; cursor: pointer; text-align: center; transition: background-color .14s ease, border-color .14s ease; }
.a11y-opt svg { width: 24px; height: 24px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.a11y-opt[aria-pressed="true"] { background: #2456FF; border-color: #2456FF; color: #fff; }
.a11y-foot { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-top: 12px; }
.a11y-reset { border: 0; background: none; color: #C2264E; font: inherit; font-weight: 700; cursor: pointer; padding: 8px 0; }
.a11y-foot a { color: #2456FF; font-weight: 700; }

/* text size */
html.a11y-text-1 { font-size: 112.5%; }
html.a11y-text-2 { font-size: 125%; }
html.a11y-text-3 { font-size: 140%; }

/* high contrast: plain white ground, black text, no decoration behind type */
html.a11y-contrast { --ground: #FFFFFF !important; --ink: #000000 !important; --ink-soft: #111111 !important; --accent-text: #0030B8 !important; --hair: rgba(0,0,0,.35) !important; --dark: 0 !important; }
html.a11y-contrast .world__glow, html.a11y-contrast .world__grid, html.a11y-contrast .world__spark, html.a11y-contrast .world__ribbon { display: none !important; }
html.a11y-contrast .ui, html.a11y-contrast .form, html.a11y-contrast .ann { box-shadow: 0 0 0 2px #000 !important; }
html.a11y-contrast .ann { background: #000 !important; }
html.a11y-contrast .msg--out { background: #0030B8 !important; }
html.a11y-contrast .grad { background: none !important; color: #0030B8 !important; -webkit-text-fill-color: #0030B8 !important; }
html.a11y-contrast .bar__logo .on-light { display: block !important; } html.a11y-contrast .bar__logo .on-dark { display: none !important; }
html.a11y-contrast .foot img { filter: brightness(0); }

/* grayscale (on the root, so fixed elements keep working) */
html.a11y-gray { filter: grayscale(1); }

/* highlighted links */
html.a11y-links a { text-decoration: underline !important; text-decoration-thickness: 2px !important; text-underline-offset: .2em !important; }
html.a11y-links a:not(.btn) { background: #FFF4C2 !important; color: #0A0A2E !important; }

/* readable font */
html.a11y-font body, html.a11y-font body * { font-family: Arial, "Segoe UI", Helvetica, sans-serif !important; letter-spacing: .01em !important; }

/* large cursor */
html.a11y-cursor, html.a11y-cursor * { cursor: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='40' height='40' viewBox='0 0 24 24'%3E%3Cpath d='M4 3l7 17 2.5-7.5L21 10z' fill='%23000' stroke='%23fff' stroke-width='1.5' stroke-linejoin='round'/%3E%3C/svg%3E") 4 3, auto !important; }

/* stop animations */
html.a11y-still *, html.a11y-still *::before, html.a11y-still *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
html.a11y-still .world__ribbon { display: none !important; }

@media (max-width: 860px) { .a11y-btn { left: 12px; bottom: 12px; width: 48px; height: 48px; } .a11y-panel { left: 12px; bottom: 70px; } }
@media print { .a11y-btn, .a11y-panel { display: none !important; } }
