#accessibility-launcher { position:fixed; left:20px; bottom:calc(20px + env(safe-area-inset-bottom)); z-index:950; display:grid; place-items:center; width:52px; height:52px; padding:10px; background:#45304c; color:#fff; border:2px solid #fff; border-radius:50%; box-shadow:0 4px 18px #0003; }
#accessibility-launcher svg { width:29px; height:29px; }
.a11y-menu { --a11y-bg:#f8f6f9; --a11y-surface:#fff; --a11y-soft:#f0eaf3; --a11y-border:#e3dce7; --a11y-muted:#63576b; --a11y-accent:#724c80; --a11y-selected:#f4edf7; position:fixed; inset:0 auto 0 0; margin:0; width:min(430px,100%); max-width:100%; max-height:100dvh; height:100dvh; padding:0; border:0; background:var(--a11y-bg); color:#29232e; box-shadow:12px 0 50px #0003; font:16px/1.6 Arial,sans-serif; color-scheme:light; }
.a11y-menu::backdrop { background:#100b1966; }
.a11y-menu__header { position:sticky; top:0; z-index:1; display:flex; align-items:center; justify-content:space-between; gap:12px; padding:22px 20px; background:radial-gradient(ellipse at top left,#765480,transparent 75%),#3f2b47; color:#fff; border-bottom:1px solid #ffffff1f; }
.a11y-menu__identity { display:flex; align-items:center; gap:12px; min-width:0; }
.a11y-menu__emblem { display:grid; place-items:center; flex:none; width:44px; height:44px; border:1px solid #ffffff45; border-radius:15px; background:#ffffff12; box-shadow:0 0 0 5px #ffffff06; }
.a11y-menu__emblem svg { width:27px; height:27px; }
.a11y-menu__header h2 { font:600 1.2em/1.4 Arial,sans-serif; margin:0; color:inherit; }
.a11y-menu__header form { flex:none; }
.a11y-menu__header button { display:grid; place-items:center; width:40px; height:40px; padding:0; font-size:1.2em; color:inherit; background:#ffffff0d; border:1px solid #ffffff40; border-radius:50%; cursor:pointer; }
.a11y-menu__header button:hover { background:#ffffff24; }
.a11y-menu__body { padding:22px 20px calc(22px + env(safe-area-inset-bottom)); }
.a11y-menu__body > p { font-size:.85em; line-height:1.7; margin:0 0 20px; color:var(--a11y-muted); }
.a11y-menu__size { display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:center; padding:18px; background:var(--a11y-surface); border:1px solid var(--a11y-border); border-radius:20px; margin-bottom:20px; gap:14px; box-shadow:0 5px 18px #26172e04; }
.a11y-menu__size label { display:flex; align-items:center; gap:10px; font-size:.9em; font-weight:700; }
.a11y-menu__type-mark { font:500 30px/1 Georgia,serif; color:var(--a11y-accent); letter-spacing:-2px; }
.a11y-menu__size output { padding:4px 10px; border-radius:9px; background:var(--a11y-soft); color:inherit; font-size:.8em; font-weight:700; font-variant-numeric:tabular-nums; }
#accessibility-menu #a11y-text-size { grid-column:1/-1; appearance:none; width:100%; height:32px; margin:0; padding:0; border:0; box-shadow:none; background:transparent; cursor:pointer; }
#a11y-text-size::-webkit-slider-runnable-track { height:6px; border-radius:10px; background:var(--a11y-border); }
#a11y-text-size::-moz-range-track { height:6px; border-radius:10px; background:var(--a11y-border); }
#a11y-text-size::-webkit-slider-thumb { appearance:none; width:22px; height:22px; margin-top:-8px; border:4px solid var(--a11y-surface); border-radius:50%; background:var(--a11y-accent); box-shadow:0 0 0 1px var(--a11y-accent),0 2px 6px #0002; }
#a11y-text-size::-moz-range-thumb { width:14px; height:14px; border:4px solid var(--a11y-surface); border-radius:50%; background:var(--a11y-accent); box-shadow:0 0 0 1px var(--a11y-accent),0 2px 6px #0002; }
.a11y-menu__size > span { display:flex; align-items:center; gap:6px; font-size:.72em; color:var(--a11y-muted); }
.a11y-menu__size > span:last-child { justify-content:flex-end; }
.a11y-menu__size > span > span { font:18px/1 Georgia,serif; }
.a11y-menu__size > span:last-child > span { font-size:25px; }
.a11y-menu__size > span:last-child { text-align:right; }
.a11y-menu__option { position:relative; display:grid; grid-template-columns:40px minmax(0,1fr) 40px; align-items:center; gap:12px; min-height:96px; padding:16px 14px; margin:0 0 10px; border:1px solid var(--a11y-border); border-radius:17px; background:var(--a11y-surface); cursor:pointer; transition:background .18s,border-color .18s; }
.a11y-menu__option:hover { border-color:var(--a11y-accent); }
.a11y-menu__option:has(input:checked) { border-color:var(--a11y-accent); background:var(--a11y-selected); }
.a11y-menu__option-icon { display:grid; place-items:center; align-self:start; width:40px; height:40px; border-radius:13px; background:var(--a11y-soft); color:var(--a11y-accent); }
.a11y-menu__option-icon svg { width:24px; height:24px; }
.a11y-menu__option-copy { min-width:0; }
.a11y-menu__option strong,.a11y-menu__option small { display:block; }
.a11y-menu__option strong { font-size:.88em; line-height:1.4; }
.a11y-menu__option small { font-size:.76em; line-height:1.5; margin-top:5px; color:var(--a11y-muted); }
#accessibility-menu .a11y-menu__option input { position:absolute; right:14px; top:50%; width:40px; height:26px; margin:-13px 0 0; opacity:0; cursor:pointer; }
.a11y-menu__switch { position:relative; width:40px; height:24px; border:1px solid var(--a11y-border); border-radius:30px; background:var(--a11y-soft); pointer-events:none; transition:background .18s; }
.a11y-menu__switch::before { content:''; position:absolute; width:16px; height:16px; left:3px; top:3px; border-radius:50%; background:var(--a11y-muted); transition:transform .18s,background .18s; }
.a11y-menu__option input:checked + .a11y-menu__switch { background:var(--a11y-accent); border-color:var(--a11y-accent); }
.a11y-menu__option input:checked + .a11y-menu__switch::before { transform:translateX(16px); background:#fff; }
.a11y-menu__option input:focus-visible + .a11y-menu__switch { outline:3px solid #a97021; outline-offset:4px; }
.a11y-menu__body .a11y-menu__note { margin:22px 2px 18px; padding-left:13px; border-left:2px solid var(--a11y-border); font-size:.74em; color:var(--a11y-muted); }
#accessibility-menu #a11y-reset { display:flex; align-items:center; justify-content:center; gap:10px; width:100%; min-height:48px; padding:12px; border:1px solid var(--a11y-border); border-radius:14px; background:var(--a11y-surface); color:inherit; font-size:.83em; line-height:1.5; font-weight:600; cursor:pointer; }
#accessibility-menu #a11y-reset:hover { background:var(--a11y-soft); border-color:var(--a11y-accent); }
#a11y-reset svg { flex:none; width:19px; height:19px; color:var(--a11y-accent); }
.a11y-menu :is(button,input):focus-visible,#accessibility-launcher:focus-visible { outline:3px solid #a97021; outline-offset:3px; }
body:has(.a11y-menu[open]) { overflow:hidden; }
[data-theme="dark"] .a11y-menu { --a11y-bg:#17151b; --a11y-surface:#211e26; --a11y-soft:#302936; --a11y-border:#3d3545; --a11y-muted:#c8bfce; --a11y-accent:#bea1ce; --a11y-selected:#2c2433; color:#fff; color-scheme:dark; }
[data-theme="dark"] .a11y-menu__option input:checked + .a11y-menu__switch::before { background:#211628; }
@media (max-width:360px) {
  .a11y-menu__header { padding:18px 14px; }
  .a11y-menu__body { padding-left:12px; padding-right:12px; }
  .a11y-menu__identity { gap:9px; }
  .a11y-menu__header h2 { font-size:1.05em; }
  .a11y-menu__option { gap:9px; padding-left:11px; }
}
@media (forced-colors:active) {
  .a11y-menu__switch { border-color:ButtonText; }
  .a11y-menu__switch::before { background:ButtonText; }
  .a11y-menu__option input:checked + .a11y-menu__switch { background:Highlight; }
  .a11y-menu__option input:checked + .a11y-menu__switch::before { background:HighlightText; }
}
html[data-a11y-text="125"] { font-size:20px!important; }
html[data-a11y-text="150"] { font-size:24px!important; }
html[data-a11y-font] body :is(div,span,p,a,button,input,select,textarea,li,td,th,h1,h2,h3,h4,h5,h6) { font-family:Arial,Helvetica,sans-serif!important; }
html[data-a11y-spacing] :is(.article-content-wrapper,.home-content) :is(p,li) { line-height:2!important; letter-spacing:.035em!important; word-spacing:.08em!important; }
html[data-a11y-links] :is(main,footer,.home-footer,.content-sidebar-sp) a { text-decoration:underline!important; text-decoration-thickness:2px!important; text-underline-offset:4px!important; }
html[data-a11y-contrast] body { --home-ink:#111; --home-muted:#222; --home-accent:#4b1248; --home-border:#807582; --sp-text-main:#111; --sp-text-muted:#222; }
html[data-a11y-contrast][data-theme="dark"] body { --home-ink:#fff; --home-muted:#fff; --home-accent:#f5d8ee; --home-border:#b5a9bb; --sp-text-main:#fff; --sp-text-muted:#fff; --inner-dark-muted:#fff; --inner-dark-border:#a79daa; }
html[data-a11y-contrast] .article-content-wrapper,
html[data-a11y-contrast] .article-content-wrapper :is(p,li,h1,h2,h3,h4,blockquote,td) { color:#000!important; }
html[data-a11y-contrast][data-theme="dark"] .article-content-wrapper,
html[data-a11y-contrast][data-theme="dark"] .article-content-wrapper :is(p,li,h1,h2,h3,h4,blockquote,td) { color:#fff!important; }
html[data-a11y-contrast] .article-content-wrapper a { text-decoration:underline!important; }
html[data-a11y-contrast][data-theme="dark"] .article-content-wrapper :is(td,th) { background:#111!important; color:#fff!important; }
html[data-a11y-motion],html[data-a11y-motion] *,html[data-a11y-motion] *::before,html[data-a11y-motion] *::after { scroll-behavior:auto!important; animation:none!important; transition:none!important; }
html[data-a11y-motion] .reveal.is-observed { opacity:1!important; transform:none!important; }
html[data-a11y-motion] :is(.home-hero__sky,.home-hero__middle,.home-hero__corner,.chapter-scenery__landscape,.chapter-scenery__contour,.chapter-scenery__mist,[data-story-figure]) { transform:none!important; }
html[data-a11y-text]:not([data-a11y-text="100"]) #header .desktop-only-nav { display:none; }
html[data-a11y-text]:not([data-a11y-text="100"]) #header .mobile-nav-toggle { display:flex; }
html[data-a11y-text="125"] .a11y-menu { font-size:18px; }
html[data-a11y-text="150"] .a11y-menu { font-size:20px; }
