/* Task selector — compact 26 buttons */
.task-selector{margin-bottom:32px}
.selector-caption{
  font-family:var(--f-mono);font-size:11px;text-transform:uppercase;
  letter-spacing:.2em;color:var(--ink-mute);margin-bottom:12px;
  display:flex;justify-content:space-between;align-items:baseline;
}
.selector-caption em{font-family:var(--f-display);font-style:italic;color:var(--accent);text-transform:none;letter-spacing:0;font-size:14px}
.task-row{
  display:grid;gap:0;
  border:1px solid var(--ink);background:var(--paper-2);
  margin-bottom:4px;
}
.task-row.part1{grid-template-columns:repeat(20, 1fr)}
.task-row.part2{grid-template-columns:repeat(6, 1fr);max-width:480px}
.task-btn{
  all:unset;cursor:pointer;padding:12px 4px 10px;text-align:center;
  border-right:1px solid var(--line);position:relative;
  transition:background .2s ease, color .2s ease;
  min-height:60px;display:flex;flex-direction:column;justify-content:center;align-items:center;
}
.task-btn:last-child{border-right:none}
.task-btn:hover{background:var(--paper-3)}
.task-btn.active{background:var(--ink);color:var(--paper)}
.task-btn.active .tnum{color:var(--accent)}
.task-btn.active .tdot{background:var(--paper-2);opacity:.7}
.task-btn.done{background:var(--ok-bg)}
.task-btn.done:hover{background:var(--ok-bg);filter:brightness(.97)}
.task-btn.done.active{background:var(--ink)}
.tnum{
  font-family:var(--f-display);font-weight:600;font-size:22px;line-height:.9;
  font-variation-settings:"opsz" 144;
}
.tdot{
  width:4px;height:4px;border-radius:50%;background:var(--ink-mute);
  margin-top:6px;
}
.tprog{
  width:24px;height:3px;margin-top:7px;
  background:var(--line);position:relative;overflow:hidden;
}
.tprog-fill{
  position:absolute;left:0;top:0;bottom:0;
  background:var(--ink-mute);transition:width .3s ease, background .2s ease;
}
.tprog.partial .tprog-fill{background:var(--accent)}
.tprog.done .tprog-fill{background:var(--ok)}
.task-btn.active .tprog{background:var(--paper-3);opacity:.5}
.task-btn.active .tprog-fill{background:var(--accent)}
.task-btn.active.done .tprog-fill{background:var(--ok)}
.task-btn .ttip{
  position:absolute;bottom:100%;left:50%;transform:translateX(-50%) translateY(-4px);
  background:var(--ink);color:var(--paper);padding:6px 10px;
  font-family:var(--f-mono);font-size:10px;text-transform:uppercase;letter-spacing:.1em;
  white-space:nowrap;opacity:0;pointer-events:none;transition:opacity .15s;
  z-index:10;
}
.task-btn:hover .ttip{opacity:1}
.task-btn.locked{opacity:.45;cursor:not-allowed}
.task-btn.locked::after{
  content:"◆";position:absolute;top:4px;right:6px;
  font-size:9px;color:var(--accent);
}

/* Themes sidebar */
aside.themes{
  border-top:1px solid var(--ink);padding-top:12px;position:sticky;top:20px;
}
aside.themes h3{
  font-family:var(--f-mono);font-weight:500;font-size:11px;
  text-transform:uppercase;letter-spacing:.2em;color:var(--ink-mute);
  margin-bottom:14px;
}
.theme-list{list-style:none;display:flex;flex-direction:column;gap:2px}
.theme-item{
  all:unset;cursor:pointer;display:block;padding:10px 12px 10px 0;
  border-bottom:1px dotted var(--line);
  font-family:var(--f-display);font-size:17px;font-weight:400;line-height:1.2;
  color:var(--ink-soft);
  transition:color .15s ease, padding .15s ease;
  position:relative;
}
.theme-item:hover{color:var(--accent);padding-left:6px}
.theme-item.active{color:var(--accent);font-weight:500}
.theme-item.active::before{
  content:"→";position:absolute;left:-14px;top:10px;font-size:10px;color:var(--accent);
}
.theme-code{
  display:block;font-family:var(--f-mono);font-size:10px;font-weight:500;
  letter-spacing:.1em;color:var(--ink-mute);margin-bottom:3px;
}

.mode-switch{
  margin-top:28px;padding-top:18px;border-top:1px solid var(--ink);
  display:flex;flex-direction:column;gap:0;
}
.mode-switch button{
  all:unset;cursor:pointer;padding:12px 0;
  font-family:var(--f-display);font-size:15px;font-style:italic;color:var(--ink-soft);
  border-bottom:1px dotted var(--line);
  display:flex;justify-content:space-between;align-items:center;
}
.mode-switch button:hover{color:var(--accent)}
.mode-switch button::after{
  content:"→";font-style:normal;color:var(--ink-mute);
}
.mode-switch button:hover::after{color:var(--accent);transform:translateX(3px)}

/* Theme header */
.theme-header{
  border-bottom:2px solid var(--ink);padding-bottom:20px;margin-bottom:28px;
  display:grid;grid-template-columns:1fr auto;gap:20px;align-items:end;
}
.kicker{
  font-family:var(--f-mono);font-size:11px;text-transform:uppercase;
  letter-spacing:.2em;color:var(--accent);margin-bottom:10px;
}
.theme-title{
  font-family:var(--f-display);font-weight:500;font-size:46px;line-height:.98;
  letter-spacing:-0.025em;
  font-variation-settings:"opsz" 144;
}
.theme-title em{font-style:italic;font-weight:400}
.theme-subtitle{
  font-family:var(--f-display);font-style:italic;font-weight:300;
  font-size:20px;color:var(--ink-mute);margin-top:10px;max-width:560px;
}
.theme-meta{
  font-family:var(--f-mono);font-size:11px;color:var(--ink-mute);
  text-align:right;line-height:1.6;
}
.theme-meta b{color:var(--ink);font-weight:600}

/* Theory */
.theory{
  background:var(--paper-2);border:1px solid var(--line);padding:28px 32px;
  margin-bottom:40px;position:relative;
}
.theory::before{
  content:"Шпаргалка";
  position:absolute;top:-10px;left:24px;background:var(--paper);
  padding:0 10px;font-family:var(--f-display);font-style:italic;font-size:14px;
  color:var(--accent);
}
.theory h4{
  font-family:var(--f-display);font-weight:600;font-size:20px;margin:20px 0 10px;
  letter-spacing:-0.01em;
}
.theory h4:first-child{margin-top:0}
.theory p{margin:10px 0;max-width:72ch}
.theory ul,.theory ol{margin:10px 0 10px 20px;max-width:72ch}
.theory li{margin:6px 0}
.theory .formula{
  background:var(--paper);border-left:3px solid var(--accent);
  padding:14px 20px;margin:14px 0;font-family:var(--f-mono);
  display:flex;align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap;
}
.theory .formula .desc{
  font-family:var(--f-body);font-size:13px;color:var(--ink-mute);font-style:italic;
}
.theory strong{color:var(--ink);font-weight:600}
.theory .note{
  font-style:italic;color:var(--ink-mute);font-size:14px;
  padding-left:16px;border-left:2px solid var(--line);margin:14px 0;
}

/* Tasks header */
.tasks-header{
  display:flex;justify-content:space-between;align-items:baseline;
  margin-bottom:20px;padding-bottom:10px;border-bottom:1px solid var(--ink);
}
.tasks-header h3{
  font-family:var(--f-display);font-weight:500;font-size:28px;
  letter-spacing:-0.02em;
}
.tasks-header h3 em{font-style:italic;color:var(--accent);font-weight:400}
.progress{
  font-family:var(--f-mono);font-size:12px;color:var(--ink-mute);
  letter-spacing:.08em;min-width:180px;
}
.progress b{color:var(--ink);font-weight:600}
.progress-bar{
  position:relative;width:100%;height:18px;background:var(--paper-2);
  border:1px solid var(--line);overflow:hidden;
}
.progress-bar-fill{
  position:absolute;left:0;top:0;bottom:0;
  background:var(--accent);opacity:.85;
  transition:width .35s cubic-bezier(.25,.46,.45,.94), background .2s ease;
}
.progress-bar.done .progress-bar-fill{background:var(--ok);opacity:.85}
.progress-bar.empty .progress-bar-fill{background:var(--ink-mute);opacity:.2}
.progress-bar-label{
  position:relative;z-index:1;height:100%;
  display:flex;align-items:center;justify-content:center;
  font-family:var(--f-mono);font-size:11px;letter-spacing:.08em;
  color:var(--ink);mix-blend-mode:multiply;
}
.progress-bar-label b{font-weight:600}

/* Task card */
.task{
  border:1px solid var(--line);background:var(--paper-2);
  margin-bottom:18px;
  overflow:hidden;
  transition:border-color .2s;
}
.task.solved{border-color:var(--ok);background:var(--ok-bg)}
.task.wrong{border-color:var(--err);background:var(--err-bg)}
.task-head{
  display:flex;align-items:baseline;gap:14px;padding:16px 22px;
  border-bottom:1px solid var(--line-soft);
}
.task-num{
  font-family:var(--f-display);font-weight:700;font-size:22px;color:var(--accent);
  font-variation-settings:"opsz" 144;
  width:40px;flex-shrink:0;
}
.task-kicker{
  font-family:var(--f-mono);font-size:10px;text-transform:uppercase;
  letter-spacing:.16em;color:var(--ink-mute);
}
.task-kicker b{color:var(--ink)}
.task-code{
  font-family:var(--f-mono);font-size:10px;text-transform:uppercase;
  letter-spacing:.14em;color:var(--ink-mute);
  margin-top:18px;padding-top:12px;
  border-top:1px dotted var(--line-soft);
}
.task-code b{color:var(--ink);font-weight:600;letter-spacing:.06em}
.task-solved-mark{
  font-family:var(--f-mono);color:var(--ok);font-weight:600;
  font-size:10px;letter-spacing:.1em;
}
.task-body{padding:18px 22px 22px 76px}
.task-text{font-size:15.5px;line-height:1.65;max-width:72ch;color:var(--ink-soft)}
.task-text .fig{
  margin:16px 0;padding:14px;background:var(--paper);border:1px dashed var(--line);
  display:block;width:fit-content;
}
.task-text table{
  border-collapse:collapse;margin:12px 0;font-family:var(--f-mono);font-size:13px;
  background:var(--paper);
}
.task-text table td, .task-text table th{
  border:1px solid var(--line);padding:5px 10px;text-align:center;
}
.task-text table th{background:var(--paper-3);font-weight:600}

/* Answer controls */
.answer-row{
  display:flex;align-items:center;gap:12px;margin-top:18px;flex-wrap:wrap;
}
.answer-label{
  font-family:var(--f-display);font-style:italic;font-size:16px;color:var(--ink-soft);
}
.answer-input{
  font-family:var(--f-mono);font-size:15px;font-weight:500;
  background:var(--paper);border:none;
  border-bottom:2px solid var(--ink);padding:6px 10px;
  width:160px;color:var(--ink);
  outline:none;transition:border-color .15s;
}
.answer-input:focus{border-bottom-color:var(--accent)}
.answer-unit{font-family:var(--f-mono);font-size:14px;color:var(--ink-mute)}

.btn{
  all:unset;cursor:pointer;
  font-family:var(--f-mono);font-size:12px;font-weight:500;
  text-transform:uppercase;letter-spacing:.14em;
  padding:10px 20px;border:1px solid var(--ink);
  background:var(--ink);color:var(--paper);
  transition:background .2s, color .2s;
}
.btn:hover{background:var(--accent);border-color:var(--accent)}
.btn.ghost{background:transparent;color:var(--ink)}
.btn.ghost:hover{background:var(--ink);color:var(--paper)}
.btn:disabled{opacity:.5;cursor:not-allowed}

.feedback{
  margin-top:16px;padding:14px 18px;font-size:14px;
  font-family:var(--f-body);line-height:1.55;
  border-left:3px solid;
}
.feedback.ok{background:var(--ok-bg);border-color:var(--ok);color:#174a34}
.feedback.err{background:var(--err-bg);border-color:var(--err);color:#6d1a1a}
.feedback b{font-weight:600}
.next-problem-btn{
  margin-left:10px;padding:7px 14px;font-size:13px;
  background:var(--ok);border-color:var(--ok);color:var(--paper);
  font-family:var(--f-display);font-style:italic;
  animation:next-pulse .4s ease;
}
.next-problem-btn:hover{background:var(--ink);border-color:var(--ink)}
@keyframes next-pulse{
  from{transform:scale(.9);opacity:0}
  to{transform:scale(1);opacity:1}
}
.all-solved-mark{
  display:inline-block;margin-left:10px;font-style:italic;color:var(--ok);font-weight:500;
}

.solution{
  margin-top:14px;background:var(--paper);border:1px solid var(--line);
  padding:0;overflow:hidden;
}
.solution summary{
  cursor:pointer;padding:12px 18px;
  font-family:var(--f-mono);font-size:11px;text-transform:uppercase;
  letter-spacing:.14em;color:var(--ink-mute);
  list-style:none;
  display:flex;justify-content:space-between;align-items:center;
}
.solution summary::-webkit-details-marker{display:none}
.solution summary::after{content:"+";font-size:18px}
.solution[open] summary::after{content:"−"}
.solution summary:hover{color:var(--accent)}
.solution .sol-body{padding:0 20px 18px;font-size:14px;line-height:1.7;color:var(--ink-soft)}
.solution .sol-body p{margin:8px 0}
.solution .sol-body .step{
  display:flex;gap:14px;margin:10px 0;padding:10px 14px;
  background:var(--paper-2);
}
.solution .sol-body .step-num{
  font-family:var(--f-display);font-weight:700;font-size:18px;color:var(--accent);
  flex-shrink:0;
}

/* Part 2 specific — no check, just full solution */
.task.part2 .task-body{padding-bottom:14px}
.task.part2 .no-check-note{
  font-family:var(--f-display);font-style:italic;color:var(--ink-mute);
  font-size:14px;margin-top:14px;padding-left:14px;border-left:2px solid var(--line);
}
.criteria{
  margin-top:14px;background:var(--paper-3);border:1px solid var(--line);
  padding:14px 18px;font-size:13px;color:var(--ink-soft);
}
.criteria h5{
  font-family:var(--f-mono);font-size:10px;text-transform:uppercase;letter-spacing:.18em;
  color:var(--ink-mute);margin-bottom:8px;
}
.criteria ol{margin-left:18px}
.criteria li{margin:4px 0}
.criteria li b{color:var(--accent);font-weight:700;font-family:var(--f-display)}

/* Paywall banner (future subscription gate) */
.paywall{
  background:var(--paper-3);border:1px dashed var(--accent);
  padding:24px 28px;margin:24px 0;text-align:center;
}
.paywall h4{
  font-family:var(--f-display);font-style:italic;font-size:22px;
  color:var(--accent);margin-bottom:8px;
}
.paywall p{
  font-family:var(--f-body);color:var(--ink-mute);font-size:14px;
  max-width:52ch;margin:0 auto 14px;
}

/* Variant mode */
.variant-banner{
  background:var(--ink);color:var(--paper);padding:24px 32px;
  margin-bottom:28px;
  display:grid;grid-template-columns:1fr auto auto;gap:30px;align-items:center;
  border:1px solid var(--ink);
}
.variant-banner h2{
  font-family:var(--f-display);font-weight:500;font-size:30px;letter-spacing:-0.02em;
}
.variant-banner h2 em{font-style:italic;color:var(--accent);font-weight:400}
.variant-banner p{font-family:var(--f-display);font-style:italic;font-size:14px;opacity:.75;margin-top:4px}
.timer{
  font-family:var(--f-mono);font-size:28px;font-weight:600;
  letter-spacing:.05em;color:var(--paper);
  padding:6px 16px;border:1px solid var(--paper-3);
}
.score-card{
  background:var(--paper);color:var(--ink);
  border:2px solid var(--ink);padding:28px 36px;margin-bottom:28px;
}
.score-card h3{
  font-family:var(--f-display);font-weight:500;font-size:26px;margin-bottom:14px;
}
.score-grid{
  display:grid;grid-template-columns:repeat(3,1fr);gap:28px;margin-top:18px;
  padding-top:18px;border-top:1px solid var(--line);
}
.score-metric{text-align:center}
.score-num{
  font-family:var(--f-display);font-weight:700;font-size:44px;color:var(--accent);
  line-height:1;font-variation-settings:"opsz" 144;
}
.score-label{
  font-family:var(--f-mono);font-size:10px;text-transform:uppercase;
  letter-spacing:.2em;color:var(--ink-mute);margin-top:8px;
}

/* Admin panel stub */
.admin-panel{
  border:2px dashed var(--accent);background:var(--paper-2);
  padding:28px 32px;margin-bottom:32px;
}
.admin-panel h2{
  font-family:var(--f-display);font-weight:500;font-size:26px;
  color:var(--accent);margin-bottom:10px;
}
.admin-panel p{
  font-family:var(--f-body);color:var(--ink-mute);font-size:14px;
  margin-bottom:12px;max-width:64ch;
}
.admin-panel code{
  font-family:var(--f-mono);font-size:12px;background:var(--paper-3);
  padding:2px 6px;color:var(--ink);
}

/* ============ Onboarding tour ============ */
html.onboarding-active{overflow:hidden}

/* Оверлей — четыре затемнённые панели вокруг "дырки" (подсвеченного элемента).
   Такой подход сохраняет абсолютную чёткость выделенного элемента — он не размывается. */
.onb-mask{
  position:fixed;
  background:rgba(10,14,26,.66);
  z-index:2000;
  pointer-events:auto;
  transition:opacity .25s ease;
}
#onboardingOverlay{
  position:fixed;inset:0;
  background:rgba(10,14,26,.66);
  z-index:2000;
  animation:onb-fade 0.25s ease both;
  pointer-events:auto;
}
@keyframes onb-fade{from{opacity:0}to{opacity:1}}

/* Рамка вокруг выделенного элемента — рисуется поверх всего, без блюра */
.onb-ring{
  position:fixed;
  pointer-events:none;
  z-index:2001;
  border:3px solid var(--accent);
  border-radius:6px;
  box-shadow:
    0 0 0 2px rgba(255,255,255,.45),
    0 0 28px 4px rgba(192,57,43,.55),
    0 12px 36px rgba(0,0,0,.25);
  animation:onb-pulse 1.8s ease-in-out infinite;
  transition:top .35s ease, left .35s ease, width .35s ease, height .35s ease;
}
@keyframes onb-pulse{
  0%, 100%{
    box-shadow:
      0 0 0 2px rgba(255,255,255,.45),
      0 0 24px 2px rgba(192,57,43,.5),
      0 12px 36px rgba(0,0,0,.25);
  }
  50%{
    box-shadow:
      0 0 0 6px rgba(255,255,255,.15),
      0 0 48px 8px rgba(192,57,43,.75),
      0 12px 36px rgba(0,0,0,.3);
  }
}

#onboardingPopup{
  position:fixed;z-index:2002;
  width:380px;max-width:calc(100vw - 24px);
  background:var(--paper);border:2px solid var(--ink);
  box-shadow:0 20px 60px rgba(0,0,0,.35);
  padding:20px 22px 16px;
  font-family:var(--f-body);
  transition:left .3s ease, top .3s ease;
}
.onb-anim-in{animation:onb-pop 0.35s cubic-bezier(.2,.9,.3,1.2) both}
@keyframes onb-pop{
  from{opacity:0;transform:translateY(8px) scale(.96)}
  to  {opacity:1;transform:translateY(0) scale(1)}
}

.onb-head{
  display:flex;justify-content:space-between;align-items:center;
  margin-bottom:10px;
}
.onb-step{
  font-family:var(--f-mono);font-size:10px;letter-spacing:.18em;
  text-transform:uppercase;color:var(--ink-mute);
}
.onb-close{
  all:unset;cursor:pointer;
  font-size:16px;color:var(--ink-mute);
  width:28px;height:28px;
  display:flex;align-items:center;justify-content:center;
  border:1px solid transparent;
  transition:color .15s, border-color .15s;
}
.onb-close:hover{color:var(--accent);border-color:var(--line)}

.onb-title{
  font-family:var(--f-display);font-weight:600;font-size:22px;
  letter-spacing:-0.015em;margin-bottom:10px;
  font-variation-settings:"opsz" 72;
}
.onb-text{
  font-family:var(--f-body);font-size:14.5px;line-height:1.55;
  color:var(--ink-soft);margin-bottom:18px;
}
.onb-text strong{color:var(--ink);font-weight:600}
.onb-text kbd{
  font-family:var(--f-mono);font-size:11px;font-weight:600;
  padding:2px 7px;background:var(--paper-2);border:1px solid var(--line);
  border-bottom-width:2px;margin:0 2px;
}

.onb-nav{
  display:flex;justify-content:space-between;align-items:center;
  gap:10px;padding-top:12px;border-top:1px dotted var(--line);
}
.onb-btn{
  all:unset;cursor:pointer;
  font-family:var(--f-mono);font-size:11px;font-weight:500;
  text-transform:uppercase;letter-spacing:.12em;
  padding:10px 14px;border:1px solid var(--ink);
  background:var(--paper);color:var(--ink);
  transition:background .15s, color .15s;
}
.onb-btn:hover{background:var(--ink);color:var(--paper)}
.onb-btn.primary{background:var(--ink);color:var(--paper)}
.onb-btn.primary:hover{background:var(--accent);border-color:var(--accent)}
.onb-btn.ghost{background:transparent;border-color:var(--line);color:var(--ink-mute)}
.onb-btn.ghost:hover{color:var(--ink);border-color:var(--ink);background:transparent}
.onb-btn[disabled]{opacity:.35;cursor:not-allowed}
.onb-btn[disabled]:hover{background:var(--paper);color:var(--ink-mute)}

.onb-dots{display:flex;gap:5px;align-items:center}
.onb-dot{
  width:6px;height:6px;border-radius:50%;
  background:var(--line);transition:background .2s, transform .2s;
}
.onb-dot.active{background:var(--accent);transform:scale(1.5)}

/* ============ Landing page ============ */
.landing-mode .masthead,
.landing-mode .subject-switch,
.landing-mode .streak-widget,
.landing-mode .auth-badge,
.landing-mode .task-selector,
.landing-mode .themes,
.landing-mode .colophon{display:none !important}
.landing-mode .layout{grid-template-columns:1fr}

.landing{
  max-width:1080px;margin:0 auto;padding:0 0 40px;
  font-family:var(--f-body);position:relative;
}

/* Парящие символы — в base.css (#floatingBg), глобально.
   Здесь — дополнительное радиальное свечение ТОЛЬКО на landing. */
.landing-mode #floatingBg::before{
  content:"";position:absolute;top:-120px;left:50%;transform:translateX(-50%);
  width:1100px;height:900px;max-width:180vw;max-height:130vh;
  background:
    radial-gradient(circle at 50% 30%, color-mix(in srgb, var(--accent) 14%, transparent), transparent 55%),
    radial-gradient(circle at 30% 80%, color-mix(in srgb, var(--accent) 6%, transparent), transparent 60%);
  filter:blur(34px);
  animation:landing-glow 26s ease-in-out infinite alternate;
  pointer-events:none;
}
@keyframes landing-glow{
  0%  {transform:translateX(-52%) translateY(0) scale(1)}
  100%{transform:translateX(-48%) translateY(40px) scale(1.1)}
}
@media (prefers-reduced-motion: reduce){
  .landing-mode #floatingBg::before{animation:none}
}

/* ----- HERO ----- */
.landing-hero{
  position:relative;z-index:1;
  text-align:center;padding:90px 20px 80px;
  border-bottom:1px solid rgba(26,34,56,.15);margin-bottom:48px;
}
.landing-badge{
  display:inline-block;padding:7px 18px;
  font-family:var(--f-mono);font-size:11px;text-transform:uppercase;letter-spacing:.2em;
  background:var(--ink);color:var(--paper);margin-bottom:28px;
  box-shadow:0 4px 16px rgba(26,34,56,.2);
}
.landing-title{
  font-family:var(--f-display);font-weight:500;font-size:86px;line-height:1.02;
  letter-spacing:-0.035em;font-variation-settings:"opsz" 144;
  margin-bottom:28px;
  padding-top:0.08em; /* защита от clip верхушек */
}
.landing-title span{
  display:block;color:var(--ink);
}
.landing-title em{
  display:block;font-style:italic;color:var(--accent);font-weight:400;
  font-size:0.6em;margin-top:10px;letter-spacing:-0.015em;line-height:1.1;
}
.landing-lead{
  font-family:var(--f-display);font-style:italic;font-size:22px;line-height:1.5;
  color:var(--ink-soft);max-width:640px;margin:0 auto 34px;
  font-variation-settings:"opsz" 72;
}

/* Числа-статистика */
.landing-stats{
  display:inline-flex;align-items:center;gap:28px;
  padding:14px 28px;margin-bottom:36px;
  background:rgba(244,237,224,.7);border:1px solid rgba(26,34,56,.15);
  backdrop-filter:blur(6px);
}
.landing-stat{display:flex;flex-direction:column;align-items:center;line-height:1}
.landing-stat b{
  font-family:var(--f-display);font-weight:700;font-size:32px;color:var(--accent);
  font-variation-settings:"opsz" 144;letter-spacing:-0.02em;
}
.landing-stat span{
  font-family:var(--f-mono);font-size:9px;letter-spacing:.18em;
  text-transform:uppercase;color:var(--ink-mute);margin-top:6px;
}
.landing-stat-sep{
  width:1px;height:38px;background:rgba(26,34,56,.2);
}

/* CTA кнопки */
.landing-ctas{
  display:flex;gap:14px;justify-content:center;flex-wrap:wrap;
  margin-bottom:16px;
}
.landing-btn{
  all:unset;cursor:pointer;
  display:inline-flex;align-items:center;gap:10px;
  font-family:var(--f-mono);font-size:12px;font-weight:500;
  text-transform:uppercase;letter-spacing:.16em;
  padding:18px 30px;border:1px solid var(--ink);
  background:var(--paper);color:var(--ink);
  transition:background .25s, color .25s, border-color .25s, transform .2s, box-shadow .25s;
  text-align:center;position:relative;overflow:hidden;
}
.landing-btn:hover{
  background:var(--ink);color:var(--paper);
  transform:translateY(-2px);
  box-shadow:0 12px 24px rgba(26,34,56,.2);
}
.landing-btn.primary{
  background:var(--ink);color:var(--paper);
  box-shadow:0 8px 20px rgba(26,34,56,.25);
}
.landing-btn.primary:hover{
  background:var(--accent);border-color:var(--accent);
  box-shadow:0 14px 32px rgba(192,57,43,.4);
}
.landing-btn .btn-arrow{
  display:inline-block;transition:transform .3s;
}
.landing-btn:hover .btn-arrow{transform:translateX(4px)}
.landing-btn.inline{padding:11px 20px;font-size:11px;margin-top:16px;align-self:flex-start}
.landing-note{
  font-family:var(--f-display);font-style:italic;font-size:14px;
  color:var(--ink-mute);margin-top:6px;
}

/* Индикатор "листайте" */
.landing-scroll{
  margin-top:44px;
  display:flex;flex-direction:column;align-items:center;gap:8px;
  font-family:var(--f-mono);font-size:10px;text-transform:uppercase;letter-spacing:.2em;
  color:var(--ink-mute);opacity:.7;
}
.scroll-arrow{
  font-size:18px;color:var(--accent);
  animation:scroll-bounce 1.8s ease-in-out infinite;
}
@keyframes scroll-bounce{
  0%, 100%{transform:translateY(0)}
  50%     {transform:translateY(6px)}
}

/* Анимации появления */
.anim-fade{
  opacity:0;animation:anim-fade .7s ease forwards;animation-delay:var(--d, 0s);
}
@keyframes anim-fade{
  from{opacity:0;transform:translateY(12px)}
  to  {opacity:1;transform:translateY(0)}
}
.anim-rise{
  opacity:0;transform:translateY(28px);
  animation:anim-rise .9s cubic-bezier(.2,.8,.2,1) forwards;
  animation-delay:var(--d, 0s);
}
@keyframes anim-rise{
  0%  {opacity:0;transform:translateY(28px) rotate(-1deg)}
  100%{opacity:1;transform:translateY(0) rotate(0)}
}

.landing-grid{
  display:grid;grid-template-columns:repeat(3, 1fr);gap:20px;
  margin-bottom:40px;
}
@media (max-width: 980px){
  .landing-grid{grid-template-columns:1fr 1fr;gap:18px}
}
.landing-card{
  background:var(--paper-2);border:1px solid var(--line);
  padding:28px 26px;display:flex;flex-direction:column;
}
.landing-card.featured{
  background:var(--paper);border:2px solid var(--ink);
  position:relative;
}
.landing-card.featured::before{
  content:"★";position:absolute;top:-10px;right:20px;
  background:var(--accent);color:var(--paper);
  width:24px;height:24px;display:flex;align-items:center;justify-content:center;
  font-size:12px;
}
.landing-card-kicker{
  font-family:var(--f-mono);font-size:10px;text-transform:uppercase;letter-spacing:.2em;
  color:var(--accent);margin-bottom:10px;
}
.landing-card h3{
  font-family:var(--f-display);font-weight:600;font-size:28px;
  margin-bottom:18px;letter-spacing:-0.015em;
}
.landing-features{
  list-style:none;padding:0;margin:0 0 20px;
  flex:1;
}
.landing-features li{
  padding:6px 0 6px 22px;position:relative;
  font-size:15px;line-height:1.5;color:var(--ink-soft);
  border-bottom:1px dotted var(--line);
}
.landing-features li:last-child{border-bottom:none}
.landing-features li::before{
  content:"→";position:absolute;left:0;top:6px;
  color:var(--accent);font-family:var(--f-mono);
}

.landing-subjects{
  padding:24px 26px;border:1px dashed var(--line);
  background:var(--paper-2);margin-bottom:32px;
}
.landing-subjects-label{
  font-family:var(--f-mono);font-size:10px;text-transform:uppercase;letter-spacing:.2em;
  color:var(--ink-mute);margin-bottom:12px;
}
.landing-subjects ul{
  list-style:none;padding:0;margin:0;
  display:flex;gap:28px;flex-wrap:wrap;
  font-family:var(--f-display);font-size:18px;font-style:italic;
  color:var(--ink-soft);
}
.landing-subjects li{display:flex;align-items:center;gap:10px}
.landing-dot{
  width:8px;height:8px;border-radius:50%;background:var(--accent);
  display:inline-block;
}

.landing-foot{
  text-align:center;
  font-family:var(--f-mono);font-size:11px;color:var(--ink-mute);
  letter-spacing:.14em;text-transform:uppercase;
  padding:20px 0;border-top:1px solid var(--line);
}

/* Paywall — упростим */
.paywall{
  background:var(--paper-3);border:1px dashed var(--accent);
  padding:28px 28px;margin:24px 0;text-align:center;
}
.paywall-kicker{
  font-family:var(--f-mono);font-size:10px;letter-spacing:.2em;
  text-transform:uppercase;color:var(--accent);margin-bottom:8px;
}
.paywall h4{
  font-family:var(--f-display);font-weight:500;font-style:italic;font-size:28px;
  color:var(--ink);margin-bottom:12px;
}
.paywall p{
  font-family:var(--f-body);color:var(--ink-mute);font-size:14px;
  max-width:56ch;margin:0 auto 18px;line-height:1.55;
}
.paywall-actions{
  display:flex;gap:10px;justify-content:center;flex-wrap:wrap;
}

/* ============ Переключатель Теория / Задачи ============ */
.view-switch{
  display:inline-flex;gap:0;margin-bottom:22px;
  border:1px solid var(--ink);
}
.view-switch-btn{
  all:unset;cursor:pointer;
  padding:10px 18px;
  font-family:var(--f-mono);font-size:11px;font-weight:500;
  text-transform:uppercase;letter-spacing:.16em;
  color:var(--ink);background:var(--paper);
  border-right:1px solid var(--ink);
  display:inline-flex;align-items:center;gap:8px;
  transition:background .15s, color .15s;
}
.view-switch-btn:last-child{border-right:none}
.view-switch-btn:hover{background:var(--paper-3)}
.view-switch-btn.active{background:var(--ink);color:var(--paper)}
.view-switch-btn b{color:var(--accent);font-weight:700}
.view-switch-btn.active b{color:var(--paper)}
.view-switch-badge{
  font-family:var(--f-mono);font-size:9px;letter-spacing:.08em;
  padding:2px 6px;background:var(--ok);color:var(--paper);
  text-transform:uppercase;
}
.view-switch-badge-new{
  background:var(--accent);
  animation:badge-pulse 2s ease-in-out infinite;
}
@keyframes badge-pulse{
  0%,100%{opacity:1}
  50%{opacity:.7}
}
.view-switch-sub{
  font-family:var(--f-display);font-style:italic;font-weight:400;
  font-size:11px;letter-spacing:0;text-transform:none;
  color:var(--ink-mute);margin-left:2px;
}
.view-switch-btn.active .view-switch-sub{color:var(--paper-2)}

/* ============ Теория — книжная вёрстка ============ */
.theory-loading{
  padding:40px 0;text-align:center;
  font-family:var(--f-display);font-style:italic;color:var(--ink-mute);font-size:16px;
}
.theory-placeholder{
  background:var(--paper-2);border:1px solid var(--line);
  padding:40px 32px;text-align:center;
}
.theory-placeholder .kicker{
  font-family:var(--f-mono);font-size:11px;text-transform:uppercase;
  letter-spacing:.2em;color:var(--accent);margin-bottom:10px;
}
.theory-placeholder h1{
  font-family:var(--f-display);font-weight:500;font-size:34px;margin-bottom:14px;
  letter-spacing:-0.02em;
}
.theory-placeholder-note{
  font-family:var(--f-display);font-style:italic;font-size:16px;
  color:var(--ink-mute);max-width:48ch;margin:0 auto 20px;line-height:1.5;
}

.theory-article{
  max-width:760px;
}
.theory-head{
  border-bottom:2px solid var(--ink);padding-bottom:22px;margin-bottom:32px;
}
.theory-head .kicker{
  font-family:var(--f-mono);font-size:11px;text-transform:uppercase;
  letter-spacing:.2em;color:var(--accent);margin-bottom:8px;
}
.theory-head .theme-title{
  margin-bottom:14px;font-size:42px;
}
.theory-actions{
  display:flex;gap:10px;flex-wrap:wrap;margin-top:14px;
}
.theory-level-switch{
  display:inline-flex;border:1px solid var(--ink);margin-top:10px;
}
.theory-level-btn{
  all:unset;cursor:pointer;padding:7px 14px;
  font-family:var(--f-mono);font-size:10px;font-weight:500;
  text-transform:uppercase;letter-spacing:.15em;
  color:var(--ink);background:var(--paper);
  border-right:1px solid var(--ink);transition:background .15s, color .15s;
}
.theory-level-btn:last-child{border-right:none}
.theory-level-btn:hover{background:var(--paper-3)}
.theory-level-btn.active{background:var(--ink);color:var(--paper)}

/* Оглавление */
.theory-toc-wrap{
  background:var(--paper-2);border-left:3px solid var(--accent);
  padding:14px 18px;margin-bottom:28px;
}
.theory-toc-label{
  font-family:var(--f-mono);font-size:10px;text-transform:uppercase;
  letter-spacing:.2em;color:var(--ink-mute);margin-bottom:8px;
}
.theory-toc{
  list-style:decimal;padding-left:22px;margin:0;
  font-family:var(--f-display);
}
.theory-toc li{margin:4px 0;line-height:1.4}
.theory-toc a{
  color:var(--ink-soft);text-decoration:none;
  font-size:16px;font-style:italic;font-weight:400;
  transition:color .15s;
}
.theory-toc a:hover{color:var(--accent)}

/* Контент теории */
.theory-content{
  font-family:var(--f-body);font-size:17px;line-height:1.7;
  color:var(--ink-soft);
}
.theory-content h1,
.theory-content h2,
.theory-content h3,
.theory-content h4{
  font-family:var(--f-display);color:var(--ink);
  font-variation-settings:"opsz" 72;
  letter-spacing:-0.01em;
}
.theory-content h1{display:none} /* основной h1 — в head */
.theory-content h2{
  font-size:28px;font-weight:600;margin:38px 0 14px;
  padding-top:14px;border-top:1px solid var(--line);
}
.theory-content h2:first-child{border-top:none;padding-top:0;margin-top:0}
.theory-content h3{
  font-size:21px;font-weight:500;font-style:italic;
  margin:28px 0 10px;
}
.theory-content h4{
  font-size:17px;font-weight:600;margin:20px 0 8px;
  text-transform:uppercase;letter-spacing:.1em;color:var(--ink);
}

.theory-content p{margin:12px 0}
.theory-content p strong{color:var(--ink);font-weight:600}
.theory-content ul,
.theory-content ol{margin:12px 0 12px 24px}
.theory-content li{margin:6px 0;line-height:1.65}

/* Формулы — центрированные блоки */
.theory-content .katex-display{
  margin:18px 0;padding:12px 16px;
  background:var(--paper-2);border-left:3px solid var(--accent);
}
.theory-content .katex{font-size:1.05em}

/* Цитаты — правила / важные заметки */
.theory-content blockquote{
  margin:20px 0;padding:14px 20px;
  border-left:3px solid var(--ink);background:var(--paper-2);
  font-family:var(--f-display);font-style:italic;font-size:16px;
  color:var(--ink-soft);
}
.theory-content blockquote p{margin:4px 0}

/* Inline code — для формул в тексте */
.theory-content code{
  font-family:var(--f-mono);font-size:14px;
  padding:1px 5px;background:var(--paper-3);
  color:var(--ink);
}
.theory-content pre{
  margin:16px 0;padding:14px 18px;
  background:var(--paper-2);border:1px solid var(--line);
  font-family:var(--f-mono);font-size:13px;line-height:1.5;
  overflow-x:auto;
}

/* Изображения */
.theory-content img{
  max-width:100%;margin:16px auto;display:block;
  border:1px solid var(--line);
}

/* Таблицы */
.theory-content table{
  border-collapse:collapse;margin:16px 0;
  font-family:var(--f-body);font-size:14px;
  background:var(--paper-2);
}
.theory-content th,
.theory-content td{
  border:1px solid var(--line);padding:8px 14px;text-align:left;
}
.theory-content th{background:var(--paper-3);font-weight:600}

/* Разделы-примеры (обычно через <h3>Пример N</h3>) — акцентно */
.theory-content h3:first-letter{color:var(--accent)}

.theory-foot{
  margin-top:50px;padding-top:24px;border-top:1px solid var(--ink);
  display:flex;gap:12px;flex-wrap:wrap;
}

/* ============ Streak widget ============ */
.streak-widget{margin:-8px 0 18px}
.streak-widget:empty{display:none}
.streak-row{
  display:flex;align-items:center;gap:14px;
  background:var(--paper-2);border:1px solid var(--line);
  padding:8px 14px;
}
.streak-main{display:flex;align-items:center;gap:8px;flex-shrink:0}
.streak-flame{font-size:18px;line-height:1}
.streak-nums{display:flex;align-items:baseline;gap:4px}
.streak-num{
  font-family:var(--f-display);font-weight:700;font-size:18px;
  color:var(--accent);line-height:1;
  font-variation-settings:"opsz" 144;
}
.streak-label{
  font-family:var(--f-mono);font-size:10px;text-transform:uppercase;
  letter-spacing:.12em;color:var(--ink-mute);
}
.streak-details-btn{
  all:unset;cursor:pointer;
  width:26px;height:26px;display:flex;align-items:center;justify-content:center;
  color:var(--ink-mute);font-size:16px;font-weight:700;
  border:1px solid var(--line);
  transition:background .15s, color .15s, border-color .15s;
  margin-left:4px;
}
.streak-details-btn:hover{background:var(--ink);color:var(--paper);border-color:var(--ink)}

/* Детальная модалка статистики */
.streak-details{display:flex;flex-direction:column;gap:18px;margin-top:4px}
.streak-big-stat{text-align:center;padding:14px 0;border-bottom:1px dotted var(--line)}
.streak-big-num{
  font-family:var(--f-display);font-weight:700;font-size:40px;color:var(--accent);
  line-height:1;letter-spacing:-0.02em;
}
.streak-big-label{
  font-family:var(--f-mono);font-size:10px;text-transform:uppercase;letter-spacing:.16em;
  color:var(--ink-mute);margin-top:6px;
}
.streak-mini-grid{
  display:grid;grid-template-columns:repeat(3, 1fr);gap:10px;
}
.streak-mini-cell{
  text-align:center;padding:12px 6px;
  background:var(--paper-2);border:1px solid var(--line);
}
.streak-mini-cell b{
  display:block;font-family:var(--f-display);font-weight:700;font-size:22px;
  color:var(--ink);line-height:1;margin-bottom:4px;
}
.streak-mini-cell span{
  font-family:var(--f-mono);font-size:9px;text-transform:uppercase;letter-spacing:.12em;
  color:var(--ink-mute);
}
.streak-calendar-label{
  font-family:var(--f-mono);font-size:10px;text-transform:uppercase;letter-spacing:.16em;
  color:var(--ink-mute);margin-bottom:8px;
}
.streak-calendar-grid{
  display:grid;grid-template-columns:repeat(15, 1fr);gap:4px;
}
.streak-calendar-grid .streak-day{
  width:auto;aspect-ratio:1;
}
.streak-extra{display:flex;gap:16px}
.streak-stat{
  display:flex;flex-direction:column;line-height:1.05;text-align:center;
}
.streak-stat b{
  font-family:var(--f-display);font-weight:600;font-size:18px;color:var(--ink);
  font-variation-settings:"opsz" 144;
}
.streak-stat span{
  font-family:var(--f-mono);font-size:9px;text-transform:uppercase;
  letter-spacing:.14em;color:var(--ink-mute);margin-top:2px;
}
.streak-stat-total{
  font-family:var(--f-mono);font-weight:400;
  font-size:.7em;color:var(--ink-mute);letter-spacing:0;
}
.streak-progress{
  display:flex;align-items:center;gap:8px;
  min-width:160px;flex:1;margin-left:auto;
  position:relative;
}
.streak-progress-track{
  flex:1;height:6px;background:var(--paper-3);
  border:1px solid var(--line);position:relative;overflow:hidden;
}
.streak-progress-fill{
  height:100%;background:var(--accent);
  transition:width .5s ease;
}
.streak-progress-label{
  font-family:var(--f-mono);font-size:11px;font-weight:500;
  color:var(--ink);min-width:38px;text-align:right;letter-spacing:.04em;
}
.streak-calendar{
  display:flex;gap:3px;align-items:center;
}
.streak-day{
  width:10px;height:24px;background:var(--paper-3);
  border-radius:2px;transition:background .2s;
}
.streak-day.active{background:var(--accent)}
.streak-day.today{outline:1px solid var(--ink);outline-offset:2px}

/* Record badge */
.record-badge{
  display:inline-block;padding:1px 7px;margin:0 2px;
  font-family:var(--f-mono);font-size:10px;font-weight:600;
  letter-spacing:.08em;text-transform:uppercase;
  background:var(--accent);color:var(--paper);
}

/* ============ Mode switch: разделитель и "primary" кнопка ============ */
.mode-switch .mode-primary{
  background:var(--ink);color:var(--paper);
  padding:14px 0 !important;
  font-family:var(--f-display) !important;font-size:16px !important;
  font-style:normal !important;font-weight:600 !important;
  text-align:center;
  display:block !important;
  margin:0 -14px 8px;
  text-indent:14px;
  border-bottom:none !important;
}
.mode-switch .mode-primary:hover{background:var(--accent);color:var(--paper) !important}
.mode-switch .mode-primary::after{display:none}
.mode-divider{
  font-family:var(--f-mono);font-size:9px;letter-spacing:.18em;text-transform:uppercase;
  color:var(--ink-mute);margin:14px 0 4px;padding-top:10px;
  border-top:1px dotted var(--line);
}
.mode-tutor-link{
  display:block;padding:12px 0;
  font-family:var(--f-display);font-size:15px;font-style:italic;
  color:var(--ink-soft);text-decoration:none;
  border-bottom:1px dotted var(--line);
  display:flex;justify-content:space-between;align-items:center;
}
.mode-tutor-link::after{content:"→";font-style:normal;color:var(--accent)}
.mode-tutor-link:hover{color:var(--accent)}

/* ============ Battle mode ============ */
.battle{margin-bottom:30px}
.battle-head{
  display:flex;justify-content:space-between;gap:20px;
  border-bottom:2px solid var(--ink);padding-bottom:18px;margin-bottom:24px;
  align-items:flex-end;flex-wrap:wrap;
}
.battle-title{
  font-family:var(--f-display);font-weight:500;font-size:34px;line-height:1;
  letter-spacing:-0.02em;
  font-variation-settings:"opsz" 144;
}
.battle-title em{font-style:italic;color:var(--accent);font-weight:400}
.battle-subtitle{
  font-family:var(--f-display);font-style:italic;color:var(--ink-mute);
  font-size:15px;margin-top:6px;
}
.battle-actions{display:flex;gap:10px;flex-wrap:wrap}
.battle-empty{
  padding:40px 24px;text-align:center;background:var(--paper-2);
  border:1px solid var(--line);
}
.battle-empty h2{
  font-family:var(--f-display);font-size:24px;margin-bottom:10px;
}

/* ============ Shortcuts help overlay ============ */
.shortcuts-help{
  position:fixed;inset:0;background:rgba(26,34,56,.45);
  z-index:100;display:flex;align-items:center;justify-content:center;
  padding:20px;
}
.shortcuts-body{
  background:var(--paper);border:1px solid var(--ink);
  padding:24px 28px;min-width:300px;max-width:400px;
  box-shadow:0 20px 60px rgba(0,0,0,.3);
}
.shortcuts-head{
  display:flex;justify-content:space-between;align-items:center;
  margin-bottom:14px;padding-bottom:10px;border-bottom:1px solid var(--line);
}
.shortcuts-head h4{
  font-family:var(--f-display);font-weight:600;font-size:18px;
}
.shortcuts-close{
  all:unset;cursor:pointer;font-size:18px;color:var(--ink-mute);
  width:28px;height:28px;display:flex;align-items:center;justify-content:center;
}
.shortcuts-close:hover{color:var(--accent)}
.shortcuts-body dl{
  display:grid;grid-template-columns:auto 1fr;gap:10px 20px;
  font-family:var(--f-body);font-size:14px;
}
.shortcuts-body dt{display:flex;gap:4px;align-items:center}
.shortcuts-body dd{color:var(--ink-soft);align-self:center}
.shortcuts-body kbd{
  font-family:var(--f-mono);font-size:11px;font-weight:600;
  padding:3px 8px;background:var(--paper-2);border:1px solid var(--line);
  border-bottom-width:2px;
}

.variant-exit{
  padding:10px 14px !important;
  font-size:16px !important;
  font-family:var(--f-body) !important;
  letter-spacing:0 !important;
  text-transform:none !important;
  min-width:44px;
}

/* ============ Exam modal ============ */
.exam-modal-body{min-width:440px;max-width:560px}
.exam-options{display:flex;flex-direction:column;gap:10px;margin-top:6px}
.exam-option{
  all:unset;cursor:pointer;display:flex;flex-direction:column;gap:6px;
  padding:16px 18px;border:1px solid var(--line);background:var(--paper-2);
  transition:background .15s, border-color .15s, transform .1s;
}
.exam-option:hover{background:var(--paper-3);border-color:var(--ink)}
.exam-option:active{transform:translateY(1px)}
.exam-option.primary{background:var(--ink);color:var(--paper);border-color:var(--ink)}
.exam-option.primary:hover{background:var(--accent);border-color:var(--accent)}
.exam-option-title{
  font-family:var(--f-display);font-weight:600;font-size:18px;line-height:1.2;
}
.exam-option-desc{
  font-family:var(--f-body);font-size:13px;line-height:1.45;color:var(--ink-mute);
}
.exam-option.primary .exam-option-desc{color:rgba(244,237,224,.75)}

/* ============ Variant: самооценка части 2 ============ */
.part2-self-score{
  margin-top:14px;padding:14px 16px;background:var(--paper);
  border:1px solid var(--line);
}
.part2-self-label{
  font-family:var(--f-display);font-style:italic;font-size:14px;
  color:var(--ink-soft);margin-bottom:10px;
}
.part2-score-group{
  display:flex;flex-wrap:wrap;align-items:center;gap:8px;
}
.part2-score-btn{
  all:unset;cursor:pointer;
  font-family:var(--f-mono);font-weight:600;font-size:16px;
  width:40px;height:40px;
  display:flex;align-items:center;justify-content:center;
  border:1px solid var(--ink);background:var(--paper);color:var(--ink);
  transition:background .15s, color .15s;
}
.part2-score-btn:hover{background:var(--paper-3)}
.part2-score-btn.active{background:var(--accent);border-color:var(--accent);color:var(--paper)}
.part2-score-max{
  font-family:var(--f-mono);font-size:11px;letter-spacing:.1em;text-transform:uppercase;
  color:var(--ink-mute);margin-left:6px;
}

/* Итоговая карточка — разбивка по частям */
.score-breakdown{
  margin-top:18px;padding-top:14px;border-top:1px dotted var(--line);
  display:flex;flex-direction:column;gap:4px;
}
.score-row{
  display:flex;justify-content:space-between;align-items:baseline;
  font-family:var(--f-body);font-size:13px;color:var(--ink-soft);
  padding:4px 0;
}
.score-row b{
  font-family:var(--f-mono);font-weight:600;color:var(--ink);
}
.score-part2-note{
  margin-top:14px;font-family:var(--f-display);font-style:italic;font-size:13px;
  color:var(--ink-mute);line-height:1.5;
}
.score-num-sub{
  font-size:20px;color:var(--ink-mute);margin-left:4px;font-weight:500;
}

/* ============ Subject switch ============ */
.subject-switch{
  display:flex;gap:0;margin:-4px 0 20px;
  border:1px solid var(--ink);background:var(--paper-2);
}
.subject-btn{
  all:unset;cursor:pointer;flex:1;
  padding:12px 18px;text-align:center;
  border-right:1px solid var(--line);
  display:flex;flex-direction:column;gap:2px;align-items:center;
  transition:background .15s, color .15s;
}
.subject-btn:last-child{border-right:none}
.subject-btn:hover{background:var(--paper-3)}
.subject-btn.active{background:var(--ink);color:var(--paper)}
.subject-btn.active .subject-btn-title{color:var(--accent)}
.subject-btn-title{
  font-family:var(--f-display);font-weight:600;font-size:16px;line-height:1;
  letter-spacing:-0.01em;
  font-variation-settings:"opsz" 144;
}
.subject-btn-meta{
  font-family:var(--f-mono);font-size:10px;text-transform:uppercase;letter-spacing:.14em;
  color:var(--ink-mute);
}
.subject-btn.active .subject-btn-meta{color:var(--paper-3);opacity:.8}

/* ============ Auth badge ============ */
.auth-badge{
  display:flex;justify-content:flex-end;margin:-12px 0 22px;
  font-family:var(--f-body);
}
.auth-plan-badge{
  display:inline-block;padding:1px 7px;margin-left:6px;
  font-family:var(--f-mono);font-size:9px;font-weight:600;
  letter-spacing:.1em;text-transform:uppercase;
  background:var(--accent);color:var(--paper);
  vertical-align:middle;
}
.auth-plan-badge.demo{background:var(--ink-mute)}
.auth-anon, .auth-signed{
  display:flex;align-items:center;gap:12px;
  background:var(--paper-2);border:1px solid var(--line);
  padding:8px 14px;
}
.auth-anon-label{
  font-family:var(--f-display);font-style:italic;font-size:13px;
  color:var(--ink-mute);max-width:320px;line-height:1.35;
}
.auth-signin{
  all:unset;cursor:pointer;
  display:inline-flex;align-items:center;gap:10px;
  font-family:var(--f-body);font-size:13px;font-weight:500;
  padding:9px 16px;border:1px solid var(--ink);
  background:var(--ink);color:var(--paper);
  transition:background .2s, color .2s;
}
.auth-signin:hover{background:var(--accent);border-color:var(--accent)}
.auth-signin.yandex{background:#fc3f1d;border-color:#fc3f1d;color:#fff}
.auth-signin.yandex:hover{background:#e0351a;border-color:#e0351a}
.auth-signin .ya-logo{
  display:inline-flex;align-items:center;justify-content:center;
  width:22px;height:22px;border-radius:50%;
  background:#fff;color:#fc3f1d;
  font-family:var(--f-display);font-weight:700;font-size:14px;line-height:1;
}

.auth-avatar{
  width:32px;height:32px;border-radius:50%;object-fit:cover;
  border:1px solid var(--line);flex-shrink:0;
}
.auth-avatar.placeholder{
  display:flex;align-items:center;justify-content:center;
  background:var(--ink);color:var(--paper);
  font-family:var(--f-display);font-weight:600;font-size:14px;
}
.auth-info{display:flex;flex-direction:column;line-height:1.15;min-width:0}
.auth-name{
  font-family:var(--f-display);font-weight:500;font-size:14px;color:var(--ink);
  white-space:nowrap;text-overflow:ellipsis;overflow:hidden;max-width:180px;
}
.auth-email{
  font-family:var(--f-mono);font-size:10px;color:var(--ink-mute);
  letter-spacing:.04em;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;max-width:200px;
}
.auth-signout{
  all:unset;cursor:pointer;
  font-family:var(--f-mono);font-size:10px;text-transform:uppercase;letter-spacing:.14em;
  color:var(--ink-mute);padding:6px 10px;border:1px solid var(--line);
  transition:color .15s, border-color .15s;
}
.auth-signout:hover{color:var(--accent);border-color:var(--accent)}

/* ============ Sticker notes ============ */
.sticker-add{
  all:unset;
  position:fixed;right:24px;bottom:24px;z-index:60;
  cursor:pointer;
  box-sizing:border-box;
  width:52px;height:52px;border-radius:50%;
  background:#f7e08a;color:#4a3a10;
  border:1px solid #c6a74b;
  box-shadow:0 4px 12px rgba(40,25,0,.18), 0 1px 3px rgba(0,0,0,.08);
  display:flex;align-items:center;justify-content:center;
  transition:transform .15s ease, box-shadow .15s ease;
}
.sticker-add:hover{
  transform:translateY(-2px) rotate(-4deg);
  box-shadow:0 6px 16px rgba(40,25,0,.24), 0 2px 4px rgba(0,0,0,.1);
}
.sticker-add-icon{
  font-family:var(--f-display);font-size:22px;font-weight:600;line-height:1;
}
.sticker-add-dot{
  position:absolute;top:6px;right:6px;
  width:10px;height:10px;border-radius:50%;
  background:transparent;border:1px solid transparent;
  transition:background .15s, border-color .15s;
}
.sticker-add.has-notes .sticker-add-dot{
  background:var(--accent);border-color:var(--paper);
}

.sticker-note{
  position:absolute;z-index:40;
  font-family:var(--f-body);
}
.sticker-note.dragging{user-select:none;z-index:45}

.sticker-note.open .sticker-body{
  width:300px;max-width:calc(100vw - 32px);
  background:#f7e08a;
  border:1px solid #c6a74b;
  box-shadow:0 14px 40px rgba(40,25,0,.28), 0 4px 10px rgba(0,0,0,.12);
  padding:0;
  transform:rotate(-1deg);
  color:#32270a;
}
.sticker-head{
  display:flex;justify-content:space-between;align-items:center;
  padding:10px 14px;cursor:move;
  background:linear-gradient(180deg, rgba(255,255,255,.22), transparent);
  border-bottom:1px dashed rgba(80,55,10,.35);
  touch-action:none;
}
.sticker-title{
  font-family:var(--f-display);font-style:italic;font-weight:500;font-size:13px;
  color:#4a3a10;letter-spacing:.02em;
}
.sticker-actions{display:flex;gap:2px}
.sticker-close, .sticker-min{
  all:unset;cursor:pointer;
  font-size:14px;color:#4a3a10;opacity:.7;
  width:22px;height:22px;display:flex;align-items:center;justify-content:center;
  border-radius:4px;line-height:1;
}
.sticker-min{font-size:18px;font-weight:700}
.sticker-close:hover, .sticker-min:hover{opacity:1;background:rgba(0,0,0,.06)}
.sticker-text{
  width:100%;min-height:140px;max-height:360px;resize:vertical;
  border:none;outline:none;background:transparent;
  font-family:var(--f-display);font-size:15px;line-height:1.5;
  color:#2a1f06;padding:14px;
  font-weight:400;box-sizing:border-box;
}
.sticker-text::placeholder{color:rgba(74,58,16,.5);font-style:italic}
.sticker-foot{
  display:flex;justify-content:space-between;align-items:center;
  padding:8px 14px;
  border-top:1px dashed rgba(80,55,10,.35);
}
.sticker-clear{
  all:unset;cursor:pointer;
  font-family:var(--f-mono);font-size:10px;text-transform:uppercase;letter-spacing:.12em;
  color:#4a3a10;opacity:.75;
}
.sticker-clear:hover{opacity:1;color:var(--accent)}

.sticker-note.collapsed{
  display:inline-flex;align-items:center;
}
.sticker-chip{
  all:unset;cursor:pointer;
  display:inline-flex;align-items:center;gap:6px;
  padding:6px 10px;
  background:#f7e08a;color:#4a3a10;
  border:1px solid #c6a74b;border-radius:14px;
  box-shadow:0 3px 8px rgba(40,25,0,.18);
  font-family:var(--f-display);font-size:12px;font-style:italic;
  max-width:160px;
  touch-action:none;
  transition:transform .15s ease, box-shadow .15s ease;
}
.sticker-chip:hover{transform:translateY(-1px) rotate(-2deg)}
.sticker-chip-icon{font-weight:600;font-size:13px;line-height:1}
.sticker-chip-text{
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
.sticker-chip-close{
  all:unset;cursor:pointer;
  margin-left:4px;width:18px;height:18px;
  display:inline-flex;align-items:center;justify-content:center;
  font-size:11px;color:#4a3a10;opacity:.55;border-radius:50%;
}
.sticker-chip-close:hover{opacity:1;background:rgba(0,0,0,.08)}

.sticker-hint{
  font-family:var(--f-mono);font-size:9px;letter-spacing:.1em;
  text-transform:uppercase;color:rgba(74,58,16,.55);
}

/* ============ Репетитор+ карточка на лендинге ============ */
.landing-card.tutor{
  background:var(--ink);color:var(--paper);
  border:1px solid var(--ink);position:relative;
  overflow:hidden;
}
.landing-card.tutor::after{
  content:"PDF";position:absolute;top:14px;right:14px;
  font-family:var(--f-mono);font-size:9px;letter-spacing:.2em;
  padding:3px 8px;border:1px solid var(--paper);color:var(--paper);opacity:.7;
}
.landing-card.tutor .landing-card-kicker{color:var(--accent)}
.landing-card.tutor h3{color:var(--paper)}
.landing-card.tutor .tutor-plus{color:var(--accent);font-weight:700;margin-left:2px}
.landing-card.tutor .landing-features li{
  color:rgba(250,250,244,.82);
  border-bottom-color:rgba(250,250,244,.14);
}
.landing-card.tutor .landing-features li::before{color:var(--accent)}
.landing-card.tutor .landing-btn{
  background:var(--paper);color:var(--ink);border-color:var(--paper);
}
.landing-card.tutor .landing-btn:hover{
  background:var(--accent);color:var(--paper);border-color:var(--accent);
}

/* ============ Страница Репетитор+ ============ */
.tutor-mode .masthead,
.tutor-mode .subject-switch,
.tutor-mode .streak-widget,
.tutor-mode .auth-badge,
.tutor-mode .task-selector,
.tutor-mode .themes,
.tutor-mode .colophon,
/* Стикеры и карандаш — только на странице с задачами */
.tutor-mode .sticker-note,
.tutor-mode .sticker-add,
.landing-mode .sticker-note,
.landing-mode .sticker-add{display:none !important}
.tutor-mode .layout{grid-template-columns:1fr}
.tutor-mode .shell{padding-top:24px}

.tutor-page{max-width:1180px;margin:0 auto;padding:0 4px 60px}

.tutor-pagehead{
  display:grid;grid-template-columns:1fr auto;gap:20px;align-items:end;
  border-bottom:2px solid var(--ink);padding:0 0 22px;margin-bottom:28px;
}
.tutor-pagehead h1.tutor-pagetitle{
  font-family:var(--f-display);font-weight:500;font-size:42px;line-height:1;
  margin:6px 0 6px;letter-spacing:-.025em;
}
.tutor-pagehead h1.tutor-pagetitle em{font-style:italic;font-weight:400;color:var(--accent)}
.tutor-pagelead{
  font-family:var(--f-body);font-size:14.5px;line-height:1.55;
  color:var(--ink-mute);max-width:64ch;margin:8px 0 0;
}
.tutor-pageactions{display:flex;gap:10px;flex-wrap:wrap;align-items:center}

.tutor-kicker{
  font-family:var(--f-mono);font-size:10px;letter-spacing:.2em;
  text-transform:uppercase;color:var(--accent);
}

.tutor-layout{
  display:grid;grid-template-columns:minmax(0, 1fr) 360px;gap:28px;
  align-items:start;
}

/* --- Форма --- */
.tutor-form{display:flex;flex-direction:column;gap:18px;min-width:0}

.tutor-section{
  display:grid;grid-template-columns:44px 1fr;gap:16px;
  padding:20px 22px;background:var(--paper-2);border:1px solid var(--line);
}
.tutor-section[hidden]{display:none}
.tutor-section-num{
  font-family:var(--f-display);font-weight:700;font-size:26px;color:var(--accent);
  line-height:1;
}
.tutor-section-body{min-width:0}
.tutor-section-title{
  font-family:var(--f-display);font-weight:500;font-size:20px;letter-spacing:-.01em;
  margin-bottom:4px;
}
.tutor-section-sub{
  font-family:var(--f-display);font-style:italic;font-size:13px;color:var(--ink-mute);
  margin-bottom:12px;
}

.tutor-row{display:flex;gap:10px;flex-wrap:wrap}

.tutor-chip{
  display:inline-flex;align-items:center;gap:8px;cursor:pointer;
  padding:10px 18px;border:1px solid var(--line);
  background:var(--paper);
  font-family:var(--f-display);font-size:15px;
  transition:border-color .15s, background .15s;
}
.tutor-chip input{
  appearance:none;-webkit-appearance:none;
  width:14px;height:14px;border:1.5px solid var(--ink-mute);border-radius:50%;
  position:relative;cursor:pointer;margin:0;
}
.tutor-chip input:checked{border-color:var(--accent)}
.tutor-chip input:checked::after{
  content:"";position:absolute;inset:2px;border-radius:50%;background:var(--accent);
}
.tutor-chip:has(input:checked){border-color:var(--ink);background:var(--paper-3)}

.tutor-task-grid{
  display:grid;grid-template-columns:repeat(auto-fill, minmax(78px, 1fr));
  gap:4px;border:1px solid var(--ink);background:var(--paper-3);
}
.tutor-task{
  all:unset;cursor:pointer;
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  gap:2px;padding:10px 4px;min-height:60px;
  background:var(--paper);color:var(--ink);position:relative;
  border-right:1px solid var(--line-soft);border-bottom:1px solid var(--line-soft);
  transition:background .15s, color .15s;
}
.tutor-task:hover{background:var(--paper-3)}
.tutor-task.active{background:var(--ink);color:var(--paper)}
.tutor-task.active .tutor-task-n{color:var(--accent)}
.tutor-task.active .tutor-task-short{color:rgba(250,250,244,.7)}
.tutor-task-n{
  font-family:var(--f-display);font-weight:700;font-size:18px;line-height:1;
}
.tutor-task-short{
  font-family:var(--f-mono);font-size:9px;letter-spacing:.05em;
  text-transform:uppercase;color:var(--ink-mute);line-height:1.2;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%;
}
.tutor-task.has-theory::after{
  content:"";position:absolute;top:4px;right:4px;width:5px;height:5px;
  border-radius:50%;background:var(--accent);
}

.tutor-toolbar-row{
  display:flex;gap:14px;margin-bottom:10px;
  font-family:var(--f-mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase;
}
.tutor-linkbtn{
  all:unset;cursor:pointer;color:var(--ink-mute);
  border-bottom:1px dotted var(--ink-mute);
}
.tutor-linkbtn:hover{color:var(--accent);border-bottom-color:var(--accent)}

.tutor-checks{display:flex;flex-direction:column;gap:6px}

.tutor-check{
  display:grid;grid-template-columns:20px auto 1fr;
  gap:12px;align-items:baseline;
  padding:10px 14px;cursor:pointer;
  border:1px solid var(--line-soft);background:var(--paper);
  transition:border-color .15s, background .15s;
}
.tutor-check:hover{border-color:var(--line);background:var(--paper-3)}
.tutor-check:has(input:checked){border-color:var(--ink)}
.tutor-check input[type="checkbox"]{
  appearance:none;-webkit-appearance:none;
  width:16px;height:16px;border:1.5px solid var(--ink-mute);border-radius:2px;
  cursor:pointer;margin:0;position:relative;background:var(--paper);
}
.tutor-check input[type="checkbox"]:checked{border-color:var(--accent);background:var(--accent)}
.tutor-check input[type="checkbox"]:checked::after{
  content:"✓";position:absolute;inset:0;display:flex;align-items:center;justify-content:center;
  color:var(--paper);font-size:11px;font-weight:700;
}
.tutor-check-code{
  font-family:var(--f-mono);font-size:10px;color:var(--accent);
  letter-spacing:.08em;white-space:nowrap;
}
.tutor-check-title{font-family:var(--f-display);font-size:15px;color:var(--ink)}
/* Карточка задачи с полным текстом — не grid, а flex:
   слева колонка с чекбоксом и номером, справа весь текст. */
.tutor-check-problem{
  display:flex !important;align-items:flex-start;gap:14px;
  padding:14px 16px;
}
.tutor-check-checkbox{
  display:flex;flex-direction:column;align-items:center;gap:8px;
  flex-shrink:0;padding-top:2px;
}
.tutor-check-body{flex:1;min-width:0}
.tutor-check-num{
  font-family:var(--f-display);font-weight:700;font-size:18px;color:var(--accent);
  line-height:1;
}
.tutor-check-src{
  font-family:var(--f-mono);font-size:9px;letter-spacing:.1em;
  text-transform:uppercase;color:var(--ink-mute);
  margin-bottom:6px;
}
.tutor-check-fulltext{
  font-family:var(--f-body);font-size:14px;line-height:1.6;color:var(--ink);
  word-break:break-word;
}
.tutor-check-fulltext p{margin:6px 0}
.tutor-check-fulltext .fig{
  margin:8px 0;padding:8px;background:var(--paper-2);
  border:1px dashed var(--line);max-width:100%;overflow-x:auto;
}
.tutor-check-fulltext .fig svg{max-width:100%;height:auto}
.tutor-check-fulltext table{
  border-collapse:collapse;margin:8px 0;font-family:var(--f-mono);font-size:12px;
  background:var(--paper-2);display:block;overflow-x:auto;max-width:100%;
}
.tutor-check-fulltext table td, .tutor-check-fulltext table th{
  border:1px solid var(--line);padding:4px 8px;text-align:center;
}
.tutor-check-fulltext table th{background:var(--paper-3);font-weight:600}
.tutor-check-fulltext .katex-display{margin:10px 0;overflow-x:auto}
.tutor-check-answer{
  margin-top:10px;padding-top:8px;border-top:1px dotted var(--line);
  font-family:var(--f-body);font-size:13px;color:var(--ink-mute);
}
.tutor-check-answer b{color:var(--ink);font-weight:600;font-family:var(--f-mono)}
.tutor-check-answer.part2{font-style:italic;color:var(--accent)}

.tutor-options{display:flex;flex-direction:column;gap:10px}
.tutor-check-inline{
  display:inline-flex;align-items:center;gap:10px;cursor:pointer;
  font-size:14px;color:var(--ink-soft);
}
.tutor-check-inline input{
  appearance:none;-webkit-appearance:none;
  width:16px;height:16px;border:1.5px solid var(--ink-mute);border-radius:2px;
  cursor:pointer;margin:0;position:relative;background:var(--paper);
}
.tutor-check-inline input:checked{border-color:var(--accent);background:var(--accent)}
.tutor-check-inline input:checked::after{
  content:"✓";position:absolute;inset:0;display:flex;align-items:center;justify-content:center;
  color:var(--paper);font-size:11px;font-weight:700;
}

.tutor-two-col{
  display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:4px;
}
.tutor-field-input{display:flex;flex-direction:column;gap:4px}
.tutor-input-label{
  font-family:var(--f-mono);font-size:9px;letter-spacing:.16em;
  text-transform:uppercase;color:var(--ink-mute);
}
.tutor-field-input input[type="text"]{
  all:unset;padding:9px 12px;
  border:1px solid var(--line);background:var(--paper);
  font-family:var(--f-display);font-size:14px;color:var(--ink);
}
.tutor-field-input input[type="text"]:focus{border-color:var(--accent)}

/* --- Сайдбар со сводкой и превью --- */
.tutor-side{
  display:flex;flex-direction:column;gap:16px;
  position:sticky;top:20px;
}

.tutor-summary-card{
  background:var(--ink);color:var(--paper);
  padding:22px 22px 20px;border:1px solid var(--ink);
  display:flex;flex-direction:column;gap:14px;
}
.tutor-summary-card .tutor-kicker{color:var(--accent)}
.tutor-summary{
  font-family:var(--f-display);color:var(--paper);
}
.tutor-summary-big{
  font-family:var(--f-display);font-size:22px;letter-spacing:-.01em;font-weight:500;
}
.tutor-summary-big b{font-weight:500}
.tutor-summary-sub{
  font-family:var(--f-display);font-style:italic;font-size:14px;
  color:rgba(250,250,244,.7);margin-top:2px;
}
.tutor-summary-list{
  list-style:none;padding:0;margin:8px 0 0;
  display:grid;grid-template-columns:1fr 1fr;gap:6px 14px;
}
.tutor-summary-list li{
  display:flex;justify-content:space-between;align-items:baseline;gap:8px;
  padding:6px 0;border-bottom:1px dotted rgba(250,250,244,.2);
  font-size:12px;
}
.tutor-summary-list li span{
  font-family:var(--f-mono);font-size:9px;letter-spacing:.15em;
  text-transform:uppercase;color:rgba(250,250,244,.6);
}
.tutor-summary-list li b{
  font-family:var(--f-display);font-weight:500;font-size:13px;color:var(--paper);
}

.tutor-summary-card .tutor-btn.full{width:100%;text-align:center;box-sizing:border-box}
.tutor-hint{
  font-family:var(--f-display);font-style:italic;font-size:12px;
  color:rgba(250,250,244,.65);line-height:1.45;
}

.tutor-preview-card{
  background:var(--paper-2);border:1px solid var(--line);padding:18px 20px;
}
.tutor-preview-body{margin-top:10px}
.tutor-preview-empty{
  font-family:var(--f-display);font-style:italic;font-size:13px;color:var(--ink-mute);
}
.tutor-preview-title{
  font-family:var(--f-display);font-weight:500;font-size:18px;line-height:1.1;
  letter-spacing:-.01em;
}
.tutor-preview-meta{
  font-family:var(--f-mono);font-size:9px;letter-spacing:.15em;text-transform:uppercase;
  color:var(--ink-mute);margin-top:4px;
}
.tutor-preview-list{
  display:flex;flex-direction:column;gap:6px;margin-top:12px;
}
.tutor-preview-line{
  display:flex;justify-content:space-between;gap:10px;padding:6px 0;
  border-bottom:1px dotted var(--line);font-size:12px;
}
.tutor-preview-line span{
  font-family:var(--f-mono);font-size:9px;letter-spacing:.14em;text-transform:uppercase;
  color:var(--ink-mute);
}
.tutor-preview-line b{
  font-family:var(--f-display);font-weight:500;color:var(--ink);font-size:13px;
}
.tutor-preview-problems{
  margin-top:14px;padding-top:10px;border-top:1px solid var(--line);
  display:flex;flex-direction:column;gap:4px;
}
.tutor-preview-problem{
  display:grid;grid-template-columns:28px 1fr;gap:8px;align-items:baseline;
  font-size:11.5px;line-height:1.4;color:var(--ink-soft);padding:4px 0;
}
.tutor-preview-pn{
  font-family:var(--f-display);font-weight:700;font-size:13px;color:var(--accent);
}
.tutor-preview-ptext{
  overflow:hidden;text-overflow:ellipsis;display:-webkit-box;
  -webkit-line-clamp:2;-webkit-box-orient:vertical;
}
.tutor-preview-more{
  font-family:var(--f-display);font-style:italic;font-size:12px;color:var(--ink-mute);
  margin-top:6px;
}

.tutor-btn{
  all:unset;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;
  padding:12px 22px;font-family:var(--f-mono);
  font-size:11px;font-weight:500;letter-spacing:.16em;
  text-transform:uppercase;
  background:var(--paper);color:var(--ink);border:1px solid var(--ink);
  transition:background .18s, color .18s, border-color .18s;
}
.tutor-btn:hover:not(:disabled){background:var(--ink);color:var(--paper)}
.tutor-btn.primary{background:var(--accent);color:var(--paper);border-color:var(--accent)}
.tutor-btn.primary:hover:not(:disabled){background:var(--ink);border-color:var(--ink)}
.tutor-btn.ghost{background:transparent}
.tutor-btn.ghost:hover{background:var(--ink);color:var(--paper)}
.tutor-btn:disabled{opacity:.35;cursor:not-allowed}

@media (max-width: 980px){
  .tutor-layout{grid-template-columns:1fr}
  .tutor-side{position:static}
}
@media (max-width: 700px){
  .tutor-pagehead{grid-template-columns:1fr;gap:14px;padding-bottom:16px;margin-bottom:20px}
  .tutor-pagehead h1.tutor-pagetitle{font-size:30px}
  .tutor-section{padding:16px 14px;grid-template-columns:32px 1fr;gap:12px}
  .tutor-section-num{font-size:22px}
  .tutor-section-title{font-size:17px}
  .tutor-two-col{grid-template-columns:1fr}
  .tutor-summary-list{grid-template-columns:1fr}
  .tutor-pageactions{width:100%}
  .tutor-pageactions .tutor-btn{flex:1;text-align:center}
  .tutor-check-problem{padding:12px 12px;gap:10px}
  .tutor-check-fulltext{font-size:13px;line-height:1.55}
}
