.skip-link { position:fixed; inset-inline-start:16px; inset-block-start:12px; z-index:10002; padding:12px 16px; background:#111; color:#fff; transform:translateY(-160%); }
.skip-link:focus, .skip-link:focus-visible { transform:translateY(0); outline:3px solid #f6c344; outline-offset:2px; }
.accessibility-widget { position:fixed; inset-inline-end:16px; inset-block-end:16px; z-index:10000; font-family:var(--font-ui, sans-serif); }
.accessibility-trigger, .accessibility-close, .accessibility-controls button, .accessibility-reset { min-width:44px; min-height:44px; border:1px solid #333; background:#fff; color:#111; cursor:pointer; }
.accessibility-trigger { display:inline-grid; place-items:center; width:44px; height:44px; padding:0; border-radius:50%; box-shadow:0 2px 10px rgba(0,0,0,.25); }
.accessibility-trigger-icon { width:24px; height:24px; fill:none; stroke:currentColor; stroke-linecap:round; stroke-linejoin:round; stroke-width:1.8; }
.accessibility-trigger:focus-visible { outline:3px solid #f6c344; outline-offset:3px; }
.accessibility-panel { position:absolute; inset-inline-end:0; inset-block-end:56px; width:min(340px, calc(100vw - 32px)); padding:16px; border:1px solid #333; background:#fff; color:#111; box-shadow:0 8px 28px rgba(0,0,0,.28); }
.accessibility-panel-header { display:flex; justify-content:space-between; align-items:center; gap:12px; }
.accessibility-panel h2 { margin:0; font-size:1.1rem; }
.accessibility-controls { display:grid; grid-template-columns:1fr 1fr; gap:8px; margin-block:14px; }
.accessibility-controls button[aria-pressed="true"] { background:#111; color:#fff; }
.accessibility-reset { width:100%; }
.accessibility-status { min-height:1.3em; margin:0 0 10px; font-size:.875rem; }
body.accessibility-high-contrast { --bg:#000; --text:#fff; --accent:#fff; --accent-warm:#f6c344; background:#000!important; color:#fff!important; }
body.accessibility-grayscale { filter:grayscale(1); }
body.accessibility-reduce-motion *, body.accessibility-reduce-motion *::before, body.accessibility-reduce-motion *::after { animation:none!important; transition:none!important; scroll-behavior:auto!important; }
body.accessibility-readable-font { --font-body:Arial,sans-serif; --font-heading:Arial,sans-serif; --font-ui:Arial,sans-serif; }
body.accessibility-dyslexia-font { --font-body:Verdana,sans-serif; --font-heading:Verdana,sans-serif; --font-ui:Verdana,sans-serif; }
body.accessibility-highlight-links a { text-decoration:underline!important; text-decoration-thickness:2px!important; }
body.accessibility-high-contrast a { color:#f6c344!important; }
@media (max-width:480px) { .accessibility-controls { grid-template-columns:1fr; } }