/* Global accessibility controls and user-selected presentation modes. */
.sr-only {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    padding: 0 !important;
    margin: -1px !important;
    overflow: hidden !important;
    clip: rect(0, 0, 0, 0) !important;
    white-space: nowrap !important;
    border: 0 !important;
}

.site-header-actions {
    min-width: 0;
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 8px;
}

.accessibility-launcher {
    min-height: 40px;
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 5px 10px 5px 6px;
    border: 1px solid rgba(56, 216, 244, .28);
    border-radius: 7px;
    color: var(--text);
    background: rgba(8, 22, 29, .9);
    cursor: pointer;
    font-weight: 750;
}

.accessibility-launcher:hover,
.accessibility-launcher[aria-expanded="true"] {
    border-color: var(--cyan);
    background: rgba(56, 216, 244, .12);
}

.accessibility-launcher-mark {
    width: 28px;
    height: 28px;
    flex: 0 0 28px;
    display: grid;
    place-items: center;
    border: 1px solid currentColor;
    border-radius: 6px;
    color: var(--cyan);
    font-size: 12px;
    font-weight: 900;
}

.accessibility-launcher-label {
    font-size: 12px;
    white-space: nowrap;
}

.accessibility-backdrop {
    position: fixed;
    inset: 0;
    z-index: 109;
    background: rgba(0, 0, 0, .7);
    backdrop-filter: blur(3px);
}

.accessibility-panel {
    position: fixed;
    inset: 0 0 0 auto;
    z-index: 110;
    width: min(440px, 100vw);
    height: 100dvh;
    overflow-y: auto;
    border-left: 1px solid rgba(102, 228, 214, .34);
    color: var(--text);
    background: #071017;
    box-shadow: -24px 0 70px rgba(0, 0, 0, .58);
    animation: accessibility-panel-enter .22s ease-out both;
}

.accessibility-backdrop[hidden],
.accessibility-panel[hidden] {
    display: none !important;
}

body.accessibility-panel-open {
    overflow: hidden;
}

.accessibility-panel-header {
    position: sticky;
    top: 0;
    z-index: 2;
    min-height: 92px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    padding: 20px 22px;
    border-bottom: 1px solid var(--line);
    background: rgba(7, 16, 23, .97);
    backdrop-filter: blur(16px);
}

.accessibility-panel-header span {
    display: block;
    color: var(--cyan);
    font-size: 11px;
    font-weight: 800;
    text-transform: uppercase;
}

.accessibility-panel-header h2 {
    margin-top: 3px;
    font-size: 25px;
}

.accessibility-close {
    width: 42px;
    height: 42px;
    flex: 0 0 42px;
    display: grid;
    place-items: center;
    padding: 0;
    border: 1px solid var(--line-strong);
    border-radius: 7px;
    color: var(--text);
    background: rgba(255, 255, 255, .045);
    cursor: pointer;
}

.accessibility-close span {
    color: inherit;
    font-size: 28px;
    font-weight: 400;
    line-height: 1;
    text-transform: none;
}

.accessibility-panel-body {
    display: grid;
    gap: 0;
    padding: 0 22px 28px;
}

.accessibility-control,
.accessibility-toggles {
    padding: 22px 0;
    border-bottom: 1px solid var(--line);
}

.accessibility-control h3,
.accessibility-control > label {
    display: block;
    margin: 0 0 12px;
    color: var(--text);
    font-size: 14px;
    font-weight: 800;
}

.accessibility-segments {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    min-height: 44px;
    border: 1px solid var(--line-strong);
    border-radius: 7px;
    overflow: hidden;
}

.accessibility-segments button {
    min-width: 0;
    padding: 8px 10px;
    border: 0;
    border-right: 1px solid var(--line);
    color: var(--muted);
    background: rgba(255, 255, 255, .025);
    cursor: pointer;
    font-size: 12px;
    font-weight: 750;
}

.accessibility-segments button:last-child {
    border-right: 0;
}

.accessibility-segments button[aria-pressed="true"] {
    color: #03110d;
    background: var(--green);
    box-shadow: inset 0 -3px 0 rgba(0, 0, 0, .25);
}

.accessibility-control select {
    width: 100%;
    min-height: 46px;
    padding: 0 38px 0 12px;
    border: 1px solid var(--line-strong);
    border-radius: 7px;
    color: var(--text);
    background: #0b1921;
}

.accessibility-text-control {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 22px;
}

.accessibility-text-control h3 {
    margin: 0;
}

.accessibility-stepper {
    display: grid;
    grid-template-columns: 42px 76px 42px;
    min-height: 42px;
    border: 1px solid var(--line-strong);
    border-radius: 7px;
    overflow: hidden;
}

.accessibility-stepper button,
.accessibility-stepper output {
    display: grid;
    place-items: center;
    border: 0;
    color: var(--text);
    background: rgba(255, 255, 255, .025);
}

.accessibility-stepper button {
    cursor: pointer;
    font-size: 20px;
}

.accessibility-stepper button:disabled {
    color: #56666f;
    cursor: default;
}

.accessibility-stepper output {
    border-inline: 1px solid var(--line);
    color: var(--green);
    font-size: 12px;
    font-weight: 850;
}

.accessibility-toggles {
    display: grid;
    gap: 14px;
}

.accessibility-toggles label {
    min-height: 34px;
    display: flex;
    align-items: center;
    gap: 11px;
    cursor: pointer;
}

.accessibility-toggles input {
    width: 20px;
    height: 20px;
    flex: 0 0 20px;
    accent-color: var(--green);
}

.accessibility-toggles span {
    color: #d8e5e9;
    font-size: 14px;
    font-weight: 650;
}

.accessibility-read-controls {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 8px;
}

.accessibility-read-controls button,
.accessibility-reset {
    min-height: 42px;
    padding: 8px 10px;
    border: 1px solid var(--line-strong);
    border-radius: 7px;
    color: var(--text);
    background: rgba(255, 255, 255, .04);
    cursor: pointer;
    font-size: 12px;
    font-weight: 750;
}

.accessibility-read-controls button:hover,
.accessibility-reset:hover {
    border-color: var(--cyan);
    background: rgba(56, 216, 244, .1);
}

.accessibility-read-controls button:disabled {
    color: #64757e;
    cursor: not-allowed;
}

.accessibility-reset {
    width: 100%;
    margin-top: 22px;
    color: var(--green);
}

@keyframes accessibility-panel-enter {
    from { opacity: 0; transform: translateX(24px); }
    to { opacity: 1; transform: translateX(0); }
}

html[data-contrast="high"] {
    --bg: #000;
    --bg-soft: #050505;
    --surface: #080808;
    --surface-solid: #080808;
    --surface-light: #111;
    --line: rgba(255, 255, 255, .52);
    --line-strong: rgba(255, 255, 255, .82);
    --text: #fff;
    --muted: #f0f0f0;
    --green: #7dffb2;
    --cyan: #89ecff;
    --amber: #ffd166;
    --red: #ff91a0;
}

html[data-contrast="high"] body,
html[data-contrast="high"] .site-header,
html[data-contrast="high"] .site-footer,
html[data-contrast="high"] .accessibility-panel,
html[data-contrast="high"] .accessibility-panel-header {
    background-color: #000;
}

html[data-contrast="high"] :focus-visible {
    outline-width: 4px;
    outline-color: #fff;
}

html[data-color-vision="red-green"] {
    --green: #56b4e9;
    --cyan: #8dd7ff;
    --amber: #e69f00;
    --red: #cc79a7;
    --line: rgba(86, 180, 233, .28);
    --line-strong: rgba(230, 159, 0, .56);
}

html[data-color-vision="blue-yellow"] {
    --green: #00c781;
    --cyan: #7ce7b9;
    --amber: #d7a8ff;
    --red: #e06cc9;
    --line: rgba(124, 231, 185, .28);
    --line-strong: rgba(224, 108, 201, .54);
}

html[data-color-vision="monochrome"] {
    --green: #f5f7f8;
    --cyan: #d7dee2;
    --amber: #b5c0c6;
    --red: #89969d;
    --line: rgba(255, 255, 255, .24);
    --line-strong: rgba(255, 255, 255, .52);
}

html[data-color-vision="monochrome"] .planet-stage-image,
html[data-color-vision="monochrome"] .product-shot img,
html[data-color-vision="monochrome"] .bot-product-frame img {
    filter: grayscale(1) contrast(1.08);
}

html:not([data-color-vision="standard"]) .market-symbols button.is-active,
html:not([data-color-vision="standard"]) .main-nav a.active {
    text-decoration: underline;
    text-decoration-thickness: 2px;
    text-underline-offset: 4px;
}

html[data-links="underlined"] main a:not(.button),
html[data-links="underlined"] .site-footer a,
html[data-links="underlined"] .main-nav a {
    text-decoration: underline;
    text-decoration-thickness: 2px;
    text-underline-offset: 3px;
}

html[data-screen-reader="on"] .planet-scroll-bg,
html[data-screen-reader="on"] body::before {
    display: none !important;
}

html[data-screen-reader="on"] .reveal {
    opacity: 1 !important;
    transform: none !important;
}

html[data-screen-reader="on"] .skip-link {
    transform: none;
}

html[data-screen-reader="on"] :focus-visible {
    outline-width: 4px;
    outline-offset: 5px;
}

html[data-text-scale="115"] {
    --a11y-text-size: 115%;
}

html[data-text-scale="130"] {
    --a11y-text-size: 130%;
}

html[data-text-scale="115"] :where(p, li:not(:has(p)), td, th, label, summary),
html[data-text-scale="115"] :where(.trust-chips span, .campaign-ticker-track a) {
    zoom: 1.15;
}

html[data-text-scale="130"] :where(p, li:not(:has(p)), td, th, label, summary),
html[data-text-scale="130"] :where(.trust-chips span, .campaign-ticker-track a) {
    zoom: 1.3;
}

html[data-text-scale="115"] :where(input, select, textarea, button, .main-nav a, .footer-column a),
html[data-text-scale="130"] :where(input, select, textarea, button, .main-nav a, .footer-column a) {
    font-size: var(--a11y-text-size) !important;
}

html[data-motion="on"] .planet-scene {
    animation: planet-scene-breathe 10s ease-in-out infinite !important;
}

html[data-motion="on"] .planet-scroll-orbit {
    animation: planet-orbit-glow 4.8s ease-in-out infinite !important;
}

html[data-motion="on"] .planet-scroll-orbit::before {
    animation: planet-orbit-sweep 6.2s linear infinite !important;
}

html[data-motion="on"] .planet-scroll-orbit::after {
    animation: planet-orbit-travel 6.2s linear infinite !important;
}

html[data-motion="on"] .planet-orbit-b::before,
html[data-motion="on"] .planet-orbit-b::after {
    animation-duration: 8.4s !important;
    animation-direction: reverse !important;
}

html[data-motion="on"] .campaign-ticker-track.is-ready {
    animation: campaign-marquee var(--ticker-duration, 72s) linear infinite !important;
}

html[data-motion="on"] .kucoin-campaign-ticker.is-paused .campaign-ticker-track.is-ready {
    animation-play-state: paused !important;
}

html[data-motion="reduced"] {
    scroll-behavior: auto;
}

html[data-motion="reduced"] .planet-scene,
html[data-motion="reduced"] .planet-scroll-orbit,
html[data-motion="reduced"] .planet-scroll-orbit::before,
html[data-motion="reduced"] .planet-scroll-orbit::after,
html[data-motion="reduced"] .campaign-ticker-track.is-ready {
    animation: none !important;
}

html[data-motion="reduced"] .reveal {
    opacity: 1;
    transform: none;
    transition-duration: .1s !important;
}

html[data-motion="off"] {
    scroll-behavior: auto !important;
}

html[data-motion="off"] *,
html[data-motion="off"] *::before,
html[data-motion="off"] *::after {
    animation: none !important;
    transition: none !important;
}

@media (max-width: 1020px) {
    html[data-motion="on"] .planet-scene {
        animation-name: planet-scene-breathe-top !important;
    }
}

@media (max-width: 720px) {
    .accessibility-launcher {
        width: 42px;
        min-width: 42px;
        height: 42px;
        justify-content: center;
        padding: 0;
    }

    .accessibility-launcher-label {
        display: none;
    }

    .site-header-actions {
        gap: 6px;
    }

    .accessibility-panel {
        width: 100%;
        border-left: 0;
    }
}

@media (max-width: 430px) {
    .accessibility-panel-header,
    .accessibility-panel-body {
        padding-left: 18px;
        padding-right: 18px;
    }

    .accessibility-read-controls {
        grid-template-columns: 1fr;
    }
}