/* «Живая модель»: карта развилок (js/livemap.js) и страница прохождения вокруг неё */
.lm{display:block;width:100%;height:100%}
.lm-lbl{font:500 13px/1 var(--sans);fill:var(--soft);paint-order:stroke;stroke:#f6f1e8;stroke-width:5px;stroke-linejoin:round;pointer-events:none}
.lm-lbl.on{fill:var(--ink);font-weight:700}
.lm-stage{font:600 19px var(--serif);fill:var(--ivory);paint-order:stroke;stroke:#f6f1e8;stroke-width:6px}
.lm-br{fill:none;stroke-linecap:round}
.lm-br.live{cursor:pointer}
.lm-tw{cursor:pointer;outline:none}
.lm-tw rect{transition:fill .25s,stroke-width .25s}
.lm-tw:hover rect,.lm-tw:focus rect{fill:#fff6ec;stroke-width:2}
.lm-loop{fill:none;stroke:var(--gold);stroke-width:2.2}
@keyframes lmPulse{0%,100%{opacity:.5}50%{opacity:.95}}
.lm-nb.cur .lm-halo{animation:lmPulse 1.8s ease-in-out infinite}
/* страница: шапка, карта, панель хода — без наложений */
.lm-page{position:fixed;inset:0;display:grid;grid-template-columns:1fr 400px;grid-template-rows:auto 1fr;padding:92px 28px 22px 34px;gap:14px 24px}
.lm-head{grid-column:1/-1;display:flex;align-items:flex-end;gap:24px;justify-content:space-between}
.lm-head .kicker a{color:var(--acc2)}
.lm-head h1{font:500 34px/1.1 var(--serif);margin:6px 0 0}
.lm-head .tabs{display:flex;gap:8px}
.lm-host{position:relative;min-height:0;border-radius:22px;overflow:hidden;background:radial-gradient(900px 500px at 40% 50%,rgba(255,253,249,.7),transparent 70%)}
.lm-canvas{position:absolute;inset:0}
/* сцена под картой: картинка модели как акварельная подложка */
.lm-scene{position:absolute;inset:0;pointer-events:none}
.lm-scene img{width:100%;height:100%;object-fit:cover;opacity:0;filter:saturate(.8) blur(1.2px);transform:scale(1.03);-webkit-mask:radial-gradient(ellipse 70% 75% at 50% 50%,#000 25%,transparent 72%);mask:radial-gradient(ellipse 70% 75% at 50% 50%,#000 25%,transparent 72%);animation:lmScene 1.6s ease-out .2s forwards}
@keyframes lmScene{to{opacity:.24}}
.lm-host .lm-legend{position:absolute;left:20px;bottom:12px;margin:0;padding:6px 10px;border:0;border-radius:10px;background:rgba(246,241,232,.7)}
/* бегущий свет по пройденной ветке */
.lm-flow{fill:none;stroke-linecap:round;opacity:.8;animation:lmFlow 2.4s linear infinite}
@keyframes lmFlow{to{stroke-dashoffset:-120px}}
/* концовка: цветок цвета исхода раскрывается, когда путь приходит к ней */
.lm-end .petals,.lm-end .ring{transform-box:view-box}
.lm-end.bloom .petals{animation:lmBloom 1.1s cubic-bezier(.2,.8,.2,1) both}
.lm-end.bloom .ring{animation:lmRing 1.5s ease-out both}
.lm-end.bloom .lm-endt{animation:lmIn .7s ease-out .5s both}
@keyframes lmBloom{from{transform:scale(.15) rotate(-40deg);opacity:0}to{transform:scale(1) rotate(0);opacity:1}}
@keyframes lmRing{from{transform:scale(.3);opacity:.8}to{transform:scale(1.6);opacity:0}}
.lm-side>*{animation:lmIn .45s ease-out both}
.lm-side.lm-wait{opacity:.35;transition:opacity .4s}
/* верх панели: действия всегда под рукой */
.lm-top{position:sticky;top:-22px;z-index:2;display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:-22px -24px 14px;padding:16px 24px 12px;background:var(--glass);border-bottom:1px solid var(--edge)}
.lm-top .btn{padding:9px 15px;font-size:14px}
.lm-step{font:600 13px var(--sans);color:var(--faint);margin-left:auto}
.lm-ok{font:600 13.5px var(--sans);color:#456ba5}
.lm-help{margin-top:12px;padding:11px 14px;border-radius:12px;background:rgba(100,127,174,.08);border:1px solid rgba(100,127,174,.25);font:400 13.5px/1.5 var(--sans);color:var(--soft)}
.lm-side{min-height:0;overflow:auto;background:var(--glass);border:1px solid var(--edge);border-radius:20px;box-shadow:var(--shadow);padding:22px 24px}
.lm-side .pk{font:600 13px var(--sans);color:var(--acc2);margin-bottom:6px}
.lm-side .pq{font:400 16.5px/1.6 var(--read);color:var(--ink);margin:0 0 14px}
.lm-side .sit{font:400 16px/1.6 var(--read);color:var(--soft);margin:0 0 16px}
.lm-op{display:block;width:100%;text-align:left;cursor:pointer;margin:0 0 9px;padding:11px 14px 11px 15px;border-radius:13px;border:1px solid var(--edge2);background:var(--card);font:500 15px/1.45 var(--read);color:var(--ink);transition:border-color .3s,background .3s}
.lm-op:hover{border-color:var(--hue);background:#fffaf3}
.lm-op i{float:right;font:600 11.5px var(--sans);font-style:normal;color:var(--faint);margin-left:8px}
.lm-happ{margin:0 0 16px;padding:13px 15px;border-radius:13px;background:rgba(180,100,60,.06);border-left:3px solid var(--hue,var(--gold))}
.lm-happ b{display:block;font:600 13px var(--sans);color:var(--gold);margin-bottom:5px}
.lm-happ p{margin:0;font:400 15.5px/1.55 var(--read)}
.lm-endc{padding:15px 17px;border-radius:14px;background:var(--card);border:1px solid var(--edge2)}
.lm-endc h3{font-size:27px;margin:2px 0 8px}
.lm-endc p{margin:0 0 10px;font:400 15.5px/1.55 var(--read);color:var(--soft)}
.lm-endc .w{color:var(--ink)}
.lm-acts{display:flex;gap:9px;flex-wrap:wrap;margin-top:14px}
.lm-acts .btn{padding:9px 15px;font-size:14px}
.lm-legend{display:flex;gap:14px;flex-wrap:wrap;font:500 12.5px var(--sans);color:var(--faint);margin-top:16px;padding-top:12px;border-top:1px solid var(--edge)}
.lm-legend span{display:inline-flex;align-items:center;gap:6px}.lm-legend i{width:16px;height:0;border-top:3px solid;display:inline-block}
@media (max-width:1100px){.lm-page{grid-template-columns:1fr 340px}}
@media (max-width:760px){.lm-page{position:static;display:block;padding:76px 14px 30px}.lm-head{display:block}.lm-head h1{font-size:26px}.lm-host{margin:12px 0}.lm-canvas{position:relative;inset:auto;height:190px}.lm-host .lm-legend{display:none}.lm-side{overflow:visible}.lm-top{top:0;margin:-22px -24px 12px}}
/* подтверждение сохранения пути — видно сразу и остаётся, пока путь тот же */
.lm-saved{margin-top:14px;padding:11px 14px;border-radius:13px;background:rgba(92,128,186,.09);border:1px solid rgba(92,128,186,.35);font:400 13.5px/1.5 var(--sans);color:var(--soft)}
.lm-saved a{font-weight:600;color:#456ba5}
@keyframes lmIn{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
/* «Могло сложиться иначе» — другие исходы тех же ходов */
.lm-alt{margin-top:14px;padding:13px 16px;border-radius:13px;background:rgba(79,134,198,.07);border:1px solid rgba(79,134,198,.25)}
.lm-alt .pk{color:#3f6fa8}
.lm-alt summary{cursor:pointer;list-style:none}.lm-alt summary::-webkit-details-marker{display:none}.lm-alt summary .pk{margin:0}
.lm-alt ul{margin:8px 0 8px;padding:0;list-style:none}
.lm-alt li{margin-bottom:7px}
.lm-altb{display:block;width:100%;text-align:left;cursor:pointer;padding:9px 12px;border-radius:11px;border:1px solid rgba(79,134,198,.3);background:var(--card);font:400 14.5px/1.5 var(--read);color:var(--ink);transition:border-color .3s,background .3s}
.lm-altb:hover{border-color:#3f6fa8;background:#f7faff}
.lm-altb b{display:block;font:600 12.5px var(--sans);color:var(--soft);margin-bottom:3px}
.lm-altb i{display:block;font:600 12.5px var(--sans);font-style:normal;color:#3f6fa8;margin-top:4px}
.lm-alt p{margin:0;font:400 13.5px/1.5 var(--sans);color:var(--soft)}
/* «так поступают N %» — опыт людей на развилке */
.lm-pct{display:block;position:relative;margin-top:7px;font:600 12px var(--sans);color:var(--soft)}
.lm-pct::after{content:"";display:block;height:3px;margin-top:4px;border-radius:2px;background:linear-gradient(90deg,var(--hue,var(--gold)) var(--p),rgba(70,48,28,.08) var(--p))}

/* свой ход словами */
.lm-own{margin-top:16px;padding:14px 15px 13px;border-radius:14px;background:rgba(138,108,200,.07);border:1px solid rgba(138,108,200,.3)}
.lm-own .pk{color:#6e52a8}
.lm-own textarea{width:100%;box-sizing:border-box;resize:vertical;min-height:58px;padding:10px 12px;border-radius:11px;border:1px solid rgba(138,108,200,.35);background:var(--card);font:400 15px/1.5 var(--read);color:var(--ink);outline:none}
.lm-own textarea:focus{border-color:#8a6cc8;box-shadow:0 0 0 4px rgba(138,108,200,.12)}
.lm-own .row{display:flex;gap:12px;align-items:center;margin-top:9px}
.lm-own .btn.main{background:#8a6cc8;border-color:#8a6cc8;white-space:nowrap;flex:none}
.lm-own .hint{font:400 12.5px/1.4 var(--sans);color:var(--faint)}
.lm-own .st{min-height:0;margin-top:8px;font:500 13.5px var(--sans);color:#6e52a8}
.lm-own .st i{display:inline-block;width:10px;height:10px;border-radius:50%;background:#8a6cc8;margin-right:8px;vertical-align:-1px;animation:lmPulse 1.2s ease-in-out infinite}
.lm-happ.user{border-left-color:#8a6cc8;background:rgba(138,108,200,.08)}
.lm-happ.user b{color:#6e52a8}.lm-happ.user b span{font-weight:500;color:var(--faint)}
.lm-happ .say{margin-top:8px;font:italic 400 14.5px/1.5 var(--read);color:var(--ink)}
.lm-side.lm-think .lm-op{opacity:.5;pointer-events:none}

/* «карта как фильм»: кадр шага и раскадровка */
.lm-frame{position:relative;margin:0 0 10px;border-radius:11px;overflow:hidden;background:rgba(70,48,28,.06);aspect-ratio:3/2}
.lm-frame img{display:block;width:100%;height:100%;object-fit:cover;animation:lmIn .9s ease-out both}
.lm-frame .wait{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;gap:8px;font:500 13px var(--sans);color:var(--faint);background:linear-gradient(110deg,rgba(255,253,249,.3),rgba(255,253,249,.7),rgba(255,253,249,.3));background-size:200% 100%;animation:lmShimmer 2s linear infinite}
.lm-frame .wait i{width:9px;height:9px;border-radius:50%;background:var(--gold);animation:lmPulse 1.2s ease-in-out infinite}
@keyframes lmShimmer{to{background-position:-200% 0}}
.lm-film{margin-top:14px;padding:13px 15px 14px;border-radius:14px;background:var(--card);border:1px solid var(--edge2)}
.lm-film .strip{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:8px}
.lm-shot .ph{aspect-ratio:3/2;border-radius:9px;overflow:hidden;background:rgba(70,48,28,.06);display:grid;place-items:center;color:var(--faint)}
.lm-shot .ph img{width:100%;height:100%;object-fit:cover;display:block}
.lm-shot b{display:block;margin-top:6px;font:600 12.5px/1.35 var(--sans);color:var(--ink)}
.lm-shot p{margin:2px 0 0;font:400 12.5px/1.4 var(--read);color:var(--soft);display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.lm-film .row{display:flex;flex-wrap:wrap;gap:8px 12px;align-items:center;margin-top:12px}.lm-film .row .hint{flex:1 1 100%}.lm-film .row .btn{padding:8px 14px;font-size:13.5px;white-space:nowrap;flex:none}.lm-film .hint{font:400 12.5px/1.4 var(--sans);color:var(--faint)}
/* интонация «Кино» (основная с 22.10.2026) */
.lm-head h1{color:var(--ivory);font-size:40px;text-shadow:0 2px 24px rgba(0,0,0,.6)}
.lm-head .kicker a{color:var(--acc2)}
.lm-host{border-radius:0;background:none}
.lm-scene img{opacity:0;filter:saturate(1.05) contrast(1.02);transform:none;-webkit-mask:linear-gradient(90deg,#000 75%,transparent 100%),linear-gradient(180deg,transparent 0,#000 18%,#000 82%,transparent 100%);-webkit-mask-composite:source-in;mask:linear-gradient(90deg,#000 75%,transparent 100%),linear-gradient(180deg,transparent 0,#000 18%,#000 82%,transparent 100%);mask-composite:intersect;animation:lmSceneC 2s ease-out .1s forwards}
@keyframes lmSceneC{to{opacity:.78}}
.lm-stage{fill:#fff6ea;stroke:rgba(20,14,10,.75);stroke-width:7px}
.lm-lbl{fill:#f3eadc;stroke:rgba(20,14,10,.7);stroke-width:5px}.lm-lbl.on{fill:#fff}
.lm-tw rect{fill:rgba(30,22,17,.82);stroke:rgba(255,236,210,.35)}
.lm-tw:hover rect,.lm-tw:focus rect{fill:rgba(50,38,30,.92)}
.lm-loop{stroke:var(--gold)}
.lm-flow{stroke:#fff3dd;opacity:.95}
.lm-nb .lm-halo{opacity:.5}
.lm-host .lm-legend{left:48px;bottom:16px;background:rgba(30,22,17,.7);color:var(--soft)}
.lm-side{border-radius:0;border:0;border-left:1px solid var(--edge);background:rgba(28,21,16,.82);backdrop-filter:blur(22px);box-shadow:-30px 0 80px -40px rgba(0,0,0,.8);padding:26px 30px 30px}
.lm-top{margin:-26px -30px 16px;padding:18px 30px 12px;background:rgba(28,21,16,.9);border-bottom:1px solid var(--edge)}
.btn{background:rgba(255,236,210,.06);border-color:var(--edge2);color:var(--ink)}.btn.main{background:var(--gold);border-color:var(--gold);color:#2a211b}
.lm-side .pk{color:var(--acc2)}.lm-step{color:var(--faint)}
.lm-side .pq,.lm-side .sit{color:var(--ink)}
.lm-op{background:rgba(255,236,210,.05);border-color:var(--edge);color:var(--ink)}.lm-op:hover{background:rgba(255,236,210,.1);border-color:var(--gold)}.lm-op i{color:var(--faint)}
.lm-happ{background:rgba(255,236,210,.06);border-left-color:var(--gold)}.lm-happ b{color:var(--gold)}.lm-happ p{color:var(--ink)}
.lm-frame{box-shadow:0 20px 50px -20px rgba(0,0,0,.9)}
.lm-endc{background:rgba(255,236,210,.05)}.lm-endc h3{color:var(--ivory)}.lm-endc p{color:var(--soft)}.lm-endc .w{color:var(--ink)}
.lm-help{background:rgba(165,183,221,.1);border-color:rgba(165,183,221,.3);color:var(--soft)}
.lm-alt{background:rgba(120,150,200,.08);border-color:rgba(120,150,200,.25)}.lm-alt .pk{color:#9fb8e0}.lm-altb{background:rgba(255,236,210,.05);border-color:rgba(120,150,200,.3);color:var(--ink)}.lm-altb:hover{background:rgba(120,150,200,.12)}.lm-altb b{color:var(--faint)}.lm-altb i{color:#9fb8e0}
.lm-own{background:rgba(138,108,200,.1);border-color:rgba(138,108,200,.35)}.lm-own .pk{color:#c7b5f0}.lm-own textarea{background:rgba(20,14,10,.5);color:var(--ink);border-color:rgba(138,108,200,.4)}.lm-own .hint,.lm-own .st{color:var(--faint)}
.lm-happ.user{background:rgba(138,108,200,.12)}.lm-happ.user b{color:#c7b5f0}
.lm-film{background:rgba(255,236,210,.04);border-color:var(--edge)}.lm-shot b{color:var(--ink)}.lm-shot p{color:var(--soft)}.lm-film .hint{color:var(--faint)}
.lm-saved{background:rgba(92,128,186,.15);border-color:rgba(92,128,186,.4);color:var(--soft)}
.fb-q{color:var(--soft)}
/* настольная раскладка «Кино»: шапка поверх сцены, панель справа без отступов — только на широких экранах */
@media (min-width:761px){.lm-page{padding:92px 0 0 0;gap:0;grid-template-columns:1fr 440px} .lm-head{position:absolute;z-index:5;left:48px;top:98px;right:500px;pointer-events:none} .lm-head>*{pointer-events:auto} .lm-canvas{top:150px;bottom:40px}}
