/* DCC-i standard app accessibility controls v2 */
.dcci-a11y { position:fixed; left:18px; bottom:18px; z-index:10000; font-family:Montserrat,Arial,sans-serif; }
.dcci-a11y-toggle { border:0; border-radius:999px; background:#2d174d; color:#fff; padding:11px 16px; font-weight:800; box-shadow:0 8px 22px rgba(0,0,0,.32); cursor:pointer; transition:width .2s,padding .2s; }
.dcci-a11y-toggle.compact { width:44px; height:44px; padding:0; overflow:hidden; font-size:0; }
.dcci-a11y-toggle.compact::before { content:"Aa"; font-size:15px; color:#fff; }
.dcci-a11y-panel { display:none; width:min(350px,calc(100vw - 36px)); max-height:min(76vh,680px); overflow:auto; margin-bottom:10px; background:#24133f; color:#fff; border:3px solid #8E44AD; border-radius:16px; box-shadow:0 14px 36px rgba(0,0,0,.35); padding:14px; }
.dcci-a11y.open .dcci-a11y-panel { display:block; }
.dcci-a11y-panel h2 { margin:0 0 6px; color:#fff; font-size:20px; }
.dcci-a11y-panel p { margin:0 0 12px; font-size:13px; line-height:1.45; }
.dcci-a11y-grid { display:grid; grid-template-columns:1fr 1fr; gap:8px; }
.dcci-a11y-grid button, .dcci-a11y-reset { border:0; border-radius:10px; padding:10px; background:#4a246f; color:#fff; font-weight:750; cursor:pointer; text-align:left; min-height:44px; }
.dcci-a11y-grid button[aria-pressed="true"] { background:#0d7777; box-shadow:inset 0 0 0 3px #fff,0 0 0 2px #0d7777; }
.dcci-a11y-reset { width:100%; margin-top:9px; background:#752453; text-align:center; }
.dcci-reading-guide { display:none; position:fixed; left:0; right:0; height:4px; background:#ffdc6b; box-shadow:0 0 0 2px #111; z-index:9999; pointer-events:none; }
.accessibility-reading-guide .dcci-reading-guide { display:block; }
.accessibility-text-large { font-size:112%; }
.accessibility-text-xl { font-size:125%; }
.accessibility-readable-font, .accessibility-readable-font * { font-family:Arial,Verdana,sans-serif !important; }
.accessibility-text-spacing * { line-height:1.75 !important; word-spacing:.14em !important; }
.accessibility-letter-spacing * { letter-spacing:.08em !important; }
.accessibility-bold-text body, .accessibility-bold-text p, .accessibility-bold-text li, .accessibility-bold-text label { font-weight:700 !important; }
.accessibility-highlight-links a { text-decoration:underline 3px !important; text-underline-offset:4px !important; }
.accessibility-high-contrast body { background:#000 !important; color:#fff !important; }
.accessibility-high-contrast .hero, .accessibility-high-contrast .control-panel, .accessibility-high-contrast .status-strip, .accessibility-high-contrast .puzzle-stage, .accessibility-high-contrast .completion-panel { background:#000 !important; color:#fff !important; border:3px solid #fff !important; }
.accessibility-contrast-light body { background:#fff !important; color:#111 !important; }
.accessibility-contrast-light .hero, .accessibility-contrast-light .control-panel, .accessibility-contrast-light .status-strip, .accessibility-contrast-light .puzzle-stage, .accessibility-contrast-light .completion-panel { background:#fff !important; color:#111 !important; border:2px solid #111 !important; }
.accessibility-contrast-dyslexia body { background:#fff4c7 !important; color:#181000 !important; }
.accessibility-contrast-yellow body { background:#000 !important; color:#ffed00 !important; }
.accessibility-reduce-motion *, .accessibility-reduce-motion *::before, .accessibility-reduce-motion *::after { animation:none !important; transition:none !important; scroll-behavior:auto !important; }
.accessibility-simplified .hero-badge, .accessibility-simplified body::before { display:none !important; }
@media(max-width:560px){ .dcci-a11y-grid{grid-template-columns:1fr;} }
