/* «Долина Мил» · слой декора главной · шаг 1 · 15.10.2026
   Только дополняет: текст, кнопки, ссылки, id — как на живой главной.
   Шаг 2 (15.10): иллюстрации — <img> из /assets/dolina/ill/ (вставляет tools/build_dolina.py), стили — «ИЛЛ».
   Шаг 3 (15.10, личка 389–390): мир — летающие острова: фон hero ostrova-hero, финал ostrova-noch, пасхалка-остров в «Кто стоит».
   Откат: убрать dolina.css/dolina.js — страница прежняя. */
:root{--mint:#4FBFAE;--mark:#2DD9C4;--cream-body:#F4EDE0;--cream-sh:#EAD9BE;--line:#0B2420;--blush:#F4A6A6;--meadow:#CFEBD2;--meadow-deep:#8CC7A1;--wood:#B8845A;--night:#1E3A5F;--mist:rgba(251,251,248,.55);--dl-r:max(16px,calc(50% - 568px))}
.dl{display:block;position:absolute;pointer-events:none}
.dl svg{display:block;overflow:visible}
.dl-sprite{position:absolute;width:0;height:0;overflow:hidden}
.dl-egg{position:relative;display:block;pointer-events:auto;cursor:pointer;-webkit-tap-highlight-color:transparent}
.dl-egg[data-say]::after{content:attr(data-say);position:absolute;left:50%;bottom:100%;margin-bottom:6px;z-index:6;transform:translate(-50%,6px);opacity:0;white-space:nowrap;pointer-events:none;
 background:#e3f4f0;color:#134e4a;font:700 13px/1.25 -apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif;padding:7px 11px;border-radius:12px 12px 12px 4px;box-shadow:0 8px 18px rgba(19,78,74,.18);transition:opacity .25s,transform .25s}
.dl-egg.dl-say::after{opacity:1;transform:translate(-50%,0)}
.dl-sp,.dl-lamp,.dl-halo,.dl-hand,.dl-spin,.dl-spin2,.dl-blink,.dl-eyes,.dl-ear,.dl-dtail,.dl-tail,.dl-bell,.dl-peek,.dl-spark,.dl-glow,.dl-ghost,.dl-b,.dl-fly,.dl-dove,.dl-dove2,.dl-coin,.dl-coins circle,.dl-notes{transform-box:fill-box;transform-origin:center}

/* стек слоёв: фон-декор под текстом */
#hero,#tri,#kompanon,#menedzher,#marketolog,#krypto,#ruki,#dlya-sebya,#ekran,#kak,#kniga,#video,#otzyvy,#kto,#faq,#cta{isolation:isolate}

/* метка «точка над i» в логотипе — пульс 1 раз */
.msh-wm{position:relative}
.msh-wm::after,.msh-wm::before{content:"";position:absolute;left:1.02em;top:-.08em;width:.26em;height:.26em;border-radius:50%;background:var(--mark)}
.msh-wm::before{background:none;border:2px solid var(--mark);box-sizing:border-box;opacity:0;animation:dl-ping 1.4s ease-out .5s 1}
@keyframes dl-ping{0%{opacity:.9;transform:scale(1)}100%{opacity:0;transform:scale(3.2)}}

/* метки-подписи долины над секциями (капитель) — не текст страницы */
#tri{--dl-n:"Четыре поместья у реки"}#kompanon{--dl-n:"Домик Компаньона"}#menedzher{--dl-n:"Почтовая станция"}#marketolog{--dl-n:"Пасека и поле"}#krypto{--dl-n:"Мельница на реке"}#ruki{--dl-n:"Сарай с инструментами"}#dlya-sebya{--dl-n:"Домашний сад"}#ekran{--dl-n:"Смотровая площадка"}#kak{--dl-n:"Тропа к Башне"}#kniga{--dl-n:"Библиотека Башни"}#video{--dl-n:"Кино под открытым небом"}#otzyvy{--dl-n:"Ярмарка"}#kto{--dl-n:"Хозяева долины"}#faq{--dl-n:"Доска у ворот"}#cta{--dl-n:"Ворота-кольцо"}
:lang(en) #tri{--dl-n:"Four estates by the river"}:lang(en) #kompanon{--dl-n:"Companion’s cottage"}:lang(en) #menedzher{--dl-n:"Post station"}:lang(en) #marketolog{--dl-n:"Apiary and field"}:lang(en) #krypto{--dl-n:"Mill on the river"}:lang(en) #ruki{--dl-n:"Tool shed"}:lang(en) #dlya-sebya{--dl-n:"Home garden"}:lang(en) #ekran{--dl-n:"Lookout point"}:lang(en) #kak{--dl-n:"Path to the Tower"}:lang(en) #kniga{--dl-n:"Tower library"}:lang(en) #video{--dl-n:"Open-air cinema"}:lang(en) #otzyvy{--dl-n:"The fair"}:lang(en) #kto{--dl-n:"Hosts of the valley"}:lang(en) #faq{--dl-n:"Board at the gate"}:lang(en) #cta{--dl-n:"Ring gate"}
:lang(uz) #tri{--dl-n:"Daryo bo‘yida to‘rt qo‘rg‘on"}:lang(uz) #kompanon{--dl-n:"Hamroh uychasi"}:lang(uz) #menedzher{--dl-n:"Pochta bekati"}:lang(uz) #marketolog{--dl-n:"Asalarixona va dala"}:lang(uz) #krypto{--dl-n:"Daryodagi tegirmon"}:lang(uz) #ruki{--dl-n:"Asboblar omborchasi"}:lang(uz) #dlya-sebya{--dl-n:"Uy bog‘i"}:lang(uz) #ekran{--dl-n:"Tomosha maydoni"}:lang(uz) #kak{--dl-n:"Minoraga yo‘l"}:lang(uz) #kniga{--dl-n:"Minora kutubxonasi"}:lang(uz) #video{--dl-n:"Ochiq osmon ostida kino"}:lang(uz) #otzyvy{--dl-n:"Bozor"}:lang(uz) #kto{--dl-n:"Vodiy egalari"}:lang(uz) #faq{--dl-n:"Darvoza yonidagi taxta"}:lang(uz) #cta{--dl-n:"Halqa-darvoza"}
section[id]>.wrap::before{display:none!important;content:none;content:var(--dl-n,none) / "";display:block;width:max-content;max-width:100%;margin:clamp(-34px,-2.4vw,-18px) 0 clamp(10px,1.4vw,16px);font:600 12px/1 -apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif;letter-spacing:.14em;text-transform:uppercase;color:#4f6461;padding-left:22px;
 background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='8'%3E%3Cpath d='M1 4c2.3-3 4.7-3 7 0s4.7 3 7 0' fill='none' stroke='%234FBFAE' stroke-width='2' stroke-linecap='round'/%3E%3C/svg%3E") 0 50%/16px 8px no-repeat}

/* 3 · Мятная река — по левому полю всех секций, течёт при прокрутке */
.dl-rv{top:0;bottom:0;left:max(6px,calc(50% - 640px));width:16px;z-index:-1;clip-path:inset(0 -30px)}
.dl-rv>span{position:absolute;left:0;right:0;top:-80px;bottom:0;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='80'%3E%3Cpath d='M8 0C14 13 14 27 8 40S2 67 8 80' fill='none' stroke='%234FBFAE' stroke-width='2.6' stroke-linecap='round'/%3E%3C/svg%3E") 0 0/16px 80px repeat-y;opacity:.85}
@supports (animation-timeline:scroll()){.dl-rv>span{animation:dl-flow linear both;animation-timeline:scroll(root);animation-iteration-count:60}}
@keyframes dl-flow{to{transform:translateY(80px)}}
#cta>.dl-rv{bottom:42%}
#cta>.dl-rv::after{content:"";position:absolute;left:50%;bottom:0;width:34px;height:16px;margin-left:-17px;border:3px solid var(--mint);border-radius:50%;background:rgba(79,191,174,.18);box-sizing:border-box}
@media(max-width:1300px){.dl-rv{left:2px;width:12px}.dl-rv>span{background-size:12px 80px}}
@media(max-width:700px){.dl-rv{left:0;width:8px}.dl-rv>span{background:linear-gradient(90deg,rgba(79,191,174,.6),rgba(79,191,174,.18));top:0;animation:none}
 #cta>.dl-rv::after{width:22px;height:12px;margin-left:-7px}}

/* 1–2 · Hero: панорама-заглушка, облака, журавлик, Башня с маяком */
.dl-hero{inset:0}
.dl-pano{position:absolute;inset:0;z-index:-1;overflow:hidden}
.dl img{display:block;max-width:none}
.dl-pano>img,.dl-bash>img,.dl-night>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 100%}/* ИЛЛ фоны */
.dl-pano>img{object-position:50% 58%}/* ИЛЛ ostrova-hero: острова и маяк в кадре, облака снизу */
.dl-pano::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(251,251,248,.99) 0,rgba(251,251,248,.99) 50%,rgba(251,251,248,.75) 64%,rgba(251,251,248,.25) 100%)}
.dl-cloud{position:absolute;z-index:-1;left:0;width:96px;height:38px;opacity:.9;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 54 25'%3E%3Cpath d='M14 21c-5 0-8-3-8-6.5S9 9 13 9.5C14 5 18 3 22 4c2-3 7-4 11-2 3 1 5 4 5 7 4-1 9 2 9 6s-3 6-7 6c-1 1-3 1.5-5 1.5H18c-2 0-3-.5-4-1z' fill='%23fff' stroke='%23CFEBD2' stroke-width='1.5'/%3E%3C/svg%3E") 0 0/100% 100% no-repeat;animation:dl-drift 60s linear infinite}
.dl-cloud.c1{top:22px;animation-delay:-12s}.dl-cloud.c2{top:58px;width:70px;height:28px;animation-delay:-38s;animation-duration:80s}.dl-cloud.c3{top:8px;width:120px;height:48px;animation-delay:-52s;animation-duration:95s}@media(max-width:860px){.dl-cloud{display:none}}
@keyframes dl-drift{from{transform:translateX(-140px)}to{transform:translateX(105vw)}}
.dl-crane{position:absolute;top:58px;right:0;z-index:2;width:44px;animation:dl-crane 20s linear infinite}
.dl-crane:hover svg{animation:dl-loop .9s ease-in-out}
@keyframes dl-crane{0%{transform:translate(70px,0);opacity:1}20%{transform:translate(-104vw,-26px);opacity:1}20.1%,100%{transform:translate(70px,0);opacity:0}}
@keyframes dl-loop{to{transform:rotate(-360deg)}}
.dl-tower{position:absolute;z-index:2;right:max(12px,calc(50% - 700px));bottom:0;width:90px}
.dl-tower svg{width:100%;height:auto}
.dl-adm{position:absolute;right:calc(100% + 10px);bottom:14px;width:112px;height:112px;border-radius:20px;border:2px solid var(--line);box-shadow:0 10px 24px rgba(19,78,74,.22);background:#1d4f49}/* ИЛЛ mila-admin-balkon */
.dl-tower[data-say]::after{left:auto;right:0;transform:translateY(6px)}.dl-tower.dl-say::after{transform:none}
.dl-lamp{animation:dl-beacon 3s ease-in-out infinite}.dl-halo{animation:dl-halo 3s ease-in-out infinite}
.dl-tower.dl-hit .dl-lamp{animation:dl-wink .3s ease-in-out 4}
@keyframes dl-beacon{50%{opacity:.45}}@keyframes dl-halo{50%{opacity:.08;transform:scale(1.25)}}@keyframes dl-wink{50%{transform:scaleY(.15)}}
.dl-hand{transform-origin:0 100%;animation:dl-wave 2.4s ease-in-out infinite}
@keyframes dl-wave{0%,60%,100%{transform:rotate(0)}70%,90%{transform:rotate(-24deg)}80%{transform:rotate(12deg)}}
@media(max-width:1250px){.dl-tower{width:68px}.dl-adm{width:96px;height:96px}}
@media(max-width:900px){.dl-tower{top:64px;bottom:auto;right:10px;width:54px}.dl-adm{right:-4px;bottom:auto;top:calc(100% + 8px);width:62px;height:62px;border-radius:14px}.dl-tower[data-say]::after{bottom:auto;top:100%;margin:6px 0 0}
 .dl-pano::after{background:linear-gradient(180deg,rgba(251,251,248,.45) 0,rgba(251,251,248,.96) 34%,rgba(251,251,248,.97) 100%)}}

/* 2 · «Выберите свою Милу»: двор у каждой карточки */
#tri .prod{padding-bottom:40px}
.dl-yard{left:0;right:0;bottom:0;height:22px;background:radial-gradient(circle at 6px 9px,var(--meadow) 6px,transparent 6.5px) 0 0/12px 10px repeat-x,linear-gradient(var(--meadow),var(--meadow)) 0 9px/100% 100% no-repeat}
.dl-yard>.dl-hs{position:absolute;right:57px;bottom:2px;width:40px;height:40px;border-radius:50%;box-shadow:0 0 0 2px var(--line),0 0 0 4px var(--mint)}/* ИЛЛ двор — медальон Милы */
@media(max-width:700px){.dl-yard>.dl-hs{width:46px;height:46px}}
.dl-pet{right:10px;bottom:5px;width:48px;height:48px;z-index:2}
.dl-pet .dl-egg[data-say]::after{left:auto;right:2px;transform:translateY(6px)}.dl-pet .dl-egg.dl-say::after{transform:none}
.dl-cat svg{transform-origin:50% 100%;transition:transform .35s cubic-bezier(.2,.8,.2,1)}
.dl-cat:hover svg{transform:scale(1.12,.9)}
.dl-tail{transform-origin:0 100%;animation:dl-wag 3s ease-in-out infinite}
.dl-eyes,.dl-blink{animation:dl-bl 6s infinite}
@keyframes dl-wag{50%{transform:rotate(14deg)}}@keyframes dl-bl{0%,95%,100%{transform:none}97%{transform:scaleY(.1)}}
.dl-dovec:hover .dl-dove{animation:dl-hop 1.1s cubic-bezier(.2,.8,.2,1)}
@keyframes dl-hop{40%{transform:translate(-6px,-18px) rotate(-10deg)}70%{transform:translate(2px,-10px)}}
.dl-b{animation:dl-buzz 2.6s ease-in-out infinite}.dl-b.b2{animation-delay:-.9s}.dl-b.b3{animation-delay:-1.7s}
.dl-b.b4{opacity:0;transition:opacity .3s}
.prod:hover .dl-b.b4{opacity:1;animation:dl-out 1.6s ease-in-out infinite}
@keyframes dl-buzz{25%{transform:translate(3px,-3px)}50%{transform:translate(-2px,-5px)}75%{transform:translate(-4px,1px)}}
@keyframes dl-out{50%{transform:translate(-10px,-8px)}}
.dl-hive.dl-say::after{animation:dl-up 1.2s ease-out forwards}
@keyframes dl-up{0%{opacity:0;transform:translateY(8px)}25%{opacity:1}100%{opacity:0;transform:translateY(-22px)}}
.dl-spin{animation:dl-rot 12s linear infinite}
.dl-cmill:hover .dl-spin{animation-duration:4s}
@keyframes dl-rot{to{transform:rotate(360deg)}}

/* 3 · Компаньон: домик, кот на крыше, собачка у двери */
.dl-home{top:clamp(4px,1.4vw,14px);right:var(--dl-r);width:120px}
.dl-home>svg{width:100%;height:auto}
.dl-dog{position:absolute;left:-44px;bottom:0;width:56px}
.dl-dog svg{width:100%;height:auto}
.dl-ear{transform-origin:50% 0}.dl-dog:hover .dl-ear{animation:dl-ear .4s ease-in-out 2}
.dl-dtail{transform-origin:0 100%}.dl-dog.dl-hit .dl-dtail{animation:dl-wag .25s ease-in-out 8}
@keyframes dl-ear{50%{transform:rotate(-22deg)}}
@media(max-width:700px){.dl-home{width:76px;top:2px}.dl-dog{width:38px;left:-30px}}

/* 4 · Менеджер: витраж-карта, открытка с маркой, почтовые ящики и голубь */
.dl-glass{inset:0;z-index:-1;opacity:.06;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='220' height='220'%3E%3Cg fill='none' stroke='%23134e4a' stroke-width='2'%3E%3Cpath d='M0 60 70 40l60 30 90-20M0 150l80-20 50 40 90-30M70 40l10 90M130 70l-0 100M180 55l10 110'/%3E%3Cpath d='M0 100c50 10 80-20 120 0s70 30 100 10' stroke='%230d9488' stroke-width='4'/%3E%3C/g%3E%3C/svg%3E") 0 0/220px 220px}
#msum{position:relative;outline:2px dashed rgba(79,191,174,.6);outline-offset:-7px}
.dl-stamp{top:-44px;right:-8px;width:46px;transform:rotate(7deg);z-index:2}
.dl-post{right:var(--dl-r);bottom:8px;width:150px}
.dl-post>svg{width:100%;height:auto}
.dl-dove2{transition:transform 1.3s cubic-bezier(.2,.8,.2,1),opacity .6s}
.dl-js .dl-post:not(.dl-in) .dl-dove2{opacity:0;transform:translate(46px,-34px) rotate(-12deg)}
@media(max-width:700px){.dl-post{width:100px;bottom:4px}.dl-stamp{width:34px;top:-30px;right:4px}}

/* 5 · Маркетолог: улей и три пчелы */
.dl-apiary{right:var(--dl-r);bottom:6px;width:130px}
.dl-apiary>svg{width:100%;height:auto}
.dl-fly{animation:dl-fly 8s ease-in-out infinite}.dl-fly.f2{animation-delay:-2.7s}.dl-fly.f3{animation-delay:-5.3s}
@keyframes dl-fly{20%{transform:translate(-22px,-12px) rotate(-12deg)}45%{transform:translate(-8px,14px) rotate(8deg)}70%{transform:translate(16px,2px) rotate(14deg)}}
@media(max-width:700px){.dl-apiary{width:82px;bottom:2px}}

/* 6–7 · Крипто: водяное колесо у фигурки, монеты в ручье */
.kfig2>.dl-mill{left:-84px;bottom:-14px;width:120px;z-index:3}
.dl-mill svg{width:100%;height:auto}
.dl-whl:hover .dl-spin2{animation:dl-rot 6s linear infinite}
.dl-coins circle{animation:dl-glint 2.4s ease-in-out infinite}.dl-coins circle+circle{animation-delay:-1.2s}
@keyframes dl-glint{50%{opacity:.35}}
.dl-coin{opacity:0}.dl-whl.dl-hit .dl-coin{animation:dl-coin 1s cubic-bezier(.2,.8,.2,1)}
@keyframes dl-coin{0%{opacity:1;transform:none}60%{opacity:1;transform:translateY(-46px) scale(1.2)}100%{opacity:0;transform:translateY(-60px)}}
@media(max-width:900px){.kfig2>.dl-mill{left:-26px;bottom:-18px;width:84px}}

/* 7 · Руки Милы: полка с инструментами, колокольчик ElevenLabs */
.dl-shelf{right:var(--dl-r);top:clamp(4px,1.6vw,22px);width:250px}
.dl-shelf>svg{width:100%;height:auto}
.dl-bellhit{position:absolute!important;left:calc(70.4% - 22px);top:12%;width:44px;height:78%;z-index:2}
.dl-bell{transform-origin:50% 0}
.dl-bellhit:hover+svg .dl-bell{animation:dl-swing 1s ease-in-out}
.dl-notes{opacity:0}.dl-bellhit:hover+svg .dl-notes{animation:dl-notes 1.2s ease-out}
@keyframes dl-swing{25%{transform:rotate(14deg)}50%{transform:rotate(-10deg)}75%{transform:rotate(5deg)}}
@keyframes dl-notes{0%{opacity:0;transform:none}30%{opacity:1}100%{opacity:0;transform:translate(6px,-18px)}}
@media(max-width:700px){.dl-shelf{width:150px;top:4px}}

/* 10 · Для себя: окно — свет меняется с вкладкой (Утро/День/Вечер; ночью — ночь) */
.dl-win{right:var(--dl-r);top:clamp(2px,1.2vw,12px);width:176px}
.dl-win>img{width:100%;height:auto;transition:filter .6s}/* ИЛЛ okno-dolina */
.dl-win[data-t="0"]>img{filter:sepia(.18) saturate(1.1)}
.dl-win[data-t="2"]>img{filter:sepia(.35) saturate(1.15) hue-rotate(-12deg) brightness(.92)}
.dl-win[data-t="n"]>img{filter:brightness(.55) saturate(.8) hue-rotate(15deg)}
@media(max-width:700px){.dl-win{width:120px;top:4px}}

/* 9 · На экране: плитка «Офис Мил» — медальоны поместий */
.et>.dl-med{position:absolute;top:12px;right:12px;display:flex;gap:6px}
.dl-med i{width:24px;height:24px;border-radius:50%;border:2px solid var(--line);background:radial-gradient(circle at 50% 30%,var(--mark) 0 2px,transparent 2.6px),radial-gradient(circle at 50% 56%,var(--cream-body) 0 7.5px,var(--mint) 8px);animation:dl-med 3.6s ease-in-out infinite}
.dl-med i:nth-child(2){animation-delay:-1.2s}.dl-med i:nth-child(3){animation-delay:-2.4s}
@keyframes dl-med{50%{opacity:.55}}

/* 11–12 · Как рождается: тропа-река, Башня, кольцо-ворота */
#kak .brt::before{top:32px;height:10px;border-radius:0;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='40' height='10'%3E%3Cpath d='M0 5C7 0 13 0 20 5S33 10 40 5' fill='none' stroke='%234FBFAE' stroke-width='3' stroke-linecap='round'/%3E%3C/svg%3E") 0 50%/40px 10px repeat-x}
@media(max-width:960px){#kak .brt::before{left:20px;width:10px;height:auto;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='40'%3E%3Cpath d='M5 0C0 7 0 13 5 20S10 33 5 40' fill='none' stroke='%234FBFAE' stroke-width='3' stroke-linecap='round'/%3E%3C/svg%3E") 50% 0/10px 40px repeat-y}}
.bn>.dl-st{top:-14px;right:-6px;width:48px;z-index:2}
.dl-t2[data-say]::after,.dl-ring[data-say]::after{left:auto;right:0;transform:translateY(6px)}.dl-t2.dl-say::after{transform:none}
.dl-peek{transform:translateY(15px);transition:transform .35s cubic-bezier(.2,.8,.2,1)}
.dl-t2:hover .dl-peek,.dl-t2.dl-hit .dl-peek{transform:none}
.dl-spark{opacity:0}.dl-t2.dl-hit .dl-spark{animation:dl-spark 1s ease-out}
@keyframes dl-spark{0%{opacity:1;transform:scale(.4)}100%{opacity:0;transform:scale(1.35)}}
.dl-glow{transition:opacity .8s;animation:dl-breathe 4s ease-in-out infinite}
.dl-js .dl-io:not(.dl-in) .dl-glow{opacity:0}
.dl-ghost{opacity:0}.dl-ring.dl-hit .dl-ghost{animation:dl-ghost 1s ease-in-out}
@keyframes dl-ghost{0%{opacity:0;transform:translateX(-16px)}50%{opacity:1}100%{opacity:0;transform:translateX(16px)}}
@keyframes dl-breathe{50%{transform:scale(1.04)}0%,100%{transform:scale(.98)}}
.jr-d{position:relative}
.jr-d>.dl-sun{top:-25px;right:16px;width:64px}

/* Книга: лампа и пюпитр */
.kn-c>.dl-lamp{left:-52px;top:-20px;width:70px;z-index:3}
.dl-lamp svg{width:100%;height:auto}
.kn-c>.dl-stand{left:4%;right:4%;bottom:-12px;height:16px;background:var(--wood);border:2px solid var(--line);border-radius:4px 4px 10px 10px;z-index:-1}
@media(max-width:700px){.kn-c>.dl-lamp{width:48px;left:-34px;top:-12px}}

/* 13 · Видео: гирлянда фонариков */
.vs-row>li{position:relative}
.vs-row>li::before{content:"";position:absolute;z-index:2;left:-10px;right:-10px;top:0;height:2px;background:rgba(11,36,32,.55);pointer-events:none}
.dl-lan{top:-2px;left:50%;width:14px;height:20px;margin-left:-7px;z-index:3;border:1.5px solid var(--line);border-radius:5px 5px 8px 8px;background:radial-gradient(ellipse at 50% 60%,#fff3cf,#ffd36e 60%,#d4a574);transform-origin:50% -4px;animation:dl-sway 4s ease-in-out infinite}
.vs-row>li:nth-child(even) .dl-lan{animation-delay:-2s}
.dl-lan::after{content:"";position:absolute;inset:-12px;border-radius:50%;background:radial-gradient(rgba(255,211,110,.85),transparent 68%);opacity:.2;transition:opacity .3s}
.vs-row>li:hover .dl-lan::after,.vs-row>li:focus-within .dl-lan::after{opacity:1}
@keyframes dl-sway{50%{transform:rotate(5deg)}0%,100%{transform:rotate(-4deg)}}

/* 14 · Отзывы: флажки ярмарки и ласточка */
.dl-fair{left:0;right:0;top:clamp(4px,1.6vw,20px);height:28px}
.dl-fair::before{content:"";position:absolute;inset:0;opacity:.55;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='72' height='28'%3E%3Cpath d='M0 4Q36 12 72 4' fill='none' stroke='%230B2420' stroke-width='1.2'/%3E%3Cg stroke='%230B2420' stroke-width='1' stroke-linejoin='round'%3E%3Cpath d='M8 6h12l-6 14z' fill='%234FBFAE'/%3E%3Cpath d='M30 8h12l-6 14z' fill='%23ffd36e'/%3E%3Cpath d='M52 7h12l-6 14z' fill='%23F4A6A6'/%3E%3C/g%3E%3C/svg%3E") 0 0/72px 28px repeat-x}
.dl-swal{position:absolute;top:-12px;left:18%;width:36px;animation:dl-swal 60s ease-in-out infinite}
@keyframes dl-swal{0%,46%{transform:none}48%{transform:translate(18vw,-18px) scaleX(-1)}50%,96%{transform:translate(36vw,0) scaleX(-1)}98%{transform:translate(18vw,-18px)}100%{transform:none}}

/* Основатели: силуэт Башни и реки за фото */
.dl-bash{left:0;right:0;bottom:0;height:72%;z-index:-1;overflow:hidden;opacity:.6;-webkit-mask-image:linear-gradient(transparent,#000 28%,#000 40%,rgba(0,0,0,.08) 58%);mask-image:linear-gradient(transparent,#000 28%,#000 40%,rgba(0,0,0,.08) 58%)}/* ИЛЛ bashnya-fon: тихо, верх растворён — подписи под фото читаются */

/* FAQ: доска объявлений, записки на булавке */
.dl-board{right:var(--dl-r);top:clamp(10px,2.4vw,32px);width:150px;height:30px;display:flex;gap:12px;align-items:center;justify-content:center;background:var(--wood);border:2px solid var(--line);border-radius:6px}
.dl-board i{width:20px;height:16px;background:#fff;border:1.5px solid var(--line);border-radius:2px;transform:rotate(-6deg);box-shadow:0 1px 0 var(--cream-sh)}
.dl-board i:nth-child(2){transform:rotate(4deg);background:#fff8e6}.dl-board i:nth-child(3){transform:rotate(-2deg)}
#faq .faq details{box-shadow:0 1px 0 var(--cream-sh),0 6px 14px rgba(184,132,90,.08);background-image:radial-gradient(circle at 50% 0,var(--mint) 0 4px,transparent 4.6px)}
@media(max-width:700px){.dl-board{width:100px;height:24px;gap:8px}.dl-board i{width:15px;height:12px}}

/* Финал: ночная долина, кольцо-ворота дышит, фонари поднимаются */
.final>.dl-night{inset:0;z-index:-1;overflow:hidden;border-radius:inherit;background:linear-gradient(180deg,#14484d,#134e4a)}/* ИЛЛ ostrova-noch */
.dl-night>img{object-position:50% 70%}
.final>.dl-night::after{content:"";position:absolute;inset:0;background:radial-gradient(54% 64% at 50% 58%,rgba(14,40,46,.9),rgba(14,40,46,.72) 62%,rgba(14,40,46,.3) 100%),linear-gradient(180deg,rgba(14,40,46,.2) 30%,rgba(11,36,32,.8))}/* подложка: текст финала ≥ 4.5 (острова ярче прежней ночи) */
@media(max-width:700px){.dl-night>img{top:auto;height:46%}.dl-night .l2,.dl-night .l4{display:none}}
.dl-night i{position:absolute;bottom:14%;width:8px;height:11px;border-radius:3px 3px 4px 4px;background:#ffd36e;opacity:.7}
.dl-night .l1{left:12%}.dl-night .l2{left:30%;bottom:22%}.dl-night .l3{right:26%}.dl-night .l4{right:10%;bottom:20%}
.dl-js .dl-night:not(.dl-in) i{opacity:0}
.dl-night.dl-in i{animation:dl-rise 10s linear infinite}
.dl-night.dl-in .l2{animation-delay:-3s}.dl-night.dl-in .l3{animation-delay:-6s}.dl-night.dl-in .l4{animation-delay:-8s}
@keyframes dl-rise{0%{opacity:0;transform:none}10%{opacity:.9}80%{opacity:.6}100%{opacity:0;transform:translateY(-160px)}}
.final>.dl-gate{left:50%;top:calc(clamp(40px,6vw,70px) - 15px);width:150px;height:150px;margin-left:-75px;border-radius:50%;border:7px solid var(--mint);box-shadow:0 0 0 2px var(--line),inset 0 0 0 2px var(--line),0 0 34px rgba(45,217,196,.45);animation:dl-breathe 4s ease-in-out infinite}
.final>.dl-vorot{right:12px;bottom:6px;width:96px}
.dl-vorot>img{width:100%;height:auto}/* ИЛЛ mila-u-vorot */
@media(max-width:1200px){.final>.dl-vorot{width:76px}}
@media(max-width:900px){.final>.dl-vorot{display:none}}

/* Пасхалка: парящий остров у правого края «Кто стоит», по клику — пузырь */
.dl-isl{right:var(--dl-r);top:clamp(14px,3vw,44px);width:80px;height:80px;z-index:3}
.dl-isle{width:80px;height:80px}
.dl-isle>img{width:80px;height:80px;filter:drop-shadow(0 10px 10px rgba(19,78,74,.16));animation:dl-float 7s ease-in-out infinite}
.dl-isle[data-say]::after{left:auto;right:8px;bottom:auto;top:100%;margin:6px 0 0;transform:translateY(-6px);white-space:normal;width:max-content;max-width:min(300px,calc(100vw - 40px));border-radius:12px 4px 12px 12px}
.dl-isle.dl-say::after{transform:none}
.dl-isle.dl-hit>img{animation:dl-float 7s ease-in-out infinite,dl-isl-hop .7s ease-out}
@keyframes dl-float{0%,100%{transform:translateY(0) rotate(-2deg)}50%{transform:translateY(-9px) rotate(2deg)}}
@keyframes dl-isl-hop{40%{translate:0 -10px}}
@media(max-width:700px){.dl-isl{right:10px;top:6px;width:64px;height:64px}.dl-isle,.dl-isle>img{width:64px;height:64px}}

/* 15 · Подвал: мини-карта долины */
.msh-foot .wrap{position:relative}
.dl-map{right:0;bottom:0;width:200px;height:120px}
.dl-map svg{width:100%;height:100%}
.dl-map i{position:absolute;width:10px;height:10px;margin:-5px 0 0 -5px;border-radius:50%;background:#ffd36e;border:2px solid #0f3b37;pointer-events:auto;cursor:help;font-style:normal}
.dl-map i.t{width:22px;height:30px;margin:0;background:none;border:0;cursor:pointer}
.dl-map i::before{content:attr(data-t);position:absolute;right:-4px;bottom:100%;margin-bottom:6px;white-space:nowrap;background:#fbfbf8;color:#134e4a;font:700 12.5px/1.2 -apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif;padding:6px 9px;border-radius:10px;opacity:0;transition:opacity .2s;pointer-events:none}
.dl-map i:hover::before{opacity:1}.dl-map i.t.dl-say::before{opacity:0}
.dl-map i.t[data-say]::after{left:auto;right:-30px;transform:translateY(6px)}.dl-map i.t.dl-say::after{transform:none}
@media(max-width:1199px){.dl-map{width:150px;height:90px}}
@media(max-width:860px){.dl-map{width:110px;height:66px;bottom:-66px}}

/* касание: мелкие цели не ловят пальцы */
@media(pointer:coarse){.dl-crane,.dl-dog,.dl-map i,.dl-bellhit{pointer-events:none}}
/* без движения — всё стоит */
@media(prefers-reduced-motion:reduce){.dl,.dl *,.dl *::before,.dl *::after,.dl-rv>span,.msh-wm::before{animation:none!important;transition:none!important}.dl-crane{display:none}}
/* вне экрана — анимации на паузе */
.dl-p .dl,.dl-p .dl *,.dl-p .dl *::before,.dl-p .dl *::after{animation-play-state:paused!important}
@media(max-width:860px){#ruki .rcore{margin-bottom:46px}}/* подпись «Продавать» не наезжает на чипы (личка 387) */
