/* Popov Academy — пилот нового оформления (этап 1).
   Визуальный язык прототипа popov-prototype@28a1faf: токены, два слоя поверхности
   («читаю» — белое, «двигаю» — кремовое), один системный гротеск, мобильный первым.
   Действует только на страницах с html[data-design="v2"]; существующие классы
   генераторов переоформляются, их разметка и логика не меняются. */

:root[data-design="v2"] {
  --bg: #ffffff; --bg-2: #f4f5f7; --surface: #ffffff;
  --ink: #16213a; --ink-2: #4e586d; --ink-3: #5f6b83;
  --line: #e3e6ec; --line-2: #cfd4dd;
  --accent: #2457d6; --accent-ink: #183f9f; --accent-soft: #e9effc;
  --play-bg: #fff7e8; --play-line: #f1dfb6; --play-ink: #7c5300; --play-accent: #d98b00; --play-stage: #ffffff;
  --green-soft: #e3f3ea; --ok: #1f7a4b; --warn: #8a5a00; --warn-soft: #fff3d6;
  --paper-figure: #ffffff;           /* подложка исходных рисунков: остаётся светлой и в тёмной теме */
  --r: 10px; --r-lg: 16px; --r-play: 22px;
  --shadow: 0 1px 2px rgba(22,33,58,.05), 0 8px 24px rgba(22,33,58,.06);
  --shadow-sm: 0 1px 2px rgba(22,33,58,.06);
  --font: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
  --wrap-w: 1120px; --gutter: 20px; --on-ink: #ffffff; --mark: #fff1a8;
  --bad: #a33a2a; --bad-soft: #fbeae6;
  --stone-bg: #d9e4e1; --stone-line: #90aaa5; --stone-ink: #244b45; --stone-won: #cbddd4;
  /* прежние токены сайта указывают на новые */
  --paper: var(--bg); --muted: var(--ink-2); --blue: var(--accent); --blue-dark: var(--accent-ink); --navy: var(--ink); --soft: var(--bg-2); --white: var(--surface);
  --sans: var(--font); --display: var(--font); --serif: var(--font);
  --study-blue: var(--accent); --study-soft: var(--bg-2); --study-line: var(--line); --study-muted: var(--ink-2);
  color-scheme: light;
}
@media (prefers-color-scheme: dark) {
  :root[data-design="v2"]:not([data-theme="light"]) {
    color-scheme: dark;
    --bg: #0f1523; --bg-2: #171e30; --surface: #1b2336;
    --ink: #e9edf6; --ink-2: #b1bacb; --ink-3: #8d97ab; --line: #2a334a; --line-2: #3d4761;
    --accent: #8fb0ff; --accent-ink: #b7caff; --accent-soft: #1f2b4d;
    --play-bg: #2a2314; --play-line: #4b3e1c; --play-ink: #f2c66a; --play-accent: #e9a93b; --play-stage: #171309;
    --green-soft: #15301f; --ok: #7bd39d; --warn: #f2c66a; --warn-soft: #3a2e12;
    --paper-figure: #f6f4ee;
    --shadow: 0 1px 2px rgba(0,0,0,.4), 0 8px 24px rgba(0,0,0,.35); --shadow-sm: 0 1px 2px rgba(0,0,0,.4);
    --on-ink: #0f1523; --mark: #6b5a12; --bad: #ff9c8a; --bad-soft: #3d1d17;
    --stone-bg: #1e3b32; --stone-line: #668b7b; --stone-ink: #e4f5eb; --stone-won: #28513e;
  }
}
:root[data-design="v2"][data-theme="dark"] {
  color-scheme: dark;
  --bg: #0f1523; --bg-2: #171e30; --surface: #1b2336;
  --ink: #e9edf6; --ink-2: #b1bacb; --ink-3: #8d97ab; --line: #2a334a; --line-2: #3d4761;
  --accent: #8fb0ff; --accent-ink: #b7caff; --accent-soft: #1f2b4d;
  --play-bg: #2a2314; --play-line: #4b3e1c; --play-ink: #f2c66a; --play-accent: #e9a93b; --play-stage: #171309;
  --green-soft: #15301f; --ok: #7bd39d; --warn: #f2c66a; --warn-soft: #3a2e12;
  --paper-figure: #f6f4ee;
  --shadow: 0 1px 2px rgba(0,0,0,.4), 0 8px 24px rgba(0,0,0,.35); --shadow-sm: 0 1px 2px rgba(0,0,0,.4);
  --on-ink: #0f1523; --mark: #6b5a12; --bad: #ff9c8a; --bad-soft: #3d1d17;
    --stone-bg: #1e3b32; --stone-line: #668b7b; --stone-ink: #e4f5eb; --stone-won: #28513e;
}

/* ---------- База ---------- */
[data-design="v2"] body { background: var(--bg); color: var(--ink); font: 16px/1.6 var(--font); -webkit-font-smoothing: antialiased; }
[data-design="v2"] h1, [data-design="v2"] h2, [data-design="v2"] h3 { font-family: var(--font); font-weight: 700; letter-spacing: -.02em; color: var(--ink); }
[data-design="v2"] a { color: var(--accent); }
[data-design="v2"] :focus-visible { outline: 3px solid var(--accent); outline-offset: 2px; }
[data-design="v2"] [hidden] { display: none !important; }
[data-design="v2"] .wrap { width: auto; max-width: var(--wrap-w); padding-left: var(--gutter); padding-right: var(--gutter); margin-left: auto; margin-right: auto; }
[data-design="v2"] .eyebrow { font-size: 13px; letter-spacing: .09em; text-transform: uppercase; color: var(--ink-3); font-weight: 600; }
[data-design="v2"] .small { font-size: 14px; color: var(--ink-2); line-height: 1.5; }
[data-design="v2"] .nowrap { white-space: nowrap; }
[data-design="v2"] .skip { position: absolute; left: -999px; top: 8px; background: var(--ink); color: var(--on-ink); padding: 8px 12px; z-index: 100; border-radius: 6px; }
[data-design="v2"] .skip:focus { left: 8px; }
[data-design="v2"] [id] { scroll-margin-top: 80px; }
[data-design="v2"] main:focus { outline: none; }
@media (prefers-reduced-motion: reduce) { [data-design="v2"] *, [data-design="v2"] *::before, [data-design="v2"] *::after { transition: none !important; animation: none !important; scroll-behavior: auto !important; } }

/* ---------- Шапка ---------- */
.site-head { background: color-mix(in srgb, var(--bg) 92%, transparent); -webkit-backdrop-filter: saturate(1.4) blur(10px); backdrop-filter: saturate(1.4) blur(10px); border-bottom: 1px solid var(--line); position: sticky; top: 0; z-index: 20; }
.site-head__row { display: flex; align-items: center; justify-content: space-between; gap: 16px; height: 60px; position: relative; }
.site-head .logo { display: inline-flex; align-items: center; gap: 10px; color: var(--ink); font-weight: 700; font-size: 17px; letter-spacing: -.02em; white-space: nowrap; text-decoration: none; }
.site-head .logo img { width: 28px; height: 28px; flex: none; border-radius: 6px; }
.site-nav ul { list-style: none; margin: 0; padding: 0; display: flex; gap: 2px; }
.site-nav a { display: inline-flex; align-items: center; min-height: 44px; padding: 0 11px; color: var(--ink-2); border-radius: 8px; font-size: 15px; font-weight: 500; white-space: nowrap; text-decoration: none; }
@media (hover: hover) { .site-nav a:hover { background: var(--bg-2); color: var(--ink); } }
.site-nav a[aria-current="page"] { color: var(--ink); background: transparent; font-weight: 600; }
.site-nav__short, .site-nav__more { display: none; }
.site-head__tools { display: flex; align-items: center; gap: 8px; }
.theme-btn { width: 44px; height: 44px; border-radius: 50%; border: 1px solid var(--line-2); background: var(--surface); color: var(--ink-2); display: inline-flex; align-items: center; justify-content: center; cursor: pointer; flex: none; padding: 0; }
@media (hover: hover) { .theme-btn:hover { color: var(--ink); background: var(--bg-2); } }
.theme-btn svg { width: 18px; height: 18px; }
.theme-btn .ico-sun { display: none; }
:root[data-theme="dark"] .theme-btn .ico-sun { display: block; }
:root[data-theme="dark"] .theme-btn .ico-moon { display: none; }
@media (prefers-color-scheme: dark) { :root:not([data-theme="light"]) .theme-btn .ico-sun { display: block; } :root:not([data-theme="light"]) .theme-btn .ico-moon { display: none; } }
@media (max-width: 959px) {
  .site-head__row { height: auto; flex-direction: column; align-items: stretch; gap: 0; }
  .site-head .logo { height: 50px; padding-right: 52px; }
  .site-head__tools { position: absolute; right: var(--gutter); top: 3px; }
  .site-nav { margin: 0 calc(-1 * var(--gutter)); border-top: 1px solid var(--line); position: relative; }
  .site-nav > .site-nav__list { gap: 0; justify-content: space-between; flex-wrap: wrap; padding: 4px 8px; }
  .site-nav a { padding: 0 4px; letter-spacing: -.02em; }
  .site-nav__full, .site-nav__secondary { display: none; }
  .site-nav__short { display: inline; }
  .site-nav__more { display: block; }
  .site-nav__more summary { display: inline-flex; align-items: center; justify-content: center; gap: 3px; padding: 0 4px; min-height: 44px; font-size: 15px; font-weight: 500; line-height: 1.3; color: var(--ink-2); border-radius: 8px; list-style: none; }
  .site-nav__more summary::-webkit-details-marker { display: none; }
  .site-nav__more details.is-current > summary { background: transparent; color: var(--ink); font-weight: 600; text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 6px; }
  .site-nav__more details[open] > summary span { transform: rotate(180deg); }
  .site-nav__more details > ul { position: absolute; left: 8px; right: 8px; top: 100%; display: grid; gap: 4px; padding: 8px; border: 1px solid var(--line-2); border-radius: var(--r); box-shadow: var(--shadow); background: var(--surface); }
  .site-nav__more details > ul a { display: flex; padding: 0 12px; }

}
@media (max-width: 360px) {
  .site-nav > .site-nav__list { padding-inline: 0; }
}

/* ---------- Подвал ---------- */
.site-foot { border-top: 1px solid var(--line); padding: 32px 0 44px; margin-top: 48px; font-size: 14px; color: var(--ink-2); background: var(--bg); }
.site-foot ul { list-style: none; padding: 0; margin: 0 0 12px; display: flex; gap: 6px 18px; flex-wrap: wrap; }
.site-foot a { color: var(--ink-2); font-weight: 500; text-decoration: none; display: inline-flex; align-items: center; min-height: 44px; padding: 6px 0; }
@media (hover: hover) { .site-foot a:hover { color: var(--ink); text-decoration: underline; } }
.site-foot p { margin: 0; }

/* ---------- Кнопки, чипы, сегменты, бейджи ---------- */
[data-design="v2"] .btn { display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 44px; padding: 10px 18px; border-radius: var(--r); border: 1px solid var(--line-2); background: var(--surface); color: var(--ink); font: 600 15px/1.2 var(--font); cursor: pointer; text-decoration: none; }
@media (hover: hover) { [data-design="v2"] .btn:hover { background: var(--bg-2); } }
[data-design="v2"] .btn--primary { background: var(--ink); border-color: var(--ink); color: var(--on-ink); }
@media (hover: hover) { [data-design="v2"] .btn--primary:hover { background: var(--ink-2); border-color: var(--ink-2); } }
[data-design="v2"] .btn--ghost { border-color: transparent; background: transparent; color: var(--accent); }
[data-design="v2"] .btn--play { background: var(--play-ink); border-color: var(--play-ink); color: var(--on-ink); border-radius: 999px; }
[data-design="v2"] .btn--sm { min-height: 44px; padding: 6px 12px; font-size: 15px; }
[data-design="v2"] .chips { display: flex; gap: 8px; flex-wrap: wrap; list-style: none; padding: 0; margin: 0; }
[data-design="v2"] .chip { display: inline-flex; align-items: center; gap: 6px; min-height: 44px; padding: 6px 14px; border-radius: 999px; border: 1px solid var(--line-2); background: var(--surface); color: var(--ink); font-size: 15px; font-weight: 500; white-space: nowrap; cursor: pointer; text-decoration: none; -webkit-tap-highlight-color: transparent; }
@media (hover: hover) { [data-design="v2"] .chip:hover { border-color: var(--ink-3); background: var(--bg-2); } }
[data-design="v2"] .seg { display: inline-flex; flex-wrap: wrap; border: 1px solid var(--line-2); border-radius: 24px; padding: 3px; gap: 2px; background: var(--surface); list-style: none; margin: 0; }
[data-design="v2"] .seg a, [data-design="v2"] .seg button { display: inline-flex; align-items: center; justify-content: center; min-width: 44px; min-height: 44px; padding: 4px 12px; border-radius: 999px; border: 0; background: transparent; color: var(--ink); font: 600 15px/1.2 var(--font); text-decoration: none; cursor: pointer; font-variant-numeric: tabular-nums; -webkit-tap-highlight-color: transparent; }
@media (hover: hover) { [data-design="v2"] .seg a:hover, [data-design="v2"] .seg button:hover { background: var(--bg-2); } }
[data-design="v2"] .seg [aria-pressed="true"], [data-design="v2"] .seg [aria-current] { background: var(--ink); color: var(--on-ink); }
[data-design="v2"] .badge { display: inline-flex; align-items: center; gap: 5px; font-size: 13px; font-weight: 600; padding: 3px 9px; border-radius: 999px; background: var(--bg-2); color: var(--ink-2); line-height: 1.4; white-space: nowrap; letter-spacing: 0; text-transform: none; }
[data-design="v2"] .badge--model { background: var(--play-bg); color: var(--play-ink); border: 1px solid var(--play-line); }
[data-design="v2"] .badge--model::before { content: ""; width: 7px; height: 7px; border-radius: 50%; background: var(--play-accent); }

/* ---------- Карточки (слой «читаю») ---------- */
[data-design="v2"] .card { background: var(--surface); border: 1px solid var(--line); border-radius: var(--r-lg); padding: 20px; display: flex; flex-direction: column; gap: 8px; color: var(--ink); text-decoration: none; }
[data-design="v2"] .card h3 { margin: 0; font-size: 19px; }
[data-design="v2"] .card p { margin: 0; }
[data-design="v2"] .card .badge { align-self: flex-start; }
[data-design="v2"] .card--link { transition: border-color .15s, box-shadow .15s; }
@media (hover: hover) { [data-design="v2"] .card--link:hover { border-color: var(--line-2); box-shadow: var(--shadow); text-decoration: none; } }
[data-design="v2"] .card__go { font-weight: 600; color: var(--accent); margin-top: auto; padding-top: 6px; }

/* ---------- Поверхность «двигаю» ---------- */
[data-design="v2"] .model { position: relative; background: var(--play-bg); border: 1px solid var(--play-line); border-radius: var(--r-play); padding: 20px; color: var(--ink); }
[data-design="v2"] .model__head { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; margin-bottom: 6px; }
[data-design="v2"] .model__head h2, [data-design="v2"] .model__head h3 { margin: 0; font-size: 20px; }
[data-design="v2"] .model__hint { font-size: 15px; color: var(--ink-2); margin: 0 0 14px; }
[data-design="v2"] .model__note { font-size: 13px; color: var(--play-ink); margin: 12px 0 0; line-height: 1.6; }
[data-design="v2"] .model__stage { background: var(--play-stage); border-radius: 14px; padding: 16px; box-shadow: var(--shadow-sm); }
[data-design="v2"] .model__controls { display: flex; gap: 8px; flex-wrap: wrap; margin-top: 14px; align-items: center; }
[data-design="v2"] .model .btn { border-radius: 999px; }
[data-design="v2"] .model .btn:not(.btn--play):not(.btn--ghost) { background: var(--play-stage); border-color: var(--play-line); }
[data-design="v2"] .model:focus-within { box-shadow: 0 0 0 4px rgba(217,139,0,.14); }
[data-design="v2"] .model__msg { min-height: 24px; margin: 10px 0 0; font-size: 15px; }
[data-design="v2"] .model__msg--ok { color: var(--ok); font-weight: 600; }
[data-design="v2"] .model__msg--warn { color: var(--warn); font-weight: 600; }
@media (max-width: 479px) { [data-design="v2"] .model { padding: 14px; } [data-design="v2"] .model__stage { padding: 10px; } }

/* ---------- Секции и сетка ---------- */
[data-design="v2"] .section { padding-top: 36px; padding-bottom: 36px; }
[data-design="v2"] .section--tint { background: var(--bg-2); }
[data-design="v2"] .section__head { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; flex-wrap: wrap; margin-bottom: 18px; }
[data-design="v2"] .section__head h2 { margin: 0; }
[data-design="v2"] .section__head a { font-weight: 600; font-size: 15px; }
[data-design="v2"] .grid { display: grid; gap: 14px; }
@media (min-width: 680px) { [data-design="v2"] .grid--3 { grid-template-columns: repeat(3, 1fr); } }
@media (min-width: 960px) { [data-design="v2"] .grid { gap: 20px; } }
[data-design="v2"] h2 { font-size: 26px; line-height: 1.15; }
@media (min-width: 800px) { [data-design="v2"] h2 { font-size: 30px; } [data-design="v2"] .section { padding-top: 48px; padding-bottom: 48px; } }

/* ---------- Главная ---------- */
.redesign-home .hero { padding-top: 20px; padding-bottom: 12px; }
.redesign-home .hero h1 { font-size: 32px; line-height: 1.08; letter-spacing: -.03em; margin: 0 0 6px; max-width: 24ch; }
.redesign-home .hero .lead { font-size: 16px; line-height: 1.4; color: var(--ink-2); max-width: 60ch; margin: 0; }
@media (min-width: 800px) { .redesign-home .hero { padding-top: 24px; } .redesign-home .hero h1 { font-size: 40px; } }
.search { position: relative; max-width: 760px; margin: 0 0 22px; }
.search__label { display: block; font-weight: 600; font-size: 14px; color: var(--ink-2); margin-bottom: 8px; }
.search__field { display: flex; border: 1.5px solid var(--line-2); border-radius: 14px; background: var(--surface); overflow: hidden; box-shadow: var(--shadow-sm); }
.search__field:focus-within { border-color: var(--accent); box-shadow: 0 0 0 4px var(--accent-soft); }
.search input { flex: 1; min-width: 0; border: 0; padding: 14px 16px; font: 16px var(--font); background: transparent; color: var(--ink); }
.search input:focus { outline: none; }
.search input::placeholder { color: var(--ink-3); }
.search button { border: 0; background: var(--ink); color: var(--on-ink); padding: 0 20px; font: 600 16px var(--font); cursor: pointer; min-height: 48px; }
.search__note { margin: 8px 2px 0; }
.search__results { list-style: none; margin: 10px 0 0; padding: 0; display: grid; gap: 6px; }
.search__results li a { display: flex; flex-wrap: wrap; align-items: center; gap: 2px 8px; background: var(--surface); border: 1px solid var(--line); border-radius: var(--r); padding: 10px 14px; color: var(--ink); text-decoration: none; }
.search__results li a:hover, .search__results li a:focus-visible { border-color: var(--accent); }
.search__results .small { display: block; width: 100%; }
.search__results mark { background: var(--mark); color: inherit; padding: 0 1px; border-radius: 2px; }
.search__empty { font-size: 14px; color: var(--ink-2); padding: 6px 2px; }
.entry { display: grid; gap: 14px; margin-bottom: 8px; }
.entry--quick { display: flex; flex-wrap: wrap; gap: 10px 20px; }
.entry--olympiads { margin-bottom: 18px; }
.entry__row { display: flex; flex-wrap: wrap; gap: 10px 14px; align-items: center; }
.entry__row .eyebrow { margin: 0; min-width: 0; }
.entry__row--olymp { align-items: flex-start; }
.entry__row--olymp > .eyebrow { padding-top: 13px; }
.entry__row--olymp > div { display: flex; flex-wrap: wrap; gap: 8px; flex: 1 1 280px; }
.entry__row--olymp > div > .chips, .entry__row--olymp > div > .chips-more[open], .entry__row--olymp > div > .chips-more[open] > .chips { display: contents; }
.entry__all { font-weight: 600; font-size: 15px; flex-basis: 100%; }
.redesign-home .home-discovery { padding-top: 16px; }
.redesign-home .home-search-details { max-width: 760px; border-top: 1px solid var(--line); }
.redesign-home .home-search-details > summary { min-height: 44px; padding: 10px 0; color: var(--accent); font-size: 16px; font-weight: 600; cursor: pointer; }
.redesign-home .home-search-details__body { padding: 8px 0 16px; }
.redesign-home .home-search-details .search { margin-bottom: 16px; }
.redesign-home .home-search-details .search input { padding: 12px; }
.redesign-home .home-search-details .search button { padding-inline: 14px; }
.redesign-home .home-search-details .search__note { font-size: 13px; line-height: 1.45; }
/* Each label has its own row: it cannot be covered by subject or grade links. */
.redesign-home .entry--quick { display: grid; gap: 12px; margin: 0; }
.redesign-home .entry--quick .entry__row { display: grid; grid-template-columns: minmax(0, 1fr); gap: 4px; align-items: start; }
.redesign-home .entry--quick .eyebrow { font-size: 13px; line-height: 1.4; letter-spacing: .02em; }
[data-design="v2"] .redesign-home .entry--quick .seg { display: flex; flex-wrap: wrap; width: auto; max-width: 100%; gap: 6px; padding: 0; border: 0; border-radius: 0; background: transparent; }
[data-design="v2"] .redesign-home .entry--quick .seg li { display: block; min-width: 0; }
[data-design="v2"] .redesign-home .entry--quick .seg a { min-width: 44px; min-height: 44px; width: auto; max-width: 100%; padding: 6px 12px; border: 1px solid var(--line-2); border-radius: var(--r); font-size: 15px; line-height: 1.3; background: var(--surface); white-space: normal; }
[data-design="v2"] .redesign-home .entry--quick .seg--grades a { padding-inline: 10px; }
[data-design="v2"] .redesign-home #start { padding-top: 8px; padding-bottom: 20px; }
.redesign-home #start .section__head { margin-bottom: 8px; }
[data-design="v2"] .redesign-home #start .section__head h2 { font-size: 24px; line-height: 1.2; }
.redesign-home .home-game-link { display: inline-flex; align-items: center; min-height: 44px; margin-top: 8px; font-size: 15px; font-weight: 600; }
.redesign-home .home-game-link a { display: inline-flex; align-items: center; min-height: 44px; }
.chips-more > summary { list-style: none; }
.chips-more > summary::-webkit-details-marker { display: none; }
.chips-more[open] > summary { display: none; }
@media (max-width: 599px) {
  .entry__row { display: grid; gap: 8px; }
  .entry__row--olymp > .eyebrow { padding-top: 0; }
  [data-design="v2"] .seg--grades { display: grid; grid-template-columns: repeat(7, minmax(44px, 1fr)); border-radius: 16px; }
  [data-design="v2"] .seg--grades li { display: contents; }
  [data-design="v2"] .seg--grades a { min-width: 44px; padding: 4px 0; }
  [data-design="v2"] .catalog-chips .seg--grades { grid-template-columns: repeat(4, minmax(44px, 1fr)); }
  [data-design="v2"] .redesign-home #start .section__head h2 { font-size: 22px; }
}
/* Семь классов по 44 px помещаются в одну строку только от 400 px полезной ширины (7×44 + зазоры + рамка + поля страницы);
   уже — два ряда 4 + 3, как в каталоге. */
@media (max-width: 399px) {
  [data-design="v2"] .seg--grades { grid-template-columns: repeat(4, minmax(44px, 1fr)); }
}
.redesign-home .task-continue { margin: 18px 0 0; max-width: 760px; border: 1px solid var(--line); border-radius: var(--r-lg); background: var(--surface); color: var(--ink); }
[data-design="v2"] .task-continue { color: var(--ink); }
[data-design="v2"] .task-ux-status { color: var(--ink-2); }
[data-design="v2"] .task-continue .task-ux-button, [data-design="v2"] .task-ux-button:hover { background: var(--bg-2); color: var(--ink); border-color: var(--line-2); }
.home-play { display: grid; gap: 16px; }
@media (min-width: 960px) { .home-play { grid-template-columns: minmax(0, 1.55fr) minmax(0, 1fr); align-items: start; } }
.home-play__side { display: grid; gap: 12px; }
.model--frogs .frog-panel { background: transparent !important; border: 0 !important; padding: 0 !important; margin: 0 !important; box-shadow: none !important; max-width: none !important; width: auto !important; }
.model--frogs .frog-goal { font-size: 20px; font-weight: 700; letter-spacing: -.01em; margin: 0 0 4px; color: var(--ink); }
.model--frogs .frog-rules { color: var(--ink-2); font-size: 15px; }
.model--frogs .frog-rail { background: var(--play-stage); border-radius: 14px; margin: 0 !important; padding: 34px 4px 8px !important; width: auto !important; max-width: 100% !important; box-shadow: var(--shadow-sm); }
/* Доска лягушек: 7 камней × 44 px = 308 px минимум (.frog-board в site.css). На узких экранах кремовый слой идёт во всю ширину экрана, рамки у поля нет, чтобы поле помещалось на 320 px без внутренней прокрутки. */
@media (max-width: 599px) { [data-design="v2"] .model--frogs { margin-inline: calc(-1 * var(--gutter)); padding: 14px 12px; border-radius: 0; border-left: 0; border-right: 0; } .model--frogs .frog-rail { margin-inline: -12px !important; padding-inline: 2px !important; border-radius: 0; max-width: none !important; } }   /* текст и кнопки с полем 12 px, во всю ширину экрана идёт только рельс с камнями (крайние фигуры в 2 px от края экрана) */
.model--frogs .puzzle-actions .button { border-radius: 999px; background: var(--play-stage); border-color: var(--play-line); color: var(--ink); min-height: 44px; }
.model--frogs .puzzle-text-button { color: var(--accent); min-height: 44px; }
.model--frogs .puzzle-fine { color: var(--play-ink); font-size: 13px; }
.model--frogs .puzzle-feedback { color: var(--ink); }
/* The home game starts immediately; rules and all actions stay visible. */
[data-design="v2"] .redesign-home .model--frogs { padding: 14px; }
.redesign-home .model--frogs .frog-goal { font-size: 17px; line-height: 1.3; margin: 0 0 6px; }
.redesign-home .model--frogs .frog-rules { font-size: 15px; line-height: 1.45; margin: 0 0 8px; }
/* Home has only a counter in this toolbar. Three real grid cells prevent overlap. */
.redesign-home .model--frogs .frog-panel { display: grid; grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr); }
.redesign-home .model--frogs .frog-panel > * { grid-column: 1 / -1; }
.redesign-home .model--frogs .puzzle-toolbar { grid-column: 2; grid-row: 3; align-items: baseline; min-height: 24px; margin: 0; padding-inline: 6px; }
.redesign-home .model--frogs .puzzle-counter { margin: 0; font-size: 13px; line-height: 24px; white-space: nowrap; }
.redesign-home .model--frogs .puzzle-counter strong { font-size: 17px; }
.redesign-home .model--frogs .frog-direction { display: contents; font-size: 13px; line-height: 24px; }
.redesign-home .model--frogs .frog-direction > span { grid-row: 3; min-width: 0; overflow-wrap: anywhere; }
.redesign-home .model--frogs .frog-direction > span:first-child { grid-column: 1; }
.redesign-home .model--frogs .frog-direction > span:last-child { grid-column: 3; text-align: right; }
.redesign-home .model--frogs .puzzle-feedback { font-size: 15px; line-height: 1.45; min-height: 1.45em; margin: 6px 0; }
.redesign-home .model--frogs .puzzle-actions { gap: 6px; margin: 6px 0; }
[data-design="v2"] .redesign-home .model--frogs .puzzle-actions button { min-height: 44px; padding: 8px 10px; font-size: 15px; }
.redesign-home .model--frogs .puzzle-fine { margin: 8px 0 0; line-height: 1.45; }
@media (max-width: 599px) {
  [data-design="v2"] .redesign-home .model--frogs { padding: 12px; }
}
.frog-why { border: 1px solid var(--line); border-radius: var(--r-lg); background: var(--surface); }
.frog-why > summary { list-style: none; cursor: pointer; padding: 14px 18px; font-weight: 600; display: flex; gap: 12px; align-items: center; min-height: 44px; }
.frog-why > summary::-webkit-details-marker { display: none; }
.frog-why > summary::before { content: "+"; width: 26px; height: 26px; border-radius: 50%; background: var(--bg-2); display: inline-flex; align-items: center; justify-content: center; flex: none; color: var(--ink-2); }
.frog-why[open] > summary::before { content: "–"; background: var(--ink); color: var(--on-ink); }
.frog-why .step__body { padding: 0 18px 16px; font-size: 15px; }
.card--next h3 { font-size: 18px; }
.start-cards { margin-top: 18px; }
.start-cards .start { border-top-width: 3px; }
.start--olymp { border-top-color: var(--accent) !important; }
.start--try { border-top-color: var(--play-accent) !important; }
.start--plan { border-top-color: var(--ok) !important; }
.topics-link { margin: 14px 0 0; }
.method { list-style: none; margin: 18px 0 0; padding: 0; display: grid; gap: 10px; grid-template-columns: repeat(2, minmax(0, 1fr)); }
@media (min-width: 800px) { .method { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
.method li { background: var(--surface); border: 1px solid var(--line); border-radius: var(--r); padding: 12px 14px; display: flex; flex-direction: column; gap: 2px; align-items: flex-start; }
.method__n { font-size: 13px; color: var(--ink-3); font-variant-numeric: tabular-nums; font-weight: 600; }
.method strong { font-size: 15px; }
.home-author-wrap .home-author { margin: 40px 0 0; padding: 24px 0 0; border-top: 1px solid var(--line); background: transparent; }
.home-author-wrap .home-author h2 { font-size: 22px; }
.home-author-wrap .home-author p { color: var(--ink-2); }

/* ---------- Каталог ---------- */
[data-design="v2"] .olympiad-archive .archive-head h1 { font-size: 34px; letter-spacing: -.02em; }
@media (min-width: 800px) { [data-design="v2"] .olympiad-archive .archive-head h1 { font-size: 44px; } }
.catalog-chips { display: grid; gap: 10px; margin: 0 0 14px; }
.catalog-chips__row { display: flex; flex-wrap: wrap; gap: 8px 12px; align-items: center; }
.catalog-chips__row .eyebrow { margin: 0; min-width: 72px; }
[data-design="v2"] .archive-filter { background: var(--bg-2); border: 0; border-radius: var(--r-lg); padding: 14px 16px; grid-template-columns: minmax(0, 1fr) minmax(0, 1.3fr); }
[data-design="v2"] .archive-filter-primary { grid-template-columns: minmax(0, 1fr); }
[data-design="v2"] .archive-filter-secondary { grid-template-columns: minmax(150px, 1fr) minmax(150px, 1fr) auto; max-width: none; }
@media (max-width: 850px) { [data-design="v2"] .archive-filter { grid-template-columns: 1fr; } [data-design="v2"] .archive-filter-secondary { grid-template-columns: 1fr 1fr; } }
@media (max-width: 379px) { [data-design="v2"] .archive-filter-secondary { grid-template-columns: 1fr; } }   /* на 320 px «Все сезоны»/«Все этапы» не обрезаются */
[data-design="v2"] .archive-filter label { color: var(--ink-2); font-size: 13px; font-weight: 600; }
[data-design="v2"] .archive-filter select { border: 1px solid var(--line-2); border-radius: 999px; background-color: var(--surface); color: var(--ink); min-height: 44px; padding: 8px 36px 8px 14px; font: 15px var(--font); }
[data-design="v2"] .archive-filter .filter-reset { min-height: 44px; color: var(--accent); }
[data-design="v2"] .archive-variants { gap: 14px; }
[data-design="v2"] .archive-variant { background: var(--surface); border: 1px solid var(--line); border-radius: var(--r-lg); padding: 18px 20px; box-shadow: none; }
@media (hover: hover) { [data-design="v2"] .archive-variant:hover { border-color: var(--line-2); box-shadow: var(--shadow); } }
[data-design="v2"] .archive-variant h2 { font-size: 20px; letter-spacing: -.01em; margin: 6px 0 2px; }
[data-design="v2"] .archive-variant h2 a { color: var(--ink); text-decoration: none; }
[data-design="v2"] .archive-variant-top { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; }
[data-design="v2"] .archive-subject { background: var(--accent-soft); color: var(--accent-ink); border-radius: 999px; padding: 3px 9px; font-size: 13px; font-weight: 600; letter-spacing: 0; text-transform: none; }
[data-design="v2"] .archive-status { font-size: 13px; color: var(--ink-2); }
[data-design="v2"] .archive-meta { color: var(--ink-2); font-size: 14px; }
[data-design="v2"] .archive-partial { display: inline-flex; border: 1px dashed var(--line-2); border-radius: 999px; padding: 2px 9px; font-size: 13px; color: var(--ink-2); }
[data-design="v2"] .archive-task-index { display: flex; gap: 6px; flex-wrap: wrap; }
[data-design="v2"] .archive-task-index a { display: inline-flex; min-width: 44px; height: 44px; align-items: center; justify-content: center; border: 1px solid var(--line-2); border-radius: 9px; color: var(--ink); font-weight: 600; font-variant-numeric: tabular-nums; text-decoration: none; background: var(--surface); }
@media (hover: hover) { [data-design="v2"] .archive-task-index a:hover { border-color: var(--accent); } }
[data-design="v2"] .archive-task-index a.has-model { box-shadow: inset 0 -3px 0 var(--play-accent); }
[data-design="v2"] .archive-task-index a.is-solved { background: var(--green-soft); border-color: var(--ok); color: var(--ok); }
[data-design="v2"] .archive-task-index a[aria-current="page"] { background: var(--ink); color: var(--on-ink); border-color: var(--ink); }
.variant-progress { display: flex; align-items: center; gap: 10px; font-size: 13px; color: var(--ink-2); margin: 8px 0; }
.progress__bar { flex: 1; height: 6px; border-radius: 999px; background: var(--line); overflow: hidden; display: block; }
.progress__bar i { display: block; height: 100%; background: var(--ok); border-radius: 999px; width: 0; }
[data-design="v2"] .archive-variant-bottom .text-link { font-weight: 600; }
[data-design="v2"] .archive-guide, [data-design="v2"] .archive-official, [data-design="v2"] .archive-bottom-note { border-color: var(--line); }

/* ---------- Страница задачи ---------- */
[data-design="v2"] .academy-lesson { font-size: 17px; line-height: 1.7; color: var(--ink); }
[data-design="v2"] .pilot-crumb { font-size: 14px; color: var(--ink-2); margin: 16px 0 8px; gap: 8px; }
[data-design="v2"] .pilot-crumb a { color: var(--ink-2); }
[data-design="v2"] .lesson-heading { border-bottom: 0; padding: 4px 0 8px; margin-top: 0; }
[data-design="v2"] .academy-lesson .lesson-heading { margin-top: 0; }
[data-design="v2"] .lesson-heading .eyebrow { font-size: 13px; letter-spacing: .09em; color: var(--ink-3); }
[data-design="v2"] .lesson-heading h1 { font-size: 32px; letter-spacing: -.025em; line-height: 1.12; margin: 8px 0 14px; font-weight: 700; }
@media (min-width: 800px) { [data-design="v2"] .lesson-heading h1 { font-size: 42px; } }
[data-design="v2"] .task-share .task-ux-button { border-radius: var(--r); border-color: var(--line-2); background: var(--surface); color: var(--ink); min-height: 44px; font-weight: 600; }
[data-design="v2"] .lesson-layout { margin-top: 18px; }
@media (min-width: 960px) {
  [data-design="v2"] .lesson-layout { display: grid; grid-template-columns: minmax(0, 1fr) 280px; gap: 40px; align-items: stretch; }   /* колонка на всю высоту, иначе sticky-панели некуда прилипать */
  [data-design="v2"] .task-ux-has-spatial .lesson-layout { grid-template-columns: minmax(0, 1fr) 280px; }
  [data-design="v2"] .task-ux-has-spatial .lesson-aside, [data-design="v2"] .lesson-aside { display: block; }
}
@media (max-width: 959px) { [data-design="v2"] .lesson-layout { display: block; } [data-design="v2"] .lesson-aside { display: none; } }
[data-design="v2"] .side-sticky { position: sticky; top: 76px; background: var(--surface); border: 1px solid var(--line); border-radius: var(--r-lg); padding: 16px; }
[data-design="v2"] .lesson-aside nav { gap: 2px; margin: 6px 0 12px; }
[data-design="v2"] .lesson-aside nav a { color: var(--ink-2); padding: 4px 0; text-decoration: none; }
[data-design="v2"] .lesson-aside nav a.is-done::before { content: "✓ "; color: var(--ok); }
[data-design="v2"] .side-edition { border-top: 1px solid var(--line); padding-top: 12px; }
[data-design="v2"] .side-edition .archive-task-index a { min-width: 44px; height: 44px; }
/* Условие и метаданные */
[data-design="v2"] .problem-panel h2, [data-design="v2"] .attempt-panel h2 { font-size: 24px; margin: 0 0 10px; }
[data-design="v2"] .lesson-prose { font-size: 18px; line-height: 1.65; color: var(--ink); }
[data-design="v2"] .task-meta { display: flex; flex-wrap: wrap; gap: 6px; border: 0; padding: 0; margin: 18px 0 0; }
[data-design="v2"] .task-meta > div { display: inline-flex; gap: 6px; align-items: baseline; background: var(--bg-2); border-radius: 999px; padding: 4px 11px; font-size: 13px; }
[data-design="v2"] .task-meta dt { font-size: 13px; color: var(--ink-3); }
[data-design="v2"] .task-meta dd { margin: 0; font-weight: 600; color: var(--ink); }
[data-design="v2"] .evaluation-grid { display: flex; flex-wrap: wrap; gap: 6px; border: 0; padding: 0; margin: 6px 0 0; }
[data-design="v2"] .evaluation-grid > div { flex-direction: row; flex-wrap: wrap; align-items: baseline; gap: 6px; background: var(--bg-2); border-radius: 999px; padding: 4px 11px; font-size: 13px; line-height: 1.5; }
[data-design="v2"] .evaluation-grid .eyebrow { font-size: 13px; letter-spacing: 0; text-transform: none; font-weight: 500; color: var(--ink-3); }
[data-design="v2"] .evaluation-grid strong { font-size: 13px; font-weight: 600; }
[data-design="v2"] .difficulty-card { background: var(--bg-2) !important; }
[data-design="v2"] .difficulty-card strong span, [data-design="v2"] .difficulty-card .eyebrow { color: var(--ink-2); }
[data-design="v2"] .evaluation-grid small, [data-design="v2"] .difficulty-card p { font-size: 13px; color: var(--ink-2); }
[data-design="v2"] .source-version-note { background: var(--warn-soft); border-left: 3px solid var(--warn); border-radius: 0 var(--r) var(--r) 0; color: var(--ink); }
/* Исходные рисунки — иллюстрация: светлая «бумага», без кремового слоя */
[data-design="v2"] .lesson-figure, [data-design="v2"] .q3d-static, [data-design="v2"] .q3d-static-reference svg, [data-design="v2"] .learning-sequence svg { background: var(--paper-figure); border-radius: 12px; color: #16213a; }
[data-design="v2"] .lesson-figure { border: 1px solid var(--line); padding: 10px; }
[data-design="v2"] .diagram-enlarge { border-radius: 999px; min-height: 44px; min-width: 44px; }
/* Подписи на светлой бумаге рисунка: буквальные тёмные цвета и в тёмной теме (общая проверка контраста после review GPT, PR #11) */
[data-design="v2"] .lesson-figure :is(figcaption, .diagram-toolbar span) { color: #4e586d; }
[data-design="v2"] .lesson-figure .diagram-toolbar button.diagram-enlarge { color: #183f9f; background: transparent; border: 0; }   /* и внутри моделей (.learning-sequence button задаёт тёмную заливку) */
[data-design="v2"] .lesson-figure .diagram-canvas::after { color: #5f6b83; }
/* Попытка */
[data-design="v2"] .attempt-panel { background: var(--surface); border: 1px solid var(--line); border-radius: var(--r-lg); padding: 20px; margin: 22px 0; }
[data-design="v2"] .attempt-panel > p { color: var(--ink-2); }
[data-design="v2"] .attempt-panel textarea { border: 1px solid var(--line-2); border-radius: var(--r); background: var(--surface); color: var(--ink); font: 16px/1.6 var(--font); min-height: 110px; margin: 10px 0 6px; }
[data-design="v2"] .attempt-panel textarea::placeholder { color: var(--ink-3); }   /* подсказка пустого поля: 5.3:1 в тёмной теме вместо серого браузера 3.4:1 */
[data-design="v2"] .attempt-panel .field-note, [data-design="v2"] .draft-tools { color: var(--ink-2); }
[data-design="v2"] .task-ux-button { border-radius: var(--r); min-height: 44px; background: var(--surface); color: var(--ink); border-color: var(--line-2); }
/* Помощь по шагам */
[data-design="v2"] .help-group { display: grid; gap: 10px; margin: 22px 0; }
[data-design="v2"] .help-group > * { min-width: 0; }   /* элементы сетки не растягивают страницу: широкие формулы, таблицы и SVG моделей прокручиваются внутри своих блоков, как в базе (независимая проверка, кандидат) */
[data-design="v2"] .help-group > .lesson-disclosure { border: 1px solid var(--line); border-radius: var(--r-lg); background: var(--surface); scroll-margin-top: 80px; }
[data-design="v2"] .help-group > .lesson-disclosure:first-child { border-top: 1px solid var(--line); }
[data-design="v2"] .help-group > .lesson-disclosure > summary { padding: 12px 18px; min-height: 52px; font-size: 17px; font-weight: 600; justify-content: flex-start; gap: 12px; border-radius: var(--r-lg); color: var(--ink); }
@media (hover: hover) { [data-design="v2"] .help-group > .lesson-disclosure > summary:hover { background: var(--bg-2); } }
[data-design="v2"] .help-group > .lesson-disclosure > summary .toggle-mark { order: -1; width: 26px; height: 26px; border-radius: 50%; background: var(--bg-2); display: inline-flex; align-items: center; justify-content: center; flex: none; color: var(--ink-2); font-size: 16px; transform: none !important; }
[data-design="v2"] .help-group > .lesson-disclosure[open] > summary { color: var(--ink); border-radius: var(--r-lg) var(--r-lg) 0 0; }
[data-design="v2"] .help-group > .lesson-disclosure[open] > summary .toggle-mark { background: var(--ink); color: var(--on-ink); }
[data-design="v2"] .help-group > .lesson-disclosure.step--next { border-color: var(--accent); box-shadow: 0 0 0 3px var(--accent-soft); }
[data-design="v2"] .help-group > .lesson-disclosure > .disclosure-body { padding: 4px 18px 18px; }
@media (min-width: 600px) { [data-design="v2"] .help-group > .lesson-disclosure > .disclosure-body { padding-left: 56px; } }
@media (max-width: 599px) { [data-design="v2"] .help-group > .lesson-disclosure > .disclosure-body { padding: 4px 10px 14px; } [data-design="v2"] .lesson-figure { padding: 4px; } }   /* на телефоне рисункам решения остаётся больше ширины (в базе у раскрытий нет рамки и внутренних полей) */
[data-design="v2"] .proof-step h3 { color: var(--ink); font: 700 19px/1.35 var(--font); letter-spacing: -.01em; }
[data-design="v2"] .proof-step + .proof-step { border-top-color: var(--line); }
[data-design="v2"] .answer-box { border-left: 3px solid var(--accent); background: var(--accent-soft); border-radius: 0 var(--r-lg) var(--r-lg) 0; }
[data-design="v2"] .mistake-box { border-left: 3px solid var(--warn); background: var(--warn-soft); border-radius: 0 var(--r-lg) var(--r-lg) 0; color: var(--ink); }
/* Формулы: длинные строки прокручиваются внутри блока, страница не уезжает */
[data-design="v2"] .math-display, [data-design="v2"] .katex-display { max-width: 100%; overflow-x: auto; overflow-y: hidden; }
[data-design="v2"] .katex { color: inherit; }
/* Модели внутри разбора — тот же кремовый слой */
[data-design="v2"] .q3d { background: var(--play-bg); border: 1px solid var(--play-line); border-radius: var(--r-play); padding: 16px; color: var(--ink); }
[data-design="v2"] .q3d .q3d-stage { background: #ffffff; border: 1px solid var(--line); border-radius: 14px; }   /* сцена WebGL очищается белым (quality-3d-renderer.mjs), подпись лежит на светлом */
[data-design="v2"] .q3d button, [data-design="v2"] .q3d select { border-radius: 999px; min-height: 44px; background: var(--play-stage); border-color: var(--play-line); color: var(--ink); }
[data-design="v2"] .q3d button[aria-pressed="true"] { background: var(--ink); color: var(--on-ink); border-color: var(--ink); }
[data-design="v2"] .q3d p, [data-design="v2"] .q3d small { color: var(--ink-2); }
[data-design="v2"] .interactive-disclosure { background: var(--surface); border-color: var(--line); border-radius: var(--r-lg); }
[data-design="v2"] .interactive-disclosure > summary { color: var(--ink); }
[data-design="v2"] .interactive-disclosure > summary .toggle-mark { color: var(--accent); }
[data-design="v2"] .interactive-disclosure > summary::after { content: "Модель"; margin-left: 8px; font-size: 13px; font-weight: 600; padding: 2px 9px; border-radius: 999px; background: var(--play-bg); color: var(--play-ink); border: 1px solid var(--play-line); }
/* Конец разбора */
[data-design="v2"] .lesson-ending .source-panel { background: var(--bg-2); border-left: 3px solid var(--line-2); border-radius: 0 var(--r-lg) var(--r-lg) 0; padding: 14px 18px; margin: 22px 0; color: var(--ink-2); }
[data-design="v2"] .source-panel h2 { font-size: 17px; color: var(--ink); margin: 0 0 6px; }
[data-design="v2"] .source-panel a { color: var(--accent); }
[data-design="v2"] .after-solution { border-top: 0; margin: 22px 0; padding-top: 0; }
[data-design="v2"] .after-solution .button, [data-design="v2"] .save-task { border-radius: var(--r); min-height: 44px; border: 1px solid var(--line-2); background: var(--surface); color: var(--ink); font-weight: 600; padding: 10px 18px; }
[data-design="v2"] .after-solution [aria-pressed="true"] { background: var(--green-soft); border-color: var(--ok); color: var(--ok); }
[data-design="v2"] .lesson-pager { border-top: 0; gap: 10px; flex-wrap: wrap; }
[data-design="v2"] .lesson-pager a { display: inline-flex; align-items: center; min-height: 44px; padding: 10px 18px; border: 1px solid var(--line-2); border-radius: var(--r); color: var(--ink); font-weight: 600; text-decoration: none; background: var(--surface); }
[data-design="v2"] .practice-next, [data-design="v2"] .topic-lesson-links { border-color: var(--line); }
[data-design="v2"] .practice-next a { font-weight: 600; }
/* Нижняя панель на телефоне */
.taskbar { position: fixed; left: 0; right: 0; bottom: 0; z-index: 30; display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 6px; padding: 8px var(--gutter) calc(8px + env(safe-area-inset-bottom)); background: color-mix(in srgb, var(--bg) 94%, transparent); -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px); border-top: 1px solid var(--line); }
[data-design="v2"] .taskbar .btn { min-height: 44px; padding: 6px 8px; font-size: 15px; line-height: 1.2; }
@media (max-width: 379px) { [data-design="v2"] .taskbar .btn { font-size: 15px; padding: 6px 4px; } }
[data-design="v2"] body.has-taskbar { padding-bottom: 72px; }
@media (min-width: 960px) { .taskbar { display: none; } [data-design="v2"] body.has-taskbar { padding-bottom: 0; } }

/* ---------- Модель «Исследуй куб» ---------- */
.cube-explore { margin: 22px 0; }
.cube-stage svg { display: block; width: 100%; max-width: 340px; margin: 0 auto; height: auto; }
.cube-edges { fill: none; stroke: var(--ink); stroke-width: 2; stroke-linejoin: round; }
.cube-edges .cube-back { opacity: .5; }
.cube-tri { fill: rgba(217,139,0,.2); stroke: var(--play-accent); stroke-width: 2.5; stroke-linejoin: round; pointer-events: none; }
.vtx { cursor: pointer; }
.vtx circle { fill: #ffffff; stroke: var(--ink-3); stroke-width: 2; }   /* цвета вершин буквальные: задача про чёрное и белое */
.vtx.is-black circle { fill: #111111; }
.vtx text { fill: var(--ink); font: 700 14px var(--font); }
.vtx.is-picked .vtx__ring { stroke: var(--play-accent); stroke-width: 5; }
.cube-buttons { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 6px; margin-top: 10px; }
[data-design="v2"] .model .cube-buttons .btn.vtx-btn { min-height: 44px; padding: 4px 6px; font-size: 14px; border-radius: 999px; background: #ffffff; color: #16213a; border-color: var(--ink-3); }
[data-design="v2"] .model .cube-buttons .btn.vtx-btn.is-black { background: #111111; color: #ffffff; border-color: var(--ink-3); }
.cube-buttons .btn[aria-pressed="true"] { box-shadow: 0 0 0 3px var(--play-accent); }
.cube-transfer { display: flex; flex-wrap: wrap; gap: 6px 10px; align-items: center; margin: 4px 0 12px; }

/* ---------- Печать ---------- */
@media print {
  .site-head, .site-foot, .taskbar, .theme-btn, .search, .entry, .model__controls, .cube-buttons, .cube-transfer, .catalog-chips { display: none !important; }
  [data-design="v2"] body { background: #fff; color: #000; }
}

/* ---------- Каталог: доводка ---------- */
[data-design="v2"] .olympiad-archive .archive-view { flex-wrap: wrap; align-items: center; }
[data-design="v2"] .topic-modes { display: inline-flex; flex-wrap: nowrap; overflow-x: auto; gap: 2px; padding: 3px; border: 1px solid var(--line-2); border-radius: 999px; margin: 0; max-width: 100%; scrollbar-width: none; background: var(--surface); }
[data-design="v2"] .topic-modes::-webkit-scrollbar { display: none; }
[data-design="v2"] :is(.page-head,.gallery-head) > .topic-modes { margin-top: 24px; }
@media (max-width: 599px) { [data-design="v2"] :is(.page-head,.gallery-head) > .topic-modes { margin-top: 20px; } }
@media (max-width: 599px) { [data-design="v2"] .topic-modes { display: flex; flex-wrap: wrap; overflow: visible; border-radius: 24px; } }   /* на телефоне все режимы видны, как в базе; скрытая прокрутка обрезала «Календарь»/«Справочник» */
[data-design="v2"] .topic-modes a { padding: 8px 14px; min-height: 44px; display: inline-flex; align-items: center; border-radius: 999px; color: var(--ink); font-weight: 600; font-size: 15px; white-space: nowrap; }
[data-design="v2"] .topic-modes a[aria-current] { background: var(--ink); color: var(--on-ink); }
[data-design="v2"] .olympiad-archive .archive-view > a { font-weight: 600; }
/* Предмет и класс выбираются чипами; прежние поля остаются в форме для логики фильтра */
[data-design="v2"] .catalog-chips:not([hidden]) + .archive-filter .archive-filter-primary > div:has(#archive-subject), [data-design="v2"] .catalog-chips:not([hidden]) + .archive-filter .archive-filter-primary > div:has(#archive-grade) { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
[data-design="v2"] .archive-variant-top .archive-status { width: 100%; background: none; padding: 0; }
[data-design="v2"] .archive-variant-top .badge--model { margin-left: auto; }
@media (max-width: 599px) {
  .catalog-chips__row { display: grid; gap: 6px; }
  [data-design="v2"] .catalog-chips .seg { width: 100%; }
  [data-design="v2"] .catalog-chips .seg--grades { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  [data-design="v2"] .olympiad-archive .archive-head h1 { font-size: 30px; }
}

/* Колонка урока совпадает с сеткой шапки */
[data-design="v2"] .pilot-wrap.academy-lesson { width: auto; max-width: var(--wrap-w); padding-left: var(--gutter); padding-right: var(--gutter); margin-inline: auto; box-sizing: border-box; }
.home-play > * { min-width: 0; }
/* Рельс лягушек на ≤ 599 px занимает всю полезную ширину окна (правило выше): на 320 px полю достаётся 320 ≥ 308, ниже 308 px — зигзаг камней, см. блок @container ниже (Safari-наблюдение GPT, PR #11) */
@media (max-width: 500px) { [data-design="v2"] .frogs-page .frog-panel { margin-inline: calc(-1 * var(--gutter)); width: auto; } }   /* /puzzles/frogs/: панель во всю ширину при любом отступе страницы (в базе −16 px при отступе 16), рельс как в базе */

/* Зигзаг камней, когда ряд из семи целей по 44 px не помещается (полезная ширина рельса < 308 px: окно 320 px с классической полосой прокрутки даёт 305).
   Правила, прогресс, порядок камней слева направо и цели 44 × 58 не меняются; меняется только компоновка поля:
   - поле занимает ширину рельса W (без min-width 308 базы); при W < 44·N крайние камни вписаны в рельс отступом m = (22·N − W/2)/(N − 1) + 0,5 px запаса,
     при W ≥ 44·N отступ 0 и ряд прямой (для пяти камней на той же ширине ничего не меняется);
   - чётные камни (2, 4, 6) и лягушки на них подняты на 60 px (высота цели 58 + 2) — прямоугольники соседних целей не пересекаются,
     соседи в одном ряду стоят через 2·шаг ≥ 44 px (min-width поля = 22·N), ниже этого минимума — внутренняя прокрутка базы;
   - условия «W < 44·N» и «шаг < 44 px» записаны ступенью clamp(0, разница × 100000, предел); проценты в margin/padding считаются от ширины;
   - высота поля 140 (база на ≤ 500 px) + 30 px сверху при зигзаге = 170: верхний ряд до 161 + дуга прыжка 42 ≤ 170 + padding-top рельса 34;
   - при обычной ширине (≥ 308 px) блок не действует, поле как раньше. Без JS (.frog-static) — без изменений. */
[data-design="v2"] .frog-panel .frog-rail { container-type: inline-size; }
@container (width < 308px) {
  [data-design="v2"] .frog-panel .frog-board { box-sizing: content-box; width: auto; min-width: calc(var(--stones, 7) * 22px); height: 140px; padding-top: clamp(0px, (44px * var(--stones, 7) - 100%) * 100000, 30px); margin-inline: calc(max(0px, (22px * var(--stones, 7) - 50%) / (var(--stones, 7) - 1)) + clamp(0px, (44px * var(--stones, 7) - 100%) * 100000, 0.5px)); }
  [data-design="v2"] .frog-panel .frog-stone:nth-of-type(even),
  [data-design="v2"] .frog-panel .frog-token:is([data-position="1"], [data-position="3"], [data-position="5"], [data-position="7"]) { margin-bottom: clamp(0px, (44px - 100% / var(--stones, 7)) * 100000, 60px); }
  @media (prefers-reduced-motion: no-preference) { [data-design="v2"] .frog-panel .frog-token { transition: margin-bottom .36s ease-in-out; } }
}

/* ======================================================================================
   Этап 2: оформление всех типов страниц. Общие элементы старого site.css и семейные
   таблицы (information, calendar, topic-catalog, discovery, gallery, lesson, модели)
   переводятся на токены. Разметка и логика страниц не меняются.
   Правило для моделей: кремовый слой «двигаю» вокруг контейнера, сцены/рисунки внутри
   остаются светлой «бумагой» (--paper-figure) и в тёмной теме; цвета самих фигур
   (шашки, монеты, лягушки, башни) — буквальные, как в задачах.
   ====================================================================================== */

/* ---------- Общие элементы ---------- */
[data-design="v2"] .skip { background: var(--surface); color: var(--ink); }
[data-design="v2"] .button { display: inline-flex; align-items: center; justify-content: center; gap: 10px; min-height: 48px; padding: 10px 20px; border-radius: var(--r); background: var(--ink); border: 1px solid var(--ink); color: var(--on-ink); font: 600 15px/1.3 var(--font); text-decoration: none; cursor: pointer; }
@media (hover: hover) { [data-design="v2"] .button:hover { background: var(--ink-2); border-color: var(--ink-2); color: var(--on-ink); } }
[data-design="v2"] .button.outline { background: var(--surface); border-color: var(--line-2); color: var(--ink); }
@media (hover: hover) { [data-design="v2"] .button.outline:hover { background: var(--bg-2); border-color: var(--ink-3); color: var(--ink); } }
[data-design="v2"] .button.light { background: var(--surface); border-color: var(--surface); color: var(--ink); }
@media (hover: hover) { [data-design="v2"] .button.light:hover { background: var(--bg-2); border-color: var(--bg-2); color: var(--ink); } }
[data-design="v2"] .text-link { color: var(--accent); font-weight: 600; font-size: 15px; border-bottom-color: currentColor; }
[data-design="v2"] :is(.tag, .read-time) { background: var(--bg-2); color: var(--ink-2); border-radius: 999px; font-size: 13px; font-weight: 600; padding: 4px 10px; }
[data-design="v2"] .breadcrumbs { color: var(--ink-2); font-size: 14px; margin: 16px 0 10px; }
[data-design="v2"] .breadcrumbs a { color: var(--ink-2); border-bottom: 0; text-decoration: underline; text-decoration-color: var(--line-2); text-underline-offset: 3px; }
[data-design="v2"] .page-head { padding-top: 36px; padding-bottom: 28px; }   /* только вертикаль: .page-head часто совмещён с .wrap, боковые поля остаются */
[data-design="v2"] .page-head h1 { font-size: clamp(32px, 4.4vw, 50px); line-height: 1.08; letter-spacing: -.03em; margin: 0 0 12px; text-wrap: balance; }
[data-design="v2"] .page-head > p:not(.eyebrow):not(.breadcrumbs), [data-design="v2"] .page-head .lead { font-size: 18px; line-height: 1.55; color: var(--ink-2); max-width: 720px; }
[data-design="v2"] .compact-head { padding-bottom: 20px; }
[data-design="v2"] .callout { background: var(--bg-2); border-left: 3px solid var(--accent); border-radius: 0 var(--r-lg) var(--r-lg) 0; }
[data-design="v2"] .aside-note { border-top-color: var(--accent); }
[data-design="v2"] .prose a { color: var(--accent); }
[data-design="v2"] :is(.resource-item, .project-row, .portfolio-nav a, .about-navigation a, .education-list article, .review-card, .reviews-section, .education-section, .cohort-card td, .lesson-ending, .after-solution) { border-color: var(--line); }
[data-design="v2"] :is(.portfolio-nav a, .about-navigation a) { color: var(--ink); min-height: 44px; display: inline-flex; align-items: center; border-bottom: 1px solid var(--line); }
[data-design="v2"] :is(.portfolio-nav a, .about-navigation a):hover { color: var(--accent); border-color: var(--accent); }
[data-design="v2"] :is(.evidence-note a, .portfolio-facts a) { border-bottom-color: var(--line-2); }
[data-design="v2"] :is(.cohort-card, .education-list article:first-child) { border-top-color: var(--ink); }
[data-design="v2"] :is(.portfolio-cta, .testimonial-feature, .document-full) { border-radius: var(--r-lg); background: var(--bg-2); }
[data-design="v2"] .testimonial-feature { overflow: hidden; }
[data-design="v2"] .document-card { border-color: var(--line); border-radius: var(--r-lg); overflow: hidden; }
[data-design="v2"] .document-image { background: var(--paper-figure); }
[data-design="v2"] :is(.idea-flow strong, .birthday-theory strong, .door-number) { font-family: var(--font); }

/* Инвертированные блоки (были на --navy): фон чернила, текст — на чернилах */
[data-design="v2"] :is(.hero-author, .library-feature, .math-learning, .review-featured, .teaser-evidence, .daily-discovery, .preview-bar, .sigma-feature) { background: var(--ink); color: var(--on-ink); }
[data-design="v2"] :is(.hero-author, .review-featured, .teaser-evidence, .daily-discovery, .sigma-feature) { border-radius: var(--r-lg); }
[data-design="v2"] :is(.hero-author, .library-feature, .math-learning, .review-featured, .teaser-evidence, .daily-discovery, .preview-bar, .sigma-feature) :is(a, h2, h3, h4, strong, em, .text-link, .author-name, .reading-row h3, .sigma-feature h2 em) { color: inherit; }
[data-design="v2"] :is(.hero-author figcaption, .library-feature .eyebrow, .problem-caption, .problem-composition p, .reading-row > div > span, .reading-list > p, .library-paths > span, .review-featured .review-source, .review-featured figcaption span, .teaser-evidence .tag, .teaser-evidence p, .math-learning .eyebrow, .math-learning-intro > p:last-child, .learning-options > a > span:first-child, .learning-options p, .daily-discovery p, .daily-discovery .eyebrow, .preview-bar span, .sigma-feature .eyebrow, .sigma-feature-intro > p:not(.eyebrow), .sigma-wordmark > span, .sigma-life, .sigma-feature-story > p:not(.sigma-start-capital), .sigma-feature-note) { color: inherit; opacity: .78; }
[data-design="v2"] :is(.featured-problem, .reading-row, .library-paths, .hero-author figcaption > a, .learning-options > a, .sigma-feature-story, .sigma-decision) { border-color: color-mix(in srgb, var(--on-ink) 28%, transparent); }
[data-design="v2"] :is(.hero-author, .library-feature, .math-learning, .review-featured, .teaser-evidence, .daily-discovery, .sigma-feature) .button { background: var(--on-ink); color: var(--ink); border-color: var(--on-ink); }
[data-design="v2"] :is(.library-feature .text-link, .teaser-evidence .text-link, .learning-options .text-link, .reading-row):hover { color: inherit; opacity: .85; }
[data-design="v2"] :is(.reading-row:hover h3, .sigma-decision:hover, .sigma-start-capital span, .sigma-feature h2 em) { color: var(--play-ink); }
[data-design="v2"] .teaser-evidence .tag { background: none; }

/* Поля форм и элементы управления всех семейств: один вид, высота ≥ 44 px */
[data-design="v2"] :is(.topic-filter, .gallery-filters, .contact-field, .info-controls, .discovery-filter, .cal-filters, .cal-month-controls, .cal-dialog, .library-filter, .archive-filter, .answer-check, .contact-check, .share-fallback, [data-rolling], .interactive-select, .q3d, .q2d, .qphysics, .ultra-game, .q-model, .student-grid, .student-roads, .ferry-model, .birthday-controls, .archive-club, .archive-live) :is(input:not([type="checkbox"]):not([type="radio"]):not([type="range"]):not([type="hidden"]):not([type="submit"]):not([type="button"]), select, textarea) { background: var(--surface); color: var(--ink); border: 1px solid var(--line-2); border-radius: var(--r); min-height: 44px; font: 16px/1.4 var(--font); padding-inline: 12px; }
[data-design="v2"] :is(.topic-filter, .gallery-filters, .contact-field, .info-controls, .discovery-filter, .cal-filters, .cal-month-controls, .library-filter, .archive-filter) select { padding-right: 32px; }
/* Фильтры календаря на телефоне: при увеличенных полях v2 селект шире своей колонки (126 px при 320 px), и соседние селекты наезжали друг на друга.
   Дорожка метки может быть уже минимальной ширины селекта, селект занимает ровно колонку; на ≤ 359 px фильтры в одну колонку. */
[data-design="v2"] .cal-filters label { grid-template-columns: minmax(0, 1fr); }
[data-design="v2"] .cal-filters select { width: 100%; min-width: 0; }
@media (max-width: 359px) { [data-design="v2"] .cal-filters { grid-template-columns: minmax(0, 1fr); } }
[data-design="v2"] input[type="range"] { min-height: 44px; accent-color: var(--accent); }
[data-design="v2"] :is(input[type="checkbox"], input[type="radio"]) { accent-color: var(--accent); }
[data-design="v2"] :is(.info-page, .topic-catalog, .discovery-library, .gallery, .gallery-card, [data-calendar], .cal-month-controls, .cal-filters, .cal-view-toggle, .contact-field, .contact-card, .puzzle-panel, .learning-sequence, .learning-interactive, .q3d, .q2d, .qphysics, .ultra-game, .q-model, .student-grid, .student-roads, .ferry-model, .task-ux, .attempt-panel, .archive-filter) :is(a, button, input, select, summary, textarea, [tabindex]):is(:focus-visible, :focus) { outline: 3px solid var(--accent); outline-offset: 2px; }
[data-design="v2"] :is(.info-page, .topic-catalog, .discovery-library, .gallery, .gallery-card, [data-calendar], .cal-month-controls, .cal-filters, .cal-view-toggle, .contact-field, .contact-card, .puzzle-panel, .learning-sequence, .learning-interactive, .q3d, .q2d, .qphysics, .ultra-game, .q-model, .student-grid, .student-roads, .ferry-model, .task-ux, .attempt-panel, .archive-filter) :is(a, button, summary, [tabindex]):focus:not(:focus-visible) { outline: none; }   /* поля ввода (в т.ч. type=month) показывают фокус и по клику */
/* Поле месяца: Chromium снимает :focus/:focus-visible с поля, когда фокус внутри него переходит на сегмент года или кнопку календаря; обводка держится по :focus-within. */
[data-design="v2"] input[type="month"]:focus-within { outline: 3px solid var(--accent); outline-offset: 2px; }
[data-design="v2"] summary { min-height: 44px; box-sizing: border-box; padding-block: 8px; cursor: pointer; }
[data-design="v2"] :is(.filter-reset, .gallery-reset, .experiment-reset, .puzzle-text-button) { display: inline-flex; align-items: center; min-height: 44px; padding: 8px 0; border: 0; border-bottom: 1px solid currentColor; background: none; color: var(--ink-2); font: 500 15px/1.3 var(--font); cursor: pointer; }
[data-design="v2"] :is(.contact-check button, .contact-context button, .cal-month-controls button, .cal-dialog [data-cal-close], .print-button, .info-view-toggle button, .cal-view-toggle button, .interactive-enlarge, .qphysics-enlarge, .q2d-enlarge) { min-height: 44px; }
[data-design="v2"] :is(details, .discovery-school, .discovery-filter-controls, .info-controls, .puzzle-details, .math-explanation, .algebra-insight, .cal-filter-panel, .cal-schedule, .student-roads details, .contact-aside details) { border-color: var(--line); }

/* ---------- Варианты и каталог (archive) ---------- */
[data-design="v2"] .archive-head h1 span { color: var(--ink-3); }
[data-design="v2"] .archive-volume { color: var(--ink-3); }
[data-design="v2"] .archive-status { color: var(--ok); background: var(--green-soft); border-radius: 999px; }
[data-design="v2"] .archive-task-index a { background: var(--surface); border-color: var(--line-2); color: var(--ink); border-radius: 8px; }
[data-design="v2"] .archive-task-index a:hover, [data-design="v2"] .archive-task-index a[aria-current] { color: var(--on-ink); background: var(--ink); border-color: var(--ink); }
[data-design="v2"] .archive-task-index a.is-solved { box-shadow: inset 0 -3px var(--ok); }
[data-design="v2"] .archive-condition-top { color: var(--ok); }
[data-design="v2"] .archive-editorial-note { border-left: 3px solid var(--warn); background: var(--warn-soft); color: var(--ink); border-radius: 0 var(--r-lg) var(--r-lg) 0; }
[data-design="v2"] .archive-answer { background: var(--green-soft); border-left: 3px solid var(--ok); border-radius: 0 var(--r-lg) var(--r-lg) 0; }
[data-design="v2"] .archive-answer > strong { color: var(--ok); }
[data-design="v2"] .archive-figure { background: var(--paper-figure); border: 1px solid var(--line); border-radius: 12px; color: #16213a; }
[data-design="v2"] .print-button { background: var(--surface); border: 1px solid var(--line-2); color: var(--ink); border-radius: var(--r); font: 600 15px/1.3 var(--font); }
[data-design="v2"] .archive-cycle span { background: var(--surface); border-color: var(--line-2); color: var(--ink-2); }
[data-design="v2"] .archive-cycle .is-active { background: var(--ink); border-color: var(--ink); color: var(--on-ink); }
[data-design="v2"] .archive-cycle b { color: var(--ink-3); }
[data-design="v2"] :is(.archive-traffic, .archive-club) { background: var(--play-bg); border: 1px solid var(--play-line); border-radius: var(--r-play); color: var(--ink); padding: 16px; }
[data-design="v2"] .archive-traffic [data-traffic-result] { color: var(--ok); }
[data-design="v2"] .archive-traffic [data-traffic-result][data-pass="false"] { color: var(--bad); }
[data-design="v2"] .archive-club-bars > div > div { background: var(--play-stage); }
[data-design="v2"] .olympiad-archive .button.outline:hover, [data-design="v2"] .olympiad-task .button.outline:hover { color: var(--ink); }

/* ---------- Задача и статья: остальные элементы ---------- */
[data-design="v2"] .source-badge { background: var(--bg-2); color: var(--ink-2); border-radius: 999px; }
[data-design="v2"] :is(.step-marker, .card-number, .reasoning-steps h3:before, .idea-flow span) { color: var(--ink-3); }
[data-design="v2"] .candidate-note { border-color: var(--line); border-radius: var(--r-lg); }
[data-design="v2"] .review-warning { border-left: 3px solid var(--warn); background: var(--warn-soft); color: var(--ink); border-radius: 0 var(--r-lg) var(--r-lg) 0; }
[data-design="v2"] .source-version-note strong { color: var(--warn); }
[data-design="v2"] .diagram-dialog { background: var(--paper-figure); color: #16213a; border: 1px solid var(--line); border-radius: var(--r-lg); }
[data-design="v2"] :is(.diagram-dialog, .cal-dialog)::backdrop { background: rgba(10, 15, 30, .6); }
[data-design="v2"] .diagram-dialog .diagram-close { color: #183f9f; }   /* окно увеличенной схемы — светлая бумага: кнопка и подсказка буквальных тёмных цветов */
[data-design="v2"] .diagram-dialog-help { color: #4e586d; }
[data-design="v2"] .time-comparison-track { background: var(--bg-2); }
[data-design="v2"] .solution { background: var(--surface); border-color: var(--line); border-radius: var(--r-lg); }
[data-design="v2"] .answer-feedback[data-result="correct"] { color: var(--ok); }
[data-design="v2"] .answer-feedback[data-result="incorrect"] { color: var(--bad); }
[data-design="v2"] .save-task { border: 1px solid var(--line-2); color: var(--ink); background: var(--surface); min-height: 44px; border-radius: var(--r); font-weight: 600; }
[data-design="v2"] .save-task[aria-pressed="true"] { background: var(--green-soft); border-color: var(--ok); color: var(--ok); }
[data-design="v2"] .progress-label { color: var(--ok); }
[data-design="v2"] .library-return { color: var(--ink-2); }
[data-design="v2"] .idea-diagram { background: var(--bg-2); border-color: var(--line); border-radius: var(--r-lg); }
[data-design="v2"] .idea-diagram figcaption { color: var(--ink); }
[data-design="v2"] .idea-diagram svg { color: var(--accent); }
[data-design="v2"] .idea-flow small { color: var(--ink-2); }
[data-design="v2"] .idea-flow > div { border-bottom-color: var(--line); }
[data-design="v2"] .idea-table { border-color: var(--line); border-radius: var(--r-lg); }
[data-design="v2"] .idea-table th, [data-design="v2"] .idea-table td { border-bottom-color: var(--line); }
[data-design="v2"] .idea-table th { background: var(--bg-2); }
[data-design="v2"] .idea-equation { background: var(--bg-2); border-left-color: var(--accent); border-radius: 0 var(--r-lg) var(--r-lg) 0; }
[data-design="v2"] :is(.task-ux-status, .continue-dismiss) { color: var(--ink-2); }   /* крестик карточки «Продолжить» сохраняет геометрию базы (44×44, знак 24 px по центру, без подчёркивания): правило текстовых кнопок на него не распространяется */
[data-design="v2"] .draft-conflict { background: var(--accent-soft); color: var(--ink); border-radius: var(--r-lg); }
[data-design="v2"] .task-continue { border-color: var(--line); background: var(--surface); color: var(--ink); border-radius: var(--r-lg); }
[data-design="v2"] .task-ux-button:hover { background: var(--bg-2); border-color: var(--ink-3); color: var(--ink); }
[data-design="v2"] .related-card, [data-design="v2"] .lesson-table-wrap { border-color: var(--line); }

/* ---------- Библиотека: открытия ---------- */
[data-design="v2"] .discovery-filter { border-top-color: var(--line); }
[data-design="v2"] .discovery-selections { border: 1px solid var(--line); border-radius: var(--r-lg); overflow: hidden; background: var(--surface); }
[data-design="v2"] .discovery-selections a { color: var(--ink); border-color: var(--line); min-height: 44px; }
[data-design="v2"] .discovery-selections a[aria-current="page"] { background: var(--accent-soft); box-shadow: inset 0 3px var(--accent); }
[data-design="v2"] :is(.discovery-count, .discovery-selections span, .discovery-device-note, .discovery-result-count, .logic-card-meta, .logic-knowledge span, .logic-source, .discovery-school > summary span, .discovery-progress-note) { color: var(--ink-2); }
[data-design="v2"] :is(.logic-card, .logic-school-card) { border-top-color: var(--line); }
[data-design="v2"] :is(.logic-card h2 a, .logic-card h3 a, .logic-card h4 a, .logic-school-card h2 a) { color: var(--ink); }
[data-design="v2"] .discovery-school { border-color: var(--line); }
[data-design="v2"] .library-filter { background: var(--bg-2); border-radius: var(--r-lg); }

/* ---------- Темы и маршруты ---------- */
[data-design="v2"] :is(.topic-paths, .topic-entry, .topic-lesson-links) { border-color: var(--line); }
[data-design="v2"] :is(.topic-paths p, .topic-help, .topic-count, .topic-card-top, .topic-provenance, .topic-readiness, .topic-path-steps header p) { color: var(--ink-2); }
[data-design="v2"] .topic-path-card { border: 1px solid var(--line); background: var(--surface); border-radius: var(--r-lg); }
[data-design="v2"] .topic-path-card:hover { border-color: var(--line-2); box-shadow: var(--shadow); }
[data-design="v2"] .topic-path-card > span { color: var(--accent); }
[data-design="v2"] .topic-filter { border: 1px solid var(--line); background: var(--surface); border-radius: var(--r-lg); }
[data-design="v2"] .topic-card { border: 1px solid var(--line); background: var(--surface); border-radius: var(--r-lg); }
[data-design="v2"] .topic-card h2 a { color: var(--ink); }
[data-design="v2"] .topic-chip { background: var(--bg-2); color: var(--ink-2); border-radius: 999px; }
[data-design="v2"] .topic-entry summary { color: var(--accent); }
[data-design="v2"] .topic-card-foot [data-solved="true"] { color: var(--ok); }
[data-design="v2"] :is(.topic-empty, .topic-path-intro) { background: var(--bg-2); border-color: var(--line); border-radius: var(--r-lg); }
[data-design="v2"] .topic-step-number { background: var(--ink); color: var(--on-ink); }

/* ---------- Галерея головоломок ---------- */
[data-design="v2"] .gallery-modes { border-bottom-color: var(--line); }
[data-design="v2"] .gallery-modes a { border: 1px solid var(--line-2); color: var(--ink); background: var(--surface); border-radius: 999px; min-height: 44px; display: inline-flex; align-items: center; padding: 6px 14px; font-weight: 500; }
[data-design="v2"] .gallery-modes a[aria-current="page"] { background: var(--ink); border-color: var(--ink); color: var(--on-ink); }
[data-design="v2"] .gallery-reset { color: var(--accent); }
[data-design="v2"] :is(.gallery-results-line, .gallery-footnote) { border-color: var(--line); }
[data-design="v2"] :is(.gallery-loading-note, .gallery-group-heading p, .gallery-prerequisites, .gallery-origin, .gallery-footnote, .gallery-noscript, .gallery-card-meta, .gallery-controls-copy) { color: var(--ink-2); }
[data-design="v2"] .gallery-prerequisites strong { color: var(--ink); }
[data-design="v2"] .gallery-secondary { color: var(--accent); }
[data-design="v2"] .gallery-card { border: 1px solid var(--line); background: var(--surface); border-radius: var(--r-lg); overflow: hidden; }
[data-design="v2"] .gallery-preview { background: var(--paper-figure); border-bottom: 1px solid var(--line); }
[data-design="v2"] .gallery-format { color: #16213a; background: #fff; border-color: #cfd4dd; }   /* бейдж лежит на светлой бумаге превью */
[data-design="v2"] .gallery-empty { border-color: var(--line); background: var(--bg-2); border-radius: var(--r-lg); }

/* ---------- Календарь ---------- */
[data-design="v2"] .cal-view-toggle { border-bottom-color: var(--line); }
[data-design="v2"] .cal-view-toggle button { background: var(--surface); color: var(--ink); border: 1px solid var(--line-2); border-radius: 999px; }
[data-design="v2"] .cal-view-toggle button[aria-pressed="true"] { background: var(--ink); color: var(--on-ink); border-color: var(--ink); }
[data-design="v2"] .cal-month-controls button { border: 1px solid var(--line-2); background: var(--surface); color: var(--ink); border-radius: var(--r); }
[data-design="v2"] .cal-group { border: 1px solid var(--line); background: var(--surface); border-radius: var(--r-lg); }
[data-design="v2"] .cal-action { background: var(--accent-soft); color: var(--accent-ink); border-radius: 999px; }
[data-design="v2"] .cal-action.priority-0, [data-design="v2"] .cal-action.priority-1 { background: var(--warn-soft); color: var(--warn); }
[data-design="v2"] :is(.cal-schedule, .cal-month-extra, .cal-month-grid, .cal-detail-list li, .cal-day, .cal-padding, .cal-schedule li, .cal-month-extra li) { border-color: var(--line); }
[data-design="v2"] :is(.cal-schedule summary, .cal-filter-panel summary, .cal-day h3 small, .cal-period-card .cal-period-range) { color: var(--accent); }
[data-design="v2"] :is(.cal-schedule small, .cal-week span, .cal-month-event small, .practice-next p, [data-calendar] [data-cal-count], .cal-period-card small) { color: var(--ink-2); }
[data-design="v2"] .cal-day.is-today { background: var(--accent-soft); }
[data-design="v2"] .cal-day.is-today time { border-bottom-color: var(--accent); }
[data-design="v2"] .cal-month-event { background: var(--bg-2); color: var(--ink); border-radius: 8px; }
[data-design="v2"] .cal-month-event.is-provisional { background: var(--warn-soft); border-color: var(--warn); }
[data-design="v2"] .cal-month-event em { color: var(--warn); }
[data-design="v2"] .practice-next article { border-color: var(--line); border-radius: var(--r-lg); }
[data-design="v2"] .cal-dialog { border: 1px solid var(--line-2); color: var(--ink); background: var(--surface); border-radius: var(--r-lg); box-shadow: var(--shadow); }
[data-design="v2"] .cal-dialog [data-cal-close] { border: 1px solid var(--line-2); background: var(--bg-2); color: var(--ink); border-radius: var(--r); min-width: 44px; }
[data-design="v2"] .cal-period-card { border: 1px solid var(--line); background: var(--surface); border-radius: var(--r-lg); }

/* ---------- Информация: олимпиады, школы, справочник ---------- */
[data-design="v2"] .info-note { border-left-color: var(--accent); background: var(--bg-2); border-radius: 0 var(--r-lg) var(--r-lg) 0; }
[data-design="v2"] .info-controls { border: 1px solid var(--line); background: var(--surface); border-radius: var(--r-lg); }
[data-design="v2"] .info-card { border: 1px solid var(--line); background: var(--surface); border-radius: var(--r-lg); }
[data-design="v2"] :is(.info-card h2 a, .info-event-body h2 a) { color: var(--ink); }
[data-design="v2"] :is(.info-card .info-kicker, .info-kicker, .info-card-bottom > span:not(.info-verified), .info-verified, .info-muted, .info-help, .info-result, .info-toolbar > p, .info-fact dt, .info-materials span, .info-entrances p, .info-entrances > a > span) { color: var(--ink-2); }
[data-design="v2"] .info-verified [data-stale-note]:not(:empty) { color: var(--warn); }
[data-design="v2"] .info-status { background: var(--bg-2); color: var(--ink-2); border-radius: 999px; }
[data-design="v2"] :is(.status-confirmed, .status-confirmed_current) { background: var(--green-soft); color: var(--ok); }
[data-design="v2"] :is(.status-partial, .status-previous_cycle_only) { background: var(--warn-soft); color: var(--warn); }
[data-design="v2"] .status-needs_review { background: var(--bad-soft); color: var(--bad); }
[data-design="v2"] .info-warning { color: var(--warn); }
[data-design="v2"] :is(.info-empty, .info-prep-evidence, .info-fact, .info-date-table > div) { background: var(--bg-2); }
[data-design="v2"] .info-view-toggle { border-color: var(--line-2); border-radius: 999px; overflow: hidden; }
[data-design="v2"] .info-view-toggle button { color: var(--ink); background: var(--surface); }
[data-design="v2"] .info-view-toggle button[aria-pressed="true"] { color: var(--on-ink); background: var(--ink); }
[data-design="v2"] .info-event { border: 1px solid var(--line); background: var(--surface); border-radius: var(--r-lg); }
[data-design="v2"] :is(.info-event-date, .info-entrances h3, .info-month-heading) { color: var(--accent); }
[data-design="v2"] .info-event-date strong { color: var(--warn); }
[data-design="v2"] .info-event-date { border-bottom-color: var(--line); }
[data-design="v2"] .info-calendar[data-view="timeline"] .info-events { border-left-color: var(--line-2); }
[data-design="v2"] .info-calendar[data-view="timeline"] .info-event { border-bottom-color: var(--line); }
[data-design="v2"] .info-calendar[data-view="timeline"] .info-event:before { background: var(--accent); border-color: var(--bg); }
[data-design="v2"] :is(.info-section, .info-facts, .info-fact, .info-crosslink, .info-entrances, .info-entrances > a) { border-color: var(--line); }
[data-design="v2"] .info-entrances > a { border-radius: var(--r-lg); }
[data-design="v2"] .info-date-table > div { border-left-color: var(--accent); }
[data-design="v2"] .info-previous { background: var(--warn-soft); border-color: var(--warn-soft); border-radius: var(--r-lg); }
[data-design="v2"] .info-materials > a { border: 1px solid var(--line-2); color: var(--ink); border-radius: var(--r); min-height: 44px; }
[data-design="v2"] .info-materials > a:hover { border-color: var(--ink-3); background: var(--bg-2); }
[data-design="v2"] .info-card:has(h2 a:hover) { border-color: var(--line-2); background: var(--surface); box-shadow: var(--shadow); }
[data-design="v2"] .info-topic-links a { background: var(--bg-2); border-radius: 999px; }

/* ---------- Контакт ---------- */
[data-design="v2"] .contact-card { background: var(--surface); border: 1px solid var(--line); border-radius: var(--r-lg); }
[data-design="v2"] .contact-kind label { border: 1px solid var(--line-2); border-radius: var(--r); min-height: 44px; }
[data-design="v2"] .contact-kind label:has(input:checked) { border-color: var(--accent); background: var(--accent-soft); }
[data-design="v2"] :is(.contact-kind small, .contact-field label span, .contact-field small, .contact-field p, .contact-section-heading p, .contact-consent, .contact-fine, .contact-aside p, .contact-email span, .contact-context span, .contact-success p, section.contact-context h2 span, section.contact-context p) { color: var(--ink-2); }
[data-design="v2"] :is(.contact-section-heading, .contact-aside-note, .contact-aside details, section.contact-context #contact-context-editor) { border-color: var(--line); }
[data-design="v2"] :is(.contact-check, .contact-context) { background: var(--bg-2); border-radius: var(--r-lg); }
[data-design="v2"] section.contact-context { background: var(--bg-2); border: 1px solid var(--line); border-radius: var(--r-lg); }
[data-design="v2"] :is(.contact-check button, .contact-context button) { color: var(--ink); background: var(--surface); border: 1px solid var(--line-2); border-radius: var(--r); padding: 8px 14px; font: 500 15px/1.3 var(--font); cursor: pointer; }
[data-design="v2"] section.contact-context #contact-context-apply { background: var(--ink); color: var(--on-ink); border-color: var(--ink); }
[data-design="v2"] :is(section.contact-context #contact-context-link, .contact-consent a, .contact-email a, .contact-context a) { color: var(--accent); }
[data-design="v2"] :is(.contact-status, section.contact-context #contact-context-error) { color: var(--bad); }
[data-design="v2"] .contact-aside-number { color: var(--ink-3); }

/* ---------- Проценты, хаос ---------- */
[data-design="v2"] .guess-option { background: var(--surface); border: 1px solid var(--line-2); color: var(--ink); border-radius: var(--r); }
@media (hover: hover) { [data-design="v2"] .guess-option:hover { background: var(--bg-2); } }
[data-design="v2"] .guess-option[aria-pressed="true"] { background: var(--ink); border-color: var(--ink); color: var(--on-ink); }
[data-design="v2"] .guess-option[aria-pressed="true"] > span:last-child { color: inherit; opacity: .78; }
[data-design="v2"] .price-track { background: var(--bg-2); }
[data-design="v2"] .chaos-workbench { background: var(--bg-2); border-color: var(--line); border-radius: var(--r-lg); }
[data-design="v2"] .chaos-readout { border-top-color: var(--line); }
[data-design="v2"] .chaos-step { border-bottom-color: var(--line); color: var(--ink); min-height: 44px; }
[data-design="v2"] .chaos-intro h1 em { color: var(--accent); }
[data-design="v2"] .chaos-rule li:before { color: var(--warn); }

/* ---------- Модели: обучающие последовательности и интерактивы ---------- */
[data-design="v2"] .learning-sequence { background: var(--play-bg); border: 1px solid var(--play-line); border-radius: var(--r-play); padding: 16px; color: var(--ink); }
@media (max-width: 599px) { [data-design="v2"] .learning-sequence { padding: 12px 10px; } [data-design="v2"] .proof-step .learning-sequence:not(:first-child) { margin-left: -26px; width: calc(100% + 26px); } }   /* на телефоне модель в шаге решения уходит под колонку номера, как и рисунки в базовом academy-lesson.css; рисункам внутри остаётся ~300 px вместо ~260 */
[data-design="v2"] .learning-sequence button { background: var(--play-stage); border: 1px solid var(--play-line); color: var(--ink); border-radius: 999px; min-height: 44px; }
[data-design="v2"] .learning-sequence button[aria-pressed="true"], [data-design="v2"] .spatial-lesson [data-spatial-state][aria-pressed="true"] { background: var(--ink); color: var(--on-ink); border-color: var(--ink); }
[data-design="v2"] .learning-sequence-status { color: var(--ink-2); }
[data-design="v2"] .learning-interactive { border: 1px solid var(--play-line); background: var(--play-bg); color: var(--ink); border-radius: var(--r-play); }
[data-design="v2"] :is(.interactive-eyebrow, .interactive-status, .interactive-model-note) { color: var(--ink-2); }
[data-design="v2"] .interactive-model-note { border-top-color: var(--play-line); }
[data-design="v2"] .interactive-actions button { border: 1px solid var(--play-line); color: var(--ink); background: var(--play-stage); border-radius: 999px; min-height: 44px; }
[data-design="v2"] .interactive-actions button[data-action="play"] { background: var(--ink); color: var(--on-ink); border-color: var(--ink); }
[data-design="v2"] .interactive-viewport { background: var(--paper-figure); border-color: var(--line); border-radius: 12px; color: #16213a; }
[data-design="v2"] .interactive-viewport:after { color: #4e586d; background: var(--paper-figure); }
[data-design="v2"] .interactive-enlarge { color: var(--accent); }

/* ---------- Модели: 3D, 2D, физика ---------- */
[data-design="v2"] :is(.q3d-eyebrow, .q3d-camera-help, .q3d-help, .q3d-runtime-message, .q3d-legend) { color: var(--ink-2); }
[data-design="v2"] .q3d button:hover { background: var(--play-line); }
[data-design="v2"] .q3d output { color: var(--ink); }
[data-design="v2"] .q3d-readout { background: var(--play-stage); border-radius: 10px; }
[data-design="v2"] .q3d-grids fieldset { border-color: var(--play-line); border-radius: 12px; }
/* Клетки замерзания — данные модели, а не кнопки интерфейса: буквальные цвета легенды (quality-3d.css) в обеих темах,
   все состояния, hover и выбор; общее правило .q3d button выше их не перекрывает (review GPT, PR #11) */
[data-design="v2"] .q3d .q3d-grid button { border-radius: 4px; min-height: 36px; background: #ffffff; color: #23364a; border-color: #aabccc; }   /* размер клетки как в базе: четыре колонки помещаются в поле на 320 px */
[data-design="v2"] .q3d .q3d-grid button:hover { background: #edf4fa; color: #23364a; }
[data-design="v2"] .q3d .q3d-grid button.is-initial, [data-design="v2"] .q3d .q3d-grid button.is-initial:hover { background: #245982; color: #ffffff; }
[data-design="v2"] .q3d .q3d-grid button.is-frozen, [data-design="v2"] .q3d .q3d-grid button.is-frozen:hover { background: #b4d0e4; color: #16213a; }
[data-design="v2"] .q3d .q3d-grid button.is-new, [data-design="v2"] .q3d .q3d-grid button.is-new:hover { background: #ddae5c; color: #16213a; }
[data-design="v2"] .q3d .q3d-grid button.is-selected { outline: 2px solid #a66d1c; outline-offset: 1px; }
[data-design="v2"] .q3d .q3d-grid button.is-selected:focus:not(:focus-visible) { outline: 2px solid #a66d1c; outline-offset: 1px; }
[data-design="v2"] .q3d .q3d-grid button.is-selected:focus-visible { outline: 3px solid var(--accent); outline-offset: 2px; }
[data-design="v2"] .q3d-legend i.q3d-initial { background: #245982; } [data-design="v2"] .q3d-legend i.q3d-frozen { background: #b4d0e4; } [data-design="v2"] .q3d-legend i.q3d-new { background: #ddae5c; }
[data-design="v2"] .q3d-layer-buttons button[aria-pressed="true"] { border-color: var(--play-accent); background: var(--warn-soft); color: var(--ink); }
[data-design="v2"] .q3d button[data-q3d-action="activate"] { background: var(--play-stage); }
[data-design="v2"] .q3d-legend i { border-color: var(--play-line); }
[data-design="v2"] .q3d-labels span { color: #16213a; }
/* Сетка замерзания на телефоне 320 px: кремовый слой и поля раскрытий v2 отнимали у сетки базы 36 px, и клетки падали до 38–42 px.
   На ≤ 359 px поля модели и fieldset сжаты, чтобы клетки оставались ≥ 44 px даже при полезной ширине 305 px (классическая полоса прокрутки). */
@media (max-width: 359px) { [data-design="v2"] .q3d[data-model="freezing-cubes"] { padding: 10px 6px; } [data-design="v2"] .q3d[data-model="freezing-cubes"] .q3d-grids fieldset { padding-inline: 4px; } }
[data-design="v2"] .q2d { background: var(--play-bg); border: 1px solid var(--play-line); border-radius: var(--r-play); padding: 16px; color: var(--ink); margin: 1.4rem 0; }
[data-design="v2"] .q2d-scroll { border-color: var(--line); background: var(--paper-figure); border-radius: 12px; color: #16213a; }
[data-design="v2"] .q2d button { border: 1px solid var(--play-line); background: var(--play-stage); color: var(--ink); border-radius: 999px; min-height: 44px; }
[data-design="v2"] .q2d button[aria-pressed="true"] { background: var(--ink); color: var(--on-ink); border-color: var(--ink); }
[data-design="v2"] .q2d-layers label { background: var(--play-stage); border-radius: 999px; min-height: 44px; display: inline-flex; align-items: center; gap: 8px; padding: 6px 12px; }
[data-design="v2"] .q2d-result { border-left-color: var(--play-accent); background: var(--play-stage); border-radius: 0 12px 12px 0; }
[data-design="v2"] :is(.q2d-help, .q2d [data-qstatus]) { color: var(--ink-2); }
[data-design="v2"] .q2d .q2d-scroll:after { color: #4e586d; }
[data-design="v2"] .qphysics { border: 1px solid var(--play-line); background: var(--play-bg); color: var(--ink); border-radius: var(--r-play); }
[data-design="v2"] .qphysics button, [data-design="v2"] .qphysics select { border: 1px solid var(--play-line); background: var(--play-stage); color: var(--ink); border-radius: 999px; min-height: 44px; }
[data-design="v2"] .qphysics button[aria-pressed="true"] { background: var(--ink); border-color: var(--ink); color: var(--on-ink); }
[data-design="v2"] .qphysics th, [data-design="v2"] .qphysics td { border-bottom-color: var(--play-line); }
[data-design="v2"] .qphysics-note { color: var(--ink-2); }
[data-design="v2"] .qphysics-prediction { border-top-color: var(--play-line); }
[data-design="v2"] .qphysics-prediction dl > div { border-left-color: var(--play-accent); }
[data-design="v2"] :is(.qphysics-scroll, [data-qp="scene"], [data-qp="static"]) { background: var(--paper-figure); border-radius: 12px; color: #16213a; }

/* ---------- Модели: головоломки ---------- */
[data-design="v2"] .puzzle-panel { background: var(--play-bg); border: 1px solid var(--play-line); border-radius: var(--r-play); color: var(--ink); }
[data-design="v2"] :is(.puzzle-levels, .hat-perspectives, .puzzle-answers) button { border: 1px solid var(--play-line); background: var(--play-stage); color: var(--ink); border-radius: 999px; min-height: 44px; white-space: nowrap; }
[data-design="v2"] :is(.puzzle-levels, .hat-perspectives, .puzzle-answers) button[aria-pressed="true"] { background: var(--ink); color: var(--on-ink); border-color: var(--ink); }
[data-design="v2"] .puzzle-card-symbol { color: var(--play-ink); }
[data-design="v2"] .puzzle-panel button:focus-visible, [data-design="v2"] .save-task:focus-visible { outline-color: var(--accent); }
[data-design="v2"] :is(.frog-board, .experiment-bench, .ultra-card-state) { border-color: var(--play-line); }
/* Доски — светлая «бумага», фигуры на них буквальных цветов */
[data-design="v2"] :is(.tower-board, .traffic-board, .hat-scene, .birthday-room, .coin-outcomes, .rolling-scene, .monty-doors, .domino-board, .bridge-scene, .locker-grid, .sliding-board, .ultra-board, .socks-tray, .student-grid-viewport, .sr-canvas-scroll) { background: var(--paper-figure); color: #16213a; border-radius: 12px; }
[data-design="v2"] :is(.tower-board, .hat-scene, .birthday-room, .coin-outcomes, .rolling-scene, .monty-doors, .locker-grid) { padding: 12px; }
[data-design="v2"] .monty-door .door-icon { --paper: #fff; }   /* окошко/морда на светлой открытой двери: белый, как в базе, а не цвет страницы тёмной темы (fill="var(--paper)" в new-interactives.mjs) */
[data-design="v2"] :is(.tower, .bridge-person, .birthday-person, .locker, .domino-cell, .hat-person, .jug-vessel > span) { color: #16213a; }
[data-design="v2"] .locker.open { color: #ffffff; }   /* открытый шкафчик: светлые цифры и ○ на тёмной заливке, как в базе (review GPT, PR #11) */
[data-design="v2"] :is(.bridge-scene h2, .bridge-scene h3) { color: #16213a; }
[data-design="v2"] .coin-outcomes span { color: #4e586d; }
[data-design="v2"] .coin-track > span { background: #162e50; }   /* полоса исхода на светлой «бумаге»: буквальный цвет базы, а не --navy → --ink тёмной темы */
/* Шляпы: чёрное и белое — данные задачи, буквальные цвета в обеих темах; подписи на светлой бумаге тёмные (review GPT, PR #11) */
[data-design="v2"] .hat-shape { background: #162e50; border-color: #162e50; }
[data-design="v2"] .hat-shape::after { background: #162e50; }
[data-design="v2"] .hat-shape.light { background: #ffffff; }
[data-design="v2"] .hat-shape.light::after { background: #ffffff; border-color: #162e50; }
[data-design="v2"] .hat-person.unknown .hat-shape { background: #e3e8eb; border-color: #a2b0ba; }
[data-design="v2"] .hat-person.unknown .hat-shape::after { background: #e3e8eb; border-color: #a2b0ba; }
[data-design="v2"] .hat-person.unknown .hat-shape > span { color: #677b8d; }
[data-design="v2"] .hat-number { color: #16213a; }
[data-design="v2"] .hat-gaze { color: #4e586d; }
/* Переливания: сцена остаётся на кремовом слое (заголовки и кнопки в цветах темы), светлая бумага — только сосуды;
   колонки не шире сцены, кнопки на 320 px помещаются в колонку (review GPT, PR #11) */
[data-design="v2"] .jug-scene { grid-template-columns: repeat(2, minmax(0, 1fr)); }
[data-design="v2"] .jug-vessel { background-color: var(--paper-figure); }
[data-design="v2"] .jug-controls :is(.button, .puzzle-text-button) { max-width: 100%; min-width: 0; white-space: normal; text-align: center; }
@media (max-width: 479px) { [data-design="v2"] .jug-controls .button { padding-inline: 10px; font-size: 14px; } }   /* «Наполнить 3 л» в одну строку в колонке 146 px */
@media (max-width: 379px) { [data-design="v2"] .jug-scene { gap: 12px; } [data-design="v2"] .jug-controls .button { padding-inline: 8px; font-size: 13px; } }   /* …и в колонке 115 px */
[data-design="v2"] .birthday-theory strong { color: var(--ink); }
[data-design="v2"] .stat-track { background: var(--play-stage); }
[data-design="v2"] .strategy-bars { color: var(--ink); }

/* ---------- Модели: остальные семейства ---------- */
[data-design="v2"] :is(.factory-fruit, .ultra-game, .ferry-model, .q-model, .student-grid, .student-roads, .socks-model) { background: var(--play-bg); border: 1px solid var(--play-line); border-radius: var(--r-play); color: var(--ink); }
[data-design="v2"] :is(.student-roads, .socks-model) { padding: 16px; }
[data-design="v2"] :is(.factory-fruit, .ultra-game, .ferry-model, .q-model, .student-grid, .student-roads) :is(button, select) { border: 1px solid var(--play-line); background: var(--play-stage); color: var(--ink); border-radius: 999px; min-height: 44px; }
[data-design="v2"] :is(.ferry-model .ferry-primary, .student-grid-modes button[aria-pressed="true"], .student-roads button[aria-pressed="true"]) { background: var(--ink); color: var(--on-ink); border-color: var(--ink); box-shadow: none; }
[data-design="v2"] .ferry-model button[aria-pressed="true"] { border-color: var(--play-accent); box-shadow: inset 0 0 0 1px var(--play-accent); background: var(--play-stage); }
[data-design="v2"] .ferry-model button[aria-disabled="true"] { background: var(--play-bg); color: var(--ink-3); }
[data-design="v2"] :is(.ferry-bank, .ferry-river) { color: #16213a; }
[data-design="v2"] .ferry-bank button { border-radius: 14px; }   /* двухстрочная подпись «Можно выбрать» остаётся внутри кнопки (не «таблетка») */
[data-design="v2"] :is(.ferry-feedback, .socks-feedback, .fruit-counts div, .socks-counters > div, .q-day-row, .sr-validation) { background: var(--play-stage); border-color: var(--play-line); border-radius: 10px; }
[data-design="v2"] :is(.ferry-feedback, .socks-feedback, .q-day-row, .q-person-info, .sr-edit-status) { border-left-color: var(--play-accent); }
[data-design="v2"] :is(.fruit-counts dd, .socks-account, .ultra-legend, .student-grid-rule, .student-grid-proof-note, .student-grid-help, .student-grid-scroll, .student-grid-legend, .sr-board-help) { color: var(--ink-2); }
[data-design="v2"] .fruit-counts dd { color: var(--ink); }
[data-design="v2"] .ultra-card-feedback { color: var(--ok); }
[data-design="v2"] .q-people [data-role="liar"] { background: var(--warn-soft); }
[data-design="v2"] .q-people [aria-pressed="true"] { outline-color: var(--accent); }
[data-design="v2"] .student-grid-status { border-left-color: var(--ok); background: var(--green-soft); color: var(--ok); }
[data-design="v2"] .student-grid-example { border-top-color: var(--play-line); }
[data-design="v2"] .student-roads details { border-color: var(--play-line); border-radius: 12px; }
[data-design="v2"] :is(.sr-item, .sr-turn-close) { border-color: var(--play-line); }
[data-design="v2"] .sr-canvas-scroll { border-color: var(--line); }

/* ---------- Модели со встроенными стилями страниц: часы, редакторские и приёмочные модели ---------- */
[data-design="v2"] :is(.ultra-clocks, .editorial-math, .acceptance-math) { border: 1px solid var(--play-line); background: var(--play-bg); color: var(--ink); border-radius: var(--r-play); }
[data-design="v2"] :is(.ultra-clocks, .editorial-math, .acceptance-math) :is(button, select, input[type="text"], input[type="number"]) { border: 1px solid var(--play-line); background: var(--play-stage); color: var(--ink); border-radius: 999px; min-height: 44px; font: 16px/1.3 var(--font); padding-inline: 12px; }
[data-design="v2"] :is(.editorial-math, .acceptance-math) :is(input[type="text"], input[type="number"]) { border-radius: var(--r); }
[data-design="v2"] .uc-controls select { width: 100%; min-width: 0; }   /* «Лишний песок в часах» не выходит за карточку на 320 px */
[data-design="v2"] .ultra-clocks :is(h2, h3, h4, .uc-card, .uc-clock) { min-width: 0; overflow-wrap: anywhere; }
[data-design="v2"] .editorial-math .em-scene svg { background: var(--paper-figure); border-radius: 12px; color: #16213a; }
[data-design="v2"] .editorial-math .em-scene svg text { fill: #16213a; }   /* подписи вершин сцены на светлой «бумаге» и в тёмной теме */
[data-design="v2"] :is(.editorial-math, .acceptance-math) button[aria-pressed="true"] { background: var(--ink); color: var(--on-ink); border-color: var(--ink); }
[data-design="v2"] :is(.ultra-clocks, .editorial-math, .acceptance-math) :is(a, button, input, select, summary):focus-visible { outline: 3px solid var(--accent); outline-offset: 2px; }
[data-design="v2"] .uc-result { border-left-color: var(--ok); background: var(--green-soft); border-radius: 0 10px 10px 0; }
[data-design="v2"] :is(.uc-limit, .uc-key, .editorial-math .em-note, .acceptance-math .am-note) { color: var(--ink-2); }   /* встроенные стили страницы идут после таблицы, поэтому селекторы с семейством */
[data-design="v2"] :is(.uc-clock, .uc-now) { border-color: var(--line); background: var(--paper-figure); color: #16213a; border-radius: 12px; }
[data-design="v2"] .uc-timeline li[aria-current="step"] { background: var(--accent-soft); border-radius: 8px; }
[data-design="v2"] :is(.editorial-math .em-readout, .acceptance-math .am-readout) { border-left-color: var(--play-accent); background: var(--play-stage); border-radius: 0 10px 10px 0; }
[data-design="v2"] .editorial-math .em-v { color: var(--ink); }
[data-design="v2"] .editorial-math .em-p { color: var(--play-ink); }
[data-design="v2"] .acceptance-math .am-static div { border-bottom-color: var(--play-line); }
[data-design="v2"] .domino-tray { min-height: 44px; box-sizing: border-box; display: inline-flex; align-items: center; }
[data-design="v2"] :is(label, div, p, fieldset, span) input[type="range"] { min-height: 44px; }
@media (max-width: 379px) { [data-design="v2"] .q-people { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 4px; } }   /* на 320 px пять колонок дают 33 px, четыре — 44 px */
[data-design="v2"] :is(.puzzle-levels, .hat-perspectives, .puzzle-answers) { display: flex; flex-wrap: wrap; gap: 6px; }

/* Mobile clarity, owner-approved audit 13.10.2026. Mathematical labels remain untouched. */
[data-design="v2"] :is(.topic-card-top,.archive-edition > span,.diagram-toolbar > span,.logic-card-meta,.logic-source,.logic-knowledge,.logic-knowledge span,.discovery-progress-note,.discovery-device-note,.discovery-selections span,.cal-day h3 small,.cal-schedule small,.cal-period-card small,.cal-month-event,.cal-month-event small,.info-status,.gallery-format,.gallery-card-meta,.gallery-origin,.puzzle-fine,.variant-progress) { font-size: 13px; }
[data-design="v2"] :is(.academy-lesson .field-note,.academy-lesson .task-ux-status,.step-marker,.lesson-state,.lesson-progress,.edition-progress,.archive-variant-progress) { font-size: 13px; }
[data-design="v2"] .lesson-figure .diagram-toolbar button.diagram-enlarge { font-size: 15px; min-height: 44px; }
[data-design="v2"] .site-nav a[aria-current="page"] { text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 6px; }
[data-design="v2"] .frog-panel .frog-stone { background: var(--stone-bg); border-color: var(--stone-line); color: var(--stone-ink); font-size: 13px; font-weight: 600; }
[data-design="v2"] .frog-panel .frog-board.won .frog-stone { background: var(--stone-won); }
.frog-keyboard-help { display: none; }
@media (hover: hover) and (pointer: fine) { .frog-keyboard-help { display: inline; } .frog-touch-help { display: none; } }
.has-keyboard-navigation .frog-keyboard-help { display: inline; }
.has-keyboard-navigation .frog-touch-help { display: none; }
@media (max-width: 599px) {
  .frog-keyboard-help { display: none; }
  .frog-touch-help { display: inline; }
  .has-keyboard-navigation .frog-keyboard-help { display: inline; }
  .has-keyboard-navigation .frog-touch-help { display: none; }
}
@media (max-width: 959px) {
  .site-head .site-nav { max-height: 64px; transition: max-height .16s ease, opacity .16s ease; }
  .site-head.is-menu-collapsed .site-nav { max-height: 0; opacity: 0; visibility: hidden; border-top-width: 0; overflow: hidden; pointer-events: none; }
  .site-head:focus-within .site-nav { max-height: 64px; opacity: 1; visibility: visible; }
}
@media (prefers-reduced-motion: reduce) { .site-head .site-nav { transition: none; } }

/* Atlas reading surfaces — owner direction, 26 October 2026.
   Screen only. Homepage and semantic model palettes retain their existing design. */
@media screen {
:root[data-design="v2"]:not(:has(body[data-home="atlas"])){
 --bg:#f8f8f6;--bg-2:#f0f2f4;--surface:#ffffff;
 --ink:#19253b;--ink-2:#4b5669;--ink-3:#626e80;
 --line:#e0e4e9;--line-2:#818b9a;
 --accent:#2457d6;--accent-ink:#1d49bd;--accent-soft:#e7ecf8;
 --font:"Golos Text",system-ui,-apple-system,"Segoe UI",sans-serif;
 --atlas-display:"Manrope","Golos Text",system-ui,sans-serif;
 --atlas-reading:#ffffff;--atlas-header:#f5f2eb;
 --r:12px;--r-lg:18px;
 --shadow:0 1px 2px rgb(21 33 59 / 4%),0 14px 30px -22px rgb(21 33 59 / 28%);
 --shadow-sm:0 1px 2px rgb(21 33 59 / 4%);
}
@media(prefers-color-scheme:dark){:root[data-design="v2"]:not(:has(body[data-home="atlas"])):not([data-theme="light"]){
 --bg:#0c1220;--bg-2:#101829;--surface:#141e33;
 --ink:#edf1f8;--ink-2:#c0c9d8;--ink-3:#a8b4c7;
 --line:#303a4e;--line-2:#69768e;
 --accent:#7ea2ff;--accent-ink:#9db8ff;--accent-soft:#1c2c4c;
 --atlas-reading:#141e30;--atlas-header:#0f1726;
 --shadow:0 1px 2px rgb(0 0 0 / 20%),0 14px 30px -22px rgb(0 0 0 / 60%);--shadow-sm:0 1px 2px rgb(0 0 0 / 20%);
}}
:root[data-design="v2"]:not(:has(body[data-home="atlas"]))[data-theme="dark"]{
 --bg:#0c1220;--bg-2:#101829;--surface:#141e33;
 --ink:#edf1f8;--ink-2:#c0c9d8;--ink-3:#a8b4c7;
 --line:#303a4e;--line-2:#69768e;
 --accent:#7ea2ff;--accent-ink:#9db8ff;--accent-soft:#1c2c4c;
 --atlas-reading:#141e30;--atlas-header:#0f1726;
 --shadow:0 1px 2px rgb(0 0 0 / 20%),0 14px 30px -22px rgb(0 0 0 / 60%);--shadow-sm:0 1px 2px rgb(0 0 0 / 20%);
}
[data-design="v2"]:not(:has(body[data-home="atlas"])) body{font-family:var(--font);background:var(--bg);color:var(--ink)}
[data-design="v2"]:not(:has(body[data-home="atlas"])) h1,[data-design="v2"]:not(:has(body[data-home="atlas"])) h2,[data-design="v2"]:not(:has(body[data-home="atlas"])) h3{font-family:var(--atlas-display);line-height:1.2;letter-spacing:-.025em;overflow-wrap:break-word}
[data-design="v2"]:not(:has(body[data-home="atlas"])) .site-head{background:var(--atlas-header);border-bottom:1px solid var(--line)}
[data-design="v2"]:not(:has(body[data-home="atlas"])) button,[data-design="v2"]:not(:has(body[data-home="atlas"])) input,[data-design="v2"]:not(:has(body[data-home="atlas"])) select,[data-design="v2"]:not(:has(body[data-home="atlas"])) textarea{font-family:var(--font)}
[data-design="v2"]:not(:has(body[data-home="atlas"])) :is(input:not([type="range"]):not([type="checkbox"]):not([type="radio"]),select,textarea){border-color:var(--line-2)}
[data-design="v2"]:not(:has(body[data-home="atlas"])) :focus-visible{outline:3px solid var(--accent);outline-offset:3px}
/* Calm reading surface; semantic model palettes are inherited unchanged. */
[data-design="v2"]:not(:has(body[data-home="atlas"])) .lesson-main{background:var(--atlas-reading);background-image:none}
[data-design="v2"]:not(:has(body[data-home="atlas"])) :is(.archive-variant,.og-variant){background:var(--surface);box-shadow:var(--shadow-sm)}
[data-design="v2"]:not(:has(body[data-home="atlas"])) :is(.archive-head,.og-hero,.lesson-heading){background-image:none}

/* The olympiad guide has scoped tokens: map its surfaces/text, not its illustrations. */
:root[data-design="v2"]:not(:has(body[data-home="atlas"])) :is(.og-page,.og-profile-facts){
 --og-accent:var(--accent-ink);--og-ink:var(--ink);--og-muted:var(--ink-2);
 --og-paper:var(--surface);--og-line:var(--line);--og-tile:var(--bg-2);
}
[data-design="v2"]:not(:has(body[data-home="atlas"])) .og-actions>a.og-primary{background:var(--accent);color:var(--bg)}
/* Counts are indivisible labels, including at narrow widths and enlarged text. */
[data-design="v2"]:not(:has(body[data-home="atlas"])) .sc-hubs a>span{white-space:nowrap;flex-shrink:0;overflow-wrap:normal}
:root[data-design="v2"]:not(:has(body[data-home="atlas"])) :is(.op-page,.op-directory){
 --op-ink:var(--ink);--op-muted:var(--ink-2);--op-line:var(--line);
 --op-paper:var(--surface);--op-tile:var(--bg-2);--op-accent:var(--accent-ink);
}
:root[data-design="v2"]:not(:has(body[data-home="atlas"])) body .attempt-panel .attempt-explainer{color:var(--ink-2)}
[data-design="v2"]:not(:has(body[data-home="atlas"])) .op-actions>a.op-primary{background:var(--accent);color:var(--bg)}

/* Shared navigation remains usable with enlarged text. */
:root[data-design="v2"]:not(:has(body[data-home="atlas"])) .site-head__row{display:grid;grid-template-columns:auto minmax(0,1fr) auto;height:auto;min-height:60px}
:root[data-design="v2"]:not(:has(body[data-home="atlas"])) .site-head__tools{position:static;flex-shrink:0}
:root[data-design="v2"]:not(:has(body[data-home="atlas"])) .site-nav{min-width:0}
:root[data-design="v2"]:not(:has(body[data-home="atlas"])) .site-nav>.site-nav__list{flex-wrap:wrap;justify-content:center}
:root[data-design="v2"]:not(:has(body[data-home="atlas"])) .site-nav__list>li>a{white-space:normal}
:root[data-design="v2"]:not(:has(body[data-home="atlas"])) :is(.archive-guide>*,.op-hero-copy,.oc-year-control){min-width:0}
:root[data-design="v2"]:not(:has(body[data-home="atlas"])) .archive-bottom-note a{white-space:normal;max-width:100%}
:root[data-design="v2"]:not(:has(body[data-home="atlas"])) .op-actions>a{min-width:0;max-width:100%;flex-wrap:wrap}
:root[data-design="v2"]:not(:has(body[data-home="atlas"])) .op-page .oc-year-control select{min-width:0;max-width:100%;width:100%}
:root[data-design="v2"]:not(:has(body[data-home="atlas"])) .op-page .oc-year-control label{flex-wrap:wrap}
@media(max-width:1100px){
 :root[data-design="v2"]:not(:has(body[data-home="atlas"])) .site-head__row{grid-template-columns:minmax(0,1fr) auto;gap:0 12px}
 :root[data-design="v2"]:not(:has(body[data-home="atlas"])) .site-head .logo{height:auto;min-height:50px;padding-right:0;white-space:normal;min-width:0}
 :root[data-design="v2"]:not(:has(body[data-home="atlas"])) .site-nav{grid-column:1/-1;grid-row:2;margin:0 calc(-1 * var(--gutter));border-top:1px solid var(--line);max-height:none}
 :root[data-design="v2"]:not(:has(body[data-home="atlas"])) .site-nav>.site-nav__list{justify-content:space-between}
 :root[data-design="v2"]:not(:has(body[data-home="atlas"])) .site-head.is-menu-collapsed:not(:focus-within) .site-nav{max-height:0}
}
:root[data-design="v2"]:not(:has(body[data-home="atlas"])) .lesson-pager{flex-wrap:wrap}
:root[data-design="v2"]:not(:has(body[data-home="atlas"])) .lesson-pager>a{min-width:0;max-width:100%;white-space:normal}
:root[data-design="v2"]:not(:has(body[data-home="atlas"])) .task-meta>div{min-width:0;flex-wrap:wrap}
:root[data-design="v2"]:not(:has(body[data-home="atlas"])) .task-meta dd{min-width:0;overflow-wrap:anywhere}
:root[data-design="v2"]:not(:has(body[data-home="atlas"])) .taskbar{grid-template-columns:repeat(3,minmax(0,1fr))}
:root[data-design="v2"]:not(:has(body[data-home="atlas"])) .taskbar .btn{min-width:0;overflow-wrap:anywhere;white-space:normal}
:root[data-design="v2"]:not(:has(body[data-home="atlas"])) .op-page :is(.op-hook,.og-variant a){overflow-wrap:anywhere}

/* Reading layout: clear surfaces, generous margins, quiet navigation. */
:root[data-design="v2"]:not(:has(body[data-home="atlas"])) .pilot-wrap.academy-lesson {
 max-width:1240px; --gutter:32px;
}
:root[data-design="v2"]:not(:has(body[data-home="atlas"])) .academy-lesson .pilot-crumb {
 font-size:.8125rem; line-height:1.65; gap:8px; margin:26px 0 22px;
}
:root[data-design="v2"]:not(:has(body[data-home="atlas"])) .academy-lesson .lesson-heading {
 display:grid; grid-template-columns:minmax(0,1fr) auto; gap:10px 24px;
 padding:0 0 8px; align-items:end;
}
:root[data-design="v2"]:not(:has(body[data-home="atlas"])) .lesson-heading .eyebrow {
 grid-column:1/-1; margin:0; font-size:.75rem; line-height:1.7;
 letter-spacing:.065em; font-weight:600;
}
:root[data-design="v2"]:not(:has(body[data-home="atlas"])) .lesson-heading h1 {
 font-size:2.25rem; line-height:1.22; letter-spacing:-.035em;
 font-weight:700; margin:0; max-width:26ch;
}
:root[data-design="v2"]:not(:has(body[data-home="atlas"])) .lesson-heading .task-share { margin:0; min-width:0; }
:root[data-design="v2"]:not(:has(body[data-home="atlas"])) .lesson-heading .task-ux-button {
 background:transparent; border-color:transparent; box-shadow:none;
 color:var(--ink-2); font-size:.8125rem; font-weight:500; padding:10px 0;
 min-height:44px; white-space:normal;
}
:root[data-design="v2"]:not(:has(body[data-home="atlas"])) .lesson-heading .task-ux-button:hover { color:var(--accent-ink); }
:root[data-design="v2"]:not(:has(body[data-home="atlas"])) .lesson-layout {
 grid-template-columns:minmax(0,1fr) 284px; gap:28px; margin-top:28px;
}
:root[data-design="v2"]:not(:has(body[data-home="atlas"])) .task-ux-has-spatial .lesson-layout { grid-template-columns:minmax(0,1fr) 284px; }
:root[data-design="v2"]:not(:has(body[data-home="atlas"])) .lesson-main { background:transparent; }
:root[data-design="v2"]:not(:has(body[data-home="atlas"])) .problem-panel {
 padding:32px 36px; background:var(--atlas-reading); border:1px solid var(--line);
 border-radius:20px; box-shadow:0 2px 6px rgb(21 33 59 / 2%);
}
:root[data-design="v2"]:not(:has(body[data-home="atlas"])) .problem-panel h2 {
 margin:0 0 20px; font-size:1.375rem; line-height:1.3; font-weight:700;
 letter-spacing:-.025em;
}
:root[data-design="v2"]:not(:has(body[data-home="atlas"])) .lesson-prose { font-size:1.125rem; line-height:1.8; max-width:72ch; }
:root[data-design="v2"]:not(:has(body[data-home="atlas"])) .lesson-prose p { margin-top:0; }
:root[data-design="v2"]:not(:has(body[data-home="atlas"])) .lesson-prose p+p { margin-top:1.25em; }
:root[data-design="v2"]:not(:has(body[data-home="atlas"])) .problem-panel .lesson-figure { margin:28px 0 0; }
:root[data-design="v2"]:not(:has(body[data-home="atlas"])) .side-sticky {
 padding:14px 16px 16px; border-radius:18px; background:transparent;
 border-color:var(--line); box-shadow:none;
}
:root[data-design="v2"]:not(:has(body[data-home="atlas"])) .lesson-aside nav { margin:0 0 18px; gap:2px; font-size:.875rem; }
:root[data-design="v2"]:not(:has(body[data-home="atlas"])) .lesson-aside nav a {
 display:flex; align-items:center; min-height:44px; padding:9px 12px;
 border-radius:9px; line-height:1.5;
}
:root[data-design="v2"]:not(:has(body[data-home="atlas"])) .lesson-aside nav a:hover {
 background:var(--surface); color:var(--ink);
}
:root[data-design="v2"]:not(:has(body[data-home="atlas"])) .lesson-aside .archive-task-index { gap:7px; margin:0; }
:root[data-design="v2"]:not(:has(body[data-home="atlas"])) .lesson-aside .archive-task-index a { min-width:44px; width:44px; }
:root[data-design="v2"]:not(:has(body[data-home="atlas"])) .attempt-panel { border-radius:18px; padding:24px 28px; }
:root[data-design="v2"]:not(:has(body[data-home="atlas"])) .help-group > .lesson-disclosure { border-radius:18px; }
:root[data-design="v2"]:not(:has(body[data-home="atlas"])) .help-group > .lesson-disclosure > summary {
 padding:18px 24px; border-radius:18px; gap:14px;
}
:root[data-design="v2"]:not(:has(body[data-home="atlas"])) .help-group > .lesson-disclosure > .disclosure-body {
 padding:4px 28px 28px; font-size:1.0625rem; line-height:1.8;
}
:root[data-design="v2"]:not(:has(body[data-home="atlas"])) .proof-step { padding:18px 0; }
:root[data-design="v2"]:not(:has(body[data-home="atlas"])) .proof-step h3 { margin-top:0; line-height:1.45; }
@media(max-width:1100px) {
 :root[data-design="v2"]:not(:has(body[data-home="atlas"])) .lesson-layout,
 :root[data-design="v2"]:not(:has(body[data-home="atlas"])) .task-ux-has-spatial .lesson-layout { display:block; }
 :root[data-design="v2"]:not(:has(body[data-home="atlas"])) .lesson-aside,
 :root[data-design="v2"]:not(:has(body[data-home="atlas"])) .task-ux-has-spatial .lesson-aside { display:none; }
 :root[data-design="v2"]:not(:has(body[data-home="atlas"])) .pilot-wrap.academy-lesson { max-width:900px; }
 :root[data-design="v2"]:not(:has(body[data-home="atlas"])) .lesson-heading h1 { font-size:2rem; }
}
@media(max-width:700px) {
 :root[data-design="v2"]:not(:has(body[data-home="atlas"])) .academy-lesson .lesson-heading { grid-template-columns:minmax(0,1fr); gap:10px; }
 :root[data-design="v2"]:not(:has(body[data-home="atlas"])) .lesson-heading .eyebrow { grid-column:auto; }
 :root[data-design="v2"]:not(:has(body[data-home="atlas"])) .lesson-heading h1 { font-size:1.875rem; max-width:none; }
 :root[data-design="v2"]:not(:has(body[data-home="atlas"])) .lesson-heading .task-share { justify-self:start; }
}
@media(max-width:599px) {
 :root[data-design="v2"]:not(:has(body[data-home="atlas"])) .pilot-wrap.academy-lesson { --gutter:16px; }
 :root[data-design="v2"]:not(:has(body[data-home="atlas"])) .academy-lesson .pilot-crumb { margin:18px 0; font-size:.75rem; }
 :root[data-design="v2"]:not(:has(body[data-home="atlas"])) .lesson-heading h1 { font-size:1.75rem; }
 :root[data-design="v2"]:not(:has(body[data-home="atlas"])) .lesson-layout { margin-top:18px; }
 :root[data-design="v2"]:not(:has(body[data-home="atlas"])) .problem-panel { padding:24px 20px; border-radius:16px; }
 :root[data-design="v2"]:not(:has(body[data-home="atlas"])) .problem-panel h2 { font-size:1.25rem; margin-bottom:16px; }
 :root[data-design="v2"]:not(:has(body[data-home="atlas"])) .lesson-prose { font-size:1.0625rem; line-height:1.75; }
 :root[data-design="v2"]:not(:has(body[data-home="atlas"])) .problem-panel .lesson-figure { margin:24px -12px 0; width:calc(100% + 24px); }
 :root[data-design="v2"]:not(:has(body[data-home="atlas"])) .attempt-panel { padding:22px 20px; }
 :root[data-design="v2"]:not(:has(body[data-home="atlas"])) .help-group > .lesson-disclosure > summary { padding:16px 20px; }
 :root[data-design="v2"]:not(:has(body[data-home="atlas"])) .help-group > .lesson-disclosure > .disclosure-body { padding:4px 14px 22px; }
}
/* Keep enlarged words and the clock label inside their panels; do not clip them. */
:root[data-design="v2"]:not(:has(body[data-home="atlas"])) .lesson-main :is(p,li,dt,dd,.task-facts-title) { overflow-wrap:anywhere; }
:root[data-design="v2"]:not(:has(body[data-home="atlas"])) .lesson-main .katex { overflow-wrap:normal; }
:root[data-design="v2"]:not(:has(body[data-home="atlas"])) .lesson-main .phx-time { min-width:0; max-width:100%; overflow-wrap:anywhere; }
:root[data-design="v2"]:not(:has(body[data-home="atlas"])) .lesson-main .math-inline-short,
:root[data-design="v2"]:not(:has(body[data-home="atlas"])) .lesson-main p > .katex {
 display:inline-block; max-width:100%; overflow-x:auto; overflow-y:hidden; vertical-align:middle;
 scrollbar-width:thin; padding:.08em .2em; margin-inline:-.2em;
}

/* On reading pages the header stays in document flow when navigation wraps.
   One navigation remains visible across the sidebar/mobile breakpoint. */
:root[data-design="v2"]:not(:has(body[data-home="atlas"])) .site-head { position:relative; }
@media(max-width:1100px) {
 :root[data-design="v2"]:not(:has(body[data-home="atlas"])) .taskbar { display:grid; }
 :root[data-design="v2"]:not(:has(body[data-home="atlas"])) body.has-taskbar { padding-bottom:calc(8rem + env(safe-area-inset-bottom,0px)); }
}

/* Intrinsic form/navigation widths must not defeat enlarged readable text. */
:root[data-design="v2"]:not(:has(body[data-home="atlas"])) :is(.topic-modes,.portfolio-facts,.contact-layout,.contact-card,.contact-kind,.discovery-filter-controls) { min-width:0; }
:root[data-design="v2"]:not(:has(body[data-home="atlas"])) .topic-modes { flex-wrap:wrap; }
:root[data-design="v2"]:not(:has(body[data-home="atlas"])) .topic-modes a { min-width:0; white-space:normal; overflow-wrap:anywhere; }
:root[data-design="v2"]:not(:has(body[data-home="atlas"])) :is(.portfolio-facts>div,.contact-kind label,.contact-kind label>span,.contact-kind legend,.contact-field) { min-width:0; max-width:100%; overflow-wrap:anywhere; }
:root[data-design="v2"]:not(:has(body[data-home="atlas"])) :is(.discovery-filter-controls,.contact-card) :is(input,select,textarea,fieldset,form) { min-width:0; max-width:100%; }
:root[data-design="v2"]:not(:has(body[data-home="atlas"])) .lesson-disclosure>summary { overflow-wrap:anywhere; }
:root[data-design="v2"]:not(:has(body[data-home="atlas"])) .lesson-disclosure>summary>span:not(.toggle-mark) { min-width:0; }

:root[data-design="v2"]:not(:has(body[data-home="atlas"])) :is(.outcome-grid,.outcome-card,.outcome-card>*) { min-width:0; overflow-wrap:anywhere; }
:root[data-design="v2"]:not(:has(body[data-home="atlas"])) .cohort-card h4 { overflow-wrap:anywhere; }
:root[data-design="v2"]:not(:has(body[data-home="atlas"])) :is(.discovery-next p,.discovery-selections a,.discovery-selections strong) { min-width:0; overflow-wrap:anywhere; }

}

/* Shared Atlas covers identify olympiads; task illustrations retain their own art. */
.oa-atlas-cover { display:flex; align-items:center; justify-content:center; overflow:hidden; border-radius:14px; background:#fff; border:1px solid var(--line); padding:14px; aspect-ratio:4/3; }
.oa-atlas-cover img { display:block; width:100%; max-width:100%; height:100%; object-fit:contain; }
.op-hero-art>.oa-atlas-cover { width:100%; height:auto; }
.op-directory-card .oa-atlas-cover { padding:6px; border-radius:10px; }
[data-design="v2"] .topic-workspace > * { min-width: 0; }
[data-design="v2"] .topic-filter { overflow-wrap: anywhere; }
[data-design="v2"] .topic-filter :is(input,select) { min-width: 0; }
