/* Пособие ОСМ · мини-апп Telegram · «Мягкий премиум», только светлая тема */

/* ---------- шрифты (самохостинг, подмножества кириллица + латиница) ---------- */
@font-face{font-family:"Cormorant Garamond";font-style:italic;font-weight:500;font-display:swap;src:url(fonts/cormorant-italic-cyrillic.woff2?v=ae92c749) format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}
@font-face{font-family:"Cormorant Garamond";font-style:italic;font-weight:500;font-display:swap;src:url(fonts/cormorant-italic-latin.woff2?v=b61f1c3b) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Cormorant Garamond";font-style:normal;font-weight:500 600;font-display:swap;src:url(fonts/cormorant-cyrillic.woff2?v=ac78c6c2) format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}
@font-face{font-family:"Cormorant Garamond";font-style:normal;font-weight:500 600;font-display:swap;src:url(fonts/cormorant-latin.woff2?v=74db058f) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Onest";font-style:normal;font-weight:400 600;font-display:swap;src:url(fonts/onest-cyrillic.woff2?v=0b4bfaa1) format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}
@font-face{font-family:"Onest";font-style:normal;font-weight:400 600;font-display:swap;src:url(fonts/onest-latin.woff2?v=44aca66b) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}

/* === ОСМ · Мягкий премиум · общие токены (не править локально) === */
:root{
  color-scheme:light;
  --stone:#F4F2EE; --stone-2:#ECE8E1; --paper:#FCFBF8;
  --ink:#2A2925; --ink-2:#5F5A52; --ink-3:#8C867C;
  --line:#E2DCD2; --line-2:#D3CBBE;
  --sage:#7F9A86; --sage-deep:#3F5E4A; --sage-soft:#E3ECE4;
  --bronze:#A97A4E; --bronze-deep:#7A5532; --bronze-soft:#F2E8DC;
  --rose:#C58B7E; --rose-deep:#8E4A3E; --rose-soft:#F5E6E1;
  --f-display:"Cormorant Garamond","Cormorant",Georgia,"Times New Roman",serif;
  --f-body:"Onest",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
  --fs-0:13px; --fs-1:15px; --fs-2:17.5px; --fs-3:20px;
  --fs-h3:19px; --fs-h2:clamp(30px,4.2vw,44px); --fs-h1:clamp(42px,7.4vw,84px);
  --s-1:4px; --s-2:8px; --s-3:12px; --s-4:16px; --s-5:20px; --s-6:28px; --s-7:36px; --s-8:48px; --s-9:72px; --s-10:104px;
  --r-sm:10px; --r-md:16px; --r-lg:22px; --r-xl:32px; --r-pill:999px;
  --shadow-1:0 1px 2px rgba(62,52,40,.05),0 6px 20px -10px rgba(62,52,40,.14);
  --shadow-2:0 2px 4px rgba(62,52,40,.06),0 18px 40px -16px rgba(62,52,40,.22);
  --ease:cubic-bezier(.22,1,.36,1); --ease-io:cubic-bezier(.65,0,.35,1);
  --d-1:160ms; --d-2:280ms; --d-3:520ms; --d-4:900ms;
  --col:64ch; --wide:1080px;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--stone);color:var(--ink);font-family:var(--f-body);font-size:var(--fs-2);line-height:1.7;
  -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;
  padding-left:max(20px,env(safe-area-inset-left,0px));padding-right:max(20px,env(safe-area-inset-right,0px))}
h1,h2{font-family:var(--f-display);font-weight:600;line-height:1.04;letter-spacing:-.01em;text-wrap:balance;margin:0;color:var(--ink)}
h1{font-size:var(--fs-h1)} h2{font-size:var(--fs-h2);line-height:1.1}
h1 em,h2 em{font-style:italic;font-weight:500;color:var(--bronze-deep)}
h3{font-family:var(--f-body);font-size:var(--fs-h3);font-weight:600;line-height:1.35;margin:0}
p{margin:0;text-wrap:pretty}
a{color:var(--sage-deep);text-decoration-thickness:1px;text-underline-offset:3px}
a:hover{color:var(--ink)}
::selection{background:var(--bronze-soft)}
:focus-visible{outline:2px solid var(--sage-deep);outline-offset:3px;border-radius:6px}
img{max-width:100%;height:auto;display:block}

.eyebrow{font-size:12px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--bronze-deep)}
.lead{font-size:var(--fs-3);line-height:1.6;color:var(--ink-2);max-width:var(--col)}
.muted{color:var(--ink-2)}
.col{max-width:var(--col)}
.num{font-family:var(--f-display);font-style:italic;font-weight:500;color:var(--bronze)}
.mark{display:flex;align-items:center;gap:var(--s-3);color:var(--bronze-deep)}
.mark::before{content:"";width:48px;height:1px;background:var(--bronze)}
.mark .num{font-size:28px;line-height:1}

.card{background:var(--paper);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--shadow-1)}
.plate{background:var(--paper);border:1px solid var(--line);border-radius:var(--r-xl);box-shadow:var(--shadow-1);padding:12px;margin:0}
.plate img{border-radius:calc(var(--r-xl) - 10px);mix-blend-mode:multiply;width:100%}
.plate figcaption{padding:var(--s-3) var(--s-3) var(--s-1);font-size:var(--fs-1);color:var(--ink-2)}

.pill{display:inline-flex;align-items:center;gap:6px;font-size:var(--fs-0);font-weight:500;padding:5px 12px;border-radius:var(--r-pill);background:var(--bronze-soft);color:var(--bronze-deep);white-space:nowrap}
.pill.sage{background:var(--sage-soft);color:var(--sage-deep)}
.pill.rose{background:var(--rose-soft);color:var(--rose-deep)}

.btn{font:inherit;font-size:var(--fs-1);font-weight:500;display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;padding:10px 22px;border-radius:var(--r-pill);
  border:1px solid var(--sage-deep);background:var(--sage-deep);color:var(--paper);cursor:pointer;text-decoration:none;
  transition:transform var(--d-1) var(--ease),box-shadow var(--d-2) var(--ease),background var(--d-2) var(--ease)}
.btn:hover{transform:translateY(-1px);box-shadow:var(--shadow-2);color:var(--paper)}
.btn:active{transform:scale(.98)}
.btn.ghost{background:transparent;color:var(--sage-deep)}
.btn.ghost:hover{background:var(--sage-soft);color:var(--sage-deep)}

.rise{transition:transform var(--d-4) var(--ease),opacity var(--d-4) var(--ease)}
.rise.rise-pre{transform:translateY(14px);opacity:.55}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:1ms!important;animation-iteration-count:1!important;transition-duration:1ms!important;scroll-behavior:auto!important}.rise.rise-pre{transform:none;opacity:1}}
/* === конец общих токенов === */

/* ---------- производные токены приложения ---------- */
:root{
  --tab-h:60px;
  --safe-t:max(env(safe-area-inset-top,0px),calc(var(--tg-safe-area-inset-top,0px) + var(--tg-content-safe-area-inset-top,0px)));
  --safe-b:max(env(safe-area-inset-bottom,0px),var(--tg-safe-area-inset-bottom,0px));
  --gut:max(20px,env(safe-area-inset-left,0px));
  --gut-r:max(20px,env(safe-area-inset-right,0px));
  --hair:color-mix(in srgb,var(--bronze) 38%,transparent);
  --stone-a:color-mix(in srgb,var(--stone) 92%,transparent);
  --scrim:color-mix(in srgb,var(--ink) 34%,transparent);
}
html{scroll-padding-top:calc(var(--safe-t) + 64px)}
body{padding:0;font-size:17px;line-height:1.65;overflow-x:clip;min-height:100vh}
button{font:inherit;color:inherit}
.vh{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap}
.view{outline:none;padding-top:var(--safe-t);padding-bottom:calc(var(--tab-h) + var(--safe-b) + var(--s-8))}
body.has-fab .view{padding-bottom:calc(var(--tab-h) + var(--safe-b) + 96px)}
body.full .view{padding:0}
.pad{padding:var(--s-5) var(--gut-r) 0 var(--gut);max-width:720px;margin:0 auto}
.screen{transition:opacity 200ms var(--ease),transform 200ms var(--ease)}
.screen.enter{opacity:0;transform:translateY(8px);transition:none}
.scr-h1{font-size:clamp(34px,9vw,44px);line-height:1.06}
.sec{margin-top:var(--s-8)}
.sec-h2{font-family:var(--f-display);font-weight:600;font-size:32px;line-height:1.1;letter-spacing:-.01em;margin-bottom:var(--s-4);display:block}
.sec-h2 em{font-style:italic;font-weight:500;color:var(--bronze-deep)}
.sec-h3{font-size:var(--fs-1);font-weight:600;color:var(--ink-2);margin:0 0 var(--s-3);font-family:var(--f-body);letter-spacing:0}
.lead-s{color:var(--ink-2);font-size:16px;margin-bottom:var(--s-5)}
.note{font-size:var(--fs-1);color:var(--ink-2);margin-top:var(--s-3)}
.byline{color:var(--ink-2);font-size:16px}
.byline b{color:var(--ink);font-weight:600}
.btn.wide{width:100%}
.btn.sm{min-height:44px;padding:8px 16px;font-size:var(--fs-0)}
.btn[disabled]{opacity:.6;cursor:default;transform:none;box-shadow:none}
.pill.plain{background:transparent;border:1px solid var(--line-2);color:var(--ink-2)}
.field{font:inherit;font-size:16px;line-height:1.55;color:var(--ink);background:var(--stone);border:1px solid var(--line);border-radius:var(--r-sm);padding:12px 14px;width:100%;resize:vertical;
  transition:border-color var(--d-2) var(--ease),box-shadow var(--d-2) var(--ease),background var(--d-2) var(--ease)}
.field::placeholder{color:var(--ink-3)}
.field:focus{outline:none;background:var(--paper);border-color:var(--sage);box-shadow:0 0 0 3px var(--sage-soft)}
.noimg{background:var(--stone-2)}
.noimg img{visibility:hidden}
.foot{margin-top:var(--s-9);padding-top:var(--s-5);border-top:1px solid var(--line);font-size:var(--fs-0);line-height:1.6;color:var(--ink-2);display:grid;gap:var(--s-2)}
.dot-sep{color:var(--bronze)}
.chev{flex:none;color:var(--ink-3);transition:transform var(--d-2) var(--ease)}
details[open] > summary .chev{transform:rotate(180deg)}
summary{list-style:none;cursor:pointer}
summary::-webkit-details-marker{display:none}
details[open] > :not(summary){animation:fadeUp var(--d-2) var(--ease) both}
@keyframes fadeUp{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}

/* ---------- загрузка ---------- */
.boot-screen{min-height:70vh;display:grid;place-content:center;justify-items:center;gap:var(--s-3);text-align:center}
.boot-mark .num{font-size:44px;line-height:1}
.boot-screen .muted{font-size:var(--fs-1)}

/* ---------- нижняя панель вкладок ---------- */
.tabbar{position:fixed;left:0;right:0;bottom:0;z-index:30;display:grid;grid-template-columns:repeat(4,1fr);
  padding:6px max(8px,env(safe-area-inset-right,0px)) calc(6px + var(--safe-b)) max(8px,env(safe-area-inset-left,0px));
  background:var(--stone-a);border-top:1px solid var(--line);-webkit-backdrop-filter:saturate(1.2) blur(12px);backdrop-filter:saturate(1.2) blur(12px)}
.tabbar[hidden]{display:none}
.tabbar a{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;min-height:52px;border-radius:14px;color:var(--ink-2);text-decoration:none;font-size:12px;font-weight:500;line-height:1.2;-webkit-tap-highlight-color:transparent}
.tabbar svg{width:26px;height:26px;padding:1px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;border-radius:10px;transition:background var(--d-2) var(--ease),transform var(--d-1) var(--ease)}
.tabbar circle{fill:none}
.tabbar a:active svg{transform:scale(.92)}
.tabbar a[aria-current="page"]{color:var(--sage-deep);font-weight:600}
.tabbar a[aria-current="page"] svg{background:var(--sage-soft);width:44px;stroke-width:1.8}
.tabbar a:hover{color:var(--sage-deep)}

/* своя нижняя кнопка, если нет Telegram MainButton */
.fab{position:fixed;z-index:29;left:max(16px,env(safe-area-inset-left,0px));right:max(16px,env(safe-area-inset-right,0px));bottom:calc(var(--tab-h) + var(--safe-b) + 10px);
  min-height:50px;border:0;border-radius:var(--r-md);background:var(--sage-deep);color:var(--paper);font-size:16px;font-weight:600;cursor:pointer;box-shadow:var(--shadow-2);
  transition:transform var(--d-1) var(--ease),opacity var(--d-2) var(--ease)}
.fab:active{transform:scale(.98)}
.fab[hidden]{display:none}
body.full .fab{bottom:calc(var(--safe-b) + 10px)}

/* «Назад» вне Telegram (в Telegram - системная кнопка) */
.back-in{display:none}
.no-tg .back-in{display:inline-flex;align-items:center;min-height:44px;margin:var(--s-2) 0 0 calc(var(--gut) - 10px);padding:0 10px;border:0;background:none;color:var(--sage-deep);font-size:var(--fs-1);font-weight:500;cursor:pointer;border-radius:10px}

/* ---------- всплывающая строка ---------- */
.toast{position:fixed;z-index:60;left:50%;bottom:calc(var(--tab-h) + var(--safe-b) + 18px);transform:translate(-50%,12px);opacity:0;pointer-events:none;
  max-width:calc(100% - 40px);padding:10px 18px;border-radius:var(--r-pill);background:var(--ink);color:var(--paper);font-size:var(--fs-1);line-height:1.4;text-align:center;box-shadow:var(--shadow-2);
  transition:opacity var(--d-2) var(--ease),transform var(--d-2) var(--ease)}
.toast.on{opacity:1;transform:translate(-50%,0)}
body.has-fab .toast{bottom:calc(var(--tab-h) + var(--safe-b) + 76px)}

/* ---------- шторка ---------- */
.bsheet{position:fixed;inset:0;z-index:50}
.bsheet[hidden]{display:none}
.sheet-bg{position:absolute;inset:0;background:var(--scrim);opacity:0;transition:opacity 220ms var(--ease)}
.sheet-panel{position:absolute;left:0;right:0;bottom:0;max-height:min(84vh,680px);display:flex;flex-direction:column;background:var(--paper);border-radius:var(--r-xl) var(--r-xl) 0 0;box-shadow:var(--shadow-2);
  padding-bottom:var(--safe-b);transform:translateY(104%);transition:transform 240ms var(--ease);outline:none;touch-action:pan-y}
.bsheet.open .sheet-bg{opacity:1}
.bsheet.open .sheet-panel{transform:translateY(0)}
.sheet-panel.drag{transition:none}
.sheet-top{position:relative;display:flex;align-items:center;gap:var(--s-3);padding:22px var(--gut-r) 10px var(--gut);cursor:grab;touch-action:none}
.grip{position:absolute;left:50%;top:9px;width:40px;height:4px;margin-left:-20px;border-radius:4px;background:var(--line-2)}
.sheet-title{flex:1;font-family:var(--f-display);font-size:28px;font-weight:600;line-height:1.1}
.sheet-x{width:44px;height:44px;border:0;border-radius:50%;background:var(--stone);color:var(--ink-2);display:grid;place-items:center;cursor:pointer;margin-right:-6px}
.sheet-body{overflow-y:auto;overscroll-behavior:contain;padding:4px var(--gut-r) var(--s-5) var(--gut);display:flex;flex-direction:column;gap:var(--s-4)}
body.sheet-on{overflow:hidden}

/* ---------- экран кода / вход ---------- */
.gate{display:flex;flex-direction:column;gap:var(--s-4);padding-top:var(--s-6);padding-bottom:var(--s-8)}
.gate-art{margin-bottom:var(--s-3);transform:rotate(-.6deg)}
.gate-h1{font-size:clamp(40px,11vw,52px)}
.gate-h2{font-size:30px;margin-bottom:var(--s-2)}
.gate-form{padding:var(--s-5);display:flex;flex-direction:column;gap:var(--s-3);margin-top:var(--s-4)}
.gate-form label{font-weight:600;font-size:16px}
.gate-form .field{font-size:18px;letter-spacing:.08em;text-transform:uppercase}
.gate-form .err{color:var(--rose-deep);font-size:var(--fs-1);min-height:0}
.gate-form .err:empty{display:none}
.gate-form .hint{color:var(--ink-2);font-size:var(--fs-1);text-align:center}
body.boot .view{padding-bottom:var(--s-6)}

/* ---------- Главная ---------- */
.hero{display:flex;flex-direction:column;gap:var(--s-4);padding-top:var(--s-2)}
.hero-art{transform:rotate(-.6deg);margin-bottom:var(--s-3)}
.hero h1{font-size:clamp(40px,11vw,56px)}
.cont{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:2px var(--s-3);padding:var(--s-4) var(--s-5);margin-top:var(--s-6);text-decoration:none;color:var(--ink);
  background:var(--sage-soft);border-color:color-mix(in srgb,var(--sage) 45%,var(--line));transition:transform var(--d-1) var(--ease),box-shadow var(--d-2) var(--ease)}
.cont:active{transform:scale(.985)}
.cont-k{font-size:var(--fs-0);font-weight:600;color:var(--sage-deep)}
.cont-t{grid-column:1;font-weight:600;font-size:16px;line-height:1.4}
.cont-go{grid-row:1/3;grid-column:2;width:44px;height:44px;border-radius:50%;background:var(--sage-deep);color:var(--paper);display:grid;place-items:center}
.cont:hover{color:var(--ink)}
.facts{list-style:none;margin:var(--s-6) 0 0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--s-3) var(--s-4)}
.facts li{display:flex;align-items:baseline;gap:10px;border-top:1px solid var(--line);padding-top:var(--s-2);font-size:var(--fs-0);line-height:1.35;color:var(--ink-2)}
.facts .num{font-size:30px;line-height:1;color:var(--bronze-deep);flex:none}
.first{position:relative;display:flex;flex-direction:column;gap:6px;padding:var(--s-5);text-decoration:none;color:var(--ink);overflow:hidden}
.first:hover{color:var(--ink)}
.first-n{position:absolute;right:var(--s-4);top:2px;font-size:84px;line-height:1;opacity:.22;pointer-events:none}
.first-k{font-size:var(--fs-0);font-weight:600;color:var(--bronze-deep);display:flex;align-items:center;gap:var(--s-2);flex-wrap:wrap}
.first-t{font-family:var(--f-display);font-weight:600;font-size:30px;line-height:1.1;letter-spacing:-.01em;max-width:15ch}
.first-q{color:var(--ink-2);font-size:16px}
.first-b{align-self:flex-start;margin-top:var(--s-3)}
/* тропа модулей: бронзовая нить через номера */
.trail{list-style:none;margin:0;padding:0;position:relative}
.trail::before{content:"";position:absolute;left:11px;top:22px;bottom:22px;width:1px;background:linear-gradient(var(--bronze),var(--hair))}
.stop{position:relative;display:grid;grid-template-columns:24px 88px minmax(0,1fr);gap:var(--s-3);align-items:center;padding:var(--s-3) 0;min-height:88px;text-decoration:none;color:var(--ink);border-radius:var(--r-md);-webkit-tap-highlight-color:transparent}
.stop:active .thumb{transform:scale(.97)}
.stop:hover{color:var(--ink)}
.stop-dot{width:11px;height:11px;border-radius:50%;background:var(--paper);border:1.5px solid var(--bronze);justify-self:center;position:relative;z-index:1}
.thumb{display:block;border-radius:12px;overflow:hidden;background:var(--paper);border:1px solid var(--line);box-shadow:var(--shadow-1);transition:transform var(--d-1) var(--ease)}
.thumb img{width:100%;height:100%;object-fit:cover;mix-blend-mode:multiply}
.thumb.r43{aspect-ratio:4/3}.thumb.r32{aspect-ratio:3/2}
.stop-tx{display:flex;flex-direction:column;gap:1px;min-width:0}
.stop-k{font-size:12.5px;font-weight:600;color:var(--bronze-deep);display:flex;align-items:baseline;gap:6px}
.stop-k .num{font-size:24px;line-height:.9}
.stop-t{font-weight:600;font-size:16px;line-height:1.3}
.stop-q{font-size:14.5px;line-height:1.4;color:var(--ink-2)}
.fork-sign{margin:var(--s-5) 0 var(--s-3);font-size:var(--fs-1);font-weight:600;color:var(--bronze-deep);display:flex;align-items:center;gap:var(--s-3)}
.fork-sign::before{content:"";width:24px;height:1px;background:var(--bronze)}
.tracks{list-style:none;margin:0;padding:0;display:grid;gap:var(--s-3)}
.track{display:grid;grid-template-columns:104px minmax(0,1fr);gap:var(--s-4);align-items:center;padding:var(--s-3);text-decoration:none;color:var(--ink);transition:transform var(--d-1) var(--ease)}
.track:active{transform:scale(.985)}
.track:hover{color:var(--ink)}
.fold-big{padding:0}
.fold-big > summary{display:flex;align-items:center;gap:var(--s-3);padding:var(--s-5);min-height:56px}
.fold-big > summary > span{flex:1;display:flex;flex-direction:column;gap:2px}
.fold-big .as-h{margin:0}
.fold-sub{font-size:var(--fs-1);color:var(--ink-2)}
.fold-in{padding:0 var(--s-5) var(--s-5);display:flex;flex-direction:column;gap:var(--s-4)}
.rules{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}
.rules li{display:grid;grid-template-columns:34px minmax(0,1fr);gap:var(--s-3);padding:var(--s-4) 0;border-top:1px solid var(--line)}
.rules .num{font-size:30px;line-height:1}
.rules h3{font-size:16px;margin-bottom:4px}
.rules p{font-size:15.5px;color:var(--ink-2);line-height:1.55}

/* ---------- Программа ---------- */
.phead{display:flex;flex-direction:column;gap:var(--s-3);padding-top:var(--s-3)}
.phead .facts{margin-top:var(--s-3)}
.search{position:relative;margin-top:var(--s-4)}
.search svg{position:absolute;left:14px;top:50%;margin-top:-9px;color:var(--ink-3);pointer-events:none}
.search .field{padding-left:42px;min-height:48px;background:var(--paper);-webkit-appearance:none;appearance:none}
.chips{position:sticky;top:var(--safe-t);z-index:12;display:flex;gap:var(--s-2);overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch;
  margin:var(--s-4) calc(var(--gut) * -1) 0 calc(var(--gut) * -1);padding:10px var(--gut);background:var(--stone-a);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid var(--line);scroll-padding-inline:var(--gut)}
.chips::-webkit-scrollbar{display:none}
.chips[hidden]{display:none}
.chip{flex:none;display:inline-flex;align-items:center;gap:7px;min-height:44px;padding:6px 16px 6px 12px;border-radius:var(--r-pill);border:1px solid var(--line-2);background:var(--paper);color:var(--ink-2);font-size:14.5px;font-weight:500;white-space:nowrap;cursor:pointer;
  transition:background var(--d-2) var(--ease),color var(--d-2) var(--ease),border-color var(--d-2) var(--ease),transform var(--d-1) var(--ease)}
.chip .num{font-size:22px;line-height:.8;color:var(--bronze)}
.chip:active{transform:scale(.97)}
.chip.on{background:var(--sage-deep);border-color:var(--sage-deep);color:var(--paper)}
.chip.on .num{color:var(--bronze-soft)}
.part{padding-top:var(--s-7);scroll-margin-top:80px}
.chap{overflow:hidden}
.chap-art{border:0;border-radius:0;box-shadow:none;padding:10px 10px 0;background:transparent}
.chap-art img{border-radius:var(--r-md)}
.chap-t{padding:var(--s-4) var(--s-5) var(--s-5);display:flex;flex-direction:column;gap:6px}
.chap-k{display:flex;align-items:center;gap:var(--s-3);font-size:var(--fs-0);font-weight:600;color:var(--bronze-deep)}
.chap-n{font-size:44px;line-height:.8}
.chap-t h2{font-size:32px}
.chap-q{color:var(--ink-2);font-size:16px}
.chap-c{font-size:var(--fs-0);color:var(--ink-2);font-variant-numeric:tabular-nums}
.folds{display:grid;margin-top:var(--s-3)}
.fold{border-bottom:1px solid var(--line)}
.fold > summary{display:flex;justify-content:space-between;align-items:center;gap:var(--s-3);min-height:48px;font-size:var(--fs-1);font-weight:600;color:var(--bronze-deep)}
.fold > p{padding:0 0 var(--s-4);font-size:16px;color:var(--ink)}
.lessons{list-style:none;margin:var(--s-4) 0 0;padding:0;display:grid;gap:var(--s-2)}
.ls{background:var(--paper);border:1px solid var(--line);border-radius:var(--r-md);transition:border-color var(--d-2) var(--ease),box-shadow var(--d-2) var(--ease)}
.ls[open]{border-color:var(--line-2);box-shadow:var(--shadow-1)}
.ls > summary{display:grid;grid-template-columns:44px minmax(0,1fr) 16px;gap:var(--s-2);align-items:start;padding:14px 14px 14px 12px;min-height:56px}
.lid{font-size:26px;line-height:1.05;text-align:center}
.lt{font-weight:600;font-size:16px;line-height:1.35}
.lt .pill{margin-left:4px;vertical-align:2px;padding:2px 10px}
.lt small{display:block;font-weight:400;font-size:14.5px;color:var(--ink-2);margin-top:3px;line-height:1.45}
.ls .chev{margin-top:5px}
.lb-in{padding:0 var(--s-4) var(--s-4) 56px}
.lb{margin:0;display:grid;gap:var(--s-3)}
.lb dt{font-size:12.5px;font-weight:600;color:var(--bronze-deep);margin-bottom:-8px}
.lb dd{margin:0;font-size:15.5px;line-height:1.55}
.lb dd.tool{color:var(--sage-deep);font-weight:500}
.lb dd.warn{background:var(--rose-soft);color:var(--rose-deep);border-radius:var(--r-sm);padding:var(--s-2) var(--s-3);font-size:var(--fs-1)}
.lb-foot{display:flex;align-items:center;justify-content:space-between;gap:var(--s-3);flex-wrap:wrap;margin-top:var(--s-4);padding-top:var(--s-3);border-top:1px solid var(--line)}
.lsrc{font-size:12.5px;color:var(--ink-2)}
.results{margin-top:var(--s-4)}
.res-n{font-size:var(--fs-1);color:var(--ink-2);margin-bottom:var(--s-3)}
.res-list{list-style:none;margin:0;padding:0;display:grid;gap:var(--s-2)}
.res{width:100%;display:grid;grid-template-columns:48px minmax(0,1fr);gap:var(--s-2);text-align:left;padding:12px 14px 12px 10px;border:1px solid var(--line);border-radius:var(--r-md);background:var(--paper);cursor:pointer;min-height:56px}
.res .num{font-size:26px;line-height:1.05;text-align:center}
.res b{display:block;font-weight:600;font-size:16px;line-height:1.35}
.res small{display:block;color:var(--ink-2);font-size:14.5px;line-height:1.45}
.res em{display:block;font-style:normal;font-size:12.5px;color:var(--bronze-deep);margin-top:4px}
.res:active{transform:scale(.99)}

/* ---------- Урок 1.2 ---------- */
.L{--main:900px}
.L .spread{display:flex;flex-direction:column-reverse;gap:var(--s-5);padding:var(--s-4) var(--gut-r) var(--s-6) var(--gut)}
.L .spread > div{display:flex;flex-direction:column;gap:var(--s-4)}
.L .spread h1{font-size:clamp(34px,9.6vw,46px);line-height:1.06}
.L .spread h1 .ar{font-style:normal;font-weight:500;color:var(--bronze);padding-inline:.06em}
.L .spread h1 .nw{white-space:nowrap}
.L .spread .lead{font-size:17px}
.L .spread .plate{transform:rotate(.6deg)}
.L .meta{display:flex;flex-wrap:wrap;gap:var(--s-2);list-style:none;margin:0;padding:0}
.L .meta .pill.plain{background:transparent;border:1px solid var(--line-2);color:var(--ink-2);white-space:normal}
.L .src{font-size:var(--fs-0);color:var(--ink-2)}
.L .pic{position:relative;border-radius:calc(var(--r-xl) - 10px);overflow:hidden;background:var(--stone-2)}
.L .pic .ph{display:none}
.L .noimg .pic{aspect-ratio:3/2;display:grid;place-items:center}
.L .noimg .pic .ph{display:block;padding:var(--s-5);text-align:center;color:var(--ink-2);font-size:var(--fs-1)}
.L .noimg{background:var(--paper)}
/* липкая полоска шагов + тонкий прогресс чтения */
.stepbar{position:sticky;top:var(--safe-t);z-index:12;display:flex;align-items:center;gap:4px;background:var(--stone-a);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid var(--line);padding:8px var(--gut-r) 8px max(10px,env(safe-area-inset-left,0px))}
.toc-btn{flex:none;width:44px;height:44px;border-radius:12px;border:1px solid var(--line-2);background:var(--paper);color:var(--ink);display:grid;place-items:center;cursor:pointer;transition:transform var(--d-1) var(--ease)}
.toc-btn:active{transform:scale(.95)}
.steps-scroll{flex:1;min-width:0;display:flex;gap:6px;overflow-x:auto;scrollbar-width:none;padding:0 4px;scroll-padding-inline:12px;mask-image:linear-gradient(90deg,transparent 0,#000 10px,#000 calc(100% - 18px),transparent)}
.steps-scroll::-webkit-scrollbar{display:none}
.sc{flex:none;display:inline-flex;align-items:center;gap:6px;min-height:44px;padding:6px 14px 6px 10px;border:0;border-radius:var(--r-pill);background:transparent;color:var(--ink-2);font-size:14.5px;font-weight:500;white-space:nowrap;cursor:pointer;
  transition:background var(--d-2) var(--ease),color var(--d-2) var(--ease),transform var(--d-1) var(--ease)}
.sc .num{font-size:21px;line-height:.8;min-width:.6em;text-align:center}
.sc:active{transform:scale(.96)}
.sc[aria-current="step"]{background:var(--sage-deep);color:var(--paper)}
.sc[aria-current="step"] .num{color:var(--bronze-soft)}
.read{position:absolute;left:0;right:0;bottom:-1px;height:2px;background:transparent;pointer-events:none}
.read i{display:block;height:100%;background:var(--bronze);transform:scaleX(0);transform-origin:0 50%;will-change:transform}
.lmain{padding:0 var(--gut-r) 0 var(--gut);max-width:720px;margin:0 auto}
.L .foot{margin:var(--s-9) var(--gut-r) 0 var(--gut)}
.L .step{display:flex;flex-direction:column;gap:var(--s-5);padding-top:var(--s-9);scroll-margin-top:calc(var(--safe-t) + 70px);outline:none}
.L .step:first-child{padding-top:var(--s-6)}
.L .step h2{font-size:32px}
.L .step-h{display:flex;flex-direction:column;gap:var(--s-3)}
.L .step-h .mark .num{font-size:38px}
.L .step-h .k{font-size:var(--fs-0);font-weight:500;color:var(--ink-2)}
.L .step-h .k .t{color:var(--ink-3);margin-left:6px}
.L .btn[hidden]{display:none}
.L .prose{display:flex;flex-direction:column;gap:var(--s-4)}
.L .cap{font-size:var(--fs-1);color:var(--ink-2)}
.L .q-big{font-size:clamp(30px,8.4vw,38px)}
.L .answer{display:flex;flex-direction:column;gap:6px}
.L .answer label{font-size:var(--fs-1);font-weight:500}
.L .answer .row{display:flex;gap:var(--s-3);align-items:center;flex-wrap:wrap;min-height:20px}
.L .saved{font-size:var(--fs-0);color:var(--sage-deep);display:inline-flex;align-items:center;gap:6px;opacity:0;transition:opacity var(--d-2) var(--ease)}
.L .saved.on{opacity:1}
.L .saved::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--sage)}
/* образ: двойной кадр */
.L .duo{display:grid;grid-template-columns:1fr 1fr;gap:var(--s-3)}
.L .duo .plate{padding:8px;--pos:20% 50%;border-radius:var(--r-lg)}
.L .duo .plate + .plate{--pos:80% 50%}
.L .duo .pic{aspect-ratio:4/5;border-radius:14px}
.L .duo .pic img{width:100%;height:100%;object-fit:cover;object-position:var(--pos);border-radius:14px}
.L .duo figcaption{display:flex;padding:var(--s-3) var(--s-1) var(--s-1);font-size:14px}
.L .duo .noimg .pic{aspect-ratio:4/5}
/* модель: вертикальная схема цепочки */
.L .diagram{padding:var(--s-5) var(--s-4);display:flex;flex-direction:column;gap:var(--s-4);margin:0}
.L .diagram svg{width:100%;max-width:400px;height:auto;display:block;overflow:visible;margin-inline:auto}
.L .diagram-foot{display:flex;flex-direction:column;gap:var(--s-3);align-items:flex-start}
.chain text{font-family:var(--f-body)}
.chain .bx{fill:var(--paper);stroke:var(--line-2);stroke-width:1.2}
.chain .bx.key{fill:var(--sage-soft);stroke:var(--sage)}
.chain .hl{fill:var(--bronze-soft);stroke:var(--bronze);stroke-width:1.6;opacity:0;transform-box:fill-box;transform-origin:center}
.chain .key + .hl{fill:var(--sage-soft);stroke:var(--sage-deep)}
.chain .t{fill:var(--ink);font-weight:600}
.chain .s{fill:var(--ink-2)}
.chain .lbl{fill:var(--bronze-deep);font-weight:500;letter-spacing:.04em}
.chain .frame{fill:none;stroke:var(--line-2);stroke-dasharray:3 5;stroke-width:1}
.chain .ar{fill:none;stroke:var(--ink-3);stroke-width:1.4}
.chain .ah{fill:var(--ink-3)}
.chain .tr{fill:none;stroke:var(--bronze);stroke-width:2.6;stroke-linecap:round;stroke-dasharray:1;stroke-dashoffset:1}
.chain.done .tr{stroke-dashoffset:0}
.chain.done .hl{opacity:.32}
.chain.play .tr{animation:draw 440ms var(--ease-io) forwards;animation-delay:var(--t)}
.chain.play .hl{animation:glow 1100ms var(--ease) forwards;animation-delay:var(--t)}
@keyframes draw{from{stroke-dashoffset:1}to{stroke-dashoffset:0}}
@keyframes glow{0%{opacity:0;transform:scale(1)}30%{opacity:1;transform:scale(1.035)}100%{opacity:.32;transform:scale(1)}}
@keyframes glowFlat{0%{opacity:1}100%{opacity:.32}}
.v .t{font-size:18px}.v .s{font-size:16px}.v .lbl{font-size:15px}
.L .model{list-style:none;margin:var(--s-2) 0 0;padding:0;display:grid;counter-reset:m}
.L .model li{counter-increment:m;display:grid;grid-template-columns:40px minmax(0,1fr);gap:var(--s-3);padding:var(--s-4) 0;border-top:1px solid var(--line)}
.L .model li:last-child{border-bottom:1px solid var(--line)}
.L .model li::before{content:counter(m);font-family:var(--f-display);font-style:italic;font-weight:500;font-size:32px;line-height:1;color:var(--bronze);padding-top:2px}
.L .model b{display:block;font-weight:600;margin-bottom:2px}
.L .model p{color:var(--ink-2);font-size:16px}
/* Фёдор */
.L .story{position:relative;padding:var(--s-7) var(--s-4) var(--s-5);margin-top:18px}
.L .story .tab{position:absolute;left:var(--s-4);top:-18px;background:var(--paper);border:1px solid var(--line);border-bottom:0;border-radius:12px 12px 0 0;padding:6px 16px 4px;font-size:var(--fs-0);font-weight:500;color:var(--bronze-deep)}
.L .story .tab::after{content:"";position:absolute;left:-1px;right:-1px;bottom:-2px;height:4px;background:var(--paper)}
.L .fsteps{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;position:relative}
.L .fsteps::before{content:"";position:absolute;left:7px;top:14px;bottom:14px;width:1px;background:var(--line-2)}
.L .fsteps > li{position:relative;padding:0 0 var(--s-5) 30px;transition:opacity var(--d-3) var(--ease)}
.L .fsteps > li:last-child{padding-bottom:0}
.L .fsteps > li::before{content:"";position:absolute;left:2px;top:9px;width:11px;height:11px;border-radius:50%;background:var(--paper);border:1.5px solid var(--bronze);transition:background var(--d-2) var(--ease)}
.L .fsteps .lb{display:block;font-size:var(--fs-0);font-weight:600;color:var(--bronze-deep);margin-bottom:2px}
.L .fsteps .thought{font-family:var(--f-display);font-style:italic;font-weight:500;font-size:28px;line-height:1.2;color:var(--ink)}
.L .fsteps .etp{display:grid;gap:4px;margin:0;padding:0;list-style:none}
.L .fsteps .etp span{color:var(--ink-2)}
.L .walking .fsteps > li{opacity:.34}
.L .walking .fsteps > li.past{opacity:.7}
.L .walking .fsteps > li.on{opacity:1}
.L .walking .fsteps > li.on::before{background:var(--bronze)}
.L .story .after{margin-top:var(--s-5);padding-top:var(--s-5);border-top:1px solid var(--line);color:var(--ink-2);font-size:16px}
.L .story .ctrl{display:flex;flex-wrap:wrap;gap:var(--s-3);margin-top:var(--s-5)}
/* тренажёр */
.L .lab{padding:var(--s-4);display:flex;flex-direction:column;gap:var(--s-4)}
.L .tabs{display:flex;flex-direction:column;gap:4px;padding:4px;background:var(--stone);border-radius:var(--r-md)}
.L .tabs [role="tab"]{font-size:var(--fs-1);font-weight:500;min-height:44px;padding:8px 14px;border:0;border-radius:12px;background:transparent;color:var(--ink-2);cursor:pointer;text-align:left;
  transition:background var(--d-2) var(--ease),color var(--d-2) var(--ease),box-shadow var(--d-2) var(--ease),transform var(--d-1) var(--ease)}
.L .tabs [role="tab"]:active{transform:scale(.98)}
.L .tabs [role="tab"][aria-selected="true"]{background:var(--paper);color:var(--ink);box-shadow:var(--shadow-1)}
.L .sit{display:flex;flex-direction:column;gap:var(--s-3)}
.L .sit[hidden]{display:none}
.L .event{display:flex;flex-direction:column;gap:4px;padding:var(--s-4);border-radius:var(--r-md);background:var(--stone);border:1px solid var(--line)}
.L .event .lb{font-size:var(--fs-0);font-weight:600;color:var(--bronze-deep)}
.L .event p{font-family:var(--f-display);font-weight:500;font-size:28px;line-height:1.2}
.L .thoughts{display:grid;gap:var(--s-2)}
.L .th{font-size:16px;line-height:1.45;text-align:left;color:var(--ink);min-height:60px;padding:14px 16px;border-radius:var(--r-md);border:1px solid var(--line-2);background:var(--paper);cursor:pointer;
  display:flex;flex-direction:column;align-items:flex-start;gap:8px;position:relative;-webkit-tap-highlight-color:transparent;
  transition:transform var(--d-1) var(--ease),box-shadow var(--d-2) var(--ease),border-color var(--d-2) var(--ease),background var(--d-2) var(--ease)}
.L .th:active{transform:scale(.98)}
.L .th .tg{font-size:12.5px;font-weight:600;color:var(--ink-2);display:none}
.L .th.seen .tg{display:inline-flex;align-items:center;gap:6px}
.L .th.seen .tg::before{content:"";width:7px;height:7px;border-radius:50%;background:currentColor}
.L .th.seen.minus{border-color:color-mix(in srgb,var(--rose) 55%,var(--line))}
.L .th.seen.plus{border-color:color-mix(in srgb,var(--sage) 55%,var(--line))}
.L .th.seen.minus .tg{color:var(--rose-deep)} .L .th.seen.plus .tg{color:var(--sage-deep)}
.L .th[aria-pressed="true"].minus{background:var(--rose-soft);border-color:var(--rose)}
.L .th[aria-pressed="true"].plus{background:var(--sage-soft);border-color:var(--sage)}
.L .th.breathe{animation:breathe var(--d-2) var(--ease)}
@keyframes breathe{from{transform:scale(.98)}to{transform:scale(1)}}
.L .compare{display:grid;gap:var(--s-3);margin-top:var(--s-2)}
.L .slot{border-radius:var(--r-md);padding:var(--s-4);display:flex;flex-direction:column;gap:var(--s-3);min-height:120px;border:1px solid var(--line)}
.L .slot.minus{background:color-mix(in srgb,var(--rose-soft) 55%,var(--paper))}
.L .slot.plus{background:color-mix(in srgb,var(--sage-soft) 55%,var(--paper))}
.L .slot.empty{background:transparent;border-style:dashed;border-color:var(--line-2);justify-content:center}
.L .slot .sk{display:flex;align-items:center;justify-content:space-between;gap:var(--s-2);flex-wrap:wrap}
.L .slot .sk b{font-size:var(--fs-1);font-weight:600}
.L .slot.minus .sk b{color:var(--rose-deep)} .L .slot.plus .sk b{color:var(--sage-deep)}
.L .slot .sq{margin:0;font-style:italic;color:var(--ink);font-size:16px}
.L .slot.empty p{color:var(--ink-2);font-size:var(--fs-1)}
.L .mini{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}
.L .mini li{display:grid;grid-template-columns:30px minmax(0,1fr);gap:10px;align-items:start;font-size:15.5px;line-height:1.45}
.L .mini .ab{width:30px;height:30px;border-radius:50%;display:grid;place-items:center;font-size:var(--fs-0);font-weight:600;background:var(--paper);border:1px solid var(--line-2);color:var(--ink-2)}
.L .mini .w{display:block;font-size:12.5px;font-weight:600;color:var(--ink-2)}
.L .res{all:unset;border-top:1px solid var(--line-2);padding-top:var(--s-3);display:grid;grid-template-columns:30px minmax(0,1fr);gap:10px;font-weight:500;line-height:1.45;font-size:15.5px}
.L .res .ar{font-size:18px;color:var(--bronze);text-align:center;line-height:1.3}
.L .res strong{display:block;font-size:12.5px;font-weight:600}
.L .slot.minus .res strong{color:var(--rose-deep)} .L .slot.plus .res strong{color:var(--sage-deep)}
.L .in{animation:inUp var(--d-3) var(--ease) both;animation-delay:calc(var(--i,0) * 70ms)}
.L .out{opacity:0;transform:translateY(-6px);transition:opacity 140ms var(--ease-io),transform 140ms var(--ease-io)}
@keyframes inUp{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
.L .lab-foot{font-size:var(--fs-1);color:var(--ink-2)}
/* упражнение: бланк и карточка */
.L .sheet{padding:var(--s-5) var(--s-4);display:flex;flex-direction:column;gap:var(--s-5);position:relative}
.L .sheet-h{display:flex;justify-content:space-between;align-items:baseline;gap:var(--s-3);flex-wrap:wrap;padding-bottom:var(--s-4);border-bottom:1px solid var(--line)}
.L .sheet-h .ttl{font-family:var(--f-display);font-size:30px;font-weight:600;line-height:1.1}
.L .sheet-h .ttl em{font-weight:500;color:var(--bronze-deep)}
.L .ws{display:grid;gap:var(--s-5)}
.L .f{display:grid;grid-template-columns:28px minmax(0,1fr);gap:var(--s-2)}
.L .f .fn{font-family:var(--f-display);font-style:italic;font-weight:500;font-size:30px;line-height:1;color:var(--bronze);padding-top:2px}
.L .f label{display:flex;flex-direction:column;gap:2px;font-weight:600;font-size:16px;margin-bottom:8px}
.L .f label span{font-weight:400;font-size:var(--fs-1);color:var(--ink-2)}
.L .f.turn{background:color-mix(in srgb,var(--sage-soft) 60%,transparent);border-radius:var(--r-md);padding:var(--s-3) var(--s-2);margin-inline:calc(var(--s-2) * -1)}
.L .f.turn .field{background:var(--paper)}
.L .ws-row{display:flex;flex-wrap:wrap;gap:var(--s-3);align-items:center;padding-top:var(--s-2)}
.L .btn.warn{border-color:var(--rose-deep);color:var(--rose-deep)}
.L .result-card{padding:var(--s-5) var(--s-4);display:flex;flex-direction:column;gap:var(--s-4);background:var(--paper);border:1px solid var(--line-2);border-radius:var(--r-lg);box-shadow:var(--shadow-2);position:relative;outline:none}
.L .result-card[hidden]{display:none}
.L .result-card::before{content:"";position:absolute;left:var(--s-5);right:var(--s-5);top:0;height:2px;background:var(--bronze);border-radius:0 0 2px 2px}
.L .result-card .rc-h{display:flex;justify-content:space-between;align-items:baseline;gap:var(--s-3);flex-wrap:wrap}
.L .result-card .rc-h b{font-family:var(--f-display);font-size:30px;font-weight:600;line-height:1.1}
.L .result-card .rc-h span{font-size:var(--fs-0);color:var(--ink-2);font-variant-numeric:tabular-nums}
.L .rc{margin:0;display:grid;gap:var(--s-3)}
.L .rc div{display:grid;gap:2px;padding-bottom:var(--s-3);border-bottom:1px solid var(--line)}
.L .rc dt{font-size:var(--fs-0);font-weight:600;color:var(--bronze-deep)}
.L .rc dd{margin:0;white-space:pre-wrap;overflow-wrap:anywhere;font-size:16px}
.L .rc .alt{background:var(--sage-soft);border-radius:var(--r-sm);padding:var(--s-3);border:0}
.L .rc .alt dt{color:var(--sage-deep)}
.L .rc-actions{display:flex;flex-wrap:wrap;gap:var(--s-3);align-items:center}
/* формула */
.L .fridge{position:relative;padding:var(--s-7) var(--s-5) var(--s-6);background:var(--paper);border:1px solid var(--line);border-radius:var(--r-md);box-shadow:var(--shadow-2);margin-top:var(--s-2)}
.L .fridge::before{content:"";position:absolute;top:-14px;left:50%;width:30px;height:30px;margin-left:-15px;border-radius:50%;background:radial-gradient(circle at 35% 30%,var(--bronze-soft),var(--bronze) 60%,var(--bronze-deep));box-shadow:var(--shadow-1)}
.L .fq{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--s-5)}
.L .fq li{display:grid;grid-template-columns:30px minmax(0,1fr);gap:var(--s-3);align-items:baseline}
.L .fq .num{font-size:34px;line-height:1}
.L .fq p{font-family:var(--f-display);font-weight:500;font-size:30px;line-height:1.15}
.L .fq p em{font-style:italic;color:var(--bronze-deep)}
/* неделя */
.L .check{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--s-2)}
.L .ck{position:relative;display:grid;grid-template-columns:30px minmax(0,1fr);gap:var(--s-3);align-items:center;min-height:60px;padding:12px 16px;border-radius:var(--r-md);background:var(--paper);border:1px solid var(--line);cursor:pointer;font-size:16px;line-height:1.45;
  transition:border-color var(--d-2) var(--ease),background var(--d-2) var(--ease),transform var(--d-1) var(--ease)}
.L .ck:active{transform:scale(.99)}
.L .ck input{position:absolute;opacity:0;inset:0;width:100%;height:100%;margin:0;cursor:pointer}
.L .ck .box{width:28px;height:28px;border-radius:9px;border:1.5px solid var(--line-2);background:var(--stone);display:grid;place-items:center;transition:background var(--d-2) var(--ease),border-color var(--d-2) var(--ease)}
.L .ck .box svg{width:18px;height:18px;overflow:visible}
.L .ck .box path{fill:none;stroke:var(--paper);stroke-width:2.6;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:1;stroke-dashoffset:1;transition:stroke-dashoffset var(--d-3) var(--ease) 60ms}
.L .ck input:checked + .box{background:var(--sage-deep);border-color:var(--sage-deep);animation:breathe var(--d-2) var(--ease)}
.L .ck input:checked + .box path{stroke-dashoffset:0}
.L .ck input:checked ~ .tx{color:var(--ink-2)}
.L .ck input:focus-visible + .box{outline:2px solid var(--sage-deep);outline-offset:3px}
.L .ck:has(input:checked){background:color-mix(in srgb,var(--sage-soft) 45%,var(--paper));border-color:color-mix(in srgb,var(--sage) 45%,var(--line))}
.wk-sum{display:flex;align-items:center;gap:var(--s-4);font-size:var(--fs-1);color:var(--ink-2)}
.wk-sum .bar{flex:1;height:4px;border-radius:4px;background:var(--line);overflow:hidden}
.wk-sum .bar i{display:block;height:100%;background:var(--sage);transform:scaleX(0);transform-origin:0 50%;transition:transform var(--d-3) var(--ease)}
.wk-sum b{font-weight:600;color:var(--ink);font-variant-numeric:tabular-nums}
.L .diary{font-size:var(--fs-1);color:var(--ink-2);padding-left:var(--s-4);border-left:1px solid var(--hair)}
/* мостик */
.L .bridge{display:flex;flex-direction:column;gap:var(--s-4)}
.L .echo{padding:var(--s-4) var(--s-5);border-radius:var(--r-md);background:var(--bronze-soft);color:var(--ink);font-size:16px}
.L .echo[hidden]{display:none}
.L .echo b{display:block;font-size:var(--fs-0);font-weight:600;color:var(--bronze-deep)}
.L .next{display:grid;gap:var(--s-4);padding:var(--s-5) var(--s-4);margin-top:var(--s-3);position:relative;overflow:hidden}
.L .next .k{font-size:var(--fs-0);font-weight:600;color:var(--bronze-deep)}
.L .next .ttl{font-family:var(--f-display);font-size:30px;font-weight:600;line-height:1.08}
.L .next .ttl em{font-weight:500;color:var(--bronze-deep)}
.L .next .acts{display:flex;flex-wrap:wrap;gap:var(--s-3)}
.L .next .big{display:none}
/* шторка оглавления урока */
.toc-list{list-style:none;margin:0;padding:0;display:grid}
.toc-i{width:100%;display:flex;align-items:center;gap:var(--s-3);min-height:50px;padding:6px 10px;border:0;border-radius:12px;background:transparent;text-align:left;font-size:16px;font-weight:500;color:var(--ink);cursor:pointer}
.toc-i .num{font-size:26px;line-height:1;min-width:26px;text-align:center}
.toc-i[aria-current="step"]{background:var(--sage-soft);color:var(--sage-deep);font-weight:600}
.toc-i:active{transform:scale(.99)}
.toc-nav{display:grid;grid-template-columns:1fr 1fr;gap:var(--s-2);border-top:1px solid var(--line);padding-top:var(--s-4)}
.tn{display:flex;flex-direction:column;gap:2px;align-items:flex-start;padding:10px 12px;min-height:56px;border:1px dashed var(--line-2);border-radius:var(--r-md);background:transparent;text-align:left;font-size:var(--fs-1);font-weight:600;color:var(--ink-2)}
.tn.r{align-items:flex-end;text-align:right}
.tn small{font-weight:400;font-size:12.5px;color:var(--ink-2)}

/* ---------- Схемы: список ---------- */
.legend{display:flex;flex-wrap:wrap;gap:var(--s-2) var(--s-4);font-size:var(--fs-0);color:var(--ink-2);margin:var(--s-2) 0 0;padding:0;list-style:none}
.legend li{display:inline-flex;align-items:center;gap:8px}
.sw{width:18px;height:18px;border-radius:6px;border:1.5px solid;flex:none}
.sw.s{background:var(--sage-soft);border-color:var(--sage)}
.sw.r{background:var(--rose-soft);border-color:var(--rose)}
.sw.b{background:var(--bronze-soft);border-color:var(--bronze)}
.sw.n{background:var(--stone);border-color:var(--line-2)}
.slist{list-style:none;margin:var(--s-6) 0 0;padding:0}
.slist li{border-top:1px solid var(--line)}
.slist li:last-child{border-bottom:1px solid var(--line)}
.srow{display:grid;grid-template-columns:44px minmax(0,1fr);gap:2px var(--s-3);align-items:baseline;min-height:60px;padding:12px 4px;color:var(--ink);text-decoration:none;-webkit-tap-highlight-color:transparent}
.srow .num{font-size:28px;line-height:1;grid-row:1/3;transition:transform var(--d-2) var(--ease)}
.srow .st{font-weight:600;font-size:16px;line-height:1.35}
.srow .sl{font-size:var(--fs-0);color:var(--ink-2)}
.srow:active .num{transform:translateX(3px)}
.srow:hover{color:var(--sage-deep)}

/* ---------- Схемы: просмотр на весь экран ---------- */
.V{position:fixed;inset:0;display:flex;flex-direction:column;background:var(--stone);padding-top:var(--safe-t)}
.V .sv-defs{position:absolute;width:0;height:0;overflow:hidden}
.v-top{display:flex;align-items:center;gap:var(--s-2);padding:6px var(--gut-r) 6px max(8px,env(safe-area-inset-left,0px));min-height:56px}
.v-back{display:inline-flex;align-items:center;gap:2px;min-height:44px;padding:0 10px 0 4px;border:0;border-radius:12px;background:none;color:var(--sage-deep);font-size:var(--fs-1);font-weight:500;cursor:pointer}
.tg .v-back{visibility:hidden}
.v-count{flex:1;text-align:center;font-family:var(--f-display);font-style:italic;font-size:24px;color:var(--bronze-deep);font-variant-numeric:tabular-nums;line-height:1}
.replay{font-size:var(--fs-0);font-weight:500;line-height:1;color:var(--sage-deep);background:var(--paper);border:1px solid var(--line-2);border-radius:var(--r-pill);min-height:44px;padding:8px 14px 8px 11px;display:inline-flex;align-items:center;gap:7px;cursor:pointer;
  transition:transform var(--d-1) var(--ease),background-color var(--d-2) var(--ease)}
.replay:active{transform:scale(.97)}
.replay .ic{width:15px;height:15px;flex:none}
.replay .ic-p{fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.v-track{flex:1;min-height:0;display:flex;overflow-x:auto;overflow-y:hidden;scroll-snap-type:x mandatory;scrollbar-width:none;overscroll-behavior-x:contain;outline:none}
.v-track::-webkit-scrollbar{display:none}
.v-slide{flex:0 0 100%;width:100%;scroll-snap-align:center;scroll-snap-stop:always;overflow-y:auto;overscroll-behavior-y:contain}
.v-in{max-width:560px;margin:0 auto;padding:var(--s-2) var(--gut-r) var(--s-7) var(--gut);display:flex;flex-direction:column;gap:var(--s-4)}
.v-in h2{font-size:clamp(28px,8vw,36px)}
.v-in .mark .num{font-size:34px}
.v-fig{margin:0 -6px;padding:var(--s-4) var(--s-3);background:var(--paper);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--shadow-1);display:flex;flex-direction:column;gap:var(--s-4);min-width:0}
.how{font-size:var(--fs-1);line-height:1.65;color:var(--ink-2)}
.how b{color:var(--ink);font-weight:600}
.lesson{font-size:var(--fs-0);color:var(--ink-2);border-top:1px solid var(--line);padding-top:var(--s-3);display:flex;flex-wrap:wrap;align-items:center;gap:var(--s-2) var(--s-3)}
.lesson b{font-weight:600;color:var(--bronze-deep)}
.v-bot{display:flex;align-items:center;justify-content:space-between;gap:var(--s-3);padding:6px var(--gut-r) calc(8px + var(--safe-b)) var(--gut);border-top:1px solid var(--line);background:var(--stone-a)}
body.has-fab .v-bot{padding-bottom:calc(70px + var(--safe-b))}
.v-arrow{width:48px;height:48px;border-radius:50%;border:1px solid var(--line-2);background:var(--paper);color:var(--ink);display:grid;place-items:center;cursor:pointer;transition:transform var(--d-1) var(--ease),opacity var(--d-2) var(--ease)}
.v-arrow:active{transform:scale(.94)}
.v-arrow:disabled{opacity:.35;cursor:default}
.v-dots{display:flex;gap:6px;align-items:center}
.v-dots i{width:6px;height:6px;border-radius:50%;background:var(--line-2);transition:transform var(--d-2) var(--ease),background var(--d-2) var(--ease)}
.v-dots i.on{background:var(--bronze);transform:scale(1.5)}
/* svg схем (из shemy-kursa.html) */
.sv{display:block;width:100%;height:auto;margin:0 auto;overflow:visible;max-width:440px!important}
.sv text{font-family:var(--f-body);fill:var(--ink)}
.sv .b{font-weight:600}
.sv .mo{letter-spacing:.06em}
.sv .tm{fill:var(--ink-2)}
.sv .tp{fill:var(--sage-deep)}
.sv .tn{fill:var(--rose-deep)}
.sv .ta{fill:var(--bronze-deep)}
.sv .tw{fill:var(--ink)}
.sv .k-n{fill:var(--stone);stroke:var(--line-2);stroke-width:1.5}
.sv .k-a{fill:var(--bronze-soft);stroke:var(--bronze);stroke-width:1.5}
.sv .k-p{fill:var(--sage-soft);stroke:var(--sage);stroke-width:1.5}
.sv .k-m{fill:var(--rose-soft);stroke:var(--rose);stroke-width:1.5}
.sv .k-w{fill:var(--stone-2);stroke:var(--ink-3);stroke-width:1.5}
.sv .k-bar{fill:var(--bronze);stroke:none}
.sv .k-dot-a{fill:var(--bronze);stroke:none}
.sv .k-dot-m{fill:var(--rose-deep);stroke:none}
.sv .k-node-m{fill:var(--paper);stroke:var(--rose);stroke-width:1.75}
.sv .k-star-a{fill:var(--bronze-soft);stroke:var(--bronze);stroke-width:1.75;stroke-linejoin:round}
.sv .k-star-p{fill:var(--sage-soft);stroke:var(--sage);stroke-width:1.75;stroke-linejoin:round}
.sv .k-spiral{fill:none;stroke:var(--rose);stroke-linecap:round;stroke-linejoin:round}
.sv .k-ln{fill:none;stroke:var(--ink-3);stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.sv .k-thin{stroke-width:1.2}
.sv .k-bold{stroke-width:2.2;stroke:var(--bronze)}
.sv .k-dash{stroke-dasharray:4 6;stroke-width:1.2}
.sv .k-sym-m{fill:none;stroke:var(--rose-deep);stroke-width:2.2;stroke-linejoin:round;stroke-linecap:round}
.sv .k-sym-a{fill:none;stroke:var(--bronze-deep);stroke-width:2.2;stroke-linejoin:round;stroke-linecap:round}
.sv .k-sym-w{fill:none;stroke:var(--ink-2);stroke-width:2.2;stroke-linejoin:round;stroke-linecap:round}
.sv .k-sym-p{fill:none;stroke:var(--sage-deep);stroke-width:2.2;stroke-linejoin:round;stroke-linecap:round}
.k-head{fill:var(--ink-3)}
.sv .fx-track{fill:none;stroke:none}
.sv .fx-b{--fx:var(--bronze)} .sv .fx-s{--fx:var(--sage-deep)} .sv .fx-r{--fx:var(--rose-deep)} .sv .fx-n{--fx:var(--ink-2)}
.sv .fx-hi,.sv .fx-ring,.sv .fx-pop,.sv .fx-shut{transform-box:fill-box;transform-origin:center;opacity:0;pointer-events:none}
.sv .fx-hi{fill:none;stroke:var(--fx);stroke-width:3}
.sv .fx-ring{fill:none;stroke:var(--fx);stroke-width:2}
.sv .fx-pop{fill:var(--fx);stroke:none}
.sv .fx-shut{fill:var(--fx);stroke:none;transform-origin:left center}
.sv .fx-run{fill:none;stroke:var(--fx);stroke-width:3;stroke-linecap:round;stroke-linejoin:round;opacity:0;pointer-events:none}
.sv .fx-dot{fill:var(--fx);stroke:var(--paper);stroke-width:2.5;opacity:0;pointer-events:none}
.v-fig .split{display:flex;flex-direction:column;gap:var(--s-4)}
.v-fig .v-m{display:flex;flex-direction:column;gap:var(--s-4)}
.phases{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:2px;counter-reset:ph;font-size:var(--fs-1);line-height:1.4}
.phases li{counter-increment:ph;display:flex;gap:12px;align-items:center;position:relative;isolation:isolate;padding:5px 10px 5px 6px;border-radius:var(--r-sm)}
.phases li::before{content:counter(ph);font-weight:600;font-size:13px;color:var(--rose-deep);width:26px;height:26px;border:1.5px solid var(--rose);border-radius:50%;display:inline-grid;place-items:center;flex:none;line-height:1;background:var(--paper)}
.phases .glow{position:absolute;inset:0;border-radius:inherit;background:var(--rose-soft);opacity:0;z-index:-1;pointer-events:none}
.phases.hero-l li::before{color:var(--bronze-deep);border-color:var(--bronze)}
.phases.hero-l .glow{background:var(--bronze-soft)}
.quote{font-family:var(--f-display);font-style:italic;font-weight:500;font-size:28px;line-height:1.25;color:var(--ink);text-wrap:balance;background:var(--bronze-soft);border-radius:var(--r-md);padding:var(--s-4) var(--s-5);margin:0}
.callout{font-weight:600;font-size:var(--fs-1);color:var(--rose-deep);background:var(--rose-soft);border-radius:var(--r-md);padding:var(--s-3) var(--s-4);margin:0}

/* ---------- Мой путь ---------- */
.me-sec{margin-top:var(--s-7)}
.wk-card{display:flex;flex-direction:column;gap:var(--s-3);padding:var(--s-5);text-decoration:none;color:var(--ink)}
.wk-card:hover{color:var(--ink)}
.wk-k{font-weight:600;font-size:16px}
.wk-go{display:inline-flex;align-items:center;gap:6px;color:var(--sage-deep);font-weight:500;font-size:var(--fs-1)}
.seen{list-style:none;margin:0;padding:0;display:grid;gap:var(--s-2)}
.seen a{display:grid;grid-template-columns:48px minmax(0,1fr);gap:var(--s-2);align-items:center;min-height:56px;padding:8px 14px 8px 8px;border-radius:var(--r-md);background:var(--paper);border:1px solid var(--line);text-decoration:none;color:var(--ink)}
.seen .num{font-size:26px;line-height:1;text-align:center}
.seen b{display:block;font-weight:600;font-size:15.5px;line-height:1.35}
.seen small{display:block;font-size:12.5px;color:var(--ink-2)}
.empty{font-size:var(--fs-1)}
.sw-row{display:flex;align-items:center;justify-content:space-between;gap:var(--s-4);padding:var(--s-4) var(--s-5)}
.sw-row b{display:block;font-weight:600;font-size:16px;line-height:1.35}
.sw-row small{display:block;font-size:var(--fs-1);color:var(--ink-2)}
.switch{flex:none;position:relative;width:56px;height:44px;border:0;background:none;cursor:pointer;padding:0}
.switch::before{content:"";position:absolute;left:2px;right:2px;top:8px;height:28px;border-radius:14px;background:var(--line-2);transition:background var(--d-2) var(--ease)}
.switch i{position:absolute;left:5px;top:11px;width:22px;height:22px;border-radius:50%;background:var(--paper);box-shadow:0 1px 3px rgba(62,52,40,.25);transition:transform var(--d-2) var(--ease)}
.switch[aria-checked="true"]::before{background:var(--sage-deep)}
.switch[aria-checked="true"] i{transform:translateX(24px)}
.switch:disabled{opacity:.7}
.adm{padding:var(--s-5);display:flex;flex-direction:column;gap:var(--s-3);background:var(--bronze-soft);border-color:color-mix(in srgb,var(--bronze) 30%,var(--line))}
.cmds{margin:0;display:grid;gap:var(--s-2)}
.cmds div{display:grid;grid-template-columns:104px minmax(0,1fr);gap:var(--s-3);align-items:baseline;padding-top:var(--s-2);border-top:1px solid color-mix(in srgb,var(--bronze) 22%,transparent)}
.cmds dt{font-weight:600;color:var(--bronze-deep);font-size:var(--fs-1)}
.cmds dd{margin:0;font-size:var(--fs-1)}
.privacy{display:flex;gap:var(--s-2);align-items:flex-start;margin-top:var(--s-7);font-size:var(--fs-1);color:var(--ink-2)}
.privacy svg{flex:none;margin-top:3px;color:var(--sage-deep)}

/* ---------- сниженное движение: без перемещений, смены состояния мгновенные ---------- */
@media (prefers-reduced-motion:reduce){
  .screen.enter{transform:none}
  .hero-art,.gate-art,.L .spread .plate{transform:none}
  .L .in{animation:none}
  .L .out{transform:none}
  .chain.play .hl{animation-name:glowFlat}
  .btn:hover{transform:none}
  details[open] > :not(summary){animation:none}
  .sheet-panel{transition:none}
  .replay{display:none}
}
