:root {
  /* --- Layer A: primitive channel tokens --- */
  --vp-blue-rgb: 38 168 255;
  --vp-purple-rgb: 154 92 255;
  --vp-orange-rgb: 255 138 61;
  --vp-ink-rgb: 7 9 23;
  --vp-paper-rgb: 245 248 255;
  --vp-white-rgb: 255 255 255;
  --vp-navyline-rgb: 47 63 122;
  --vp-navy-rgb: 27 20 100;
  --vp-shadow-rgb: 62 78 135;
  --vp-green-rgb: 112 230 189;
  --vp-red-rgb: 255 77 103;
  --vp-pink-rgb: 236 72 153;

  /* --- Layer B: semantic tokens (LIGHT theme defaults) --- */
  --vp-bg-primary-color: rgb(244 247 255);
  --vp-bg-secondary-color: rgb(var(--vp-white-rgb) / .80);
  --vp-text-primary-color: rgb(17 22 46);
  --vp-text-heading-color: rgb(23 33 63);
  --vp-text-heading-weight: 500;
  --vp-text-secondary-color: rgb(94 106 134);
  --vp-accent-primary-color: rgb(8 110 175);
  --vp-border-primary-color: rgb(var(--vp-navyline-rgb) / .14);
  --vp-accent-blue-color: rgb(var(--vp-blue-rgb));
  --vp-accent-purple-color: rgb(var(--vp-purple-rgb));
  --vp-accent-orange-color: rgb(var(--vp-orange-rgb));
  /*--font-sans: ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;*/
  --font-sans: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", "Liberation Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";

  /* --- Border-radius scale --- */
  --vp-radius-sm: 10px;
  --vp-radius-md: 14px;
  --vp-radius-lg: 22px;
  --vp-radius-brand: 15px;
  --vp-radius-pill: 999px;

  /* --- Hero photo + scrims (light) --- */
  --hero-photo: url("/images/vp-redesign/hero-background.jpg");
  --hero-scrim-x: linear-gradient(90deg, rgb(var(--vp-paper-rgb) / .96), rgb(var(--vp-paper-rgb) / .82) 46%, rgb(var(--vp-paper-rgb) / .56));
  --hero-scrim-y: linear-gradient(180deg, rgb(var(--vp-paper-rgb) / .20), rgb(var(--vp-paper-rgb) / .74));

  /* --- Surface tokens (LIGHT defaults) — Header/Nav/Btn/Toggle --- */
  --vp-header-bg: rgb(250 252 255);
  --vp-header-bg-solid: rgb(250 252 255);
  --vp-header-shadow: 0 8px 28px rgb(45 61 110 / .07);
  --vp-brand-mark-bg: linear-gradient(145deg, rgb(16 26 69), rgb(41 52 123) 55%, rgb(76 45 134));
  --vp-brand-mark-border: rgb(54 82 182 / .30);
  --vp-brand-mark-shadow: 0 8px 24px rgb(52 73 157 / .24), 0 0 28px rgb(var(--vp-blue-rgb) / .20), 0 0 38px rgb(var(--vp-purple-rgb) / .13);
  --vp-brand-mark-img-filter: brightness(1.12) saturate(1.18) drop-shadow(0 0 6px rgb(99 190 255 / .34));
  --vp-menu-bg: rgb(var(--vp-white-rgb));
  --vp-menu-border: rgb(var(--vp-navyline-rgb) / .14);
  --vp-menu-shadow: 0 24px 64px rgb(var(--vp-shadow-rgb) / .16), inset 0 1px rgb(var(--vp-white-rgb) / .90);
  --vp-menu-item-hover-bg: rgb(var(--vp-blue-rgb) / .12);
  --vp-toggle-bg: rgb(var(--vp-white-rgb) / .78);
  --vp-btn-ghost-hover-bg: rgb(var(--vp-navyline-rgb) / .06);
  --vp-gradient-accent-1: linear-gradient(110deg, var(--vp-accent-blue-color), var(--vp-accent-purple-color));
  --vp-btn-primary-color: rgb(var(--vp-white-rgb));
  --vp-btn-primary-shadow: 0 12px 36px rgb(87 91 255 / .28);
  --vp-gradient-accent-2: linear-gradient(110deg, var(--vp-accent-purple-color), rgb(var(--vp-pink-rgb)));

  /* --- Reusable section divider (mirrors footer divider) --- */
  --vp-divider-gradient: linear-gradient(90deg, transparent, rgb(var(--vp-navyline-rgb) / .36), transparent);

  /* --- Reusable two-tone check icon (check-list--icon) --- */
  --vp-check-mark-bg: rgb(141 210 255);
  --vp-check-mark-color: rgb(5 17 38);

  /* --- Surface tokens (LIGHT defaults) — Pill button --- */
  --vp-pill-button-color: rgb(23 33 63);
  --vp-pill-button-bg: rgb(var(--vp-white-rgb) / .66);
  --vp-pill-button-border: rgb(var(--vp-blue-rgb) / .50);
  --vp-pill-button-shadow: 0 16px 38px rgb(var(--vp-shadow-rgb) / .10), inset 0 0 22px rgb(var(--vp-blue-rgb) / .05);
  --vp-pill-button-hover-bg: rgb(var(--vp-white-rgb) / .86);
  --vp-pill-button-hover-border: rgb(var(--vp-purple-rgb) / .65);
  --vp-pill-button-hover-color: rgb(23 33 63);
  --vp-pill-button-icon-color: rgb(8 110 175);

  /* --- Surface tokens (LIGHT defaults) — Pill badge --- */
  --vp-pill-badge-color: rgb(50 64 95);
  --vp-pill-badge-bg: rgb(var(--vp-white-rgb) / .74);
  --vp-pill-badge-border: rgb(var(--vp-navyline-rgb) / .13);
  --vp-pill-badge-shadow: 0 12px 32px rgb(var(--vp-shadow-rgb) / .08);

  /* --- Surface tokens (LIGHT defaults) — FAQ accordion --- */
  --vp-faq-item-bg: rgb(var(--vp-white-rgb) / .72);
  --vp-faq-item-border: rgb(var(--vp-navyline-rgb) / .12);
  --vp-faq-item-shadow: 0 18px 45px rgb(var(--vp-shadow-rgb) / .10);
  --vp-faq-trigger-color: rgb(23 33 63);
  --vp-faq-panel-color: rgb(75 88 117);
  --vp-faq-item-open-bg: linear-gradient(145deg, rgb(var(--vp-white-rgb) / .86), rgb(235 241 255 / .90));
  --vp-faq-item-open-border: rgb(129 140 248 / .25);
  --vp-faq-icon-color: rgb(9 105 168);
  --vp-faq-icon-bg: rgb(var(--vp-blue-rgb) / .10);
  --vp-faq-icon-border: rgb(var(--vp-blue-rgb) / .20);
  --vp-faq-icon-open-color: rgb(var(--vp-white-rgb));
  --vp-faq-icon-open-bg: linear-gradient(110deg, rgb(8 120 189), rgb(109 40 217));

  /* --- Surface tokens (LIGHT defaults) — Nav mobile --- */
  --vp-nav-mobile-shadow: 0 12px 32px rgb(var(--vp-shadow-rgb) / .12);

  /* --- Surface tokens (LIGHT defaults) — Home hero --- */
  --vp-hero-eyebrow-color: var(--vp-accent-primary-color);
  --vp-hero-eyebrow-bg: rgb(var(--vp-blue-rgb) / .10);
  --vp-hero-eyebrow-border: rgb(var(--vp-blue-rgb) / .22);
  --vp-hero-gradient-text: linear-gradient(100deg, rgb(22 139 215), rgb(129 84 221));
  --vp-hero-point-color: rgb(48 58 90);
  --vp-hero-proof-color: var(--vp-text-secondary-color);
  --vp-hero-scrim-radial: radial-gradient(circle at 15% 35%, rgb(var(--vp-blue-rgb) / .15), transparent 32%), radial-gradient(circle at 82% 42%, rgb(var(--vp-purple-rgb) / .13), transparent 34%);
  --vp-hero-dashboard-bg: linear-gradient(145deg, rgb(28 34 73 / .91), rgb(11 14 35 / .92));
  --vp-hero-dashboard-border: rgb(74 94 166 / .20);
  --vp-hero-dashboard-shadow: 0 32px 80px rgb(38 49 94 / .25), inset 0 1px rgb(var(--vp-white-rgb) / .13);
  --vp-hero-dashboard-color: rgb(248 249 255);
  --vp-hero-dashboard-dot-bg: rgb(78 87 120);
  --vp-hero-dashboard-title-color: rgb(137 145 174);
  --vp-hero-score-card-bg: linear-gradient(120deg, rgb(var(--vp-blue-rgb) / .17), rgb(var(--vp-purple-rgb) / .14));
  --vp-hero-score-card-border: rgb(123 159 255 / .18);
  --vp-hero-score-bar-bg: rgb(var(--vp-white-rgb) / .09);
  --vp-hero-mini-bg: rgb(var(--vp-white-rgb) / .045);
  --vp-hero-mini-border: rgb(var(--vp-white-rgb) / .08);
  --vp-hero-mini-small-color: rgb(137 145 174);
  --vp-hero-mini-blue-color: rgb(98 195 255);
  --vp-hero-mini-purple-color: rgb(179 135 255);
  --vp-hero-mini-orange-color: rgb(255 155 89);

  /* --- Surface tokens (LIGHT defaults) — Home feature card --- */
  --vp-card-shadow: 0 20px 55px rgb(var(--vp-shadow-rgb) / .10);
  --vp-card-icon-blue-color: rgb(9 105 168);
  --vp-card-icon-purple-color: rgb(109 40 217);
  --vp-card-icon-orange-color: rgb(180 83 9);

  /* --- Surface tokens (LIGHT defaults) — Home solve-card / qb-mini --- */
  --vp-solve-card-bg: linear-gradient(145deg, rgb(var(--vp-white-rgb) / .92), rgb(235 241 255 / .95));
  --vp-solve-card-border: rgb(var(--vp-navyline-rgb) / .13);
  --vp-solve-card-shadow: 0 30px 80px rgb(var(--vp-shadow-rgb) / .18), inset 0 1px rgb(var(--vp-white-rgb) / .70);
  --vp-qb-mini-color: rgb(39 49 80);
  --vp-qb-mini-divider: rgb(var(--vp-navyline-rgb) / .14);
  --vp-qb-mini-title-color: rgb(23 33 63);
  --vp-qb-mini-id-pill-color: rgb(101 112 140);
  --vp-qb-mini-id-pill-bg: rgb(var(--vp-white-rgb) / .74);
  --vp-qb-mini-id-pill-border: rgb(var(--vp-navyline-rgb) / .10);
  --vp-qb-mini-type-pill-color: rgb(91 101 201);
  --vp-qb-mini-type-pill-bg: rgb(238 242 255 / .78);
  --vp-qb-mini-type-pill-border: rgb(127 134 255 / .52);
  --vp-qb-mini-top-btn-color: rgb(101 112 140);
  --vp-qb-mini-top-btn-bg: rgb(var(--vp-white-rgb) / .55);
  --vp-qb-mini-top-btn-border: rgb(var(--vp-navyline-rgb) / .16);
  --vp-qb-mini-top-btn-report-color: rgb(180 83 9);
  --vp-qb-mini-top-btn-report-bg: rgb(255 247 237 / .78);
  --vp-qb-mini-top-btn-report-border: rgb(251 146 60 / .48);
  --vp-qb-mini-chip-medium-color: rgb(180 83 9);
  --vp-qb-mini-chip-medium-bg: rgb(255 247 237 / .90);
  --vp-qb-mini-chip-medium-border: rgb(251 146 60 / .24);
  --vp-qb-mini-chip-practice-color: rgb(21 128 61);
  --vp-qb-mini-chip-practice-bg: rgb(240 253 244 / .90);
  --vp-qb-mini-chip-practice-border: rgb(34 197 94 / .22);
  --vp-qb-mini-prompt-color: rgb(38 49 80);
  --vp-qb-mini-prompt-bg: rgb(var(--vp-white-rgb) / .82);
  --vp-qb-mini-prompt-border-left: rgb(127 134 255);
  --vp-qb-mini-prompt-shadow: 0 18px 45px rgb(var(--vp-shadow-rgb) / .10);
  --vp-qb-mini-formula-color: rgb(23 33 63);
  --vp-qb-mini-choice-color: rgb(39 49 80);
  --vp-qb-mini-choice-bg: rgb(var(--vp-white-rgb) / .70);
  --vp-qb-mini-choice-border: rgb(67 67 89 / .18);
  --vp-qb-mini-choice-border-left: rgb(177 77 100);
  --vp-qb-mini-choice-shadow: 0 12px 28px rgb(var(--vp-shadow-rgb) / .08);
  --vp-qb-mini-choice-strike-bg: rgb(225 29 72);
  --vp-qb-mini-choice-strike-shadow: 0 0 12px rgb(225 29 72 / .28);
  --vp-qb-mini-choice-correct-border-left: rgb(22 163 74);
  --vp-qb-mini-mark-x-bg: rgb(225 29 72);
  --vp-qb-mini-mark-x-shadow: 0 0 22px rgb(225 29 72 / .34), 0 0 8px rgb(225 29 72 / .24);
  --vp-qb-mini-mark-check-color: rgb(5 46 22);
  --vp-qb-mini-mark-check-bg: rgb(34 197 94);
  --vp-qb-mini-mark-check-shadow: 0 0 26px rgb(34 197 94 / .46), 0 0 10px rgb(34 197 94 / .28);
  --vp-qb-mini-letter-color: rgb(var(--vp-white-rgb));
  --vp-qb-mini-letter-bg: rgb(177 77 100);
  --vp-qb-mini-main-action-color: rgb(91 101 201);
  --vp-qb-mini-main-action-bg: rgb(var(--vp-white-rgb) / .70);
  --vp-qb-mini-main-action-border: rgb(127 134 255 / .55);
  --vp-qb-mini-main-action-shadow: 0 0 22px rgb(127 134 255 / .10);
  --vp-qb-mini-main-action-leo-bg: rgb(var(--vp-blue-rgb) / .10);
  --vp-qb-mini-main-action-leo-glow: var(--vp-accent-blue-color);
  --vp-qb-mini-main-action-leo-animation: leoPulseLight;
  --vp-qb-mini-main-action-leo-inner-bg: rgb(var(--vp-white-rgb) / .78);
  --vp-qb-mini-main-action-save-bg: rgb(238 242 255 / .82);
  --vp-qb-mini-leo-face-bg: radial-gradient(circle at 35% 28%, rgb(var(--vp-white-rgb) / .32), transparent 18%), linear-gradient(145deg, rgb(255 178 77), rgb(199 106 44));
  --vp-qb-mini-leo-face-border: rgb(255 205 115 / .58);
  --vp-qb-mini-leo-face-shadow: 0 0 16px rgb(255 178 77 / .28);
  --vp-qb-mini-prompt-glow-shadow: inset 4px 0 0 rgb(127 134 255 / .9), 0 0 30px rgb(127 134 255 / .12);
  --vp-qb-mini-correct-anim-border: rgb(50 230 141 / .72);
  --vp-qb-mini-correct-anim-bg: rgb(30 78 58 / .38);
  --vp-qb-mini-leo-pulse-color: rgb(8 120 189);
  --vp-qb-mini-leo-pulse-color-strong: rgb(6 78 122);
  --vp-qb-mini-leo-pulse-border: rgb(var(--vp-blue-rgb) / .62);
  --vp-qb-mini-leo-pulse-border-strong: rgb(var(--vp-blue-rgb) / .86);

  /* --- Surface tokens (LIGHT defaults) — Home score-growth --- */
  --vp-score-growth-color: rgb(23 33 63);
  --vp-score-growth-bg: linear-gradient(145deg, rgb(var(--vp-white-rgb) / .90), rgb(235 241 255 / .94));
  --vp-score-growth-border: rgb(var(--vp-navyline-rgb) / .13);
  --vp-score-growth-shadow: 0 24px 70px rgb(var(--vp-shadow-rgb) / .14), inset 0 1px rgb(var(--vp-white-rgb) / .70);
  --vp-score-growth-scrim: radial-gradient(circle at 22% 28%, rgb(var(--vp-blue-rgb) / .17), transparent 28%), radial-gradient(circle at 74% 62%, rgb(var(--vp-purple-rgb) / .17), transparent 30%);
  --vp-score-growth-badge-color: rgb(4 120 87);
  --vp-score-growth-badge-bg: rgb(236 253 245 / .78);
  --vp-score-growth-badge-border: rgb(16 185 129 / .22);
  --vp-score-growth-badge-shadow: 0 0 24px rgb(var(--vp-green-rgb) / .10);
  --vp-score-growth-chart-bg: linear-gradient(rgb(31 47 90 / .08) 1px, transparent 1px), linear-gradient(90deg, rgb(31 47 90 / .07) 1px, transparent 1px), rgb(var(--vp-white-rgb) / .58);
  --vp-score-growth-chart-border: rgb(var(--vp-navyline-rgb) / .12);
  --vp-score-growth-before-line: rgb(31 47 90 / .55);
  --vp-score-growth-before-line-shadow: drop-shadow(0 0 8px rgb(var(--vp-white-rgb) / .14));
  --vp-score-growth-line-shadow: drop-shadow(0 0 12px rgb(var(--vp-blue-rgb) / .35));
  --vp-score-growth-dot-fill: rgb(var(--vp-white-rgb));
  --vp-score-growth-dot-shadow: drop-shadow(0 0 10px rgb(141 210 255 / .35));
  --vp-score-growth-labels-color: var(--vp-text-secondary-color);
  --vp-score-growth-row-color: rgb(50 64 95);
  --vp-score-growth-row-bg: rgb(var(--vp-white-rgb) / .64);
  --vp-score-growth-row-border: rgb(var(--vp-navyline-rgb) / .12);
  --vp-score-growth-row-header-bg: rgb(var(--vp-blue-rgb) / .08);
  --vp-score-growth-row-header-border: rgb(var(--vp-blue-rgb) / .14);
  --vp-score-growth-row-b-color: var(--vp-text-heading-color);
  --vp-score-growth-score-color: rgb(101 112 140);
  --vp-score-growth-after-color: rgb(23 33 63);
  --vp-score-growth-gain-color: rgb(4 120 87);
  --vp-score-growth-gain-bg: rgb(236 253 245 / .78);
  --vp-score-growth-gain-border: rgb(16 185 129 / .22);
  --vp-score-growth-gain-shadow: 0 0 22px rgb(var(--vp-green-rgb) / .08);
  --vp-score-growth-bar-bg: rgb(31 47 90 / .09);
  --vp-score-growth-column-chart-bg: rgb(var(--vp-white-rgb) / .96);
  --vp-score-growth-column-chart-border: rgb(var(--vp-navyline-rgb) / .14);
  --vp-score-growth-column-chart-shadow: 0 18px 48px rgb(var(--vp-shadow-rgb) / .12), inset 0 1px rgb(var(--vp-white-rgb) / .90);
  --vp-score-growth-column-title-color: rgb(23 33 63);
  --vp-score-growth-column-groups-bg: linear-gradient(rgb(31 47 90 / .08) 1px, transparent 1px), rgb(var(--vp-white-rgb) / .35);
  --vp-score-growth-column-bar-inner-shadow: inset 0 1px rgb(var(--vp-white-rgb) / .16);
  --vp-score-growth-column-bar-before-bg: rgb(var(--vp-white-rgb));
  --vp-score-growth-column-bar-before-border: rgb(var(--vp-white-rgb) / .98);
  --vp-score-growth-column-bar-before-shadow: 0 10px 24px rgb(var(--vp-shadow-rgb) / .10), inset 0 1px rgb(var(--vp-white-rgb) / 1);
  --vp-score-growth-column-bar-after-shadow: 0 0 22px rgb(var(--vp-blue-rgb) / .14), inset 0 1px rgb(var(--vp-white-rgb) / .22);
  --vp-score-growth-column-bar-after-border: rgb(141 210 255 / .24);
  --vp-score-growth-column-bar-small-color: rgb(23 33 63);
  --vp-score-growth-column-labels-color: var(--vp-text-secondary-color);
  --vp-score-growth-column-gain-color: rgb(4 120 87);
  --vp-score-growth-column-gain-bg: rgb(236 253 245 / .86);
  --vp-score-growth-column-gain-border: rgb(16 185 129 / .22);
  --vp-score-growth-column-bar-after-gradient: linear-gradient(180deg, var(--vp-accent-blue-color), rgb(109 92 255));

  /* --- Surface tokens (LIGHT defaults) — Home stats-strip --- */
  --vp-stats-strip-bg: rgb(var(--vp-white-rgb) / .72);
  --vp-stats-strip-border: rgb(var(--vp-navyline-rgb) / .13);
  --vp-stats-strip-shadow: 0 28px 80px rgb(var(--vp-shadow-rgb) / .13);
  --vp-stats-strip-item-color: rgb(23 33 63);
  --vp-stats-strip-item-b-color: rgb(8 120 189);
  --vp-stats-strip-item-b-shadow: 0 0 18px rgb(var(--vp-blue-rgb) / .18);

  /* --- Surface tokens (LIGHT defaults) — Home page-scrim (features bg) --- */
  --vp-page-scrim-bg: radial-gradient(circle at 12% 15%, rgb(var(--vp-blue-rgb) / .17), transparent 28%), radial-gradient(circle at 86% 18%, rgb(var(--vp-purple-rgb) / .17), transparent 30%), var(--vp-bg-primary-color);

  /* --- Surface tokens (LIGHT defaults) — Footer --- */
  --vp-footer-gradient: radial-gradient(circle at 12% 18%, rgb(var(--vp-purple-rgb) / .18), transparent 34%), radial-gradient(circle at 88% 16%, rgb(var(--vp-blue-rgb) / .16), transparent 32%), linear-gradient(135deg, rgb(246 249 255 / .98), rgb(232 240 255 / .98) 55%, rgb(244 238 255 / .96));
  --vp-footer-border-top: rgb(var(--vp-navyline-rgb) / .12);
  --vp-footer-grid-overlay: linear-gradient(rgb(56 75 142 / .055) 1px, transparent 1px), linear-gradient(90deg, rgb(56 75 142 / .055) 1px, transparent 1px);
  --vp-footer-logo-bg: radial-gradient(circle at 30% 22%, rgb(var(--vp-blue-rgb) / .22), transparent 42%), linear-gradient(145deg, rgb(8 20 63), rgb(16 27 95) 58%, rgb(22 42 130));
  --vp-footer-logo-border: rgb(var(--vp-blue-rgb) / .18);
  --vp-footer-logo-shadow: 0 12px 32px rgb(var(--vp-shadow-rgb) / .18), 0 0 22px rgb(var(--vp-blue-rgb) / .18);
  --vp-footer-logo-img-filter: drop-shadow(0 0 6px rgb(var(--vp-blue-rgb) / .34));
  --vp-footer-social-bg: rgb(var(--vp-white-rgb) / .72);
  --vp-footer-social-border: rgb(var(--vp-navyline-rgb) / .12);
  --vp-footer-social-shadow: 0 18px 42px rgb(var(--vp-shadow-rgb) / .12), inset 0 1px rgb(var(--vp-white-rgb) / .86);
  --vp-footer-social-hover-bg: rgb(var(--vp-blue-rgb) / .14);
  --vp-footer-social-hover-border: rgb(var(--vp-blue-rgb) / .46);
  --vp-footer-branch-bg: rgb(var(--vp-white-rgb) / .72);
  --vp-footer-branch-border: rgb(var(--vp-navyline-rgb) / .12);
  --vp-footer-branch-shadow: 0 18px 42px rgb(var(--vp-shadow-rgb) / .12), inset 0 1px rgb(var(--vp-white-rgb) / .86);
  --vp-footer-divider-gradient: linear-gradient(90deg, transparent, rgb(var(--vp-navyline-rgb) / .36), transparent);
  --vp-footer-arrow-color: rgb(2 132 199);

  /* --- Surface tokens (LIGHT defaults) — Digital exams --- */
  --vp-gradient-surface-1: radial-gradient(circle at 18% 0%, rgb(var(--vp-blue-rgb) / .06), transparent 50%), linear-gradient(145deg, rgb(var(--vp-white-rgb)), rgb(235 241 255));
  --vp-gradient-surface-2: linear-gradient(145deg, rgb(var(--vp-white-rgb)), rgb(235 241 255));
  --vp-gradient-surface-3: radial-gradient(circle at 30% 20%, rgb(var(--vp-blue-rgb) / .20), transparent 55%), radial-gradient(circle at 80% 80%, rgb(var(--vp-purple-rgb) / .18), transparent 55%);
  --vp-shadow-1: 0 24px 64px rgb(var(--vp-shadow-rgb) / .14), inset 0 1px rgb(var(--vp-white-rgb) / .90);
  --vp-shadow-2: 0 26px 70px rgb(var(--vp-blue-rgb) / .14), inset 0 1px rgb(var(--vp-white-rgb) / .90);
  --vp-shimmer-color: rgb(var(--vp-navyline-rgb) / .08);
  --vp-surface-translucent: rgb(var(--vp-white-rgb) / .55);

  /* --- Surface tokens (deliberately DARK in BOTH themes) — Private-lesson CTA band --- */
  --vp-pl-cta-band-bg:
    radial-gradient(circle at 12% 0%, rgb(var(--vp-blue-rgb) / .20), transparent 45%),
    radial-gradient(circle at 88% 100%, rgb(var(--vp-purple-rgb) / .18), transparent 45%),
    linear-gradient(145deg, rgb(18 22 50 / .96), rgb(var(--vp-ink-rgb) / .98));
  --vp-pl-cta-band-border: rgb(var(--vp-white-rgb) / .12);
  --vp-pl-cta-band-shadow: 0 24px 70px rgb(var(--vp-ink-rgb) / .24), inset 0 1px 0 rgb(var(--vp-white-rgb) / .08);
  --vp-pl-cta-band-lead-color: rgb(223 229 251);
  --vp-pl-cta-band-b-color: rgb(141 210 255);
}

body.dark-theme {
  /* --- Layer B semantic (dark override) --- */
  --vp-bg-primary-color: rgb(var(--vp-ink-rgb));
  --vp-bg-secondary-color: rgb(18 22 50 / .72);
  --vp-text-primary-color: rgb(248 249 255);
  --vp-text-heading-color: rgb(248 251 255);
  --vp-text-secondary-color: rgb(174 180 204);
  --vp-accent-primary-color: rgb(141 210 255);
  --vp-border-primary-color: rgb(var(--vp-white-rgb) / .11);

  /* --- Hero scrims (dark override) --- */
  --hero-scrim-x: linear-gradient(90deg, rgb(var(--vp-ink-rgb) / .94), rgb(var(--vp-ink-rgb) / .72) 46%, rgb(var(--vp-ink-rgb) / .42));
  --hero-scrim-y: linear-gradient(180deg, rgb(var(--vp-ink-rgb) / .18), rgb(var(--vp-ink-rgb) / .78));

  /* --- Surface tokens (dark override) — Header/Nav/Btn/Toggle --- */
  --vp-header-bg: rgb(var(--vp-ink-rgb));
  --vp-header-bg-solid: rgb(var(--vp-ink-rgb));
  --vp-header-shadow: none;
  --vp-brand-mark-bg: linear-gradient(145deg, rgb(8 20 63), rgb(16 27 95) 58%, rgb(22 42 130));
  --vp-brand-mark-border: rgb(141 210 255 / .16);
  --vp-brand-mark-shadow: 0 0 28px rgb(var(--vp-blue-rgb) / .20), 0 0 40px rgb(8 20 63 / .35);
  --vp-brand-mark-img-filter: drop-shadow(0 0 7px rgb(74 178 255 / .4));
  --vp-menu-bg: rgb(9 13 32);
  --vp-menu-border: rgb(var(--vp-white-rgb) / .11);
  --vp-menu-shadow: 0 24px 70px rgb(0 0 0 / .32), inset 0 1px rgb(var(--vp-white-rgb) / .06);
  --vp-menu-item-hover-bg: rgb(var(--vp-blue-rgb) / .12);
  --vp-toggle-bg: rgb(var(--vp-white-rgb) / .04);
  --vp-btn-ghost-hover-bg: rgb(var(--vp-white-rgb) / .06);

  /* --- Reusable section divider (dark override; mirrors footer divider) --- */
  --vp-divider-gradient: linear-gradient(90deg, transparent, rgb(var(--vp-white-rgb) / .36), transparent);

  /* --- Reusable two-tone check icon (dark override) --- */
  --vp-check-mark-bg: rgb(141 210 255);
  --vp-check-mark-color: rgb(5 17 38);

  /* --- Surface tokens (dark override) — Pill button --- */
  --vp-pill-button-color: rgb(var(--vp-white-rgb));
  --vp-pill-button-bg: rgb(7 13 32 / .56);
  --vp-pill-button-border: rgb(75 172 255 / .70);
  --vp-pill-button-shadow: inset 0 0 24px rgb(var(--vp-blue-rgb) / .07), 0 0 24px rgb(var(--vp-blue-rgb) / .10);
  --vp-pill-button-hover-bg: rgb(22 31 66 / .72);
  --vp-pill-button-hover-border: rgb(var(--vp-purple-rgb) / .85);
  --vp-pill-button-hover-color: rgb(var(--vp-white-rgb));
  --vp-pill-button-icon-color: rgb(95 196 255);

  /* --- Surface tokens (dark override) — Pill badge --- */
  --vp-pill-badge-color: rgb(220 226 243);
  --vp-pill-badge-bg: rgb(7 13 32 / .78);
  --vp-pill-badge-border: rgb(var(--vp-white-rgb) / .08);
  --vp-pill-badge-shadow: none;

  /* --- Surface tokens (dark override) — FAQ accordion --- */
  --vp-faq-item-bg: rgb(18 22 50 / .72);
  --vp-faq-item-border: rgb(var(--vp-white-rgb) / .10);
  --vp-faq-item-shadow: 0 18px 50px rgb(var(--vp-ink-rgb) / .16);
  --vp-faq-trigger-color: rgb(247 249 255);
  --vp-faq-panel-color: rgb(174 180 204);
  --vp-faq-item-open-bg: linear-gradient(145deg, rgb(28 34 73 / .78), rgb(11 14 35 / .82));
  --vp-faq-item-open-border: rgb(129 140 248 / .34);
  --vp-faq-icon-color: rgb(141 210 255);
  --vp-faq-icon-bg: rgb(var(--vp-blue-rgb) / .10);
  --vp-faq-icon-border: rgb(var(--vp-blue-rgb) / .20);
  --vp-faq-icon-open-color: rgb(var(--vp-white-rgb));
  --vp-faq-icon-open-bg: linear-gradient(110deg, rgb(24 144 222), var(--vp-accent-purple-color));

  /* --- Surface tokens (dark override) — Nav mobile --- */
  --vp-nav-mobile-shadow: 0 12px 32px rgb(0 0 0 / .32);

  /* --- Surface tokens (dark override) — Home hero --- */
  --vp-hero-eyebrow-color: var(--vp-accent-primary-color);
  --vp-hero-eyebrow-bg: rgb(var(--vp-blue-rgb) / .08);
  --vp-hero-eyebrow-border: rgb(87 174 255 / .28);
  --vp-hero-gradient-text: linear-gradient(100deg, rgb(115 200 255), rgb(186 140 255));
  --vp-hero-point-color: rgb(212 216 233);
  --vp-hero-proof-color: rgb(133 140 169);
  --vp-hero-scrim-radial: radial-gradient(circle at 15% 35%, rgb(var(--vp-blue-rgb) / .18), transparent 32%), radial-gradient(circle at 82% 42%, rgb(var(--vp-purple-rgb) / .17), transparent 34%);
  --vp-hero-dashboard-bg: linear-gradient(145deg, rgb(28 34 73 / .91), rgb(11 14 35 / .92));
  --vp-hero-dashboard-border: rgb(var(--vp-white-rgb) / .16);
  --vp-hero-dashboard-shadow: 0 36px 100px rgb(var(--vp-ink-rgb) / .45), inset 0 1px rgb(var(--vp-white-rgb) / .08);
  --vp-hero-dashboard-color: rgb(248 251 255);
  --vp-hero-dashboard-dot-bg: rgb(78 87 120);
  --vp-hero-dashboard-title-color: rgb(137 145 174);
  --vp-hero-score-card-bg: linear-gradient(120deg, rgb(var(--vp-blue-rgb) / .17), rgb(var(--vp-purple-rgb) / .14));
  --vp-hero-score-card-border: rgb(123 159 255 / .18);
  --vp-hero-score-bar-bg: rgb(var(--vp-white-rgb) / .09);
  --vp-hero-mini-bg: rgb(var(--vp-white-rgb) / .045);
  --vp-hero-mini-border: rgb(var(--vp-white-rgb) / .08);
  --vp-hero-mini-small-color: rgb(137 145 174);
  --vp-hero-mini-blue-color: rgb(98 195 255);
  --vp-hero-mini-purple-color: rgb(179 135 255);
  --vp-hero-mini-orange-color: rgb(255 155 89);

  /* --- Surface tokens (dark override) — Home feature card --- */
  --vp-card-shadow: none;
  --vp-card-icon-blue-color: rgb(123 208 255);
  --vp-card-icon-purple-color: rgb(194 156 255);
  --vp-card-icon-orange-color: rgb(255 174 120);

  /* --- Surface tokens (dark override) — Home solve-card / qb-mini --- */
  --vp-solve-card-bg: rgb(29 29 45);
  --vp-solve-card-border: rgb(51 65 85 / .85);
  --vp-solve-card-shadow: 0 34px 90px rgb(var(--vp-ink-rgb) / .38), inset 0 1px rgb(var(--vp-white-rgb) / .05);
  --vp-qb-mini-color: rgb(215 217 230);
  --vp-qb-mini-divider: rgb(51 65 85);
  --vp-qb-mini-title-color: rgb(242 244 255);
  --vp-qb-mini-id-pill-color: rgb(154 163 188);
  --vp-qb-mini-id-pill-bg: rgb(37 37 56);
  --vp-qb-mini-id-pill-border: transparent;
  --vp-qb-mini-type-pill-color: rgb(157 161 255);
  --vp-qb-mini-type-pill-bg: rgb(127 134 255 / .08);
  --vp-qb-mini-type-pill-border: rgb(127 134 255);
  --vp-qb-mini-top-btn-color: rgb(154 163 188);
  --vp-qb-mini-top-btn-bg: transparent;
  --vp-qb-mini-top-btn-border: rgb(70 83 109);
  --vp-qb-mini-top-btn-report-color: rgb(255 193 47);
  --vp-qb-mini-top-btn-report-bg: rgb(242 169 0 / .08);
  --vp-qb-mini-top-btn-report-border: rgb(242 169 0);
  --vp-qb-mini-chip-medium-color: rgb(255 188 57);
  --vp-qb-mini-chip-medium-bg: rgb(123 66 0 / .76);
  --vp-qb-mini-chip-medium-border: transparent;
  --vp-qb-mini-chip-practice-color: rgb(70 226 118);
  --vp-qb-mini-chip-practice-bg: rgb(0 85 32 / .78);
  --vp-qb-mini-chip-practice-border: transparent;
  --vp-qb-mini-prompt-color: rgb(217 219 232);
  --vp-qb-mini-prompt-bg: rgb(23 23 36);
  --vp-qb-mini-prompt-border-left: rgb(125 134 255);
  --vp-qb-mini-prompt-shadow: inset 0 1px rgb(var(--vp-white-rgb) / .03), inset 4px 0 0 rgb(127 134 255 / .55);
  --vp-qb-mini-formula-color: rgb(238 240 251);
  --vp-qb-mini-choice-color: rgb(223 225 236);
  --vp-qb-mini-choice-bg: rgb(41 41 58);
  --vp-qb-mini-choice-border: rgb(67 67 89);
  --vp-qb-mini-choice-border-left: rgb(177 77 100);
  --vp-qb-mini-choice-shadow: none;
  --vp-qb-mini-choice-strike-bg: rgb(var(--vp-red-rgb));
  --vp-qb-mini-choice-strike-shadow: 0 0 14px rgb(var(--vp-red-rgb) / .45);
  --vp-qb-mini-choice-correct-border-left: rgb(40 209 124);
  --vp-qb-mini-mark-x-bg: rgb(var(--vp-red-rgb));
  --vp-qb-mini-mark-x-shadow: 0 0 24px rgb(var(--vp-red-rgb) / .50), 0 0 10px rgb(var(--vp-red-rgb) / .34);
  --vp-qb-mini-mark-check-color: rgb(7 20 13);
  --vp-qb-mini-mark-check-bg: rgb(50 230 141);
  --vp-qb-mini-mark-check-shadow: 0 0 28px rgb(50 230 141 / .58), 0 0 10px rgb(50 230 141 / .38);
  --vp-qb-mini-letter-color: rgb(var(--vp-white-rgb));
  --vp-qb-mini-letter-bg: rgb(177 77 100);
  --vp-qb-mini-main-action-color: rgb(137 146 255);
  --vp-qb-mini-main-action-bg: rgb(35 35 58);
  --vp-qb-mini-main-action-border: rgb(127 134 255);
  --vp-qb-mini-main-action-shadow: 0 0 22px rgb(127 134 255 / .10);
  --vp-qb-mini-main-action-leo-bg: rgb(var(--vp-purple-rgb) / .14);
  --vp-qb-mini-main-action-leo-glow: var(--vp-accent-purple-color);
  --vp-qb-mini-main-action-leo-animation: leoPulse;
  --vp-qb-mini-main-action-leo-inner-bg: rgb(35 35 58 / .86);
  --vp-qb-mini-main-action-save-bg: rgb(48 41 104 / .72);
  --vp-qb-mini-leo-face-bg: radial-gradient(circle at 35% 28%, rgb(var(--vp-white-rgb) / .32), transparent 18%), linear-gradient(145deg, rgb(255 178 77), rgb(199 106 44));
  --vp-qb-mini-leo-face-border: rgb(255 205 115 / .58);
  --vp-qb-mini-leo-face-shadow: 0 0 16px rgb(255 178 77 / .28);
  --vp-qb-mini-prompt-glow-shadow: inset 4px 0 0 rgb(127 134 255 / .9), 0 0 30px rgb(127 134 255 / .12);
  --vp-qb-mini-correct-anim-border: rgb(50 230 141 / .72);
  --vp-qb-mini-correct-anim-bg: rgb(30 78 58 / .38);
  --vp-qb-mini-leo-pulse-color: rgb(215 189 255);
  --vp-qb-mini-leo-pulse-color-strong: rgb(var(--vp-white-rgb));
  --vp-qb-mini-leo-pulse-border: var(--vp-accent-purple-color);
  --vp-qb-mini-leo-pulse-border-strong: rgb(196 164 255);

  /* --- Surface tokens (dark override) — Home score-growth --- */
  --vp-score-growth-color: rgb(241 245 255);
  --vp-score-growth-bg: linear-gradient(145deg, rgb(20 24 48 / .92), rgb(11 13 31 / .94));
  --vp-score-growth-border: rgb(129 140 248 / .24);
  --vp-score-growth-shadow: 0 28px 80px rgb(var(--vp-ink-rgb) / .28), inset 0 1px rgb(var(--vp-white-rgb) / .06);
  --vp-score-growth-scrim: radial-gradient(circle at 22% 28%, rgb(var(--vp-blue-rgb) / .17), transparent 28%), radial-gradient(circle at 74% 62%, rgb(var(--vp-purple-rgb) / .17), transparent 30%);
  --vp-score-growth-badge-color: rgb(var(--vp-green-rgb));
  --vp-score-growth-badge-bg: rgb(var(--vp-green-rgb) / .10);
  --vp-score-growth-badge-border: rgb(var(--vp-green-rgb) / .24);
  --vp-score-growth-badge-shadow: 0 0 24px rgb(var(--vp-green-rgb) / .10);
  --vp-score-growth-chart-bg: linear-gradient(rgb(var(--vp-white-rgb) / .06) 1px, transparent 1px), linear-gradient(90deg, rgb(var(--vp-white-rgb) / .05) 1px, transparent 1px), rgb(var(--vp-white-rgb) / .035);
  --vp-score-growth-chart-border: rgb(var(--vp-white-rgb) / .08);
  --vp-score-growth-before-line: rgb(248 251 255 / .92);
  --vp-score-growth-before-line-shadow: drop-shadow(0 0 8px rgb(var(--vp-white-rgb) / .14));
  --vp-score-growth-line-shadow: drop-shadow(0 0 12px rgb(var(--vp-blue-rgb) / .35));
  --vp-score-growth-dot-fill: rgb(16 21 40);
  --vp-score-growth-dot-shadow: drop-shadow(0 0 10px rgb(141 210 255 / .35));
  --vp-score-growth-labels-color: rgb(156 166 196);
  --vp-score-growth-row-color: rgb(223 228 247);
  --vp-score-growth-row-bg: rgb(var(--vp-white-rgb) / .045);
  --vp-score-growth-row-border: rgb(var(--vp-white-rgb) / .08);
  --vp-score-growth-row-header-bg: rgb(var(--vp-blue-rgb) / .08);
  --vp-score-growth-row-header-border: rgb(var(--vp-blue-rgb) / .16);
  --vp-score-growth-row-b-color: var(--vp-text-heading-color);
  --vp-score-growth-score-color: rgb(207 214 238);
  --vp-score-growth-after-color: rgb(var(--vp-white-rgb));
  --vp-score-growth-gain-color: rgb(var(--vp-green-rgb));
  --vp-score-growth-gain-bg: rgb(var(--vp-green-rgb) / .10);
  --vp-score-growth-gain-border: rgb(var(--vp-green-rgb) / .25);
  --vp-score-growth-gain-shadow: 0 0 22px rgb(var(--vp-green-rgb) / .08);
  --vp-score-growth-bar-bg: rgb(var(--vp-white-rgb) / .08);
  --vp-score-growth-column-chart-bg: rgb(9 13 34 / .96);
  --vp-score-growth-column-chart-border: rgb(var(--vp-white-rgb) / .14);
  --vp-score-growth-column-chart-shadow: inset 0 1px rgb(var(--vp-white-rgb) / .08), 0 18px 50px rgb(var(--vp-ink-rgb) / .24);
  --vp-score-growth-column-title-color: rgb(247 250 255);
  --vp-score-growth-column-groups-bg: linear-gradient(rgb(var(--vp-white-rgb) / .06) 1px, transparent 1px), rgb(var(--vp-white-rgb) / .02);
  --vp-score-growth-column-bar-inner-shadow: inset 0 1px rgb(var(--vp-white-rgb) / .16);
  --vp-score-growth-column-bar-before-bg: rgb(248 251 255);
  --vp-score-growth-column-bar-before-border: rgb(var(--vp-white-rgb) / .92);
  --vp-score-growth-column-bar-before-shadow: 0 10px 28px rgb(var(--vp-white-rgb) / .12), inset 0 1px rgb(var(--vp-white-rgb) / .96);
  --vp-score-growth-column-bar-after-shadow: 0 0 24px rgb(var(--vp-blue-rgb) / .16), inset 0 1px rgb(var(--vp-white-rgb) / .20);
  --vp-score-growth-column-bar-after-border: rgb(141 210 255 / .24);
  --vp-score-growth-column-bar-small-color: rgb(220 229 255);
  --vp-score-growth-column-labels-color: rgb(156 166 196);
  --vp-score-growth-column-gain-color: rgb(var(--vp-green-rgb));
  --vp-score-growth-column-gain-bg: rgb(var(--vp-green-rgb) / .11);
  --vp-score-growth-column-gain-border: rgb(var(--vp-green-rgb) / .26);
  --vp-score-growth-column-bar-after-gradient: linear-gradient(180deg, var(--vp-accent-blue-color), var(--vp-accent-purple-color));

  /* --- Surface tokens (dark override) — Home stats-strip --- */
  --vp-stats-strip-bg: rgb(6 13 32 / .86);
  --vp-stats-strip-border: rgb(var(--vp-white-rgb) / .08);
  --vp-stats-strip-shadow: 0 28px 90px rgb(var(--vp-ink-rgb) / .34);
  --vp-stats-strip-item-color: rgb(245 247 255);
  --vp-stats-strip-item-b-color: var(--vp-accent-blue-color);
  --vp-stats-strip-item-b-shadow: 0 0 18px rgb(var(--vp-blue-rgb) / .34);

  /* --- Surface tokens (dark override) — Home page-scrim (features bg) --- */
  --vp-page-scrim-bg: radial-gradient(circle at 12% 15%, rgb(var(--vp-blue-rgb) / .17), transparent 28%), radial-gradient(circle at 86% 18%, rgb(var(--vp-purple-rgb) / .17), transparent 30%), var(--vp-bg-primary-color);

  /* --- Surface tokens (dark override) — Footer --- */
  --vp-footer-gradient: radial-gradient(circle at 12% 18%, rgb(var(--vp-purple-rgb) / .30), transparent 34%), radial-gradient(circle at 88% 16%, rgb(var(--vp-blue-rgb) / .18), transparent 32%), linear-gradient(135deg, rgb(9 11 38 / .98), rgb(var(--vp-ink-rgb) / .99) 62%, rgb(14 7 46 / .96));
  --vp-footer-border-top: rgb(var(--vp-white-rgb) / .10);
  --vp-footer-grid-overlay: linear-gradient(rgb(var(--vp-white-rgb) / .035) 1px, transparent 1px), linear-gradient(90deg, rgb(var(--vp-white-rgb) / .035) 1px, transparent 1px);
  --vp-footer-logo-bg: linear-gradient(135deg, rgb(var(--vp-blue-rgb) / .18), rgb(var(--vp-purple-rgb) / .14) 60%, rgb(var(--vp-orange-rgb) / .12));
  --vp-footer-logo-border: rgb(var(--vp-white-rgb) / .1);
  --vp-footer-logo-shadow: 0 0 28px rgb(var(--vp-blue-rgb) / .2), 0 0 40px rgb(var(--vp-purple-rgb) / .12);
  --vp-footer-logo-img-filter: drop-shadow(0 0 7px rgb(74 178 255 / .4));
  --vp-footer-social-bg: rgb(var(--vp-white-rgb) / .08);
  --vp-footer-social-border: rgb(var(--vp-white-rgb) / .12);
  --vp-footer-social-shadow: 0 12px 28px rgb(0 0 0 / .18);
  --vp-footer-social-hover-bg: rgb(var(--vp-blue-rgb) / .14);
  --vp-footer-social-hover-border: rgb(var(--vp-blue-rgb) / .46);
  --vp-footer-branch-bg: linear-gradient(145deg, rgb(var(--vp-blue-rgb) / .18), rgb(var(--vp-purple-rgb) / .08));
  --vp-footer-branch-border: rgb(var(--vp-blue-rgb) / .16);
  --vp-footer-branch-shadow: 0 18px 44px rgb(0 0 0 / .16), inset 0 1px rgb(var(--vp-white-rgb) / .08);
  --vp-footer-divider-gradient: linear-gradient(90deg, transparent, rgb(var(--vp-white-rgb) / .36), transparent);
  --vp-footer-arrow-color: rgb(56 189 248);

  /* --- Surface tokens (dark override) — Digital exams --- */
  --vp-gradient-surface-1: radial-gradient(circle at 18% 0%, rgb(var(--vp-blue-rgb) / .13), transparent 50%), linear-gradient(145deg, rgb(18 22 50), rgb(var(--vp-ink-rgb)));
  --vp-gradient-surface-2: linear-gradient(145deg, rgb(18 22 50), rgb(var(--vp-ink-rgb)));
  --vp-gradient-surface-3: radial-gradient(circle at 30% 20%, rgb(var(--vp-blue-rgb) / .20), transparent 55%), radial-gradient(circle at 80% 80%, rgb(var(--vp-purple-rgb) / .18), transparent 55%);
  --vp-shadow-1: 0 20px 58px rgb(var(--vp-ink-rgb) / .30), inset 0 1px rgb(var(--vp-white-rgb) / .08);
  --vp-shadow-2: 0 26px 70px rgb(var(--vp-blue-rgb) / .14), inset 0 1px rgb(var(--vp-white-rgb) / .10);
  --vp-shimmer-color: rgb(var(--vp-white-rgb) / .06);
  --vp-surface-translucent: rgb(18 22 50 / .55);

  /* --- Surface tokens (deliberately DARK in BOTH themes) — Private-lesson CTA band --- */
  --vp-pl-cta-band-bg:
    radial-gradient(circle at 12% 0%, rgb(var(--vp-blue-rgb) / .20), transparent 45%),
    radial-gradient(circle at 88% 100%, rgb(var(--vp-purple-rgb) / .18), transparent 45%),
    linear-gradient(145deg, rgb(18 22 50 / .96), rgb(var(--vp-ink-rgb) / .98));
  --vp-pl-cta-band-border: rgb(var(--vp-white-rgb) / .12);
  --vp-pl-cta-band-shadow: 0 24px 70px rgb(var(--vp-ink-rgb) / .24), inset 0 1px 0 rgb(var(--vp-white-rgb) / .08);
  --vp-pl-cta-band-lead-color: rgb(223 229 251);
  --vp-pl-cta-band-b-color: rgb(141 210 255);
}