/* ── Меню по шагам и переключатель валюты (ноябрь 2026) ── */
@media (min-width:901px) and (max-width:1440px){.nav-links{gap:16px}.nav-links a{font-size:12.5px}}
.cur-switch{display:inline-flex;border:1px solid var(--border);border-radius:999px;padding:2px;gap:2px;background:#fff}
.cur-switch button{border:0;background:transparent;color:var(--muted);font:600 12px/1 Inter,sans-serif;padding:6px 10px;border-radius:999px;cursor:pointer;min-width:30px}
.cur-switch button.on{background:var(--primary);color:#fff}
.cur-switch button:focus-visible{outline:2px solid var(--primary);outline-offset:2px}
@media (max-width:900px){.nav-links li.cur-switch-li{padding:12px 2px}}
.path-grid.three{grid-template-columns:repeat(3,1fr)}
@media (max-width:900px){.path-grid.three{grid-template-columns:1fr}}

/* ── живые графики на фоне ── */
.tc-chart-host{position:relative;isolation:isolate}
.tc-chart-canvas{position:absolute;inset:0;z-index:-1;pointer-events:none;
  -webkit-mask-image:radial-gradient(ellipse 46% 42% at 50% 50%,transparent 0%,rgba(0,0,0,.35) 55%,#000 100%);
  mask-image:radial-gradient(ellipse 46% 42% at 50% 50%,transparent 0%,rgba(0,0,0,.35) 55%,#000 100%);
  opacity:0;animation:tcChartIn 1.6s ease .2s forwards}
@keyframes tcChartIn{to{opacity:1}}
@media (max-width:700px){.tc-chart-canvas{-webkit-mask-image:linear-gradient(180deg,#000 0%,rgba(0,0,0,.25) 30%,rgba(0,0,0,.25) 75%,#000 100%);mask-image:linear-gradient(180deg,#000 0%,rgba(0,0,0,.25) 30%,rgba(0,0,0,.25) 75%,#000 100%)}}

/* ── скетчи «от руки» ── */
.tc-sketch{display:block;overflow:visible}
.tc-sketch .d{fill:none;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:1;stroke-dashoffset:1;transition:stroke-dashoffset .9s cubic-bezier(.6,.1,.3,1)}
.tc-sketch .f{opacity:0;transition:opacity .5s ease}
.tc-sketch.drawn .d{stroke-dashoffset:0}
.tc-sketch.drawn .f{opacity:1}
.tc-sketch .d2{transition-delay:.35s}.tc-sketch .d3{transition-delay:.7s}.tc-sketch .d4{transition-delay:1.05s}.tc-sketch .d5{transition-delay:1.4s}
.tc-sketch .f.d3{transition-delay:1s}.tc-sketch .f.d4{transition-delay:1.3s}.tc-sketch .f.d5{transition-delay:1.6s}
.tc-sketch .ink{stroke:#1E293B}.tc-sketch .ind{stroke:#4F46E5}.tc-sketch .red{stroke:#EF4444}
.tc-sketch .fill-red{fill:#EF4444;stroke:none}.tc-sketch .fill-ind{fill:#4F46E5;stroke:none}
/* «жизнь» после прорисовки */
.tc-sketch.drawn .spin{transform-origin:24px 24px;animation:tcSpin 9s linear 2s infinite}
.tc-sketch.drawn .nudge{animation:tcNudge 3.2s ease-in-out 2s infinite}
.tc-sketch.drawn .lever{transform-origin:41px 30px;animation:tcLever 3.6s ease-in-out 2.2s infinite}
.tc-sketch.drawn .reel{animation:tcReel 3.6s ease-in-out 2.2s infinite}
.tc-sketch.drawn .snip-a{transform-origin:30px 22px;animation:tcSnipA 2.8s ease-in-out 2.2s infinite}
.tc-sketch.drawn .snip-b{transform-origin:30px 22px;animation:tcSnipB 2.8s ease-in-out 2.2s infinite}
@keyframes tcSpin{to{transform:rotate(360deg)}}
@keyframes tcNudge{0%,60%,100%{transform:translateY(0)}75%{transform:translateY(3px)}}
@keyframes tcLever{0%,55%,100%{transform:rotate(0)}65%{transform:rotate(38deg)}}
@keyframes tcReel{0%,62%{transform:translateY(0);opacity:1}70%{transform:translateY(4px);opacity:.2}78%{transform:translateY(-3px);opacity:.2}86%,100%{transform:translateY(0);opacity:1}}
@keyframes tcSnipA{0%,50%,100%{transform:rotate(0)}60%{transform:rotate(-12deg)}70%{transform:rotate(0)}}
@keyframes tcSnipB{0%,50%,100%{transform:rotate(0)}60%{transform:rotate(12deg)}70%{transform:rotate(0)}}
.pain-card .pain-icon .tc-sketch{width:52px;height:52px}
.book-problem .section-icon .tc-sketch{width:40px;height:40px}
@media (prefers-reduced-motion:reduce){.tc-sketch *{animation:none!important;transition:none!important}.tc-sketch .d{stroke-dashoffset:0}.tc-sketch .f{opacity:1}}
.pain-card .pain-icon:has(.tc-sketch){width:auto;height:auto;background:none;border:0;border-radius:0;margin-bottom:14px;display:block}
.pain-card .pain-icon .tc-sketch{width:64px;height:64px}
.book-problem .section-icon .tc-sketch{width:44px;height:44px}

/* ── мобильное меню: блокировка скролла страницы ── */
html.tc-menu-open,html.tc-menu-open body,html:has(.nav-links.open),html:has(.nav-links.open) body{overflow:hidden;overscroll-behavior:none}
@media (max-width:900px){
  html.tc-menu-open nav,nav:has(.nav-links.open){max-height:100vh;max-height:100dvh;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}
}

/* ── Об авторе: история ── */
.ab2 .about-inner{grid-template-columns:.8fr 1.5fr;gap:64px}
.ab-left{position:sticky;top:110px}
.ab-photo{width:100%;max-width:300px;aspect-ratio:4/5;border-radius:24px;overflow:hidden;margin:18px 0 22px;box-shadow:0 20px 50px rgba(79,70,229,.15)}
.ab-photo img{width:100%;height:100%;object-fit:cover;display:block}
.ab-facts{display:flex;flex-wrap:wrap;gap:8px}
.ab-facts span{font-size:12px;font-weight:600;color:var(--text-light);background:#fff;border:1px solid var(--border);border-radius:30px;padding:6px 12px}
.ab-h{font-size:clamp(26px,3vw,38px);line-height:1.15;font-weight:800;letter-spacing:-.02em;color:var(--text);margin-bottom:28px}
.ab-tl{position:relative;padding-left:28px;margin-bottom:24px}
.ab-tl:before{content:'';position:absolute;left:7px;top:8px;bottom:8px;width:2px;background:linear-gradient(180deg,#C7D2FE,#FCA5A5 65%,#6EE7B7)}
.ab-ev{position:relative;margin-bottom:20px}
.ab-ev:before{content:'';position:absolute;left:-27px;top:6px;width:14px;height:14px;border-radius:50%;background:#fff;border:3px solid var(--primary)}
.ab-ev.hard:before{border-color:#EF4444}
.ab-ev.now:before{border-color:#10B981;background:#10B981}
.ab-y{font-size:13px;font-weight:800;letter-spacing:.12em;color:var(--primary);margin-bottom:4px}
.ab-ev.hard .ab-y{color:#DC2626}.ab-ev.now .ab-y{color:#059669}
.about-text .ab-ev p{font-size:16px;line-height:1.7;color:var(--text-light);margin:0}
.about-text .ab-ev.now p{font-weight:600;color:var(--text)}
.about-text .ab-p{font-size:17px;line-height:1.7;color:var(--text);font-weight:500;background:linear-gradient(135deg,#EEF2FF,#F5F3FF);border-radius:18px;padding:20px 24px;border:1px solid #DDD6FE}
.ab-wide{max-width:1200px;margin:64px auto 0;position:relative}
.ab-h3{font-size:clamp(22px,2.4vw,30px);font-weight:800;color:var(--text);letter-spacing:-.02em;margin:0 0 18px}
.ab-who{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-bottom:48px}
.ab-card{background:#fff;border:1px solid var(--border);border-radius:20px;padding:26px;box-shadow:0 4px 20px rgba(15,23,42,.04)}
.ab-tag{display:inline-block;font-size:11px;font-weight:800;letter-spacing:.14em;color:#fff;background:linear-gradient(135deg,#4F46E5,#7C3AED);border-radius:30px;padding:5px 12px;margin-bottom:12px}
.ab-card h4,.ab-req h4{font-size:19px;font-weight:800;color:var(--text);margin-bottom:8px}
.ab-card p,.ab-req p{font-size:15px;line-height:1.65;color:var(--muted);margin:0}
.ab-reqs{display:grid;grid-template-columns:repeat(2,1fr);gap:18px;margin-bottom:40px}
.ab-req{background:#fff;border:1px solid var(--border);border-radius:20px;padding:24px;display:flex;flex-direction:column}
.ab-req blockquote{margin:14px 0 0;padding:12px 14px;border-left:3px solid var(--primary);background:#F8FAFC;border-radius:0 12px 12px 0;font-size:14px;font-style:italic;color:var(--text-light);line-height:1.55}
.ab-final{text-align:center;padding:36px 24px;border-radius:24px;background:linear-gradient(135deg,#EEF2FF,#F5F3FF)}
.ab-final p{font-size:clamp(18px,2vw,22px);color:var(--text);margin-bottom:20px}
.ab-cta{display:flex;gap:12px;justify-content:center;flex-wrap:wrap}
@media (max-width:900px){.ab2 .about-inner{grid-template-columns:1fr;gap:28px}.ab-left{position:static}.ab-photo{max-width:220px}.ab-who,.ab-reqs{grid-template-columns:1fr}.ab-wide{margin-top:40px}}
.ab-ev.good:before{width:10px;height:10px;left:-25px;top:8px;border:0;background:#A5B4FC}
.ab-ev.good .ab-y{color:#6366F1}
.about-text .ab-ev.good p{font-size:15px;color:var(--muted)}

/* ── Об авторе v2: горизонтальный таймлайн с человечками ── */
.ab-lead{font-size:18px!important;line-height:1.65!important;color:var(--text)!important;margin-bottom:18px!important}
.ab-hint{margin-top:26px;font-size:13px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--primary)}
.ab-hint span{color:var(--muted);font-weight:600;letter-spacing:.04em;text-transform:none;margin-left:8px}
.tl-wrap{max-width:1200px;margin:34px auto 0;overflow-x:auto;overflow-y:hidden;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;padding:0 0 18px;scrollbar-width:thin;scrollbar-color:#C7D2FE transparent;
  -webkit-mask-image:linear-gradient(90deg,#000 92%,transparent);mask-image:linear-gradient(90deg,#000 92%,transparent)}
.tl-wrap.end{-webkit-mask-image:none;mask-image:none}
.tl-track{position:relative;padding-top:0}
.tl-curve{display:block;width:100%;height:130px;overflow:visible}
.tl-curve .eq-grid{stroke:#E2E8F0;stroke-width:1;stroke-dasharray:4 6;fill:none}
.tl-curve .eq{fill:none;stroke-width:4;stroke-linecap:round;stroke-dasharray:1;stroke-dashoffset:1;transition:stroke-dashoffset .5s ease var(--d)}
.tl-curve .eq-up{stroke:#6366F1}.tl-curve .eq-down{stroke:#EF4444}
.tl-wrap.seen .eq{stroke-dashoffset:0}
.eq-dot{fill:#fff;stroke-width:3.5;stroke:#6366F1}
.eq-dot.down{stroke:#EF4444}.eq-dot.crash{stroke:#DC2626;fill:#FEE2E2}.eq-dot.gym{stroke:#10B981;fill:#D1FAE5}
.tl-cards{display:grid;grid-auto-flow:column;grid-auto-columns:270px;gap:16px;margin-top:-8px}
.tl-card{scroll-snap-align:start;background:#fff;border:1px solid var(--border);border-radius:20px;padding:14px 18px 20px;box-shadow:0 4px 18px rgba(15,23,42,.04);position:relative}
.tl-card:before{content:'';position:absolute;top:-9px;left:50%;width:16px;height:16px;background:#fff;border-left:1px solid var(--border);border-top:1px solid var(--border);transform:translateX(-50%) rotate(45deg)}
.tl-card.down,.tl-card.crash{background:#FFFBFB;border-color:#FECACA}.tl-card.down:before,.tl-card.crash:before{background:#FFFBFB;border-color:#FECACA}
.tl-card.gym{background:#F7FEFB;border-color:#A7F3D0}.tl-card.gym:before{background:#F7FEFB;border-color:#A7F3D0}
.tl-y{font-size:13px;font-weight:800;letter-spacing:.1em;color:#6366F1;margin-top:2px}
.tl-card.down .tl-y,.tl-card.crash .tl-y{color:#DC2626}.tl-card.gym .tl-y{color:#059669}
.tl-card h4{font-size:17px;font-weight:800;color:var(--text);margin:4px 0 6px}
.tl-card p{font-size:14px;line-height:1.6;color:var(--muted);margin:0}
.man{display:block;width:92px;height:110px;margin:0 auto 4px;overflow:visible}
.man path,.man circle{fill:none;stroke:#1E293B;stroke-width:2.6;stroke-linecap:round;stroke-linejoin:round}
.man .dot{fill:#1E293B;stroke:none}
.man .ground{stroke:#CBD5E1;stroke-width:2}
.man .spark path{stroke:#F59E0B;stroke-width:2}
.man .cloud path{stroke:#94A3B8;fill:#F1F5F9}.man .cloud .rain{fill:none;stroke:#60A5FA;stroke-dasharray:3 4}
.man .tear{fill:#60A5FA;stroke:#60A5FA;stroke-width:1}
.man .sweat{fill:#38BDF8;stroke:#38BDF8;stroke-width:1}
.man .plate{stroke-width:4.5}
.man .press path{stroke:#1E293B}
/* анимации, всегда шевелятся */
.happy .body-j{animation:mJump 1.1s cubic-bezier(.5,0,.5,1) infinite;transform-origin:50px 98px}
.happy .arm-l{transform-origin:50px 50px;animation:mWaveL 1.1s ease-in-out infinite}
.happy .arm-r{transform-origin:50px 50px;animation:mWaveR 1.1s ease-in-out infinite}
.happy .spark{animation:mTwinkle 1.1s ease-in-out infinite}
.sad .body-s{transform-origin:50px 104px;animation:mSway 3.2s ease-in-out infinite}
.sad .tear{animation:mTear 2.2s ease-in infinite}
.sad .rain{animation:mRain .6s linear infinite}
.sad .cloud{animation:mCloud 3.2s ease-in-out infinite}
.tl-card.crash .man{filter:none}
.gym .press{transform-origin:50px 58px;animation:mPress 1.4s ease-in-out infinite}
.gym .body-g{transform-origin:50px 104px;animation:mSquat 1.4s ease-in-out infinite}
.gym .sweat{animation:mTear 1.4s ease-in infinite}
@keyframes mJump{0%,100%{transform:translateY(0) scaleY(1)}12%{transform:translateY(0) scaleY(.94)}45%{transform:translateY(-12px) scaleY(1.02)}80%{transform:translateY(0) scaleY(1)}}
@keyframes mWaveL{0%,100%{transform:rotate(0)}50%{transform:rotate(-14deg)}}
@keyframes mWaveR{0%,100%{transform:rotate(0)}50%{transform:rotate(14deg)}}
@keyframes mTwinkle{0%,100%{opacity:.2}50%{opacity:1}}
@keyframes mSway{0%,100%{transform:rotate(-2.5deg)}50%{transform:rotate(2.5deg) translateY(1px)}}
@keyframes mTear{0%{transform:translateY(0);opacity:0}15%{opacity:1}100%{transform:translateY(14px);opacity:0}}
@keyframes mRain{to{stroke-dashoffset:-14}}
@keyframes mCloud{0%,100%{transform:translateX(-2px)}50%{transform:translateX(2px)}}
@keyframes mPress{0%,100%{transform:scaleY(.62)}50%{transform:scaleY(1)}}
@keyframes mSquat{0%,100%{transform:scaleY(.97)}50%{transform:scaleY(1)}}
@media (prefers-reduced-motion:reduce){.man *{animation:none!important}.tl-curve .eq{stroke-dashoffset:0;transition:none}}
@media (max-width:900px){.tl-wrap{margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px}}
.tl-curve .eq-rec{stroke:#10B981}
@media (max-width:900px){.tl-wrap{scroll-padding-left:16px}.tl-track{margin-right:16px}}
/* 2023: человечек лежит в луже слёз */
.man.dead{width:120px}
.dead .puddle{fill:#BFDBFE;stroke:#93C5FD;stroke-width:1.5}
.dead .ripple{fill:none;stroke:#60A5FA;stroke-width:1.2;transform-origin:60px 98px;transform-box:view-box;animation:mRipple 2.4s ease-out infinite}
.dead .r2{animation-delay:1.2s}
.dead .corpse{transform-origin:60px 88px;transform-box:view-box;animation:mBreath 3s ease-in-out infinite}
.dead .xe{stroke-width:2}
.dead .flower{stroke:#16A34A;stroke-width:1.6}
.dead .petal{fill:#F9A8D4;stroke:#EC4899;stroke-width:1.2;transform-origin:62px 72px;transform-box:view-box;animation:mWilt 3s ease-in-out infinite}
.dead .tear{fill:#60A5FA;stroke:#60A5FA;stroke-width:1;transform-box:view-box}
.dead .t1{animation:mTearD 1.6s ease-in infinite}.dead .t2{animation:mTearD 1.6s ease-in .8s infinite}
@keyframes mRipple{0%{transform:scale(.3);opacity:.9}100%{transform:scale(2.2);opacity:0}}
@keyframes mBreath{0%,100%{transform:translateY(0)}50%{transform:translateY(.8px)}}
@keyframes mWilt{0%,100%{transform:rotate(0)}50%{transform:rotate(25deg)}}
@keyframes mTearD{0%{transform:translateY(0);opacity:0}20%{opacity:1}100%{transform:translateY(9px);opacity:0}}
/* hero: «скролл» не наезжает на ссылку теста */
.hero-test{margin-bottom:64px}
@media (max-width:900px){.hero-scroll{display:none}.hero-test{margin-bottom:24px}}
@media (max-width:900px){.tl-wrap{margin-top:4px}.ab-hint{margin-top:18px}}
/* баннер экспресс-курса */
.hero-promo i{font-style:normal;font-weight:500;color:var(--text-light)}
.hero-promo i:before{content:'· ';color:var(--muted)}
@media (max-width:700px){
  .hero{justify-content:flex-start;min-height:auto;padding-top:92px}
  .hero-promo{display:flex;flex-direction:column;gap:6px;width:100%;max-width:420px;border-radius:20px;padding:14px 16px;font-size:15px;line-height:1.35}
  .hero-promo i{font-size:14px}
  .hero-promo i:before{content:''}
  .hero-promo span{margin-top:6px;padding:9px 18px;font-size:14px}
}
/* плавающий баннер экспресс-курса */
.tc-float-promo{position:fixed;left:50%;bottom:12px;z-index:900;width:calc(100% - 24px);max-width:520px;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 8px 8px 14px;border-radius:16px;background:rgba(255,255,255,.96);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid rgba(79,70,229,.25);box-shadow:0 12px 32px rgba(15,23,42,.16);text-decoration:none;transform:translate(-50%,150%);transition:transform .3s cubic-bezier(.4,0,.2,1);pointer-events:none}
.tc-float-promo.show{transform:translate(-50%,0);pointer-events:auto}
.tc-float-promo .fp-t{min-width:0;line-height:1.3}
.tc-float-promo b{display:block;font-size:13px;color:var(--primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tc-float-promo small{display:block;font-size:12px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tc-float-promo span{flex-shrink:0;padding:9px 13px;border-radius:11px;background:linear-gradient(135deg,var(--primary),var(--secondary));color:#fff;font-weight:700;font-size:13px;white-space:nowrap}
.tc-float-promo b{font-size:14px}
/* 2019–2022: танцует под дождём из золотых монет */
.man.rich{width:120px}
.rich .coin{transform-box:view-box;animation:mCoin var(--t) linear var(--d) infinite;opacity:0}
.rich .coin ellipse{fill:#FCD34D;stroke:#D97706;stroke-width:1.4;transform-box:fill-box;transform-origin:center;animation:mFlip .5s linear infinite}
.rich .coin path{stroke:#B45309;stroke-width:1.2}
.rich .pile ellipse{fill:#FCD34D;stroke:#D97706;stroke-width:1.3}
.rich .mouth{fill:#F87171;stroke-width:2.2}
.rich .dancer{transform-box:view-box;transform-origin:60px 99px;animation:mDance .9s ease-in-out infinite}
.rich .d-arm-l{transform-box:view-box;transform-origin:60px 53px;animation:mArmL .45s ease-in-out infinite alternate}
.rich .d-arm-r{transform-box:view-box;transform-origin:60px 53px;animation:mArmR .45s ease-in-out infinite alternate}
.rich .d-leg-l{transform-box:view-box;transform-origin:60px 76px;animation:mLegL .9s ease-in-out infinite}
.rich .d-leg-r{transform-box:view-box;transform-origin:60px 76px;animation:mLegR .9s ease-in-out infinite}
@keyframes mCoin{0%{transform:translate(var(--x),-8px);opacity:0}10%{opacity:1}85%{opacity:1}100%{transform:translate(var(--x),104px);opacity:0}}
@keyframes mFlip{0%,100%{transform:scaleX(1)}50%{transform:scaleX(.15)}}
@keyframes mDance{0%,100%{transform:rotate(-7deg) translateY(0)}25%{transform:rotate(0) translateY(-4px)}50%{transform:rotate(7deg) translateY(0)}75%{transform:rotate(0) translateY(-4px)}}
@keyframes mArmL{from{transform:rotate(0)}to{transform:rotate(-55deg)}}
@keyframes mArmR{from{transform:rotate(0)}to{transform:rotate(-70deg)}}
@keyframes mLegL{0%,100%{transform:rotate(0)}50%{transform:rotate(18deg)}}
@keyframes mLegR{0%,100%{transform:rotate(-16deg)}50%{transform:rotate(0)}}
/* деньги и монеты во все хорошие годы */
.man .coin{transform-box:view-box;animation:mCoin var(--t) linear var(--d) infinite;opacity:0}
.man .coin ellipse{fill:#FCD34D;stroke:#D97706;stroke-width:1.4;transform-box:fill-box;transform-origin:center;animation:mFlip .5s linear infinite}
.man .coin path{stroke:#B45309;stroke-width:1.2}
.man .bill{transform-box:view-box;animation:mBill var(--t) ease-in-out var(--d) infinite;opacity:0}
.man .bill rect{fill:#BBF7D0;stroke:#16A34A;stroke-width:1.2}
.man .bill circle{fill:none;stroke:#16A34A;stroke-width:1}
.man .pile ellipse{fill:#FCD34D;stroke:#D97706;stroke-width:1.3}
.man .pile .pb{fill:#BBF7D0;stroke:#16A34A;stroke-width:1.2}
@keyframes mBill{0%{transform:translate(var(--x),-10px) rotate(0);opacity:0}10%{opacity:1}35%{transform:translate(calc(var(--x) + 6px),25px) rotate(var(--r))}65%{transform:translate(calc(var(--x) - 6px),65px) rotate(calc(var(--r) * -1))}88%{opacity:1}100%{transform:translate(var(--x),102px) rotate(0);opacity:0}}
/* 2024 → сейчас: длинная история — спорт, трейдинг, танцы, психоанализ */
.journey .sc{opacity:0;animation:mScene 14s linear infinite both}
.journey .sc2{animation-delay:3.5s}.journey .sc3{animation-delay:7s}.journey .sc4{animation-delay:10.5s}
@keyframes mScene{0%{opacity:0}3%{opacity:1}22%{opacity:1}25%{opacity:0}100%{opacity:0}}
.journey text{font-family:Inter,sans-serif;font-size:8.5px;font-weight:700;fill:#059669;text-anchor:middle;stroke:none;letter-spacing:.06em}
.journey .furn{stroke:#94A3B8}
.journey .body-g{transform-box:view-box;transform-origin:60px 104px;animation:mSquat 1.4s ease-in-out infinite}
.journey .press2{transform-box:view-box;transform-origin:60px 58px;animation:mPress 1.4s ease-in-out infinite}
.journey .sweat{fill:#38BDF8;stroke:#38BDF8;stroke-width:1;animation:mTear 1.4s ease-in infinite}
.journey .plate{stroke-width:4.5}
.journey .type{transform-box:view-box;transform-origin:39px 62px;animation:mType .25s ease-in-out infinite alternate}
.journey .chart{fill:none;stroke:#10B981;stroke-width:2}
.journey .pop{transform-box:view-box;animation:mPop 2s ease-out var(--d) infinite;opacity:0}
.journey .pop ellipse{fill:#FCD34D;stroke:#D97706;stroke-width:1.3}
.journey .pop path{stroke:#B45309;stroke-width:1.1}
.journey .note{stroke:#7C3AED;stroke-width:1.8;fill:none;animation:mNote 1.6s ease-in-out infinite}
.journey .n2{animation-delay:.8s}
.journey .gl{stroke-width:1.6}
.journey .book path{fill:#EEF2FF;stroke:#4F46E5;stroke-width:1.8}
.journey .book .page{fill:#fff;transform-box:view-box;transform-origin:64px 72px;animation:mPage 1.8s ease-in-out infinite}
.journey .th{fill:#fff;stroke:#94A3B8;stroke-width:1.4}
.journey .bubble{fill:#F5F3FF;stroke:#A78BFA;stroke-width:1.6;animation:mBub 2.4s ease-in-out infinite;transform-box:fill-box;transform-origin:center}
.journey .bt{fill:#6D28D9;font-size:7px;letter-spacing:0}
@keyframes mType{from{transform:rotate(0)}to{transform:rotate(-6deg)}}
@keyframes mPop{0%{transform:translate(0,0);opacity:0}10%{opacity:1}50%{transform:translate(calc(var(--dx) * .6),-34px)}85%{opacity:1}100%{transform:translate(var(--dx),-6px);opacity:0}}
@keyframes mNote{0%,100%{transform:translateY(0);opacity:.4}50%{transform:translateY(-6px);opacity:1}}
@keyframes mPage{0%,40%{transform:scaleX(1)}60%,100%{transform:scaleX(-1)}}
@keyframes mBub{0%,100%{transform:scale(1)}50%{transform:scale(1.05)}}
@media (prefers-reduced-motion:reduce){.journey .sc{animation:none;opacity:0}.journey .sc4{opacity:1}}
.journey .scr{fill:#F0FDF4;stroke:#1E293B;stroke-width:2.4}
/* японские свечи вдоль кривой */
.tl-curve{overflow:visible}
.tl-cdls .cdl{opacity:0;transform-box:fill-box;transform-origin:center bottom;transition:opacity .35s ease var(--d),transform .35s ease var(--d);transform:scaleY(.2)}
.tl-wrap.seen .tl-cdls .cdl{opacity:1;transform:none}
.tl-cdls .cu path{stroke:#16A34A;stroke-width:1.4}.tl-cdls .cu rect{fill:#22C55E;stroke:#16A34A;stroke-width:1}
.tl-cdls .cd path{stroke:#DC2626;stroke-width:1.4}.tl-cdls .cd rect{fill:#EF4444;stroke:#B91C1C;stroke-width:1}
.tl-curve .eq{stroke-width:3;opacity:.55}
.tl-cdls .big path{stroke-width:2.5}
.tl-cdls .big rect{fill:#DC2626;stroke:#7F1D1D;stroke-width:2;filter:drop-shadow(0 0 8px rgba(239,68,68,.8))}
.tl-wrap.seen .tl-cdls .big{animation:mDoom 1.6s ease-in-out 2s infinite}
@keyframes mDoom{0%,100%{transform:translateX(0)}20%{transform:translateX(-1.5px)}40%{transform:translateX(1.5px)}60%{transform:translateX(-1px)}80%{transform:translateX(1px)}}
.tl-curve{height:200px}
.tl-cdls .big path{stroke:#7F1D1D;stroke-width:3}
.tl-cdls .big rect{fill:#DC2626;stroke:#450A0A;stroke-width:2.5;filter:drop-shadow(0 0 10px rgba(220,38,38,.9)) drop-shadow(0 0 22px rgba(220,38,38,.5))}
.ab-goals{list-style:none;margin:12px 0 0;padding:0;display:grid;gap:10px}
.ab-goals li{display:grid;grid-template-columns:30px 1fr;gap:8px;align-items:start;font-size:15px;line-height:1.55;color:var(--muted)}
.ab-goals li span{width:30px;height:30px;border-radius:9px;background:#EEF2FF;display:flex;align-items:center;justify-content:center;font-size:15px}
.ab-goals b{color:var(--text)}
/* ── WhatsApp: плавающая кнопка и окно вопроса ── */
.tc-chat{--lift:0px;position:fixed;right:16px;bottom:calc(16px + var(--lift));z-index:950;transition:bottom .3s ease,opacity .2s}
.tc-chat.hidden{opacity:0;pointer-events:none}
.tcc-btn{width:58px;height:58px;border-radius:50%;border:0;background:#25D366;color:#fff;display:flex;align-items:center;justify-content:center;box-shadow:0 10px 28px rgba(37,211,102,.45);cursor:pointer;position:relative}
.tcc-btn svg{width:30px;height:30px}
.tcc-btn:after{content:'';position:absolute;inset:0;border-radius:50%;border:2px solid #25D366;animation:tccPulse 2.4s ease-out infinite}
@keyframes tccPulse{0%{transform:scale(1);opacity:.7}100%{transform:scale(1.6);opacity:0}}
.tc-chat.open .tcc-btn:after{display:none}
.tcc-bubble{position:absolute;right:68px;bottom:12px;white-space:nowrap;background:#fff;color:var(--text);font-size:14px;font-weight:600;padding:9px 14px;border-radius:14px 14px 4px 14px;box-shadow:0 8px 24px rgba(15,23,42,.15);border:1px solid var(--border);opacity:0;transform:translateX(8px);pointer-events:none;transition:all .3s;cursor:pointer}
.tc-chat.hint .tcc-bubble{opacity:1;transform:none;pointer-events:auto}
.tcc-panel{position:absolute;right:0;bottom:72px;width:min(340px,calc(100vw - 32px));background:#fff;border-radius:20px;box-shadow:0 20px 50px rgba(15,23,42,.22);border:1px solid var(--border);overflow:hidden;opacity:0;transform:translateY(12px) scale(.97);transform-origin:bottom right;pointer-events:none;transition:all .25s cubic-bezier(.4,0,.2,1)}
.tc-chat.open .tcc-panel{opacity:1;transform:none;pointer-events:auto}
.tcc-head{display:flex;align-items:center;gap:10px;padding:14px 14px;background:#075E54;color:#fff}
.tcc-head b{display:block;font-size:15px}.tcc-head small{display:block;font-size:12px;opacity:.85}
.tcc-av{width:38px;height:38px;border-radius:50%;background:#25D366;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.tcc-av svg{width:22px;height:22px;color:#fff}
.tcc-x{margin-left:auto;background:none;border:0;color:#fff;font-size:24px;line-height:1;cursor:pointer;padding:4px 6px;opacity:.85}
.tcc-body{padding:14px;background:#ECE5DD}
.tcc-msg{background:#fff;border-radius:4px 14px 14px 14px;padding:10px 12px;font-size:14px;line-height:1.5;color:#1E293B;margin-bottom:12px;box-shadow:0 1px 2px rgba(0,0,0,.08)}
.tcc-body textarea{width:100%;box-sizing:border-box;border:1px solid #D1D5DB;border-radius:12px;padding:10px 12px;font:inherit;font-size:15px;resize:none;outline:none;background:#fff}
.tcc-body textarea:focus{border-color:#25D366}
.tcc-send{margin-top:10px;width:100%;display:flex;align-items:center;justify-content:center;gap:8px;border:0;border-radius:12px;padding:12px;background:#25D366;color:#fff;font-weight:700;font-size:15px;cursor:pointer}
.tcc-send svg{width:20px;height:20px}
@media (max-width:600px){.tc-chat{right:12px}.tcc-btn{width:54px;height:54px}}
.tc-why-sub{font-size:clamp(17px,1.6vw,20px);font-weight:600;color:var(--primary);margin:-6px 0 28px}
/* таймлайн: мышь и стрелки */
.tl-wrap{cursor:grab}
.tl-wrap.dragging{cursor:grabbing;scroll-snap-type:none;user-select:none}
.tl-wrap.dragging *{pointer-events:none}
.tl-arrows{max-width:1200px;margin:18px auto -8px;display:flex;justify-content:flex-end;gap:8px}
.tl-arrows button{width:42px;height:42px;border-radius:50%;border:1px solid var(--border);background:#fff;color:var(--primary);font-size:18px;font-weight:700;cursor:pointer;box-shadow:0 4px 14px rgba(15,23,42,.06);transition:all .2s}
.tl-arrows button:hover:not(:disabled){background:var(--primary);color:#fff;border-color:var(--primary)}
.tl-arrows button:disabled{opacity:.35;cursor:default}
@media (max-width:900px),(hover:none){.tl-arrows{display:none}.tl-wrap{cursor:auto}}
@media (hover:hover) and (pointer:fine){.tl-wrap{scroll-snap-type:none}}
/* ── Инфраструктура TRADERCAMP ── */
.tc-infra .section-title{max-width:880px}
.tc-infra-lead{max-width:780px;font-size:17px;line-height:1.7;color:var(--text-light);margin:10px 0 30px}
.tc-infra-lead b{color:var(--primary)}
.tc-infra-steps{display:grid;grid-template-columns:repeat(5,1fr);gap:14px;position:relative}
.tc-infra-steps:before{content:'';position:absolute;left:6%;right:6%;top:34px;height:2px;background:linear-gradient(90deg,#C7D2FE,#7C3AED);z-index:0}
.tc-is{position:relative;z-index:1;display:block;background:#fff;border:1px solid var(--border);border-radius:18px;padding:18px 16px 18px;text-decoration:none;color:inherit;box-shadow:0 4px 18px rgba(15,23,42,.04);transition:transform .2s,box-shadow .2s,border-color .2s}
.tc-is:hover{transform:translateY(-3px);box-shadow:0 12px 30px rgba(79,70,229,.14);border-color:rgba(79,70,229,.35)}
.tc-is .n{width:34px;height:34px;border-radius:50%;background:linear-gradient(135deg,#4F46E5,#7C3AED);color:#fff;font-weight:800;display:flex;align-items:center;justify-content:center;margin-bottom:12px;box-shadow:0 0 0 5px #fff}
.tc-is b{display:block;font-size:16px;color:var(--text);margin-bottom:6px}
.tc-is p{font-size:14px;line-height:1.55;color:var(--muted);margin:0}
.tc-infra-without{display:flex;flex-wrap:wrap;gap:10px;margin-top:24px}
.tc-infra-without span{background:#EEF2FF;color:#3730A3;font-weight:600;font-size:14px;padding:9px 14px;border-radius:999px}
@media (max-width:1000px){.tc-infra-steps{grid-template-columns:1fr 1fr}.tc-infra-steps:before{display:none}}
@media (max-width:600px){.tc-infra-steps{grid-template-columns:1fr}.tc-is{display:grid;grid-template-columns:34px 1fr;column-gap:12px}.tc-is .n{grid-row:span 2;margin:0}.tc-infra-lead{font-size:16px}}
