/* Dark, playful route: uses the existing learning logic and keeps the map usable on small screens. */
.course-shell{background:#101b25!important;border:1px solid #233849!important;border-radius:26px!important;box-shadow:0 16px 32px rgba(9,20,31,.26)!important;overflow:hidden}.course-heading{position:relative;z-index:3;margin:14px 14px 0!important;padding:16px 18px!important;border:0!important;border-radius:17px!important;background:linear-gradient(135deg,#77e50c,#41bf10)!important;box-shadow:inset 0 -5px 0 rgba(15,98,20,.2),0 5px 0 #1f8611!important}.course-heading h2,.course-heading p{color:#fff!important;text-shadow:0 2px 0 rgba(17,87,25,.26)!important}.course-heading h2{font-weight:950!important;letter-spacing:.01em}.course-heading p{opacity:.92!important;font-weight:700!important}.course-map{background:#111d27!important;background-image:radial-gradient(circle at 16% 7%,rgba(103,221,36,.14) 0 2px,transparent 3px),radial-gradient(circle at 82% 27%,rgba(67,194,255,.13) 0 2px,transparent 3px),linear-gradient(180deg,#12212b,#101b25)!important}.course-map::after{display:none!important}.course-map .part-block::before{border-color:rgba(105,224,50,.45)!important;opacity:.9}.course-map .section-island{background:linear-gradient(145deg,#ffce42,#f18c16)!important;border:3px solid rgba(255,255,255,.84)!important;box-shadow:0 7px 0 #a65311,0 11px 18px rgba(0,0,0,.28)!important}.course-map .section-island:nth-of-type(4n+1){background:linear-gradient(145deg,#73e934,#26b83e)!important;box-shadow:0 7px 0 #158333,0 11px 18px rgba(0,0,0,.28)!important}.course-map .section-island:nth-of-type(4n+2){background:linear-gradient(145deg,#6fcbff,#3878ed)!important;box-shadow:0 7px 0 #2752b9,0 11px 18px rgba(0,0,0,.28)!important}.course-map .section-island:nth-of-type(4n+3){background:linear-gradient(145deg,#ff8b9b,#e64368)!important;box-shadow:0 7px 0 #aa2447,0 11px 18px rgba(0,0,0,.28)!important}.course-map .section-island.complete{filter:saturate(1.15)!important}.course-map .section-island.locked{background:linear-gradient(145deg,#84909c,#536270)!important;border-color:#a4b0bb!important;box-shadow:0 6px 0 #364550,0 10px 18px rgba(0,0,0,.25)!important}.course-map .section-island .island-copy strong,.course-map .section-island .island-copy small{color:#fff!important;text-shadow:0 2px 0 rgba(18,29,41,.35)!important}.course-map .section-island .island-copy strong{font-weight:950!important}.course-map .section-island .island-copy small{opacity:.95!important}.course-map .mini-island{background:linear-gradient(145deg,#8df52c,#2bc437)!important;border:3px solid #9dff68!important;box-shadow:0 6px 0 #168438,0 11px 17px rgba(0,0,0,.28)!important;color:#fff!important;text-shadow:0 2px 0 rgba(9,70,31,.4)!important}.course-map .mini-island:nth-child(5n+2){background:linear-gradient(145deg,#74d3ff,#3669e9)!important;border-color:#a5e8ff!important;box-shadow:0 6px 0 #254bb5,0 11px 17px rgba(0,0,0,.28)!important}.course-map .mini-island:nth-child(5n+3){background:linear-gradient(145deg,#ff8fa9,#e83971)!important;border-color:#ffb7c6!important;box-shadow:0 6px 0 #ad2554,0 11px 17px rgba(0,0,0,.28)!important}.course-map .mini-island:nth-child(5n+4){background:linear-gradient(145deg,#c28cff,#7b4de7)!important;border-color:#debfff!important;box-shadow:0 6px 0 #4e2ca8,0 11px 17px rgba(0,0,0,.28)!important}.course-map .mini-island.star-task{background:linear-gradient(145deg,#ffd84f,#f59a12)!important;border-color:#fff0a0!important;box-shadow:0 6px 0 #b35b07,0 11px 17px rgba(0,0,0,.28)!important}.course-map .mini-island.locked{background:linear-gradient(145deg,#566573,#3c4b57)!important;border-color:#647887!important;box-shadow:0 5px 0 #293740!important;color:#aab8c4!important}.course-map .mini-island.solved::after{background:#fff!important;box-shadow:0 0 0 3px rgba(58,211,69,.62)!important}.map-side-animal{position:absolute;z-index:4;display:grid;place-items:center;width:74px;height:74px;border-radius:50%;background:radial-gradient(circle at 32% 28%,#5e7180,#253644 70%);border:3px solid #6a8294;box-shadow:0 8px 0 #14242f,0 12px 19px rgba(0,0,0,.35);pointer-events:none}.map-side-animal span{font-size:48px;line-height:1;filter:drop-shadow(0 3px 0 rgba(0,0,0,.18))}.map-side-animal i{position:absolute;font-style:normal;font-weight:900;color:#f8d648;font-size:20px;text-shadow:0 2px 5px rgba(0,0,0,.5)}.animal-fox{top:16%;right:7%;animation:animal-bop 3.2s ease-in-out infinite}.animal-fox i{right:-11px;top:-12px}.animal-panda{top:48%;left:5%;animation:animal-bop 3.8s ease-in-out .7s infinite}.animal-panda i{left:-11px;top:-14px;color:#8ee8ff}.animal-turtle{bottom:11%;right:7%;animation:animal-bop 4s ease-in-out 1.2s infinite}.animal-turtle i{right:-12px;bottom:-11px}.map-companion{z-index:7!important}.app-loader{position:fixed;z-index:1000;inset:0;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:10px;background:radial-gradient(circle at 50% 35%,#20384a,#101b25 60%);color:#fff;transition:opacity .28s ease,visibility .28s ease}.app-loader.is-done{opacity:0;visibility:hidden;pointer-events:none}.loader-orbit{display:grid;place-items:center;width:88px;height:88px;border-radius:50%;border:5px solid rgba(137,244,56,.2);border-top-color:#8ef338;border-right-color:#60d828;animation:loader-spin .78s linear infinite}.loader-orbit span{display:grid;place-items:center;width:54px;height:54px;border-radius:50%;background:#6cdd21;color:#fff;font-size:31px;box-shadow:0 5px 0 #278d23}.app-loader strong{font-size:19px;font-weight:950}.app-loader small{color:#b7c8d5;font-weight:700}@keyframes animal-bop{0%,100%{transform:translateY(0) rotate(-3deg)}50%{transform:translateY(-10px) rotate(3deg)}}@keyframes loader-spin{to{transform:rotate(360deg)}}@media(max-width:720px){.course-shell{border-radius:0!important;border-inline:0!important}.course-heading{margin:10px 10px 0!important;padding:14px!important}.map-side-animal{transform:scale(.74);opacity:.9}.animal-fox{right:2%}.animal-panda{left:1%}.animal-turtle{right:2%}.course-map .section-island .island-copy strong{font-size:12px!important}}
@media(prefers-reduced-motion:reduce){.map-side-animal,.loader-orbit{animation:none!important}.app-loader{transition:none!important}}
.course-shell{position:relative}.course-shell::before,.course-shell::after{position:absolute;z-index:8;display:grid;place-items:center;width:58px;height:58px;border:3px solid #6a8294;border-radius:50%;background:radial-gradient(circle at 32% 28%,#5e7180,#253644 70%);box-shadow:0 7px 0 #14242f,0 10px 18px rgba(0,0,0,.35);font-size:38px;pointer-events:none;animation:animal-bop 3.4s ease-in-out infinite}.course-shell::before{content:'🦊';top:42%;left:14px}.course-shell::after{content:'🐼';top:69%;right:14px;animation-delay:.9s}.map-side-animal{display:none!important}@media(max-width:720px){.course-shell::before,.course-shell::after{transform:scale(.76);opacity:.92}.course-shell::before{left:0}.course-shell::after{right:0}}
.course-shell::before,.course-shell::after{content:none!important}.map-side-animal{display:block!important;position:absolute!important;z-index:9!important;width:auto!important;height:auto!important;border:0!important;border-radius:0!important;background:transparent!important;box-shadow:none!important;pointer-events:none!important}.map-side-animal span{display:block;font-size:62px!important;line-height:1!important;filter:drop-shadow(0 5px 4px rgba(0,0,0,.34));transform-origin:50% 75%}.map-side-animal i{display:none!important}.animal-fox{top:40%!important;left:15px!important;right:auto!important;animation:none!important}.animal-fox span{animation:fox-wave 3.4s ease-in-out infinite}.animal-fox::after{content:'👋';position:absolute;right:-9px;top:-8px;font-size:24px;transform-origin:15% 85%;animation:paw-wave 1.45s ease-in-out infinite}.animal-panda{top:66%!important;left:auto!important;right:15px!important;animation:none!important}.animal-panda span{animation:panda-bounce 3.8s ease-in-out .45s infinite}.animal-panda::after{content:'😜';position:absolute;left:20px;top:23px;font-size:19px;animation:tongue-peek 3.8s ease-in-out .45s infinite}.animal-turtle{display:block!important;bottom:13%!important;right:15px!important;top:auto!important;animation:none!important}.animal-turtle span{animation:turtle-nod 4.2s ease-in-out 1.1s infinite}.animal-turtle::after{content:'💤';position:absolute;right:-19px;top:-8px;font-size:19px;animation:sleep-float 2.6s ease-in-out infinite}.theory-child-tip{display:flex;align-items:flex-start;gap:10px;margin:16px 0;padding:12px 14px;border-radius:14px;background:#eef8ff;border:1px solid #bfdef5;color:#203448}.theory-child-tip span{font-size:25px;line-height:1}.theory-child-tip p{margin:0;font-size:14px;line-height:1.35}@keyframes fox-wave{0%,18%,100%{transform:rotate(0) translateY(0)}8%{transform:rotate(-8deg) translateY(-5px)}12%{transform:rotate(5deg) translateY(-3px)}}@keyframes paw-wave{0%,18%,100%{transform:rotate(0);opacity:.2}7%,14%{transform:rotate(25deg);opacity:1}}@keyframes panda-bounce{0%,100%{transform:translateY(0) rotate(0)}45%{transform:translateY(-7px) rotate(-3deg)}56%{transform:translateY(0) rotate(2deg)}}@keyframes tongue-peek{0%,35%,100%{transform:scale(.2);opacity:0}47%,62%{transform:scale(1);opacity:1}}@keyframes turtle-nod{0%,100%{transform:rotate(0) translateY(0)}35%{transform:rotate(8deg) translateY(2px)}52%{transform:rotate(-4deg) translateY(-2px)}}@keyframes sleep-float{0%,100%{transform:translateY(3px);opacity:.35}50%{transform:translateY(-6px);opacity:1}}@media(max-width:720px){.map-side-animal span{font-size:46px!important}.animal-fox{left:3px!important}.animal-panda{right:3px!important}.animal-turtle{right:4px!important}}
.course-heading{display:none!important}.map-side-animal::after{content:none!important}.map-side-animal{position:absolute!important;will-change:transform}.animal-fox{top:38%!important}.animal-panda{top:63%!important}.animal-turtle{bottom:12%!important}

/* Животные остаются частью прокручиваемой ленты и двигаются вместе с её содержимым. */
.course-map .map-side-animal{position:absolute!important;z-index:9!important}.course-map .animal-panda{top:55%!important;right:15px!important;left:auto!important}.course-map .animal-turtle{top:78%!important;bottom:auto!important;right:15px!important}.course-map .map-side-animal i{display:none!important}.course-map .map-side-animal::after{content:none!important}@media(max-width:720px){.course-map .animal-panda{top:53%!important;right:3px!important}.course-map .animal-turtle{top:75%!important;right:4px!important}}

/* Разноцветные островки поверх текущего тёмного фона. */
.course-map .mini-island{background:linear-gradient(145deg,#8df52c,#2bc437)!important;border-color:#9dff68!important;color:#fff!important}.course-map .mini-island:nth-child(5n+2){background:linear-gradient(145deg,#74d3ff,#3669e9)!important;border-color:#a5e8ff!important}.course-map .mini-island:nth-child(5n+3){background:linear-gradient(145deg,#ff8fa9,#e83971)!important;border-color:#ffb7c6!important}.course-map .mini-island:nth-child(5n+4){background:linear-gradient(145deg,#c28cff,#7b4de7)!important;border-color:#debfff!important}.course-map .mini-island.star-task{background:linear-gradient(145deg,#ffd84f,#f59a12)!important;border-color:#fff0a0!important}.course-map .section-island{background:linear-gradient(145deg,#ffce42,#f18c16)!important}.course-map .section-island:nth-of-type(4n+1){background:linear-gradient(145deg,#73e934,#26b83e)!important}.course-map .section-island:nth-of-type(4n+2){background:linear-gradient(145deg,#6fcbff,#3878ed)!important}.course-map .section-island:nth-of-type(4n+3){background:linear-gradient(145deg,#ff8b9b,#e64368)!important}
/* Животные распределены не по одной линии и остаются внутри скролла course-map. */
.course-map .map-side-animal{position:absolute!important;width:auto!important;height:auto!important;border:0!important;border-radius:0!important;background:transparent!important;box-shadow:none!important;z-index:8!important}.course-map .map-side-animal span{font-size:48px!important;filter:drop-shadow(0 4px 3px rgba(0,0,0,.36));animation:animal-float 4.6s ease-in-out infinite}.course-map .animal-fox{top:18%!important;left:8%!important}.course-map .animal-panda{top:31%!important;right:9%!important;left:auto!important}.course-map .animal-turtle{top:45%!important;right:15%!important;left:auto!important}.course-map .animal-owl{top:56%!important;left:11%!important}.course-map .animal-rabbit{top:67%!important;right:10%!important;left:auto!important}.course-map .animal-bird{top:77%!important;left:18%!important}.course-map .animal-hedgehog{top:86%!important;right:17%!important;left:auto!important}.course-map .animal-cat{top:94%!important;left:7%!important}.course-map .animal-panda span{animation-delay:.7s}.course-map .animal-turtle span{animation-delay:1.3s}.course-map .animal-owl span{animation-delay:1.9s}.course-map .animal-rabbit span{animation-delay:2.5s}.course-map .animal-bird span{animation-delay:3.1s}.course-map .animal-hedgehog span{animation-delay:3.7s}.course-map .animal-cat span{animation-delay:4.3s}@keyframes animal-float{0%,100%{transform:translateY(0) rotate(-3deg)}50%{transform:translateY(-6px) rotate(3deg)}}
/* Помощник находится внизу по центру рядом с кнопкой профиля; отдельная надпись «Помощь» скрыта. */
.mobile-dock{display:flex!important;justify-content:center!important;align-items:center!important;gap:10px!important}.mobile-dock .map-companion{position:relative!important;inset:auto!important;display:grid!important;place-items:center!important;min-width:92px!important;width:auto!important;height:52px!important;padding:5px 11px!important;border:1px solid rgba(99,102,241,.35)!important;border-radius:16px!important;background:var(--paper)!important;color:var(--brand-deep)!important;box-shadow:var(--shadow-soft)!important}.mobile-dock .map-companion .companion-bubble,.mobile-dock .map-companion .companion-spark{display:none!important}.mobile-dock .map-companion .companion-avatar{font-size:24px!important}.mobile-dock .map-companion strong{font-size:11px!important}.mobile-dock [data-open-account="profile"]{min-width:76px!important}
@media(max-width:720px){.course-map .map-side-animal span{font-size:38px!important}.mobile-dock{gap:8px!important}.mobile-dock .map-companion{min-width:88px!important}}

/* Общая нижняя панель видна на компьютере и телефоне, обе кнопки образуют центрированную группу. */
body .mobile-dock{position:fixed!important;z-index:45!important;left:50%!important;bottom:16px!important;transform:translateX(-50%)!important;display:flex!important;flex-direction:row!important;justify-content:center!important;align-items:center!important;width:max-content!important;min-width:170px!important;padding:7px!important;border:1px solid rgba(130,150,170,.34)!important;border-radius:22px!important;background:rgba(16,29,39,.92)!important;box-shadow:0 12px 28px rgba(0,0,0,.3)!important}.mobile-dock>button,.mobile-dock .map-companion{flex:0 0 78px!important;min-width:78px!important;height:54px!important;margin:0!important;padding:5px 8px!important;border:0!important;border-radius:16px!important;display:grid!important;place-items:center!important;color:#fff!important;background:transparent!important;box-shadow:none!important}.mobile-dock .map-companion{background:rgba(104,220,45,.2)!important}.mobile-dock .map-companion .companion-avatar{font-size:24px!important}.mobile-dock .map-companion strong{font-size:11px!important;color:#fff!important}.mobile-dock>button{font:inherit;font-size:11px!important}.mobile-dock>button:hover,.mobile-dock .map-companion:hover{background:rgba(255,255,255,.12)!important}
/* Явные позиции по длине контента: животные встречаются примерно через каждые пять заданий. */
.course-map .animal-fox{top:360px!important;left:8%!important}.course-map .animal-panda{top:900px!important;right:10%!important}.course-map .animal-turtle{top:1450px!important;right:16%!important}.course-map .animal-owl{top:2010px!important;left:12%!important}.course-map .animal-rabbit{top:2570px!important;right:9%!important}.course-map .animal-bird{top:3130px!important;left:18%!important}.course-map .animal-hedgehog{top:3690px!important;right:15%!important}.course-map .animal-cat{top:4250px!important;left:7%!important}@media(max-width:720px){body .mobile-dock{bottom:10px!important;min-width:166px!important}.mobile-dock>button,.mobile-dock .map-companion{flex-basis:74px!important;min-width:74px!important}.course-map .animal-fox{left:4%!important}.course-map .animal-panda{right:4%!important}.course-map .animal-turtle{right:9%!important}.course-map .animal-owl{left:4%!important}.course-map .animal-rabbit{right:4%!important}.course-map .animal-bird{left:9%!important}.course-map .animal-hedgehog{right:8%!important}.course-map .animal-cat{left:4%!important}}
/* Компактный единственный помощник в нижней панели. */
body .mobile-dock{min-width:0!important;padding:0!important;border:0!important;border-radius:0!important;background:transparent!important;box-shadow:none!important}body .mobile-dock .map-companion{flex:0 0 78px!important;min-width:78px!important;width:78px!important;height:44px!important;padding:3px 7px!important;border-radius:13px!important;background:rgba(104,220,45,.26)!important;border:1px solid rgba(162,255,105,.54)!important;box-shadow:0 5px 0 rgba(26,104,49,.65),0 10px 20px rgba(0,0,0,.2)!important}body .mobile-dock .map-companion .companion-avatar{font-size:20px!important}body .mobile-dock .map-companion strong{font-size:10px!important}.mobile-dock [data-open-account="profile"]{display:none!important}
/* Помощник остаётся по центру; профиль — отдельной кнопкой внизу справа. */
body .mobile-dock .map-companion{position:relative!important;inset:auto!important}body .mobile-dock [data-open-account="profile"]{position:fixed!important;right:16px!important;bottom:16px!important;display:grid!important;place-items:center!important;width:58px!important;height:48px!important;padding:4px!important;border:1px solid rgba(144,164,184,.34)!important;border-radius:15px!important;background:rgba(16,29,39,.9)!important;color:#fff!important;box-shadow:0 8px 18px rgba(0,0,0,.22)!important;font:inherit!important;font-size:10px!important;line-height:1.08!important}.mobile-dock [data-open-account="profile"] span{display:block;font-size:10px!important}@media(max-width:720px){body .mobile-dock [data-open-account="profile"]{right:10px!important;bottom:10px!important}}
/* Родитель помощника центрируется через transform, поэтому профиль смещается от его центра к правому краю окна. */
body .mobile-dock [data-open-account="profile"]{position:absolute!important;right:auto!important;left:calc(50vw - 74px)!important;bottom:0!important}@media(max-width:720px){body .mobile-dock [data-open-account="profile"]{left:calc(50vw - 66px)!important;bottom:0!important}}
/* Островки мягко поднимаются при наведении мышкой, не меняя положения на сенсорном экране. */
@media (hover:hover){.course-map .mini-island,.course-map .section-island{transition:transform .16s ease,filter .16s ease,box-shadow .16s ease}.course-map .mini-island:hover:not(:disabled){transform:scale(1.08)!important;filter:brightness(1.08);z-index:12}.course-map .section-island:hover:not(:disabled){transform:scale(1.025)!important;filter:brightness(1.06);z-index:12}}
/* Компактная серия над маршрутом. */
.streak-badge{top:10px!important;right:12px!important;padding:5px 8px!important;border-radius:13px!important;transform:scale(.82);transform-origin:top right}.streak-badge span{font-size:17px!important}.streak-badge strong{font-size:14px!important}.streak-badge small{font-size:8px!important}
/* Модальное задание всегда находится над нижней кнопкой. */
.modal{z-index:70!important}.modal[hidden]{display:none!important}
/* Светлая тема становится ярче; тёмная палитра не меняется. */
:root[data-theme="light"] body,:root[data-theme="light"] .app{background:linear-gradient(180deg,#f9fcff 0%,#eff7ff 100%)!important}:root[data-theme="light"] .course-shell{background:#f7fbff!important;border-color:#d8e8f7!important;box-shadow:0 16px 32px rgba(76,127,172,.15)!important}:root[data-theme="light"] .course-map{background:#edf7ff!important;background-image:radial-gradient(circle at 16% 7%,rgba(103,221,36,.22) 0 2px,transparent 3px),radial-gradient(circle at 82% 27%,rgba(67,194,255,.2) 0 2px,transparent 3px),linear-gradient(180deg,#f7fcff,#e9f5ff)!important}:root[data-theme="light"] .mobile-dock{background:rgba(255,255,255,.95)!important;border-color:#cfe0ef!important}:root[data-theme="light"] .mobile-dock .map-companion strong{color:#193852!important}
/* Номер, галочка и замок отображаются одновременно. */
.mini-island{position:relative!important}.mini-island .task-number{display:grid!important;place-items:center!important}.mini-island .mini-status{position:absolute;right:-5px;top:-6px;display:grid;place-items:center;width:18px;height:18px;border-radius:50%;background:#fff;color:#238f45;font-style:normal;font-size:12px;line-height:1;box-shadow:0 2px 5px rgba(0,0,0,.22)}.mini-island.locked .mini-status{font-size:10px;color:#5d6b76}.mini-island.checkpoint .task-number{font-size:12px!important}

/* Одноразовое мягкое увеличение только в момент наведения. */
@keyframes island-hover-pop{0%{transform:scale(1)}55%{transform:scale(1.035)}100%{transform:scale(1)}}
.section-island:not(.locked):hover{transform:none!important;animation:island-hover-pop .22s ease-out 1}
.mini-island:not(.locked):hover{transform:none!important;animation:island-hover-pop .18s ease-out 1}

/* Hover animation is triggered by pointer entry and never held by :hover. */
.section-island:not(.locked):hover,.mini-island:not(.locked):hover{transform:none!important;animation:none!important}
@keyframes island-hover-once{0%{transform:scale(1)}55%{transform:scale(1.035)}100%{transform:scale(1)}}
.section-island.island-hover-once,.mini-island.island-hover-once{animation:island-hover-once .22s ease-out 1!important;transform:none!important}

.subscription-gate,.info-card{max-width:620px!important}.subscription-benefits{display:grid;gap:10px;margin:16px 0}.subscription-benefits>div{display:flex;gap:12px;align-items:flex-start;padding:13px;border:1px solid color-mix(in srgb,var(--brand) 20%,var(--line));border-radius:14px;background:color-mix(in srgb,var(--paper-soft) 75%,transparent)}.subscription-benefits>b,.subscription-benefits>div>b{display:grid;place-items:center;flex:0 0 30px;width:30px;height:30px;border-radius:50%;background:var(--brand);color:#fff}.subscription-benefits span{display:grid;gap:3px}.subscription-benefits small{color:var(--muted);line-height:1.35}.info-copy{display:grid;gap:10px;line-height:1.5}.info-copy p{margin:0}.contact-card{display:grid;gap:6px;margin-top:14px;padding:13px 15px;border-radius:14px;background:color-mix(in srgb,var(--paper-soft) 80%,transparent);border:1px solid var(--line)}.contact-card a{color:var(--brand-deep);font-weight:750}.mini-island.subscription-locked{filter:saturate(.55);cursor:pointer}.mini-island.subscription-locked:hover{filter:saturate(.8) brightness(1.06)}

/* Final interaction tuning: tiny movement toward the map centre, then return. */
@keyframes island-hover-once{0%{transform:translateX(0) scale(1)}55%{transform:translateX(var(--hover-shift-x,0)) scale(1.02)}100%{transform:translateX(0) scale(1)}}
.section-island.island-hover-once,.mini-island.island-hover-once{animation:island-hover-once .22s ease-out 1!important}
.mobile-dock .map-companion strong,.mobile-dock .map-companion .companion-bubble,.mobile-dock .map-companion .companion-spark{display:none!important}
.mobile-dock .map-companion{min-width:58px!important;width:58px!important;height:58px!important;padding:0!important;border:0!important;background:transparent!important;box-shadow:none!important}
.mobile-dock .map-companion .companion-avatar{width:52px!important;height:52px!important;font-size:31px!important;border:0!important;box-shadow:none!important;background:transparent!important}
.nav .subscription-nav{color:#fff!important;background:linear-gradient(135deg,#7d5cff,#b14dff)!important;border-color:rgba(255,255,255,.28)!important;box-shadow:0 5px 0 #5c35bd,0 8px 14px rgba(107,64,226,.25)!important;font-weight:900!important}
.nav .subscription-nav:hover{filter:brightness(1.08)}

/* Keep the selected island shifted while hovered or while its task modal is open. */
.section-island.island-hover-sticky,.mini-island.island-hover-sticky,.section-island.island-task-active,.mini-island.island-task-active{transform:translateX(var(--hover-shift-x,0)) scale(1.02)!important;animation:none!important}
.mobile-dock .map-companion{width:72px!important;min-width:72px!important;height:auto!important;gap:2px!important;background:transparent!important}
.mobile-dock .map-companion .companion-avatar{width:54px!important;height:54px!important;border:3px solid rgba(255,255,255,.9)!important;border-radius:50%!important;background:radial-gradient(circle at 32% 25%,#fff 0 9%,#d5e4ff 10% 20%,#7d75ff 48%,#4535c5 100%)!important;box-shadow:0 5px 0 rgba(48,38,151,.7)!important}
.mobile-dock .map-companion strong{display:block!important;padding:0!important;border:0!important;border-radius:0!important;background:transparent!important;color:#fff!important;box-shadow:none!important;font-size:10px!important;line-height:1.1!important}

/* Final hover override: no bounce, rotation, scale animation, or oscillation. */
.course-map .section-island.island-hover-sticky:not(.locked):hover,.course-map .mini-island.island-hover-sticky:not(.locked):hover,.course-map .section-island.island-task-active:not(.locked):hover,.course-map .mini-island.island-task-active:not(.locked):hover{transform:translateX(var(--hover-shift-x,0))!important;animation:none!important;filter:none!important}
.course-map .section-island.island-hover-sticky,.course-map .mini-island.island-hover-sticky,.course-map .section-island.island-task-active,.course-map .mini-island.island-task-active{transform:translateX(var(--hover-shift-x,0))!important;animation:none!important;transition:transform .18s ease!important}
.mobile-dock .map-companion{position:relative!important;top:-10px!important;background:transparent!important;box-shadow:none!important}
.mobile-dock .map-companion .companion-avatar{background:radial-gradient(circle at 32% 25%,#fff 0 9%,#d5e4ff 10% 20%,#7d75ff 48%,#4535c5 100%)!important;box-shadow:0 5px 0 rgba(48,38,151,.7)!important}
.mobile-dock .map-companion strong{display:block!important;color:#fff!important;background:transparent!important;border:0!important;box-shadow:none!important;white-space:nowrap!important}

/* Hard final override: islands do not animate or oscillate. They only hold a static offset. */
html body .course-map .section-island,html body .course-map .mini-island{animation:none!important;transition:transform .16s ease!important}
html body .course-map .section-island:hover,html body .course-map .mini-island:hover{animation:none!important;transform:translateX(0)!important}
html body .course-map .section-island.island-hover-sticky,html body .course-map .mini-island.island-hover-sticky,html body .course-map .section-island.island-task-active,html body .course-map .mini-island.island-task-active{animation:none!important;transform:translateX(var(--hover-shift-x,0))!important}
html body .mobile-dock{overflow:visible!important}
html body .mobile-dock .map-companion{position:relative!important;top:-14px!important;width:74px!important;min-width:74px!important;height:76px!important;padding:2px 0!important;display:grid!important;grid-template-rows:54px 14px!important;gap:2px!important;border:0!important;border-radius:0!important;background:transparent!important;box-shadow:none!important;overflow:visible!important}
html body .mobile-dock .map-companion:hover,html body .mobile-dock .map-companion:focus{background:transparent!important;box-shadow:none!important}
html body .mobile-dock .map-companion .companion-avatar{display:grid!important;place-items:center!important;width:52px!important;height:52px!important;margin:auto!important;border:3px solid #fff!important;border-radius:50%!important;background:radial-gradient(circle at 32% 25%,#fff 0 9%,#d5e4ff 10% 20%,#7d75ff 48%,#4535c5 100%)!important;box-shadow:0 4px 0 rgba(48,38,151,.65)!important;font-size:29px!important}
html body .mobile-dock .map-companion strong{display:block!important;visibility:visible!important;opacity:1!important;width:100%!important;height:14px!important;margin:0!important;padding:0!important;background:transparent!important;border:0!important;box-shadow:none!important;color:#fff!important;font-size:11px!important;line-height:14px!important;text-align:center!important;white-space:nowrap!important}

.loader-brand{display:flex;flex-direction:column;align-items:center;gap:3px;margin-bottom:8px;text-align:center}.loader-brand strong{font-size:30px;line-height:1;letter-spacing:.02em;font-weight:950;color:#fff;text-shadow:0 3px 0 rgba(31,112,31,.35)}.loader-brand small{font-size:12px;line-height:1.3;font-weight:700;color:#c6d7df;letter-spacing:.01em}.app-loader>.app-loader>strong{font-size:19px}

/* Присланный логотип StepMath в шапке и заставках. */
.logo-mark{display:block;width:48px;height:48px;object-fit:contain;border-radius:12px;background:#fff;box-shadow:0 4px 0 rgba(0,0,0,.22)}
.loader-orbit{overflow:hidden;background:#fff}
.loader-orbit img{display:block;width:100%;height:100%;object-fit:cover;border-radius:50%;animation:none}
.post-auth-loader{z-index:10001}

/* Логотип на заставке неподвижен и увеличен. */
.app-loader .loader-orbit{width:138px;height:138px;animation:none!important;border:5px solid rgba(137,244,56,.35);box-shadow:0 10px 24px rgba(0,0,0,.28)}
.app-loader .loader-orbit img{width:100%;height:100%;animation:none!important;transform:none!important}
@media(max-width:720px){.app-loader .loader-orbit{width:124px;height:124px}}

/* Островки неподвижны: сохраняем только статичную змейку, без hover/active-сдвигов и анимаций. */
.task-chain .mini-island{transition:none!important;animation:none!important}
.task-chain .mini-island:nth-child(odd),.task-chain .mini-island:nth-child(odd):hover:not(.locked),.task-chain .mini-island:nth-child(odd):active{transform:translateX(-17px)!important}
.task-chain .mini-island:nth-child(even),.task-chain .mini-island:nth-child(even):hover:not(.locked),.task-chain .mini-island:nth-child(even):active{transform:translateX(17px)!important}
.task-chain .mini-island:hover:not(.locked),.task-chain .mini-island:active:not(.locked),.task-chain .mini-island:focus-visible:not(.locked){border-color:var(--paper)!important;color:inherit!important}
.section-island,.section-island:hover,.section-island:active,.section-island:focus-visible{animation:none!important;transition:none!important;transform:none!important}
.island-hover-sticky,.island-task-active{animation:none!important;transition:none!important}
:root:not([data-theme="dark"]){--bg:#e5edf5;--paper:#f4f7fa;--paper-soft:#eaf0f5;--ink:#203047;--muted:#65758b;--line:#cbd7e3;--shadow:0 18px 42px rgba(39,72,124,.10);--shadow-soft:0 7px 21px rgba(39,72,124,.06)}
:root:not([data-theme="dark"]) body{background:radial-gradient(circle at 75% -10%,color-mix(in srgb,var(--blue) 10%,transparent),transparent 34%),radial-gradient(circle at 10% 100%,color-mix(in srgb,var(--violet) 8%,transparent),transparent 35%),var(--bg)}

/* Установка StepMath на экран iPhone. */
.sidebar-note .install-button{display:flex;align-items:center;justify-content:center;gap:7px;width:100%;margin-top:14px;padding:10px 9px;border:1px solid color-mix(in srgb,var(--brand) 35%,var(--line));border-radius:12px;background:color-mix(in srgb,var(--brand) 10%,var(--paper-soft));color:var(--brand-deep);font-size:11px;font-weight:850;line-height:1.2;box-shadow:0 4px 10px color-mix(in srgb,var(--ink) 8%,transparent)}
.sidebar-note .install-button span{font-size:18px;line-height:1}
.sidebar-note .install-button:hover{background:color-mix(in srgb,var(--brand) 16%,var(--paper-soft))}
:root:not([data-theme="dark"]){--bg:#d2dce7;--paper:#e8edf2;--paper-soft:#dde5ec;--ink:#1d2a3d;--muted:#56677d;--line:#b8c7d5;--shadow:0 18px 42px rgba(39,72,124,.08);--shadow-soft:0 7px 21px rgba(39,72,124,.045)}
:root:not([data-theme="dark"]) body{background:radial-gradient(circle at 75% -10%,color-mix(in srgb,var(--blue) 7%,transparent),transparent 34%),radial-gradient(circle at 10% 100%,color-mix(in srgb,var(--violet) 5%,transparent),transparent 35%),var(--bg)}

.profile-actions{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin:14px 0 13px}.profile-action-button,.account-recovery-link{border:1px solid var(--line);border-radius:12px;background:var(--paper-soft);color:var(--brand-deep);font-weight:850}.profile-action-button{min-height:42px;padding:8px 7px;font-size:11px;line-height:1.2}.profile-action-button:hover,.account-recovery-link:hover{background:color-mix(in srgb,var(--brand) 12%,var(--paper-soft))}.account-recovery-link{display:block;width:100%;margin:10px 0 4px;padding:10px;font-size:12px}
@media(max-width:520px){.profile-actions{grid-template-columns:1fr}.profile-action-button{min-height:44px;font-size:12px}}

.install-guide{position:fixed;z-index:20000;inset:0;display:grid;place-items:center;padding:18px;background:rgba(8,20,34,.68);backdrop-filter:blur(7px)}.install-guide-card{position:relative;width:min(100%,430px);padding:30px 24px 24px;border:1px solid var(--line);border-radius:25px;background:var(--paper);color:var(--ink);box-shadow:0 24px 70px rgba(0,0,0,.35);text-align:center}.install-guide-close{position:absolute;top:12px;right:12px;width:34px;height:34px;border:0;border-radius:10px;background:var(--paper-soft);color:var(--muted);font-size:24px;line-height:1}.install-guide-icon{display:grid;place-items:center;width:68px;height:68px;margin:0 auto 14px;border-radius:20px;background:linear-gradient(145deg,var(--brand),var(--violet));color:#fff;font-size:34px;font-weight:900;box-shadow:0 7px 0 color-mix(in srgb,var(--brand-deep) 70%,transparent)}.install-guide-card h2{margin:0 20px 9px;font-size:24px}.install-guide-lead{margin:0 0 17px;color:var(--muted);font-size:14px;line-height:1.45}.install-guide-card ol{text-align:left;margin:0 auto 18px;padding-left:26px;color:var(--ink);line-height:1.65}.install-guide-card li{padding-left:4px;margin:8px 0}.install-share-button{width:100%;padding:13px 16px;border:0;border-radius:14px;background:var(--brand);color:#fff;font-weight:900;box-shadow:0 7px 16px color-mix(in srgb,var(--brand) 26%,transparent)}.install-guide-note{display:block;margin-top:14px;color:var(--muted);font-size:11px;line-height:1.4}

.account-support-button{display:flex;align-items:center;justify-content:center;width:100%;min-height:42px;margin:9px 0;padding:10px 14px;border:1px solid color-mix(in srgb,var(--brand) 40%,var(--line));border-radius:12px;background:color-mix(in srgb,var(--brand) 10%,var(--paper-soft));color:var(--brand-deep);font-weight:850;text-decoration:none;text-align:center}.account-support-button:hover{background:color-mix(in srgb,var(--brand) 17%,var(--paper-soft))}.profile-support{display:grid;gap:5px;margin:12px 0 10px}.support-email{display:block;color:var(--muted);font-size:12px;text-align:center;text-decoration:none}.support-email:hover{color:var(--brand-deep);text-decoration:underline}.contact-links{display:flex;align-items:center;flex-wrap:wrap;gap:7px}.contact-links a{padding:5px 8px;border-radius:8px;background:var(--paper-soft);text-decoration:none}.contact-links small{width:100%;color:var(--muted)}
