.accessibility-toggle { position: fixed; z-index: 1001; left: 20px; bottom: calc(var(--a11y-player-height, 82px) + 16px); display: grid; place-items: center; width: 52px; height: 52px; padding: 0; border: 1px solid #f5dca4; border-radius: 50%; color: #16120c; background: #dfb568; box-shadow: 0 4px 18px #0006; }
.accessibility-toggle:hover { background: #fff0d0; }
.accessibility-toggle[hidden] { display: none; }
.accessibility-toggle.is-obscured { visibility: hidden; }
.accessibility-panel { position: fixed; inset: auto auto calc(var(--a11y-player-height, 82px) + 80px) 20px; width: 360px; max-width: calc(100% - 40px); max-height: calc(100svh - var(--a11y-player-height, 82px) - 104px); margin: 0; overflow-y: auto; overscroll-behavior: contain; padding: 22px; border: 1px solid #dfb56880; border-radius: 14px; background: #15120f; color: #fff6e7; box-shadow: 0 12px 45px #0008; font: 400 14px/1.6 var(--sans); color-scheme: dark; }
.accessibility-panel:not([open]) { display: none; }
.accessibility-panel::backdrop { background: #0007; }
.accessibility-heading { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.accessibility-panel h2 { color: #fff6e7; margin: 0; font: 600 22px/1.4 var(--sans); font-size: 22px!important; }
.accessibility-close { display: grid; place-items: center; flex-shrink: 0; width: 44px; height: 44px; padding: 10px; border: 0; background: none; color: #fff6e7; }
.accessibility-panel p { margin: 10px 0 16px; font: 400 14px/1.7 var(--sans); font-size: 14px!important; }
.accessibility-option { display: flex; align-items: center; justify-content: space-between; gap: 18px; min-height: 68px; padding: 14px 0; margin: 0; border-bottom: 1px solid #fff2; cursor: pointer; }
.accessibility-option strong { display: block; color: #fff6e7; font: 600 14px/1.5 var(--sans); }
.accessibility-option small { display: block; margin-top: 4px; color: #d1c7b8; font: 400 12px/1.6 var(--sans); }
.accessibility-option input { position: static; flex-shrink: 0; width: 22px; height: 22px; margin: 0; accent-color: #dfb568; cursor: pointer; }
.accessibility-panel .accessibility-note { margin: 14px 0 0; color: #d1c7b8; font-size: 12px!important; }
.accessibility-note[hidden] { display: none; }
.accessibility-reset { width: 100%; min-height: 44px; margin-top: 20px; padding: 10px 16px; border: 1px solid #dfb568; border-radius: 24px; background: transparent; color: #dfb568; font: 600 13px/1.5 var(--sans); }
.accessibility-reset:hover { color: #15120f; background: #dfb568; }
.accessibility-toggle:focus-visible, .accessibility-panel :focus-visible { outline: 3px solid #fff6e7; outline-offset: 3px; }

/* Actual baseline font sizes are captured before scaling, including px rules
   from Duotone. Recalculate on viewport changes and new AJAX content. */
:root[data-a11y-text="large"] body.kabryan .a11y-resized-text { font-size: var(--a11y-font-size)!important; line-height: var(--a11y-line-height, normal)!important; }
:root[data-a11y-text="large"] .slider-wrap { height: auto; min-height: 100svh; }

:root[data-a11y-motion="reduce"], :root[data-a11y-motion="reduce"] *, :root[data-a11y-motion="reduce"] *::before, :root[data-a11y-motion="reduce"] *::after { scroll-behavior: auto!important; animation: none!important; transition: none!important; }
:root[data-a11y-motion="reduce"] .release-artwork { transform: none!important; }
:root[data-a11y-motion="reduce"] .particle { display: none; }
:root[data-a11y-motion="reduce"] .testimonial { background-attachment: scroll; }

/* Keep photographs and album artwork intact; strengthen surfaces and text. */
:root[data-a11y-contrast="high"] body { --accent: #ffe39a; --gold: #ffe39a; background: #000; color: #fff; }
:root[data-a11y-contrast="high"] :is(.site-header, .slider-bg, .about, .featured-release, .testimonial, #music, #listen, #contact, .site-footer, .album-hero, .album-page, .album-content, .album-block, .privacy-page, .audio-player, .playlist-panel, .privacy-notice, .accessibility-panel) { background: #000!important; color: #fff!important; }
:root[data-a11y-contrast="high"] :is(.hero-club-scene, .footer-club-scene, .particle), :root[data-a11y-contrast="high"] .about::before { opacity: 0!important; }
:root[data-a11y-contrast="high"] body :is(h1,h2,h3,h4,h5,h6,p,span,small,li,label,strong,blockquote,figcaption,code) { color: #fff!important; text-shadow: none!important; -webkit-text-stroke: 0!important; }
:root[data-a11y-contrast="high"] body :is(a,button) { color: #ffe39a!important; background-color: #000!important; }
:root[data-a11y-contrast="high"] body a { text-decoration: underline; text-underline-offset: 4px; }
:root[data-a11y-contrast="high"] :is(.btn,.platform-link,.accessibility-toggle,.accessibility-reset,.privacy-notice button,.pwa-install) { border: 1px solid #ffe39a!important; }
:root[data-a11y-contrast="high"] :is(.track-row,.album-story,.privacy-page section,.playlist-panel li,.accessibility-option) { border-color: #aaa!important; }
:root[data-a11y-contrast="high"] :is(.release-kicker,.album-block-subtitle,.quote-author) { opacity: 1; }
:root[data-a11y-contrast="high"] body .slide-dot { border: 1px solid #ffe39a; }
:root[data-a11y-contrast="high"] body .slide-dot.is-active { background-color: #ffe39a!important; }
:root[data-a11y-contrast="high"] :focus-visible { outline: 3px solid #ffe39a!important; outline-offset: 3px!important; }
@media (max-width: 767px) {
    .accessibility-toggle { left: 16px; }
    .accessibility-panel { left: 16px; width: 360px; max-width: calc(100% - 32px); padding: 18px; }
}
