/* Дизайн-токены «Корня» (KOREN_SPEC.md, раздел 5). Единственное место, где живут литералы цветов. */
:root {
  --bg: #f3ede1;
  --tile: #fffcf6;
  --tile-2: #efe8da;
  --line: #dcd2bf;
  --ink: #24211b;
  --muted: #7e7666;

  --blue: #2f74da; /* действия, выбор, формулы */
  --blue-edge: #1f55a8;
  --on-blue: #ffffff;
  --mustard: #edb23a; /* главная карточка */
  --mustard-edge: #c38e1e;
  --mustard-ink: #2a1e06;
  --coral: #e4573f; /* ИИ-помощник */
  --coral-edge: #b5402c;
  --green: #1e9468; /* успех, пробник */
  --green-edge: #14704e;
  --good: #1e9468;
  --bad: #d9423a;
  --glass: rgba(255, 252, 246, 0.95);
  --shadow-float: rgba(36, 33, 27, 0.18);

  /* Полупрозрачные производные — подписи и линии на цветных плитках */
  --mustard-ink-soft: color-mix(in srgb, var(--mustard-ink) 64%, transparent);
  --mustard-ink-line: color-mix(in srgb, var(--mustard-ink) 15%, transparent);
  --mustard-ink-fill: color-mix(in srgb, var(--mustard-ink) 10%, transparent);
  --on-color-soft: color-mix(in srgb, var(--on-blue) 80%, transparent);
  --on-color-line: color-mix(in srgb, var(--on-blue) 24%, transparent);
  --on-color-fill: color-mix(in srgb, var(--on-blue) 18%, transparent);
  --blue-soft: color-mix(in srgb, var(--blue) 12%, transparent);
  --coral-soft: color-mix(in srgb, var(--coral) 12%, transparent);
  --green-soft: color-mix(in srgb, var(--green) 13%, transparent);
  --blue-light: color-mix(in srgb, var(--blue) 45%, var(--tile));
  --shimmer: color-mix(in srgb, var(--tile) 70%, transparent);

  /* Рисунки задач (shared/math/figure.css) и разбор ответа */
  --fig-fill: color-mix(in srgb, var(--blue) 7%, transparent);
  --fig-afill: color-mix(in srgb, var(--blue) 18%, transparent);
  --fig-halo: var(--tile);
  --bad-soft: color-mix(in srgb, var(--bad) 11%, transparent);
  --mustard-soft: color-mix(in srgb, var(--mustard) 20%, transparent);
  --ink-scrim: color-mix(in srgb, var(--ink) 42%, transparent);

  --font-display: 'Rubik', 'Arial Rounded MT Bold', system-ui, sans-serif; /* 600–700 */
  --font-body: 'Onest Variable', 'Onest', system-ui, -apple-system, 'Segoe UI', sans-serif;
  --font-mono: 'JetBrains Mono', ui-monospace, Menlo, monospace;

  --radius-tile: 24px;
  --radius-ctl: 999px;

  --spring: cubic-bezier(0.34, 1.45, 0.5, 1);
  --ease-out: cubic-bezier(0.2, 0.8, 0.2, 1);

  /* Полноэкранный Telegram: сверху системная зона телефона, под ней — полоса с кнопками Telegram
     («Закрыть», «⋯»). В браузере полосы нет (0). */
  --safe-top-device: var(--tg-viewport-safe-area-inset-top, env(safe-area-inset-top, 0px));
  --safe-top-bar: var(--tg-viewport-content-safe-area-inset-top, 0px);

  /* Безопасные отступы: в Telegram — из SDK (viewport.bindCssVars), в браузере — env() */
  --safe-top: calc(
    var(--tg-viewport-safe-area-inset-top, env(safe-area-inset-top, 0px)) +
      var(--tg-viewport-content-safe-area-inset-top, 0px)
  );
  --safe-bottom: calc(
    var(--tg-viewport-safe-area-inset-bottom, env(safe-area-inset-bottom, 0px)) +
      var(--tg-viewport-content-safe-area-inset-bottom, 0px)
  );

  color-scheme: light;
}

/* rubik-cyrillic-500-normal */
@font-face {
  font-family: 'Rubik';
  font-style: normal;
  font-display: swap;
  font-weight: 500;
  src: url(/assets/fonts/rubik-cyrillic-500-normal.woff2) format('woff2');
}
/* rubik-cyrillic-600-normal */
@font-face {
  font-family: 'Rubik';
  font-style: normal;
  font-display: swap;
  font-weight: 600;
  src: url(/assets/fonts/rubik-cyrillic-600-normal.woff2) format('woff2');
}
/* rubik-cyrillic-700-normal */
@font-face {
  font-family: 'Rubik';
  font-style: normal;
  font-display: swap;
  font-weight: 700;
  src: url(/assets/fonts/rubik-cyrillic-700-normal.woff2) format('woff2');
}
/* rubik-latin-500-normal */
@font-face {
  font-family: 'Rubik';
  font-style: normal;
  font-display: swap;
  font-weight: 500;
  src: url(/assets/fonts/rubik-latin-500-normal.woff2) format('woff2');
}
/* rubik-latin-600-normal */
@font-face {
  font-family: 'Rubik';
  font-style: normal;
  font-display: swap;
  font-weight: 600;
  src: url(/assets/fonts/rubik-latin-600-normal.woff2) format('woff2');
}
/* rubik-latin-700-normal */
@font-face {
  font-family: 'Rubik';
  font-style: normal;
  font-display: swap;
  font-weight: 700;
  src: url(/assets/fonts/rubik-latin-700-normal.woff2) format('woff2');
}
/* onest-cyrillic-ext-wght-normal */
@font-face {
  font-family: 'Onest Variable';
  font-style: normal;
  font-display: swap;
  font-weight: 100 900;
  src: url(/assets/fonts/onest-cyrillic-ext-wght-normal.woff2) format('woff2-variations');
  unicode-range: U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F;
}

/* onest-cyrillic-wght-normal */
@font-face {
  font-family: 'Onest Variable';
  font-style: normal;
  font-display: swap;
  font-weight: 100 900;
  src: url(/assets/fonts/onest-cyrillic-wght-normal.woff2) format('woff2-variations');
  unicode-range: U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116;
}

/* onest-math-wght-normal */
@font-face {
  font-family: 'Onest Variable';
  font-style: normal;
  font-display: swap;
  font-weight: 100 900;
  src: url(/assets/fonts/onest-math-wght-normal.woff2) format('woff2-variations');
  unicode-range: U+0302-0303,U+0305,U+0307-0308,U+0310,U+0312,U+0315,U+031A,U+0326-0327,U+032C,U+032F-0330,U+0332-0333,U+0338,U+033A,U+0346,U+034D,U+0391-03A1,U+03A3-03A9,U+03B1-03C9,U+03D1,U+03D5-03D6,U+03F0-03F1,U+03F4-03F5,U+2016-2017,U+2034-2038,U+203C,U+2040,U+2043,U+2047,U+2050,U+2057,U+205F,U+2070-2071,U+2074-208E,U+2090-209C,U+20D0-20DC,U+20E1,U+20E5-20EF,U+2100-2112,U+2114-2115,U+2117-2121,U+2123-214F,U+2190,U+2192,U+2194-21AE,U+21B0-21E5,U+21F1-21F2,U+21F4-2211,U+2213-2214,U+2216-22FF,U+2308-230B,U+2310,U+2319,U+231C-2321,U+2336-237A,U+237C,U+2395,U+239B-23B7,U+23D0,U+23DC-23E1,U+2474-2475,U+25AF,U+25B3,U+25B7,U+25BD,U+25C1,U+25CA,U+25CC,U+25FB,U+266D-266F,U+27C0-27FF,U+2900-2AFF,U+2B0E-2B11,U+2B30-2B4C,U+2BFE,U+3030,U+FF5B,U+FF5D,U+1D400-1D7FF,U+1EE00-1EEFF;
}

/* onest-symbols-wght-normal */
@font-face {
  font-family: 'Onest Variable';
  font-style: normal;
  font-display: swap;
  font-weight: 100 900;
  src: url(/assets/fonts/onest-symbols-wght-normal.woff2) format('woff2-variations');
  unicode-range: U+0001-000C,U+000E-001F,U+007F-009F,U+20DD-20E0,U+20E2-20E4,U+2150-218F,U+2190,U+2192,U+2194-2199,U+21AF,U+21E6-21F0,U+21F3,U+2218-2219,U+2299,U+22C4-22C6,U+2300-243F,U+2440-244A,U+2460-24FF,U+25A0-27BF,U+2800-28FF,U+2921-2922,U+2981,U+29BF,U+29EB,U+2B00-2BFF,U+4DC0-4DFF,U+FFF9-FFFB,U+10140-1018E,U+10190-1019C,U+101A0,U+101D0-101FD,U+102E0-102FB,U+10E60-10E7E,U+1D2C0-1D2D3,U+1D2E0-1D37F,U+1F000-1F0FF,U+1F100-1F1AD,U+1F1E6-1F1FF,U+1F30D-1F30F,U+1F315,U+1F31C,U+1F31E,U+1F320-1F32C,U+1F336,U+1F378,U+1F37D,U+1F382,U+1F393-1F39F,U+1F3A7-1F3A8,U+1F3AC-1F3AF,U+1F3C2,U+1F3C4-1F3C6,U+1F3CA-1F3CE,U+1F3D4-1F3E0,U+1F3ED,U+1F3F1-1F3F3,U+1F3F5-1F3F7,U+1F408,U+1F415,U+1F41F,U+1F426,U+1F43F,U+1F441-1F442,U+1F444,U+1F446-1F449,U+1F44C-1F44E,U+1F453,U+1F46A,U+1F47D,U+1F4A3,U+1F4B0,U+1F4B3,U+1F4B9,U+1F4BB,U+1F4BF,U+1F4C8-1F4CB,U+1F4D6,U+1F4DA,U+1F4DF,U+1F4E3-1F4E6,U+1F4EA-1F4ED,U+1F4F7,U+1F4F9-1F4FB,U+1F4FD-1F4FE,U+1F503,U+1F507-1F50B,U+1F50D,U+1F512-1F513,U+1F53E-1F54A,U+1F54F-1F5FA,U+1F610,U+1F650-1F67F,U+1F687,U+1F68D,U+1F691,U+1F694,U+1F698,U+1F6AD,U+1F6B2,U+1F6B9-1F6BA,U+1F6BC,U+1F6C6-1F6CF,U+1F6D3-1F6D7,U+1F6E0-1F6EA,U+1F6F0-1F6F3,U+1F6F7-1F6FC,U+1F700-1F7FF,U+1F800-1F80B,U+1F810-1F847,U+1F850-1F859,U+1F860-1F887,U+1F890-1F8AD,U+1F8B0-1F8BB,U+1F8C0-1F8C1,U+1F900-1F90B,U+1F93B,U+1F946,U+1F984,U+1F996,U+1F9E9,U+1FA00-1FA6F,U+1FA70-1FA7C,U+1FA80-1FA89,U+1FA8F-1FAC6,U+1FACE-1FADC,U+1FADF-1FAE9,U+1FAF0-1FAF8,U+1FB00-1FBFF;
}

/* onest-vietnamese-wght-normal */
@font-face {
  font-family: 'Onest Variable';
  font-style: normal;
  font-display: swap;
  font-weight: 100 900;
  src: url(/assets/fonts/onest-vietnamese-wght-normal.woff2) format('woff2-variations');
  unicode-range: U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB;
}

/* onest-latin-ext-wght-normal */
@font-face {
  font-family: 'Onest Variable';
  font-style: normal;
  font-display: swap;
  font-weight: 100 900;
  src: url(/assets/fonts/onest-latin-ext-wght-normal.woff2) format('woff2-variations');
  unicode-range: U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;
}

/* onest-latin-wght-normal */
@font-face {
  font-family: 'Onest Variable';
  font-style: normal;
  font-display: swap;
  font-weight: 100 900;
  src: url(/assets/fonts/onest-latin-wght-normal.woff2) format('woff2-variations');
  unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}
/* jetbrains-mono-latin-400-normal */
@font-face {
  font-family: 'JetBrains Mono';
  font-style: normal;
  font-display: swap;
  font-weight: 400;
  src: url(/assets/fonts/jetbrains-mono-latin-400-normal.woff2) format('woff2');
}
/* jetbrains-mono-latin-600-normal */
@font-face {
  font-family: 'JetBrains Mono';
  font-style: normal;
  font-display: swap;
  font-weight: 600;
  src: url(/assets/fonts/jetbrains-mono-latin-600-normal.woff2) format('woff2');
}
/* jetbrains-mono-cyrillic-400-normal */
@font-face {
  font-family: 'JetBrains Mono';
  font-style: normal;
  font-display: swap;
  font-weight: 400;
  src: url(/assets/fonts/jetbrains-mono-cyrillic-400-normal.woff2) format('woff2');
}
/* jetbrains-mono-cyrillic-600-normal */
@font-face {
  font-family: 'JetBrains Mono';
  font-style: normal;
  font-display: swap;
  font-weight: 600;
  src: url(/assets/fonts/jetbrains-mono-cyrillic-600-normal.woff2) format('woff2');
}
@font-face{font-display:block;font-family:KaTeX_AMS;font-style:normal;font-weight:400;src:url(/assets/katex/KaTeX_AMS-Regular.woff2) format("woff2")}@font-face{font-display:block;font-family:KaTeX_Caligraphic;font-style:normal;font-weight:700;src:url(/assets/katex/KaTeX_Caligraphic-Bold.woff2) format("woff2")}@font-face{font-display:block;font-family:KaTeX_Caligraphic;font-style:normal;font-weight:400;src:url(/assets/katex/KaTeX_Caligraphic-Regular.woff2) format("woff2")}@font-face{font-display:block;font-family:KaTeX_Fraktur;font-style:normal;font-weight:700;src:url(/assets/katex/KaTeX_Fraktur-Bold.woff2) format("woff2")}@font-face{font-display:block;font-family:KaTeX_Fraktur;font-style:normal;font-weight:400;src:url(/assets/katex/KaTeX_Fraktur-Regular.woff2) format("woff2")}@font-face{font-display:block;font-family:KaTeX_Main;font-style:normal;font-weight:700;src:url(/assets/katex/KaTeX_Main-Bold.woff2) format("woff2")}@font-face{font-display:block;font-family:KaTeX_Main;font-style:italic;font-weight:700;src:url(/assets/katex/KaTeX_Main-BoldItalic.woff2) format("woff2")}@font-face{font-display:block;font-family:KaTeX_Main;font-style:italic;font-weight:400;src:url(/assets/katex/KaTeX_Main-Italic.woff2) format("woff2")}@font-face{font-display:block;font-family:KaTeX_Main;font-style:normal;font-weight:400;src:url(/assets/katex/KaTeX_Main-Regular.woff2) format("woff2")}@font-face{font-display:block;font-family:KaTeX_Math;font-style:italic;font-weight:700;src:url(/assets/katex/KaTeX_Math-BoldItalic.woff2) format("woff2")}@font-face{font-display:block;font-family:KaTeX_Math;font-style:italic;font-weight:400;src:url(/assets/katex/KaTeX_Math-Italic.woff2) format("woff2")}@font-face{font-display:block;font-family:"KaTeX_SansSerif";font-style:normal;font-weight:700;src:url(/assets/katex/KaTeX_SansSerif-Bold.woff2) format("woff2")}@font-face{font-display:block;font-family:"KaTeX_SansSerif";font-style:italic;font-weight:400;src:url(/assets/katex/KaTeX_SansSerif-Italic.woff2) format("woff2")}@font-face{font-display:block;font-family:"KaTeX_SansSerif";font-style:normal;font-weight:400;src:url(/assets/katex/KaTeX_SansSerif-Regular.woff2) format("woff2")}@font-face{font-display:block;font-family:KaTeX_Script;font-style:normal;font-weight:400;src:url(/assets/katex/KaTeX_Script-Regular.woff2) format("woff2")}@font-face{font-display:block;font-family:KaTeX_Size1;font-style:normal;font-weight:400;src:url(/assets/katex/KaTeX_Size1-Regular.woff2) format("woff2")}@font-face{font-display:block;font-family:KaTeX_Size2;font-style:normal;font-weight:400;src:url(/assets/katex/KaTeX_Size2-Regular.woff2) format("woff2")}@font-face{font-display:block;font-family:KaTeX_Size3;font-style:normal;font-weight:400;src:url(/assets/katex/KaTeX_Size3-Regular.woff2) format("woff2")}@font-face{font-display:block;font-family:KaTeX_Size4;font-style:normal;font-weight:400;src:url(/assets/katex/KaTeX_Size4-Regular.woff2) format("woff2")}@font-face{font-display:block;font-family:KaTeX_Typewriter;font-style:normal;font-weight:400;src:url(/assets/katex/KaTeX_Typewriter-Regular.woff2) format("woff2")}.katex{font:normal 1.21em KaTeX_Main,math,Times New Roman,serif;line-height:1.2;position:relative;text-indent:0;text-rendering:auto}.katex *{-ms-high-contrast-adjust:none!important;border-color:currentColor}.katex .katex-version:after{content:"0.19.1"}.katex .katex-mathml{border:0;-webkit-clip-path:inset(50%);clip-path:inset(50%);height:1px;overflow:hidden;padding:0;position:absolute;width:1px}.katex .katex-html>.katex-newline{display:block}.katex .katex-base{position:relative;white-space:nowrap;width:-webkit-min-content;width:-moz-min-content;width:min-content}.katex .katex-base,.katex .katex-strut{display:inline-block}.katex .textbf{font-weight:700}.katex .textit{font-style:italic}.katex .textrm{font-family:KaTeX_Main}.katex .textsf{font-family:KaTeX_SansSerif}.katex .texttt{font-family:KaTeX_Typewriter}.katex .mathnormal{font-family:KaTeX_Math;font-style:italic}.katex .mathit{font-family:KaTeX_Main;font-style:italic}.katex .mathrm{font-style:normal}.katex .mathbf{font-family:KaTeX_Main;font-weight:700}.katex .boldsymbol{font-family:KaTeX_Math;font-style:italic;font-weight:700}.katex .amsrm,.katex .mathbb,.katex .textbb{font-family:KaTeX_AMS}.katex .mathcal{font-family:KaTeX_Caligraphic}.katex .mathfrak,.katex .textfrak{font-family:KaTeX_Fraktur}.katex .mathboldfrak,.katex .textboldfrak{font-family:KaTeX_Fraktur;font-weight:700}.katex .mathtt{font-family:KaTeX_Typewriter}.katex .mathscr,.katex .textscr{font-family:KaTeX_Script}.katex .mathsf,.katex .textsf{font-family:KaTeX_SansSerif}.katex .mathboldsf,.katex .textboldsf{font-family:KaTeX_SansSerif;font-weight:700}.katex .mathitsf,.katex .mathsfit,.katex .textitsf{font-family:KaTeX_SansSerif;font-style:italic}.katex .mainrm{font-family:KaTeX_Main;font-style:normal}.katex .vlist-t{border-collapse:collapse;display:inline-table;table-layout:fixed}.katex .vlist-r{display:table-row}.katex .vlist{display:table-cell;position:relative;vertical-align:bottom}.katex .vlist>span{display:block;height:0;position:relative}.katex .vlist>span>span{display:inline-block}.katex .vlist>span>.pstrut{overflow:hidden;width:0}.katex .vlist-t2{margin-right:-2px}.katex .vlist-s{display:table-cell;font-size:1px;min-width:2px;vertical-align:bottom;width:2px}.katex .katex-vbox{align-items:baseline;display:inline-flex;flex-direction:column}.katex .katex-thinbox{display:inline-flex;flex-direction:row;max-width:0;width:0}.katex .msupsub{text-align:left}.katex .mfrac>span>span{text-align:center}.katex .mfrac .frac-line{border-bottom-style:solid;display:inline-block;width:100%}.katex .katex-hdashline,.katex .katex-hline,.katex .katex-overline .overline-line,.katex .katex-rule,.katex .katex-underline .underline-line,.katex .mfrac .frac-line{min-height:1px}.katex .mspace{display:inline-block}.katex .katex-smash{display:inline;line-height:0}.katex .clap,.katex .llap,.katex .rlap{position:relative;width:0}.katex .clap>.katex-inner,.katex .llap>.katex-inner,.katex .rlap>.katex-inner{position:absolute}.katex .clap>.katex-fix,.katex .llap>.katex-fix,.katex .rlap>.katex-fix{display:inline-block}.katex .llap>.katex-inner{right:0}.katex .clap>.katex-inner,.katex .rlap>.katex-inner{left:0}.katex .clap>.katex-inner>span{margin-left:-50%;margin-right:50%}.katex .katex-rule{border:0 solid;display:inline-block;position:relative}.katex .katex-hline,.katex .katex-overline .overline-line,.katex .katex-underline .underline-line{border-bottom-style:solid;display:inline-block;width:100%}.katex .katex-hdashline{border-bottom-style:dashed;display:inline-block;width:100%}.katex .sqrt>.katex-root{margin-left:.2777777778em;margin-right:-.5555555556em}.katex .fontsize-ensurer.reset-size1.size1,.katex .katex-sizing.reset-size1.size1{font-size:1em}.katex .fontsize-ensurer.reset-size1.size2,.katex .katex-sizing.reset-size1.size2{font-size:1.2em}.katex .fontsize-ensurer.reset-size1.size3,.katex .katex-sizing.reset-size1.size3{font-size:1.4em}.katex .fontsize-ensurer.reset-size1.size4,.katex .katex-sizing.reset-size1.size4{font-size:1.6em}.katex .fontsize-ensurer.reset-size1.size5,.katex .katex-sizing.reset-size1.size5{font-size:1.8em}.katex .fontsize-ensurer.reset-size1.size6,.katex .katex-sizing.reset-size1.size6{font-size:2em}.katex .fontsize-ensurer.reset-size1.size7,.katex .katex-sizing.reset-size1.size7{font-size:2.4em}.katex .fontsize-ensurer.reset-size1.size8,.katex .katex-sizing.reset-size1.size8{font-size:2.88em}.katex .fontsize-ensurer.reset-size1.size9,.katex .katex-sizing.reset-size1.size9{font-size:3.456em}.katex .fontsize-ensurer.reset-size1.size10,.katex .katex-sizing.reset-size1.size10{font-size:4.148em}.katex .fontsize-ensurer.reset-size1.size11,.katex .katex-sizing.reset-size1.size11{font-size:4.976em}.katex .fontsize-ensurer.reset-size2.size1,.katex .katex-sizing.reset-size2.size1{font-size:.8333333333em}.katex .fontsize-ensurer.reset-size2.size2,.katex .katex-sizing.reset-size2.size2{font-size:1em}.katex .fontsize-ensurer.reset-size2.size3,.katex .katex-sizing.reset-size2.size3{font-size:1.1666666667em}.katex .fontsize-ensurer.reset-size2.size4,.katex .katex-sizing.reset-size2.size4{font-size:1.3333333333em}.katex .fontsize-ensurer.reset-size2.size5,.katex .katex-sizing.reset-size2.size5{font-size:1.5em}.katex .fontsize-ensurer.reset-size2.size6,.katex .katex-sizing.reset-size2.size6{font-size:1.6666666667em}.katex .fontsize-ensurer.reset-size2.size7,.katex .katex-sizing.reset-size2.size7{font-size:2em}.katex .fontsize-ensurer.reset-size2.size8,.katex .katex-sizing.reset-size2.size8{font-size:2.4em}.katex .fontsize-ensurer.reset-size2.size9,.katex .katex-sizing.reset-size2.size9{font-size:2.88em}.katex .fontsize-ensurer.reset-size2.size10,.katex .katex-sizing.reset-size2.size10{font-size:3.4566666667em}.katex .fontsize-ensurer.reset-size2.size11,.katex .katex-sizing.reset-size2.size11{font-size:4.1466666667em}.katex .fontsize-ensurer.reset-size3.size1,.katex .katex-sizing.reset-size3.size1{font-size:.7142857143em}.katex .fontsize-ensurer.reset-size3.size2,.katex .katex-sizing.reset-size3.size2{font-size:.8571428571em}.katex .fontsize-ensurer.reset-size3.size3,.katex .katex-sizing.reset-size3.size3{font-size:1em}.katex .fontsize-ensurer.reset-size3.size4,.katex .katex-sizing.reset-size3.size4{font-size:1.1428571429em}.katex .fontsize-ensurer.reset-size3.size5,.katex .katex-sizing.reset-size3.size5{font-size:1.2857142857em}.katex .fontsize-ensurer.reset-size3.size6,.katex .katex-sizing.reset-size3.size6{font-size:1.4285714286em}.katex .fontsize-ensurer.reset-size3.size7,.katex .katex-sizing.reset-size3.size7{font-size:1.7142857143em}.katex .fontsize-ensurer.reset-size3.size8,.katex .katex-sizing.reset-size3.size8{font-size:2.0571428571em}.katex .fontsize-ensurer.reset-size3.size9,.katex .katex-sizing.reset-size3.size9{font-size:2.4685714286em}.katex .fontsize-ensurer.reset-size3.size10,.katex .katex-sizing.reset-size3.size10{font-size:2.9628571429em}.katex .fontsize-ensurer.reset-size3.size11,.katex .katex-sizing.reset-size3.size11{font-size:3.5542857143em}.katex .fontsize-ensurer.reset-size4.size1,.katex .katex-sizing.reset-size4.size1{font-size:.625em}.katex .fontsize-ensurer.reset-size4.size2,.katex .katex-sizing.reset-size4.size2{font-size:.75em}.katex .fontsize-ensurer.reset-size4.size3,.katex .katex-sizing.reset-size4.size3{font-size:.875em}.katex .fontsize-ensurer.reset-size4.size4,.katex .katex-sizing.reset-size4.size4{font-size:1em}.katex .fontsize-ensurer.reset-size4.size5,.katex .katex-sizing.reset-size4.size5{font-size:1.125em}.katex .fontsize-ensurer.reset-size4.size6,.katex .katex-sizing.reset-size4.size6{font-size:1.25em}.katex .fontsize-ensurer.reset-size4.size7,.katex .katex-sizing.reset-size4.size7{font-size:1.5em}.katex .fontsize-ensurer.reset-size4.size8,.katex .katex-sizing.reset-size4.size8{font-size:1.8em}.katex .fontsize-ensurer.reset-size4.size9,.katex .katex-sizing.reset-size4.size9{font-size:2.16em}.katex .fontsize-ensurer.reset-size4.size10,.katex .katex-sizing.reset-size4.size10{font-size:2.5925em}.katex .fontsize-ensurer.reset-size4.size11,.katex .katex-sizing.reset-size4.size11{font-size:3.11em}.katex .fontsize-ensurer.reset-size5.size1,.katex .katex-sizing.reset-size5.size1{font-size:.5555555556em}.katex .fontsize-ensurer.reset-size5.size2,.katex .katex-sizing.reset-size5.size2{font-size:.6666666667em}.katex .fontsize-ensurer.reset-size5.size3,.katex .katex-sizing.reset-size5.size3{font-size:.7777777778em}.katex .fontsize-ensurer.reset-size5.size4,.katex .katex-sizing.reset-size5.size4{font-size:.8888888889em}.katex .fontsize-ensurer.reset-size5.size5,.katex .katex-sizing.reset-size5.size5{font-size:1em}.katex .fontsize-ensurer.reset-size5.size6,.katex .katex-sizing.reset-size5.size6{font-size:1.1111111111em}.katex .fontsize-ensurer.reset-size5.size7,.katex .katex-sizing.reset-size5.size7{font-size:1.3333333333em}.katex .fontsize-ensurer.reset-size5.size8,.katex .katex-sizing.reset-size5.size8{font-size:1.6em}.katex .fontsize-ensurer.reset-size5.size9,.katex .katex-sizing.reset-size5.size9{font-size:1.92em}.katex .fontsize-ensurer.reset-size5.size10,.katex .katex-sizing.reset-size5.size10{font-size:2.3044444444em}.katex .fontsize-ensurer.reset-size5.size11,.katex .katex-sizing.reset-size5.size11{font-size:2.7644444444em}.katex .fontsize-ensurer.reset-size6.size1,.katex .katex-sizing.reset-size6.size1{font-size:.5em}.katex .fontsize-ensurer.reset-size6.size2,.katex .katex-sizing.reset-size6.size2{font-size:.6em}.katex .fontsize-ensurer.reset-size6.size3,.katex .katex-sizing.reset-size6.size3{font-size:.7em}.katex .fontsize-ensurer.reset-size6.size4,.katex .katex-sizing.reset-size6.size4{font-size:.8em}.katex .fontsize-ensurer.reset-size6.size5,.katex .katex-sizing.reset-size6.size5{font-size:.9em}.katex .fontsize-ensurer.reset-size6.size6,.katex .katex-sizing.reset-size6.size6{font-size:1em}.katex .fontsize-ensurer.reset-size6.size7,.katex .katex-sizing.reset-size6.size7{font-size:1.2em}.katex .fontsize-ensurer.reset-size6.size8,.katex .katex-sizing.reset-size6.size8{font-size:1.44em}.katex .fontsize-ensurer.reset-size6.size9,.katex .katex-sizing.reset-size6.size9{font-size:1.728em}.katex .fontsize-ensurer.reset-size6.size10,.katex .katex-sizing.reset-size6.size10{font-size:2.074em}.katex .fontsize-ensurer.reset-size6.size11,.katex .katex-sizing.reset-size6.size11{font-size:2.488em}.katex .fontsize-ensurer.reset-size7.size1,.katex .katex-sizing.reset-size7.size1{font-size:.4166666667em}.katex .fontsize-ensurer.reset-size7.size2,.katex .katex-sizing.reset-size7.size2{font-size:.5em}.katex .fontsize-ensurer.reset-size7.size3,.katex .katex-sizing.reset-size7.size3{font-size:.5833333333em}.katex .fontsize-ensurer.reset-size7.size4,.katex .katex-sizing.reset-size7.size4{font-size:.6666666667em}.katex .fontsize-ensurer.reset-size7.size5,.katex .katex-sizing.reset-size7.size5{font-size:.75em}.katex .fontsize-ensurer.reset-size7.size6,.katex .katex-sizing.reset-size7.size6{font-size:.8333333333em}.katex .fontsize-ensurer.reset-size7.size7,.katex .katex-sizing.reset-size7.size7{font-size:1em}.katex .fontsize-ensurer.reset-size7.size8,.katex .katex-sizing.reset-size7.size8{font-size:1.2em}.katex .fontsize-ensurer.reset-size7.size9,.katex .katex-sizing.reset-size7.size9{font-size:1.44em}.katex .fontsize-ensurer.reset-size7.size10,.katex .katex-sizing.reset-size7.size10{font-size:1.7283333333em}.katex .fontsize-ensurer.reset-size7.size11,.katex .katex-sizing.reset-size7.size11{font-size:2.0733333333em}.katex .fontsize-ensurer.reset-size8.size1,.katex .katex-sizing.reset-size8.size1{font-size:.3472222222em}.katex .fontsize-ensurer.reset-size8.size2,.katex .katex-sizing.reset-size8.size2{font-size:.4166666667em}.katex .fontsize-ensurer.reset-size8.size3,.katex .katex-sizing.reset-size8.size3{font-size:.4861111111em}.katex .fontsize-ensurer.reset-size8.size4,.katex .katex-sizing.reset-size8.size4{font-size:.5555555556em}.katex .fontsize-ensurer.reset-size8.size5,.katex .katex-sizing.reset-size8.size5{font-size:.625em}.katex .fontsize-ensurer.reset-size8.size6,.katex .katex-sizing.reset-size8.size6{font-size:.6944444444em}.katex .fontsize-ensurer.reset-size8.size7,.katex .katex-sizing.reset-size8.size7{font-size:.8333333333em}.katex .fontsize-ensurer.reset-size8.size8,.katex .katex-sizing.reset-size8.size8{font-size:1em}.katex .fontsize-ensurer.reset-size8.size9,.katex .katex-sizing.reset-size8.size9{font-size:1.2em}.katex .fontsize-ensurer.reset-size8.size10,.katex .katex-sizing.reset-size8.size10{font-size:1.4402777778em}.katex .fontsize-ensurer.reset-size8.size11,.katex .katex-sizing.reset-size8.size11{font-size:1.7277777778em}.katex .fontsize-ensurer.reset-size9.size1,.katex .katex-sizing.reset-size9.size1{font-size:.2893518519em}.katex .fontsize-ensurer.reset-size9.size2,.katex .katex-sizing.reset-size9.size2{font-size:.3472222222em}.katex .fontsize-ensurer.reset-size9.size3,.katex .katex-sizing.reset-size9.size3{font-size:.4050925926em}.katex .fontsize-ensurer.reset-size9.size4,.katex .katex-sizing.reset-size9.size4{font-size:.462962963em}.katex .fontsize-ensurer.reset-size9.size5,.katex .katex-sizing.reset-size9.size5{font-size:.5208333333em}.katex .fontsize-ensurer.reset-size9.size6,.katex .katex-sizing.reset-size9.size6{font-size:.5787037037em}.katex .fontsize-ensurer.reset-size9.size7,.katex .katex-sizing.reset-size9.size7{font-size:.6944444444em}.katex .fontsize-ensurer.reset-size9.size8,.katex .katex-sizing.reset-size9.size8{font-size:.8333333333em}.katex .fontsize-ensurer.reset-size9.size9,.katex .katex-sizing.reset-size9.size9{font-size:1em}.katex .fontsize-ensurer.reset-size9.size10,.katex .katex-sizing.reset-size9.size10{font-size:1.2002314815em}.katex .fontsize-ensurer.reset-size9.size11,.katex .katex-sizing.reset-size9.size11{font-size:1.4398148148em}.katex .fontsize-ensurer.reset-size10.size1,.katex .katex-sizing.reset-size10.size1{font-size:.2410800386em}.katex .fontsize-ensurer.reset-size10.size2,.katex .katex-sizing.reset-size10.size2{font-size:.2892960463em}.katex .fontsize-ensurer.reset-size10.size3,.katex .katex-sizing.reset-size10.size3{font-size:.337512054em}.katex .fontsize-ensurer.reset-size10.size4,.katex .katex-sizing.reset-size10.size4{font-size:.3857280617em}.katex .fontsize-ensurer.reset-size10.size5,.katex .katex-sizing.reset-size10.size5{font-size:.4339440694em}.katex .fontsize-ensurer.reset-size10.size6,.katex .katex-sizing.reset-size10.size6{font-size:.4821600771em}.katex .fontsize-ensurer.reset-size10.size7,.katex .katex-sizing.reset-size10.size7{font-size:.5785920926em}.katex .fontsize-ensurer.reset-size10.size8,.katex .katex-sizing.reset-size10.size8{font-size:.6943105111em}.katex .fontsize-ensurer.reset-size10.size9,.katex .katex-sizing.reset-size10.size9{font-size:.8331726133em}.katex .fontsize-ensurer.reset-size10.size10,.katex .katex-sizing.reset-size10.size10{font-size:1em}.katex .fontsize-ensurer.reset-size10.size11,.katex .katex-sizing.reset-size10.size11{font-size:1.1996142719em}.katex .fontsize-ensurer.reset-size11.size1,.katex .katex-sizing.reset-size11.size1{font-size:.2009646302em}.katex .fontsize-ensurer.reset-size11.size2,.katex .katex-sizing.reset-size11.size2{font-size:.2411575563em}.katex .fontsize-ensurer.reset-size11.size3,.katex .katex-sizing.reset-size11.size3{font-size:.2813504823em}.katex .fontsize-ensurer.reset-size11.size4,.katex .katex-sizing.reset-size11.size4{font-size:.3215434084em}.katex .fontsize-ensurer.reset-size11.size5,.katex .katex-sizing.reset-size11.size5{font-size:.3617363344em}.katex .fontsize-ensurer.reset-size11.size6,.katex .katex-sizing.reset-size11.size6{font-size:.4019292605em}.katex .fontsize-ensurer.reset-size11.size7,.katex .katex-sizing.reset-size11.size7{font-size:.4823151125em}.katex .fontsize-ensurer.reset-size11.size8,.katex .katex-sizing.reset-size11.size8{font-size:.578778135em}.katex .fontsize-ensurer.reset-size11.size9,.katex .katex-sizing.reset-size11.size9{font-size:.6945337621em}.katex .fontsize-ensurer.reset-size11.size10,.katex .katex-sizing.reset-size11.size10{font-size:.8336012862em}.katex .fontsize-ensurer.reset-size11.size11,.katex .katex-sizing.reset-size11.size11{font-size:1em}.katex .delimsizing.size1{font-family:KaTeX_Size1}.katex .delimsizing.size2{font-family:KaTeX_Size2}.katex .delimsizing.size3{font-family:KaTeX_Size3}.katex .delimsizing.size4{font-family:KaTeX_Size4}.katex .delimsizing.mult .delim-size1>span{font-family:KaTeX_Size1}.katex .delimsizing.mult .delim-size4>span{font-family:KaTeX_Size4}.katex .nulldelimiter{display:inline-block;width:.12em}.katex .delimcenter,.katex .op-symbol{position:relative}.katex .op-symbol.small-op{font-family:KaTeX_Size1}.katex .op-symbol.large-op{font-family:KaTeX_Size2}.katex .katex-accent>.vlist-t,.katex .op-limits>.vlist-t{text-align:center}.katex .katex-accent .accent-body{position:relative}.katex .katex-accent .accent-body:not(.accent-full){width:0}.katex .katex-overlay{display:block}.katex .mtable .vertical-separator{display:inline-block;min-width:1px}.katex .mtable .arraycolsep{display:inline-block}.katex .mtable .col-align-c>.vlist-t{text-align:center}.katex .mtable .col-align-l>.vlist-t{text-align:left}.katex .mtable .col-align-r>.vlist-t{text-align:right}.katex .svg-align{text-align:left}.katex svg{fill:currentColor;stroke:currentColor;display:block;height:inherit;position:absolute;width:100%}.katex svg path{stroke:none}.katex svg{fill-rule:nonzero;fill-opacity:1;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1}.katex img{border-style:none;max-height:none;max-width:none;min-height:0;min-width:0}.katex .katex-stretchy{display:block;overflow:hidden;position:relative;width:100%}.katex .katex-stretchy:after,.katex .katex-stretchy:before{content:""}.katex .hide-tail{overflow:hidden;position:relative;width:100%}.katex .halfarrow-left{left:0;overflow:hidden;position:absolute;width:50.2%}.katex .halfarrow-right{overflow:hidden;position:absolute;right:0;width:50.2%}.katex .brace-left{left:0;overflow:hidden;position:absolute;width:25.1%}.katex .brace-center{left:25%;overflow:hidden;position:absolute;width:50%}.katex .brace-right{overflow:hidden;position:absolute;right:0;width:25.1%}.katex .x-arrow-pad{padding:0 .5em}.katex .cd-arrow-pad{padding:0 .55556em 0 .27778em}.katex .mover,.katex .munder,.katex .x-arrow{text-align:center}.katex .boxpad{padding:0 .3em}.katex .fbox,.katex .fcolorbox{border:.04em solid;box-sizing:border-box}.katex .cancel-pad{padding:0 .2em}.katex .cancel-lap{margin-left:-.2em;margin-right:-.2em}.katex .katex-sout{border-bottom-style:solid;border-bottom-width:.08em}.katex .angl{border-right:.049em solid;border-top:.049em solid;box-sizing:border-box;margin-right:.03889em}.katex .anglpad{padding:0 .03889em}.katex .reflectbox{display:inline-block;transform:scaleX(-1)}.katex .eqn-num:before{content:"(" counter(katexEqnNo) ")";counter-increment:katexEqnNo}.katex .mml-eqn-num:before{content:"(" counter(mmlEqnNo) ")";counter-increment:mmlEqnNo}.katex .mtr-glue{width:50%}.katex .cd-vert-arrow{display:inline-block;position:relative}.katex .cd-label-left{display:inline-block;position:absolute;right:calc(50% + .3em);text-align:left}.katex .cd-label-right{display:inline-block;left:calc(50% + .3em);position:absolute;text-align:right}.katex-display{display:block;margin:1em 0;text-align:center}.katex-display>.katex{display:block;text-align:center;white-space:nowrap}.katex-display>.katex>.katex-html{display:block;position:relative}.katex-display>.katex>.katex-html>.katex-tag{position:absolute;right:0}.katex-display.leqno>.katex>.katex-html>.katex-tag{left:0;right:auto}.katex-display.fleqn>.katex{padding-left:2em;text-align:left}body{counter-reset:katexEqnNo mmlEqnNo}

/* Рисунки задач: классы SVG → дизайн-токены (таблица в content/README.md). */

.figure {
  margin: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 6px;
}

.figure-svg {
  width: 100%;
  display: flex;
  justify-content: center;
}

.figure-svg svg {
  display: block;
  width: 100%;
  max-width: 360px;
  height: auto;
  overflow: visible;
  fill: none;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.figure figcaption {
  font-size: 12px;
  color: var(--muted);
}

.figure .ln {
  stroke: var(--ink);
  stroke-width: 2;
  fill: none;
}

.figure .thin {
  stroke: var(--muted);
  stroke-width: 1.2;
  fill: none;
}

.figure .dash {
  stroke-dasharray: 5 4;
}

.figure .ac {
  stroke: var(--blue);
  stroke-width: 2.6;
  fill: none;
}

.figure .hl {
  stroke: var(--coral);
  stroke-width: 2.6;
  fill: none;
}

.figure .fill {
  fill: var(--fig-fill);
  stroke: none;
}

.figure .afill {
  fill: var(--fig-afill);
  stroke: none;
}

.figure .pt {
  fill: var(--ink);
  stroke: none;
}

.figure .pt.acpt {
  fill: var(--blue);
}

.figure .pt.hlpt {
  fill: var(--coral);
}

.figure .lb {
  fill: var(--ink);
  stroke: var(--fig-halo);
  stroke-width: 3.5px;
  paint-order: stroke;
  font-family: var(--font-body);
  font-size: 15px;
  font-weight: 600;
  font-style: italic;
}

.figure .lb.sm {
  fill: var(--muted);
  font-family: var(--font-mono);
  font-size: 11px;
  font-weight: 400;
  font-style: normal;
}

.figure .grid {
  stroke: var(--line);
  stroke-width: 1;
  fill: none;
}

.figure .axis {
  stroke: var(--ink);
  stroke-width: 1.4;
  fill: none;
}

.figure .curve {
  stroke: var(--blue);
  stroke-width: 2.6;
  fill: none;
}

/* Стили публичного сайта. Цвета, шрифты и радиусы — только токены (design/tokens.css, подключается при сборке).
   Сайт всегда светлый. Литералы цветов здесь запрещены. */

:root {
  --formula: var(--blue-edge);
  --phone-edge: var(--ink);
  --soft: color-mix(in srgb, var(--ink) 70%, var(--bg));
  --max: 1120px;
  --narrow: 840px;
  --gutter: clamp(16px, 4vw, 32px);
  color-scheme: light;
}

*,
*::before,
*::after {
  box-sizing: border-box;
}

html {
  -webkit-text-size-adjust: 100%;
  scroll-behavior: smooth;
}

body {
  margin: 0;
  background: var(--bg);
  color: var(--ink);
  font-family: var(--font-body);
  font-size: 17px;
  line-height: 1.6;
  font-variant-numeric: tabular-nums;
  padding-bottom: calc(84px + env(safe-area-inset-bottom, 0px));
  overflow-x: clip;
}

img,
svg {
  max-width: 100%;
}

.wrap {
  width: 100%;
  max-width: var(--max);
  margin: 0 auto;
  padding-left: max(var(--gutter), env(safe-area-inset-left));
  padding-right: max(var(--gutter), env(safe-area-inset-right));
}

.narrow {
  max-width: var(--narrow);
}

a {
  color: var(--blue-edge);
  text-underline-offset: 3px;
}

h1,
h2,
h3 {
  font-family: var(--font-display);
  font-weight: 700;
  line-height: 1.15;
  margin: 1.6em 0 0.5em;
  letter-spacing: -0.01em;
}

h1 {
  font-size: clamp(28px, 6vw, 40px);
  margin-top: 0;
}

h2 {
  font-size: clamp(22px, 4.5vw, 30px);
}

h3 {
  font-size: 18px;
}

p {
  margin: 0.6em 0;
}

.lead {
  font-size: clamp(17px, 2.4vw, 19px);
}

.muted,
.note,
small {
  color: var(--soft);
}

.skip {
  position: absolute;
  left: -999px;
  top: 8px;
  background: var(--blue);
  color: var(--on-blue);
  padding: 8px 14px;
  border-radius: var(--radius-ctl);
  z-index: 50;
}

.skip:focus {
  left: 8px;
}

/* Шапка */
.top {
  background: var(--glass);
  border-bottom: 1px solid var(--line);
  position: sticky;
  top: 0;
  z-index: 30;
  backdrop-filter: blur(10px);
}

.top-in {
  display: flex;
  align-items: center;
  gap: 8px 20px;
  flex-wrap: wrap;
  padding-top: 10px;
  padding-bottom: 10px;
}

.logo {
  font-family: var(--font-display);
  font-weight: 700;
  font-size: 24px;
  color: var(--ink);
  text-decoration: none;
  margin-right: auto;
  line-height: 1;
}

.logo span {
  color: var(--coral);
}

.menu {
  display: flex;
  gap: 6px;
  font-size: 15px;
  order: 3;
  width: 100%;
  overflow-x: auto;
  scrollbar-width: none;
  padding-bottom: 2px;
}

.menu::-webkit-scrollbar {
  display: none;
}

.menu a {
  flex: none;
  color: var(--ink);
  text-decoration: none;
  padding: 6px 14px;
  border-radius: var(--radius-ctl);
  background: var(--tile);
  border: 1px solid var(--line);
  white-space: nowrap;
}

.menu a:hover {
  border-color: var(--blue);
  color: var(--blue-edge);
}

/* Кнопки */
.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  background: var(--blue);
  color: var(--on-blue);
  font-family: var(--font-display);
  font-weight: 600;
  text-decoration: none;
  padding: 12px 24px;
  border-radius: var(--radius-ctl);
  box-shadow: 0 4px 0 var(--blue-edge);
  transition:
    transform 0.12s var(--ease-out),
    box-shadow 0.12s var(--ease-out);
  min-height: 44px;
}

.btn:hover {
  transform: translateY(1px);
  box-shadow: 0 3px 0 var(--blue-edge);
}

.btn-sm {
  padding: 8px 18px;
  font-size: 14px;
  min-height: 38px;
}

.btn-lg {
  padding: 16px 32px;
  font-size: 18px;
  min-height: 56px;
}

.btn-ghost {
  background: var(--blue-soft);
  color: var(--blue-edge);
  box-shadow: none;
}

.btn-ghost:hover {
  box-shadow: none;
}

.btn-light {
  background: var(--tile);
  color: var(--ink);
  box-shadow: 0 4px 0 var(--line);
}

.btn-light:hover {
  box-shadow: 0 3px 0 var(--line);
}

/* Липкая кнопка в бота (мобильный) */
.sticky-cta {
  position: fixed;
  left: max(16px, env(safe-area-inset-left));
  right: max(16px, env(safe-area-inset-right));
  bottom: calc(12px + env(safe-area-inset-bottom, 0px));
  z-index: 40;
  box-shadow:
    0 4px 0 var(--blue-edge),
    0 12px 28px var(--shadow-float);
}

/* Хлебные крошки */
.crumbs {
  font-size: 14px;
  color: var(--soft);
  margin: 18px 0 14px;
}

.crumbs a {
  color: var(--soft);
}

/* Шапка страницы: цветная плашка экзамена */
.page-head {
  display: flex;
  align-items: center;
  gap: 18px;
  padding: clamp(18px, 4vw, 28px);
  margin: 0 0 24px;
  background: var(--tile);
  border: 1px solid var(--line);
  border-radius: var(--radius-tile);
}

.page-head h1 {
  margin: 0;
}

.page-head .lead {
  margin: 8px 0 0;
}

.page-head .eyebrow {
  margin: 0 0 6px;
}

.page-head-main {
  min-width: 0;
}

.page-head.accent-ege {
  background: var(--mustard);
  border-color: transparent;
  color: var(--mustard-ink);
  box-shadow: 0 4px 0 var(--mustard-edge);
}

.page-head.accent-base {
  background: var(--blue);
  border-color: transparent;
  color: var(--on-blue);
  box-shadow: 0 4px 0 var(--blue-edge);
}

/* Белый текст на --green даёт 3,8:1 (< 4,5), поэтому плашка ОГЭ — на --green-edge (6:1) */
.page-head.accent-oge {
  background: var(--green-edge);
  border-color: transparent;
  color: var(--on-blue);
  box-shadow: 0 4px 0 color-mix(in srgb, var(--green-edge) 65%, var(--ink));
}

.page-head.accent-ege a,
.page-head.accent-base a,
.page-head.accent-oge a {
  color: inherit;
}

.num-badge {
  flex: none;
  width: clamp(52px, 12vw, 72px);
  height: clamp(52px, 12vw, 72px);
  display: grid;
  place-items: center;
  border-radius: 50%;
  background: var(--on-color-fill);
  border: 3px solid var(--on-color-line);
  font-family: var(--font-display);
  font-weight: 700;
  font-size: clamp(24px, 6vw, 34px);
}

.eyebrow {
  display: inline-block;
  font-family: var(--font-display);
  font-weight: 600;
  font-size: 13px;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  padding: 4px 12px;
  border-radius: var(--radius-ctl);
  background: var(--blue-soft);
  color: var(--blue-edge);
}

.accent-ege .eyebrow {
  background: var(--mustard-ink-fill);
  color: var(--mustard-ink);
}

.accent-base .eyebrow,
.accent-oge .eyebrow {
  background: var(--on-color-fill);
  color: var(--on-blue);
}

/* Главная: герой */
.hero-home {
  display: grid;
  gap: 28px;
  align-items: center;
  padding: clamp(20px, 5vw, 56px) 0 8px;
  overflow-x: clip;
}

.hero-home h1 {
  font-size: clamp(34px, 7.5vw, 58px);
  margin: 14px 0 12px;
}

.hero-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  margin-top: 22px;
}

.facts {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  list-style: none;
  padding: 0;
  margin: 20px 0 0;
}

.facts li {
  font-size: 14px;
  padding: 4px 12px;
  border-radius: var(--radius-ctl);
  background: var(--tile);
  border: 1px solid var(--line);
}

.hero-art {
  position: relative;
  justify-self: center;
  width: min(100%, 400px);
  padding: 8px 0 8px;
}

.hero-art .phone {
  margin: 0 0 0 auto;
}

.hero-art::before {
  content: '';
  position: absolute;
  inset: 6% 0 2%;
  border-radius: 48px;
  background: var(--mustard-soft);
  transform: rotate(-4deg);
}

.phone {
  position: relative;
  width: min(100%, 270px);
  margin: 0 auto;
  border: 9px solid var(--phone-edge);
  border-radius: 38px;
  overflow: hidden;
  background: var(--bg);
  box-shadow: 0 24px 48px var(--shadow-float);
}

.phone img {
  display: block;
  width: 100%;
  height: auto;
}

.hero-char {
  position: absolute;
  width: clamp(88px, 30%, 128px);
  height: auto;
  left: 0;
  bottom: 2%;
  z-index: 2;
}

/* Цифры */
.stats {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
  gap: 12px;
  list-style: none;
  padding: 0;
  margin: 36px 0 0;
}

.stats li {
  padding: 18px 20px;
  background: var(--tile);
  border: 1px solid var(--line);
  border-radius: var(--radius-tile);
}

.stats b {
  display: block;
  font-family: var(--font-display);
  font-size: clamp(30px, 6vw, 44px);
  line-height: 1.1;
  color: var(--blue);
}

.stats span {
  color: var(--soft);
  font-size: 15px;
}

section.block {
  margin-top: clamp(40px, 8vw, 72px);
}

section.block > h2 {
  margin-top: 0;
}

/* Карточки экзаменов */
.exam-grid {
  display: grid;
  gap: 14px;
  list-style: none;
  padding: 0;
  margin: 18px 0 0;
}

.exam-grid li {
  display: flex;
}

.exam-card {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 4px;
  min-height: 150px;
  padding: 22px;
  border-radius: var(--radius-tile);
  text-decoration: none;
  transition: transform 0.12s var(--ease-out);
}

.exam-card:hover {
  transform: translateY(-2px);
}

.exam-card b {
  font-family: var(--font-display);
  font-size: 24px;
  line-height: 1.15;
}

.exam-card small {
  color: inherit;
  opacity: 1;
  font-size: 15px;
}

.exam-card .go {
  margin-top: auto;
  font-family: var(--font-display);
  font-weight: 600;
}

.exam-card.ex-ege {
  background: var(--mustard);
  color: var(--mustard-ink);
  box-shadow: 0 4px 0 var(--mustard-edge);
}

.exam-card.ex-base {
  background: var(--blue);
  color: var(--on-blue);
  box-shadow: 0 4px 0 var(--blue-edge);
}

.exam-card.ex-oge {
  background: var(--green-edge);
  color: var(--on-blue);
  box-shadow: 0 4px 0 color-mix(in srgb, var(--green-edge) 65%, var(--ink));
}

/* Шаги */
.steps-grid {
  display: grid;
  gap: 14px;
  list-style: none;
  padding: 0;
  margin: 18px 0 0;
}

.steps-grid li {
  padding: 22px;
  background: var(--tile);
  border: 1px solid var(--line);
  border-radius: var(--radius-tile);
}

.ico {
  width: 52px;
  height: 52px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  margin-bottom: 12px;
}

.ico svg {
  width: 26px;
  height: 26px;
  fill: none;
  stroke: currentColor;
  stroke-width: 2;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.ico.i-blue {
  background: var(--blue-soft);
  color: var(--blue);
}

.ico.i-green {
  background: var(--green-soft);
  color: var(--green);
}

.ico.i-coral {
  background: var(--coral-soft);
  color: var(--coral);
}

.steps-grid h3 {
  margin: 0 0 6px;
}

.steps-grid p {
  margin: 0;
  color: var(--soft);
}

/* Скриншоты приложения */
.shots {
  display: flex;
  gap: 18px;
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  padding: 8px 4px 20px;
  margin: 12px 0 0;
  list-style: none;
}

.shots li {
  flex: none;
  width: min(240px, 68vw);
  scroll-snap-align: center;
  text-align: center;
}

.shots .phone {
  width: 100%;
}

.shots figcaption {
  margin-top: 12px;
  font-size: 15px;
  color: var(--soft);
}

.shots figure {
  margin: 0;
}

/* Превью шпаргалки */
.split {
  display: grid;
  gap: 22px;
  align-items: center;
}

.sheet-card {
  background: var(--tile);
  border: 1px solid var(--line);
  border-radius: var(--radius-tile);
  padding: 20px;
  box-shadow: 0 4px 0 var(--line);
}

.sheet-card h3 {
  margin: 0 0 8px;
}

/* Карточки-ссылки */
.cards {
  list-style: none;
  padding: 0;
  margin: 12px 0;
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(230px, 1fr));
  gap: 12px;
}

.cards a {
  display: flex;
  align-items: center;
  gap: 12px;
  min-height: 64px;
  padding: 12px 16px;
  background: var(--tile);
  border: 1px solid var(--line);
  border-radius: var(--radius-tile);
  color: var(--ink);
  text-decoration: none;
  font-family: var(--font-display);
  font-weight: 600;
}

.cards a:hover {
  border-color: var(--blue);
}

.cards small {
  display: block;
  font-family: var(--font-body);
  font-weight: 400;
  font-size: 14px;
}

.glyph {
  flex: none;
  width: 40px;
  height: 40px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  background: var(--blue-soft);
  color: var(--blue-edge);
  font-family: var(--font-mono);
  font-weight: 600;
}

.links {
  padding-left: 1.2em;
}

.steps {
  padding-left: 1.3em;
}

.steps li {
  margin: 0.5em 0;
}

/* Таблица номеров */
.table-wrap {
  overflow-x: auto;
  margin: 16px 0;
  background: var(--tile);
  border: 1px solid var(--line);
  border-radius: var(--radius-tile);
}

table {
  width: 100%;
  border-collapse: collapse;
  font-size: 15px;
}

th,
td {
  text-align: left;
  padding: 10px 14px;
  border-bottom: 1px solid var(--line);
}

tr:last-child td {
  border-bottom: 0;
}

th {
  font-family: var(--font-display);
  color: var(--soft);
  font-weight: 600;
  white-space: nowrap;
}

.num {
  font-family: var(--font-mono);
  text-align: right;
}

/* Формулы */
.formulas {
  list-style: none;
  padding: 0;
  margin: 12px 0;
}

.formulas li {
  padding: 10px 14px;
  margin: 8px 0;
  background: var(--tile);
  border: 1px solid var(--line);
  border-radius: 16px;
  overflow-x: auto;
}

.formulas.big .katex-display {
  margin: 0.3em 0;
  text-align: left;
}

.formulas.big .katex-display > .katex {
  text-align: left;
}

.formulas .note {
  display: block;
}

.tag {
  display: inline-block;
  font-size: 12px;
  padding: 1px 10px;
  border-radius: var(--radius-ctl);
  background: var(--mustard-soft);
  color: var(--ink);
  margin-left: 6px;
  white-space: nowrap;
}

.katex {
  color: var(--formula);
  font-size: 1.08em;
}

/* Задачи */
.task {
  background: var(--tile);
  border: 1px solid var(--line);
  border-radius: var(--radius-tile);
  padding: 4px 20px 20px;
  margin: 16px 0;
}

.task header {
  display: flex;
  align-items: baseline;
  gap: 8px;
  flex-wrap: wrap;
}

.task header .tag {
  margin-left: 0;
}

.statement {
  font-size: 18px;
  overflow-x: auto;
}

.solution {
  overflow-x: auto;
}

.statement p:first-child,
.solution p:first-child {
  margin-top: 0;
}

details {
  margin: 10px 0;
  border-top: 1px solid var(--line);
  padding-top: 8px;
}

summary {
  cursor: pointer;
  font-family: var(--font-display);
  font-weight: 600;
  color: var(--blue-edge);
  min-height: 32px;
}

.faq details {
  background: var(--tile);
  border: 1px solid var(--line);
  border-radius: 18px;
  padding: 12px 18px;
  margin: 10px 0;
}

.faq summary {
  color: var(--ink);
}

.figure {
  margin: 12px 0;
}

/* Призыв «Решить в Telegram» */
.cta {
  position: relative;
  display: grid;
  gap: 8px 20px;
  grid-template-columns: 1fr;
  margin: 40px 0;
  padding: clamp(22px, 4vw, 32px);
  background: var(--mustard);
  color: var(--mustard-ink);
  border-radius: var(--radius-tile);
  box-shadow: 0 4px 0 var(--mustard-edge);
  overflow: hidden;
}

.cta h2 {
  margin: 0 0 6px;
}

.cta p {
  margin: 0 0 16px;
  color: var(--mustard-ink);
}

.cta .cta-hero {
  display: none;
  width: 120px;
  height: auto;
  align-self: end;
  justify-self: end;
}

.cta .katex {
  color: inherit;
}

.band {
  background: var(--blue);
  color: var(--on-blue);
  box-shadow: 0 4px 0 var(--blue-edge);
}

.band p {
  color: var(--on-blue);
}

.band .btn {
  background: var(--tile);
  color: var(--ink);
  box-shadow: 0 4px 0 var(--line);
}

.pager {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  flex-wrap: wrap;
  margin: 28px 0;
  font-size: 15px;
}

/* Подвал */
.foot {
  margin-top: 56px;
  padding: 36px 0 28px;
  background: var(--tile-2);
  border-top: 1px solid var(--line);
  font-size: 15px;
}

.foot-grid {
  display: grid;
  gap: 24px;
}

.foot h2 {
  font-size: 16px;
  margin: 0 0 8px;
}

.foot ul {
  list-style: none;
  padding: 0;
  margin: 0;
}

.foot li {
  margin: 6px 0;
}

.foot a:not(.btn) {
  color: var(--ink);
}

.foot .copy {
  margin-top: 24px;
  color: var(--soft);
}

:focus-visible {
  outline: 3px solid var(--blue);
  outline-offset: 2px;
}

@media (min-width: 640px) {
  .exam-grid,
  .steps-grid {
    grid-template-columns: repeat(3, 1fr);
  }

  .foot-grid {
    grid-template-columns: 2fr 1fr 1fr 1fr;
  }

  .cta {
    grid-template-columns: 1fr auto;
  }

  .cta .cta-hero {
    display: block;
    grid-column: 2;
    grid-row: 1 / span 3;
  }

  .shots {
    justify-content: center;
    overflow: visible;
  }
}

@media (min-width: 900px) {
  body {
    padding-bottom: 0;
  }

  .sticky-cta {
    display: none;
  }

  .top-in {
    flex-wrap: nowrap;
  }

  .menu {
    order: 1;
    width: auto;
    overflow: visible;
  }

  .top-in .btn {
    order: 2;
  }

  .menu a {
    background: none;
    border-color: transparent;
  }

  .hero-home {
    grid-template-columns: 1.15fr 0.85fr;
    gap: 48px;
  }

  .split {
    grid-template-columns: 1fr 1fr;
    gap: 36px;
  }
}

@media (prefers-reduced-motion: no-preference) {
  .hero-char {
    animation: bob 4s ease-in-out infinite;
  }

  @keyframes bob {
    50% {
      transform: translateY(-6px);
    }
  }
}

@media (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto;
  }

  .btn,
  .exam-card {
    transition: none;
  }
}

/* Мобильная шапка без кнопки: её заменяет липкая кнопка внизу, которая появляется после первого экрана */
.top-in .btn {
  display: none;
}

@media (min-width: 900px) {
  .top-in .btn {
    display: inline-flex;
  }
}

@supports (animation-timeline: scroll()) {
  @media (prefers-reduced-motion: no-preference) {
    .sticky-cta {
      animation: sticky-in linear both;
      animation-timeline: scroll(root);
      animation-range: 0 480px;
    }

    @keyframes sticky-in {
      from {
        opacity: 0;
        visibility: hidden;
        transform: translateY(20px);
      }

      to {
        opacity: 1;
        visibility: visible;
        transform: none;
      }
    }
  }
}

/* Анимированные экраны телефонов, персонаж, микро-анимации.
   Ключевые кадры генерирует anim.ts; здесь — внешний вид финального (статичного) кадра. */

.scr {
  position: relative;
  width: 100%;
  aspect-ratio: 440 / 952;
  container-type: inline-size;
  background: var(--bg);
  color: var(--ink);
  overflow: hidden;
  text-align: left;
  font-family: var(--font-body);
  user-select: none;
}

.scr-in {
  position: absolute;
  inset: 0;
  display: flex;
  flex-direction: column;
  gap: 4cqw;
  padding: 9cqw 5cqw 5cqw;
  font-size: 5cqw;
  line-height: 1.25;
}

.scr [data-a] {
  will-change: auto;
}

.on [data-a] {
  will-change: transform, opacity;
}

.m-top {
  display: flex;
  justify-content: space-between;
  align-items: center;
  font-family: var(--font-display);
  font-size: 5.6cqw;
}

.m-chip {
  font-family: var(--font-display);
  font-size: 4.2cqw;
  padding: 0.6cqw 2.8cqw;
  border-radius: var(--radius-ctl);
  background: var(--mustard);
  color: var(--mustard-ink);
}

.m-task {
  padding: 4cqw;
  border-radius: 5cqw;
  background: var(--tile);
  border: 0.4cqw solid var(--line);
}

.m-task small {
  display: block;
  font-size: 3.8cqw;
  color: var(--soft);
}

.m-task p {
  margin: 1cqw 0 0;
  font-size: 6cqw;
}

.m-task b {
  font-family: var(--font-mono);
  color: var(--blue-edge);
  font-weight: 600;
  white-space: nowrap;
}

.m-field {
  position: relative;
  display: flex;
  align-items: center;
  height: 13cqw;
  padding: 0 4cqw;
  border-radius: 4cqw;
  background: var(--tile);
  border: 0.8cqw solid var(--green);
}

.m-ph {
  position: absolute;
  left: 4cqw;
  color: var(--soft);
  opacity: 0;
}

.m-val {
  font-family: var(--font-mono);
  font-weight: 600;
  font-size: 7cqw;
}

.m-btn {
  --k-bg: var(--blue);
  --k-on: var(--blue-edge);
  display: grid;
  place-items: center;
  height: 12cqw;
  border-radius: var(--radius-ctl);
  background: var(--k-bg);
  color: var(--on-blue);
  font-family: var(--font-display);
  font-weight: 600;
  font-size: 5cqw;
  box-shadow: 0 1cqw 0 var(--blue-edge);
}

.m-btn-ai {
  --k-bg: var(--coral-edge);
  --k-on: var(--ink);
  box-shadow: 0 1cqw 0 color-mix(in srgb, var(--coral-edge) 65%, var(--ink));
}

.m-keys {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 2cqw;
  margin-top: auto;
}

.m-keys i {
  --k-bg: var(--tile);
  --k-on: var(--blue-light);
  display: grid;
  place-items: center;
  height: 13cqw;
  border-radius: 3.5cqw;
  background: var(--k-bg);
  border: 0.4cqw solid var(--line);
  font-style: normal;
  font-family: var(--font-mono);
  font-size: 6cqw;
}

.m-ok {
  position: absolute;
  left: 4cqw;
  right: 4cqw;
  bottom: 5cqw;
  display: grid;
  gap: 1cqw;
  padding: 5cqw;
  border-radius: 6cqw;
  background: var(--green-edge);
  color: var(--on-blue);
  box-shadow: 0 1.2cqw 0 color-mix(in srgb, var(--green-edge) 65%, var(--ink));
}

.m-ok b {
  font-family: var(--font-display);
  font-size: 8cqw;
}

.m-ok span {
  font-size: 4.2cqw;
}

.m-conf {
  position: absolute;
  top: 0;
  left: 50%;
}

.m-conf u {
  position: absolute;
  width: 3cqw;
  height: 2cqw;
  border-radius: 0.5cqw;
  opacity: 0;
  background: var(--mustard);
}

.m-conf u:nth-child(3n + 2) {
  background: var(--coral);
}

.m-conf u:nth-child(3n) {
  background: var(--blue-light);
}

.m-step {
  padding: 3.4cqw 4cqw;
  border-radius: 4.5cqw;
  background: color-mix(in srgb, var(--coral) 12%, var(--tile));
  border: 0.4cqw solid color-mix(in srgb, var(--coral) 35%, var(--tile));
  font-size: 5.6cqw;
  padding: 5cqw;
}

.m-step small {
  display: block;
  font-family: var(--font-display);
  font-weight: 600;
  font-size: 3.8cqw;
  color: var(--coral-edge);
}

.m-lock {
  margin: auto 0 0;
  text-align: center;
  font-size: 3.8cqw;
  color: var(--soft);
}

/* Задача дня и топ */
.m-daily {
  position: relative;
  display: grid;
  gap: 0.6cqw;
  padding: 5cqw;
  border-radius: 6cqw;
  background: var(--mustard);
  color: var(--mustard-ink);
  box-shadow: 0 1.2cqw 0 var(--mustard-edge);
}

.m-daily small {
  font-size: 3.8cqw;
}

.m-daily b {
  font-family: var(--font-display);
  font-size: 8cqw;
}

.m-xp {
  position: absolute;
  right: 4cqw;
  top: 4cqw;
  padding: 1cqw 3cqw;
  border-radius: var(--radius-ctl);
  background: var(--mustard-ink);
  color: var(--mustard);
  font-family: var(--font-mono);
  font-weight: 600;
  font-size: 4cqw;
}

.m-top10 {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-top: 2cqw;
  font-family: var(--font-display);
  font-size: 5.4cqw;
}

.m-place {
  display: grid;
  font-family: var(--font-mono);
  font-weight: 700;
  color: var(--green-edge);
}

.m-place em {
  grid-area: 1 / 1;
  font-style: normal;
  text-align: right;
}

.m-place em:first-child {
  opacity: 0;
}

.m-board {
  --row: 12cqw;
  display: flex;
  gap: 2cqw;
}

.m-rank {
  display: grid;
  grid-auto-rows: var(--row);
  width: 7cqw;
}

.m-rank i {
  display: grid;
  place-items: center;
  font-style: normal;
  font-family: var(--font-mono);
  color: var(--soft);
  font-size: 4.4cqw;
}

.m-rows {
  position: relative;
  flex: 1;
  height: calc(var(--row) * 7);
}

.m-row {
  position: absolute;
  inset: 0 0 auto;
  height: var(--row);
  padding-bottom: 1.6cqw;
  transform: translateY(calc(var(--t) * 100%));
  font-size: 4.6cqw;
}

.m-row > div {
  height: 100%;
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 0 4cqw;
  border-radius: 3.5cqw;
  background: var(--tile);
  border: 0.4cqw solid var(--line);
}

.m-row b {
  font-family: var(--font-mono);
  font-weight: 600;
}

.m-row.me {
  z-index: 1;
}

.m-row.me > div {
  background: var(--blue);
  border-color: var(--blue-edge);
  color: var(--on-blue);
}

/* Черновик */
.m-sheet {
  position: relative;
  height: 96cqw;
  overflow: hidden;
  border-radius: 4cqw;
  background: var(--tile);
  border: 0.4cqw solid var(--line);
}

.m-sheet svg {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  fill: none;
  stroke: var(--blue-edge);
  stroke-width: 1.3;
  stroke-linecap: round;
}

.m-sheet path {
  stroke-dasharray: 1;
  stroke-dashoffset: 0;
}

.m-scan {
  position: absolute;
  inset: 0;
  opacity: 0;
  border-bottom: 1.2cqw solid var(--coral);
  background: linear-gradient(to bottom, transparent 70%, var(--coral-soft));
}

.m-res {
  display: grid;
  gap: 0.6cqw;
  padding: 4cqw;
  border-radius: 5cqw;
  background: color-mix(in srgb, var(--coral) 12%, var(--tile));
  border: 0.4cqw solid color-mix(in srgb, var(--coral) 35%, var(--tile));
}

.m-res small {
  color: var(--coral-edge);
  font-family: var(--font-display);
  font-weight: 600;
  font-size: 3.8cqw;
}

.m-res b {
  font-family: var(--font-display);
  font-size: 6cqw;
}

/* Персонаж: стопка поз */
.hero-char {
  aspect-ratio: 320 / 340;
}

.hero-char .pz {
  position: absolute;
  inset: 0;
  width: 100%;
  height: auto;
}

.hero-char .pz-idle {
  opacity: 0;
}

.hero-char .pz-think,
.hero-char .pz-point,
.hero-char .pz-blink {
  opacity: 0;
}

/* Появление блоков при прокрутке (Chrome/Edge; в остальных браузерах блоки просто на месте) */
@keyframes rise {
  from {
    opacity: 0;
    transform: translateY(24px);
  }
}

@keyframes drift {
  to {
    transform: translateY(-36px) rotate(-4deg);
  }
}

@media (prefers-reduced-motion: no-preference) {
  @supports (animation-timeline: view()) {
    section.block,
    .stats li,
    .exam-card,
    .steps-grid li,
    .band {
      animation: rise linear both;
      animation-timeline: view();
      animation-range: entry 0% entry 40%;
    }

    .hero-art::before {
      animation: drift linear both;
      animation-timeline: scroll();
      animation-range: 0 60vh;
    }
  }

  .steps-grid li,
  .sheet-card,
  .cards a {
    transition:
      transform 0.18s var(--ease-out),
      box-shadow 0.18s var(--ease-out);
  }

  .steps-grid li:hover,
  .sheet-card:hover {
    transform: translateY(-3px);
  }

  .btn:active,
  .exam-card:active {
    transform: translateY(2px) scale(0.98);
  }

  .cta-hero {
    transition: transform 0.3s var(--ease-out);
  }

  .cta:hover .cta-hero {
    transform: translateY(-6px) rotate(-3deg);
  }
}

@media (prefers-reduced-motion: reduce) {
  .on [data-a] {
    animation: none !important;
  }
}

.m-meta {
  display: flex;
  justify-content: space-between;
  font-size: 4cqw;
  color: var(--soft);
}

.m-track {
  height: 2cqw;
  border-radius: var(--radius-ctl);
  background: var(--line);
  overflow: hidden;
}

.m-track i {
  display: block;
  width: 25%;
  height: 100%;
  background: var(--green);
}

.m-note {
  margin: 0;
  font-size: 4.2cqw;
  color: var(--soft);
}

@keyframes s14{0%,11%{opacity:0;transform:translateY(8px)}14%,92%{opacity:1;transform:none}98%,100%{opacity:0;transform:translateY(8px)}}
.on [data-a="s14"]{animation:s14 7s ease-out infinite both}
@keyframes s24{0%,21%{opacity:0;transform:translateY(8px)}24%,92%{opacity:1;transform:none}98%,100%{opacity:0;transform:translateY(8px)}}
.on [data-a="s24"]{animation:s24 7s ease-out infinite both}
@keyframes s28{0%,25%{opacity:0;transform:translateY(8px)}28%,92%{opacity:1;transform:none}98%,100%{opacity:0;transform:translateY(8px)}}
.on [data-a="s28"]{animation:s28 7s ease-out infinite both}
@keyframes s38{0%,35%{opacity:0;transform:translateY(8px)}38%,92%{opacity:1;transform:none}98%,100%{opacity:0;transform:translateY(8px)}}
.on [data-a="s38"]{animation:s38 7s ease-out infinite both}
@keyframes s40{0%,37%{opacity:0;transform:translateY(8px)}40%,92%{opacity:1;transform:none}98%,100%{opacity:0;transform:translateY(8px)}}
.on [data-a="s40"]{animation:s40 7s ease-out infinite both}
@keyframes s44{0%,41%{opacity:0;transform:translateY(8px)}44%,92%{opacity:1;transform:none}98%,100%{opacity:0;transform:translateY(8px)}}
.on [data-a="s44"]{animation:s44 7s ease-out infinite both}
@keyframes s48{0%,45%{opacity:0;transform:translateY(8px)}48%,92%{opacity:1;transform:none}98%,100%{opacity:0;transform:translateY(8px)}}
.on [data-a="s48"]{animation:s48 7s ease-out infinite both}
@keyframes s56{0%,53%{opacity:0;transform:translateY(8px)}56%,92%{opacity:1;transform:none}98%,100%{opacity:0;transform:translateY(8px)}}
.on [data-a="s56"]{animation:s56 7s ease-out infinite both}
@keyframes s64{0%,61%{opacity:0;transform:translateY(8px)}64%,92%{opacity:1;transform:none}98%,100%{opacity:0;transform:translateY(8px)}}
.on [data-a="s64"]{animation:s64 7s ease-out infinite both}
@keyframes s72{0%,69%{opacity:0;transform:translateY(8px)}72%,92%{opacity:1;transform:none}98%,100%{opacity:0;transform:translateY(8px)}}
.on [data-a="s72"]{animation:s72 7s ease-out infinite both}
@keyframes s74{0%,71%{opacity:0;transform:translateY(8px)}74%,92%{opacity:1;transform:none}98%,100%{opacity:0;transform:translateY(8px)}}
.on [data-a="s74"]{animation:s74 7s ease-out infinite both}
@keyframes h28{0%,25%{opacity:1}28%,92%{opacity:0}98%,100%{opacity:1}}
.on [data-a="h28"]{animation:h28 7s ease-out infinite both}
@keyframes h38{0%,35%{opacity:1}38%,92%{opacity:0}98%,100%{opacity:1}}
.on [data-a="h38"]{animation:h38 7s ease-out infinite both}
@keyframes k14{0%,12%{background:var(--k-bg);transform:none}14%{background:var(--k-on);transform:scale(.92)}18%,100%{background:var(--k-bg);transform:none}}
.on [data-a="k14"]{animation:k14 7s ease-out infinite both}
@keyframes k24{0%,22%{background:var(--k-bg);transform:none}24%{background:var(--k-on);transform:scale(.92)}28%,100%{background:var(--k-bg);transform:none}}
.on [data-a="k24"]{animation:k24 7s ease-out infinite both}
@keyframes k50{0%,48%{background:var(--k-bg);transform:none}50%{background:var(--k-on);transform:scale(.92)}54%,100%{background:var(--k-bg);transform:none}}
.on [data-a="k50"]{animation:k50 7s ease-out infinite both}
@keyframes ok54{0%,52%{border-color:var(--line)}54%,92%{border-color:var(--green)}98%,100%{border-color:var(--line)}}
.on [data-a="ok54"]{animation:ok54 7s ease-out infinite both}
@keyframes d8{0%,8%{stroke-dashoffset:1}20%,92%{stroke-dashoffset:0}98%,100%{stroke-dashoffset:1}}
.on [data-a="d8"]{animation:d8 7s ease-out infinite both}
@keyframes d22{0%,22%{stroke-dashoffset:1}34%,92%{stroke-dashoffset:0}98%,100%{stroke-dashoffset:1}}
.on [data-a="d22"]{animation:d22 7s ease-out infinite both}
@keyframes d36{0%,36%{stroke-dashoffset:1}48%,92%{stroke-dashoffset:0}98%,100%{stroke-dashoffset:1}}
.on [data-a="d36"]{animation:d36 7s ease-out infinite both}
@keyframes scan{0%,46%{opacity:0;transform:translateY(-100%)}48%{opacity:1;transform:translateY(-100%)}62%{opacity:1;transform:none}66%,100%{opacity:0;transform:none}}
@keyframes mv{0%,34%{transform:translateY(calc(var(--f)*100%))}50%,92%{transform:translateY(calc(var(--t)*100%))}100%{transform:translateY(calc(var(--f)*100%))}}
@keyframes pf56{0%,55%{opacity:0;transform:translate(0,0)}56%{opacity:1}68%{opacity:0;transform:translate(var(--x),var(--y)) rotate(var(--r))}100%{opacity:0}}
@keyframes bob{0%,100%{transform:translateY(0)}50%{transform:translateY(-4px)}}
@keyframes blink{0%,2%{opacity:0}3%{opacity:1}5%,100%{opacity:0}}
@keyframes pz-idle{0%,7%{opacity:1}7.5%,94%{opacity:0}94.5%,100%{opacity:1}}
@keyframes pz-think{0%,7%{opacity:0}7.5%,39%{opacity:1}39.5%,100%{opacity:0}}
@keyframes pz-point{0%,39%{opacity:0}39.5%,53%{opacity:1}53.5%,100%{opacity:0}}
@keyframes pz-win{0%,53%{opacity:0;transform:none}53.5%{opacity:1;transform:translateY(-14px) scale(1.04)}60%,93.5%{opacity:1;transform:none}94%,100%{opacity:0;transform:none}}
.on [data-a="pz-idle"]{animation:pz-idle 7s ease-out infinite both;animation-timing-function:linear}
.on [data-a="mv"]{animation:mv 7s ease-out infinite both;animation-timing-function:ease-in-out}
.on [data-a="pf56"]{animation:pf56 7s ease-out infinite both}
.on [data-a="scan"]{animation:scan 7s ease-out infinite both;animation-timing-function:linear}
.on [data-a="pz-think"]{animation:pz-think 7s ease-out infinite both}
.on [data-a="pz-point"]{animation:pz-point 7s ease-out infinite both}
.on [data-a="pz-win"]{animation:pz-win 7s ease-out infinite both}
.on [data-a="blink"]{animation:blink 7s ease-out infinite both;animation-timing-function:linear}
.on [data-a="bob"]{animation:bob 3.4s ease-in-out infinite}