/*
    Сведение токенов темы vsemtennis к паре схемы (--v-bg / --v-ink) плюс
    усмирение приёмов оформления, которые в режиме для слабовидящих работать
    не могут. Соответствие токенов объявлено в themes/vsemtennis/theme.json;
    тест ядра сверяет объявленное с этим файлом (каждая строка — буквально
    `--токен: var(--v-bg|--v-ink);`). Всё под классом kms-vision: обычный
    вид сайта не меняется ни на пиксель.
*/

html.kms-vision {
    --bg: var(--v-bg);
    --surface: var(--v-bg);
    --bg-deep: var(--v-bg);
    --bg-deep-2: var(--v-bg);
    --bg-footer: var(--v-bg);
    --sand: var(--v-bg);
    --accent-soft: var(--v-bg);
    --glass-scrim-a: var(--v-bg);
    --glass-scrim-b: var(--v-bg);
    --on-accent: var(--v-bg);
    --hot-ink: var(--v-bg);
    --ball-ink: var(--v-bg);
    --cta-hover-ink: var(--v-bg);

    --ink: var(--v-ink);
    --ink-inv: var(--v-ink);
    --muted: var(--v-ink);
    --muted-inv: var(--v-ink);
    --accent: var(--v-ink);
    --accent-strong: var(--v-ink);
    --accent-ink: var(--v-ink);
    --accent-head: var(--v-ink);
    --ball: var(--v-ink);
    --hot-bg: var(--v-ink);
    --cta-hover-bg: var(--v-ink);
    --line: var(--v-ink);
    --line-soft: var(--v-ink);
    --line-inv: var(--v-ink);
    --line-soft-inv: var(--v-ink);
    --court-line-dark: var(--v-ink);
    --dust-a: var(--v-ink);
    --dust-b: var(--v-ink);
}

/* --veil — триплет для rgba() и в пару схемы не сводится: слой гасим. */
html.kms-vision .hero-veil,
/* WebGL, зерно, разметка корта, мячи — оформление, в режиме не значит ничего */
html.kms-vision .story,
html.kms-vision .hash-video,
html.kms-vision .grain,
html.kms-vision .hero-canvas,
html.kms-vision .panel-frame,
html.kms-vision .frame-tag,
html.kms-vision .court-lines,
html.kms-vision .lvl-ball canvas,
html.kms-vision .fab-ball,
html.kms-vision .scroll-cue,
html.kms-vision .hero-hint,
/* Выбор покрытия и мобильный призыв в режиме не значат ничего */
html.kms-vision .court-switch,
html.kms-vision .mob-cta { display: none !important; }

/* Сцены на sticky-треках раскладываются в поток: при кегле 175 % пин
   держал бы экран на пустом холсте. */
html.kms-vision .hero-track,
html.kms-vision .hash-track { height: auto !important; }
html.kms-vision .hero,
html.kms-vision .hash-scene { position: relative !important; height: auto !important; min-height: 0 !important; overflow: visible !important; }
html.kms-vision .hero-copy { opacity: 1 !important; transform: none !important; visibility: visible !important; }
html.kms-vision .hero-final { position: static !important; opacity: 1 !important; }
html.kms-vision .hash-scene .hash-fallback { display: grid !important; position: static !important; padding: 2rem 0; }
html.kms-vision #levels { margin-top: 0 !important; }

/* Шапка прибита к окну: при крупном кегле заняла бы треть экрана. */
html.kms-vision .site-header { position: static !important; }
html.kms-vision .site-header::before { display: none !important; }

/* Появления и сборки по прокрутке: показать всё сразу. */
html.kms-vision .reveal,
html.kms-vision .t-rise > span,
html.kms-vision .js-assemble .fmt > *,
html.kms-vision .js-assemble .fmt-band > * { opacity: 1 !important; transform: none !important; visibility: visible !important; }
html.kms-vision .mani-word { opacity: 1 !important; }

/* Кегли темы посчитаны clamp() от ширины окна и на ступень кегля ГОСТ не
   отзываются — в режиме переводим главные в rem. */
html.kms-vision h1, html.kms-vision .hash-fallback { font-size: 2.6rem !important; line-height: 1.1 !important; }
html.kms-vision h2 { font-size: 2rem !important; }
html.kms-vision h3 { font-size: 1.35rem !important; }
html.kms-vision .lead, html.kms-vision .mani-right p { font-size: 1.15rem !important; }
html.kms-vision .mani-word { font-size: 2.4rem !important; }

/* Раскладки в несколько колонок при 125–175 % уезжают за край окна —
   складываем в одну. */
html.kms-vision .header-inner,
html.kms-vision .hero-grid,
html.kms-vision .stats,
html.kms-vision .mani-grid,
html.kms-vision .lvl-row,
html.kms-vision .fmt-grid,
html.kms-vision .fmt-band,
html.kms-vision .cal-grid,
html.kms-vision .cal-head,
html.kms-vision .footer .container { display: block !important; }
html.kms-vision .header-inner > * + * { margin-top: .5rem; }
html.kms-vision .cal-day { margin-bottom: 1rem; }
html.kms-vision body { overflow-wrap: break-word; }
