/* «Силовой картель» — приложение «Наследницы Луны». Премиальная лунная дизайн-система:
   мрамор + глубокий синий + золото + мягкое свечение, классическая типографика. */
:root{
  --bg:#060e18; --bg2:#0b1a2c;
  --ink:#f4f8fb; --muted:#9fb6c6; --faint:#5f7488;
  --lunar:#6fc6ee; --lunar-deep:#2f7fb0;
  --gold:#e6d3a3; --gold-deep:#bda063;
  --good:#9fe3bd; --bad:#ff9bb0;
  --glass:rgba(255,255,255,.045); --glass-2:rgba(255,255,255,.07);
  --hair:rgba(207,227,240,.14); --hair-gold:rgba(230,211,163,.45);
  --r:20px; --r-sm:14px;
  --serif:"Cormorant Garamond", Georgia, serif;
  --sans:"Inter", -apple-system, system-ui, sans-serif;
  --glow-lunar:0 0 24px rgba(111,198,238,.45);
  --glow-gold:0 0 22px rgba(230,211,163,.35);
}
*{box-sizing:border-box} html,body{margin:0}
body{
  font-family:var(--sans); color:var(--ink); min-height:100vh;
  background:
    radial-gradient(1100px 600px at 50% -8%, #1a3a5c 0%, #0a1b2d 42%, #050b14 100%);
  display:flex; align-items:center; justify-content:center; padding:22px 10px;
}

/* —— Рамка телефона —— */
.phone{
  position:relative; width:100%; max-width:432px; height:880px; max-height:94vh;
  border-radius:40px; overflow:hidden; display:flex; flex-direction:column;
  background:
    radial-gradient(120% 60% at 50% -6%, rgba(111,198,238,.10), transparent 60%),
    linear-gradient(180deg, #0a1828, #060e18 60%);
  border:1px solid rgba(207,227,240,.10);
  box-shadow:0 30px 80px rgba(0,0,0,.6), inset 0 0 0 1px rgba(255,255,255,.02), 0 0 50px rgba(47,127,176,.10);
}
.phone::before{ /* звёздная пыль */
  content:""; position:absolute; inset:0; pointer-events:none; opacity:.5;
  background-image:
    radial-gradient(1px 1px at 20% 18%, #cfe3f0 60%, transparent),
    radial-gradient(1px 1px at 70% 12%, #cfe3f0 60%, transparent),
    radial-gradient(1.4px 1.4px at 42% 30%, #eaf4fb 60%, transparent),
    radial-gradient(1px 1px at 85% 38%, #cfe3f0 60%, transparent),
    radial-gradient(1px 1px at 32% 52%, #b9d6e8 60%, transparent),
    radial-gradient(1px 1px at 60% 60%, #cfe3f0 60%, transparent);
}
.phone::after{ content:""; position:absolute; inset:0; pointer-events:none;
  box-shadow:inset 0 -90px 120px rgba(5,11,20,.7), inset 0 60px 80px rgba(5,11,20,.35); }

/* —— Верхний статус —— */
.topbar{ position:relative; z-index:6; display:flex; align-items:center; gap:9px; padding:15px 16px 11px;
  background:linear-gradient(180deg, rgba(6,14,24,.92), rgba(6,14,24,.35)); backdrop-filter:blur(10px); }
.topbar-fill{ flex:0 1 auto; min-width:0; display:flex; justify-content:center; align-items:center; }
/* Равные боковые зоны → центр topbar совпадает с центром экрана */
.tb-side{ flex:1 1 0; min-width:0; display:flex; align-items:center; gap:9px; }
.tb-left{ justify-content:flex-start; }
.tb-right{ justify-content:flex-end; }
.topbar-mascot-title{ text-align:center; line-height:1.2; align-self:flex-start; margin-top:10px; }
.topbar-eyebrow{ font-size:11px; font-weight:700; letter-spacing:2.5px; text-transform:uppercase; color:var(--gold); opacity:.85; }
.topbar-name{ font-family:var(--serif); font-size:17px; font-weight:600; color:var(--ink); letter-spacing:.2px; margin-top:3px; }
.topbar-mxp-row{ display:flex; flex-direction:column; align-items:center; justify-content:center; gap:10px; margin-top:12px; width:240px; margin-left:auto; margin-right:auto; }
.topbar-mxp-bar{ width:240px; height:6px; background:rgba(255,255,255,.15); border-radius:999px; overflow:hidden; }
.topbar-mxp-bar i{ display:block; height:100%; background:var(--good); border-radius:999px; transition:width .6s ease; }
.topbar-mxp-val{ font-size:10px; color:var(--muted); font-weight:600; flex:0 0 auto; line-height:1; }
.topbar-help-title{ font-size:13px; font-weight:700; color:var(--ink); letter-spacing:.2px; }
.help-eyebrow{ color:var(--gold); font-size:10px; letter-spacing:2.5px; text-transform:uppercase; font-weight:700; }
.help-lead{ font-size:14.5px; line-height:1.55; color:rgba(244,248,251,.9); margin:6px 0 14px; }
.dev-btn{ padding:5px 9px; border-radius:8px; border:1px solid var(--hair); background:var(--glass); color:var(--muted); font-size:11px; font-weight:600; cursor:pointer; transition:.15s; }
.dev-btn:hover{ color:var(--ink); border-color:var(--hair-gold); }
/* Прозрачный topbar поверх fullscreen-экранов (но НЕ когда открыта страница курса/клуба) */
.phone:has(#scr-map.active):not(.omap-open) .topbar,
.phone:has(#scr-mascot.active):not(.omap-open) .topbar{
  position:absolute; top:0; left:0; right:0;
  background:linear-gradient(180deg, rgba(6,14,24,.45), transparent);
  backdrop-filter:blur(0px);
}
/* Лавка и профиль: стеклянная верхняя панель — контент размывается под ней при скролле */
.phone:has(#scr-shop.active) .topbar,
.phone:has(#scr-profile.active) .topbar{
  position:absolute; top:0; left:0; right:0; z-index:22;
  background:rgba(6,14,24,.5);
  backdrop-filter:blur(16px) saturate(140%);
  -webkit-backdrop-filter:blur(16px) saturate(140%);
  border-bottom:1px solid var(--hair);
  box-shadow:0 6px 20px rgba(0,0,0,.25);
}
/* Прокручиваемые контентные оверлеи (клубные страницы, инвентарь) — матовое стекло:
   контент красиво уезжает под шапку. НЕ применяется к картам (omap) — там шапка лишняя. */
.phone.topbar-over:not(.omap-open) .topbar{
  position:absolute; top:0; left:0; right:0; z-index:22;
  background:rgba(6,14,24,.5);
  backdrop-filter:blur(16px) saturate(140%);
  -webkit-backdrop-filter:blur(16px) saturate(140%);
  border-bottom:1px solid var(--hair);
  box-shadow:0 6px 20px rgba(0,0,0,.25);
}
/* Карты (курс, клуб, трипваер, вебинар, конспект/тест) — лёгкий градиент сверху, без матового стекла */
.phone.omap-open .topbar{
  position:absolute; top:0; left:0; right:0; z-index:22;
  background:linear-gradient(180deg, rgba(6,14,24,.65), transparent);
  backdrop-filter:blur(0px); -webkit-backdrop-filter:blur(0px);
  border-bottom:0; box-shadow:none;
}
/* На главной карте (без открытого оверлея) кнопка «Назад» не нужна */
.phone:has(#scr-map.active):not(.topbar-over) #btnBack{ visibility:hidden; pointer-events:none; }
/* Рюкзачок «Мои дары» — на карте, в лавке и профиле (без открытого оверлея) */
#btnBackpack{ display:none; position:relative; }
#btnBackpack svg{ width:20px; height:20px; }
/* золотая точка-индикатор, когда в инвентаре есть непросмотренные дары */
#btnBackpack.has-new::after{ content:""; position:absolute; top:4px; right:4px; width:8px; height:8px;
  border-radius:50%; background:var(--gold); box-shadow:0 0 8px rgba(230,211,163,.9); border:1.5px solid #0a1828; }
.phone:has(#scr-map.active):not(.topbar-over) #btnBackpack,
.phone:has(#scr-shop.active):not(.topbar-over) #btnBackpack,
.phone:has(#scr-profile.active):not(.topbar-over) #btnBackpack,
.phone.omap-open #btnBackpack{ display:grid; } /* узелок и на странице курса/клуба */

/* Лунный Трекер открывается из ряда «Мои дары» в профиле — значок в шапке больше не показываем */
#btnCalendar{ display:none !important; padding:0; overflow:hidden; border:1px solid var(--hair-gold); }
#btnCalendar img{ width:100%; height:100%; object-fit:cover; display:block; }

/* Крестик закрытия инвентаря — справа от «?», только когда инвентарь открыт */
#btnInvClose{ display:none; font-size:14px; }
.phone.inv-open #btnInvClose{ display:grid; }
.app-loading{ position:absolute; inset:0; z-index:90; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:16px;
  background:radial-gradient(110% 78% at 50% 28%, rgba(18,45,74,.98), rgba(6,14,24,.98) 70%);
  opacity:0; pointer-events:none; transition:opacity .28s ease; }
.app-loading.show{ opacity:1; pointer-events:auto; }
.app-loading-spin{ width:42px; height:42px; border-radius:50%; border:3px solid rgba(230,211,163,.18); border-top-color:var(--gold);
  animation:pl-rot .8s linear infinite; box-shadow:0 0 22px rgba(230,211,163,.26); }
.app-loading-text{ font-family:var(--serif); font-size:18px; letter-spacing:1.6px; color:var(--gold); opacity:.9; }
/* Значок монет в шапке (только на страницах, где он нужен — оружейная, академия) */
.tb-coins{ display:none; align-items:center; gap:5px; padding:6px 12px 6px 10px; border-radius:999px; flex:0 0 auto;
  background:rgba(242,227,180,.1); border:1px solid var(--hair-gold); color:#f2e3b4; font-size:13px; font-weight:700;
  box-shadow:0 2px 10px rgba(0,0,0,.25); }
.phone.show-coins .tb-coins{ display:inline-flex; }
.tb-coin-ico{ font-size:14px; line-height:1; }
/* «?» (контекстная помощь) — всегда видна; старый btnHelp на главных скрыт, чтобы не было двух «?» */

/* Бейдж «Новый» и подсветка новой карточки в инвентаре */
.shop-card.gift-new{ border-color:var(--hair-gold); box-shadow:0 0 0 1px rgba(230,211,163,.25), 0 10px 30px rgba(0,0,0,.3), var(--glow-gold); }
.new-badge{ position:absolute; top:9px; right:9px; z-index:2;
  font-size:9.5px; font-weight:800; letter-spacing:.4px; text-transform:uppercase; color:#241f0e;
  background:linear-gradient(180deg,#f2e3b4,#cdb46f); border-radius:999px; padding:3px 9px;
  box-shadow:0 3px 10px rgba(189,160,99,.5); }
.shop-card{ position:relative; }
/* Бейдж «Хит» в углу карточки лавки */
.hit-badge{ position:absolute; top:9px; right:9px; z-index:3;
  font-size:9.5px; font-weight:800; letter-spacing:.4px; text-transform:uppercase; color:#0d1b3a;
  background:linear-gradient(180deg,#cfe6ff,#6aa9ff); border-radius:999px; padding:3px 9px;
  box-shadow:0 3px 10px rgba(106,169,255,.5); }
/* Иконка-подсказка «?» */
.shop-info-btn{ position:absolute; top:7px; left:7px; z-index:3; width:22px; height:22px; border-radius:50%;
  border:1px solid rgba(255,255,255,.3); background:rgba(10,18,40,.55); color:#cfe0ff;
  font-size:13px; font-weight:700; line-height:1; cursor:pointer; display:grid; place-items:center; padding:0;
  backdrop-filter:blur(6px); -webkit-backdrop-filter:blur(6px); transition:background .15s,color .15s; }
.shop-info-btn:hover{ background:rgba(40,60,110,.85); color:#fff; }
/* Список внутри попапа-подсказки */
.bs-desc ul{ margin:8px 0 2px; padding-left:18px; }
.bs-desc li{ margin:4px 0; }
/* Бейдж количества ×N на стопке (сундуки и т.п.) */
.stack-badge{ position:absolute; top:9px; right:9px; z-index:3;
  font-size:12px; font-weight:800; color:#0d1b3a;
  background:linear-gradient(180deg,#f2e3b4,#cdb46f); border-radius:999px; padding:3px 9px;
  box-shadow:0 3px 10px rgba(189,160,99,.5); }
/* —— Окно результата открытия сундука —— */
.chest-result{ position:absolute; inset:0; z-index:120; display:grid; place-items:center; }
.chest-dim{ position:absolute; inset:0; background:rgba(6,10,24,.55);
  backdrop-filter:blur(10px) saturate(120%); -webkit-backdrop-filter:blur(10px) saturate(120%); }
.chest-card{ position:relative; width:min(86%,330px); text-align:center; padding:30px 24px 24px; border-radius:24px;
  background:linear-gradient(180deg,rgba(255,255,255,.16),rgba(255,255,255,.06));
  border:1px solid rgba(255,255,255,.28);
  backdrop-filter:blur(22px) saturate(150%); -webkit-backdrop-filter:blur(22px) saturate(150%);
  box-shadow:0 24px 70px rgba(0,0,0,.5), inset 0 1px 0 rgba(255,255,255,.3);
  transform:translateY(16px) scale(.92); opacity:0; transition:transform .42s cubic-bezier(.2,1.1,.3,1), opacity .42s; }
.chest-card.show{ transform:translateY(0) scale(1); opacity:1; }
.chest-emoji{ font-size:78px; line-height:1; margin-bottom:6px; filter:drop-shadow(0 6px 16px rgba(120,170,255,.55));
  animation:chestPulse 1.1s ease-in-out infinite; }
@keyframes chestPulse{ 0%,100%{ transform:scale(1) } 50%{ transform:scale(1.12) } }
.chest-congrats{ font-family:var(--sans); font-size:14px; font-weight:800; letter-spacing:2px; text-transform:uppercase; color:#e6d3a3; }
.chest-sub{ color:#cfe0ff; opacity:.8; font-size:13px; margin-top:8px; }
.chest-prize{ font-family:var(--serif,'Cormorant Garamond',Georgia,serif); font-size:30px; font-weight:700; color:#fff; margin:2px 0 18px; }
.chest-take{ width:100%; }
.chest-card.jackpot{ border-color:rgba(242,227,180,.6);
  box-shadow:0 24px 80px rgba(0,0,0,.55), 0 0 0 1px rgba(242,227,180,.4), 0 0 60px rgba(242,227,180,.45); }
.chest-card.jackpot .chest-emoji{ filter:drop-shadow(0 6px 22px rgba(242,227,180,.85)); }
/* —— Лунный Календарь: трекер привычек —— */
.habits-tabs{ display:flex; gap:8px; overflow-x:auto; padding:6px 2px 14px; -webkit-overflow-scrolling:touch; scrollbar-width:none; }
.habits-tabs::-webkit-scrollbar{ display:none; }
.habit-chip{ flex:0 0 auto; white-space:nowrap; padding:8px 14px; border-radius:999px; cursor:pointer;
  font-family:var(--sans); font-size:13px; font-weight:600; color:#cfe0ff;
  background:rgba(255,255,255,.06); border:1px solid rgba(255,255,255,.16); }
.habit-chip.active{ color:#0d1b3a; background:linear-gradient(180deg,#f2e3b4,#cdb46f); border-color:transparent; }
.habit-chip.fav:not(.active){ border-color:var(--hair-gold); color:#f2e3b4; }
.habit-chip.habit-more{ color:var(--muted); border-style:dashed; }
.hfav-btn{ display:inline-flex; align-items:center; gap:6px; margin:0 auto 8px; padding:5px 13px; border-radius:999px; cursor:pointer;
  font-family:var(--sans); font-size:12px; font-weight:600; color:var(--muted);
  background:transparent; border:1px solid var(--hair); transition:.16s; }
.hfav-btn.on{ color:#f2e3b4; border-color:var(--hair-gold); background:rgba(242,227,180,.08); }
.habit-page{ text-align:center; padding:6px 4px; }
.habit-streak{ font-size:20px; font-weight:800; color:#e6d3a3; }
.habit-streak span{ display:block; font-size:12px; font-weight:500; color:#cfe0ff; opacity:.8; margin-top:2px; }
.habit-emoji{ font-size:54px; line-height:1; margin:12px 0 2px; filter:drop-shadow(0 6px 16px rgba(120,170,255,.4)); }
.habit-days{ display:flex; gap:6px; justify-content:center; flex-wrap:wrap; margin:14px 0 18px; }
.habit-dot{ width:16px; height:16px; border-radius:50%; background:rgba(255,255,255,.1); border:1px solid rgba(255,255,255,.18); }
.habit-dot.on{ background:linear-gradient(180deg,#bfe3ff,#6aa9ff); border-color:transparent; box-shadow:0 2px 8px rgba(106,169,255,.5); }
.habit-mark{ width:100%; }
/* Лунный Календарь v2: 30 точек в 3 ряда, зелёные, искры на сегодня */
.hdays{ display:grid; grid-template-columns:repeat(10,1fr); gap:11px 9px; max-width:300px; margin:18px auto 22px; }
.hdot{ aspect-ratio:1; border-radius:50%; background:rgba(255,255,255,.08); border:1px solid rgba(255,255,255,.16); }
.hdot.on{ background:radial-gradient(circle at 38% 35%, #bdf7c4, #3fb56a); border-color:transparent; box-shadow:0 2px 10px rgba(63,181,106,.55); }
.hdot.sparkle{ position:relative; box-shadow:0 0 0 2px rgba(189,247,196,.65), 0 0 18px rgba(120,255,160,.75); animation:hpulse 1.5s ease-in-out infinite; }
.hdot.sparkle::before, .hdot.sparkle::after{ content:"✦"; position:absolute; left:50%; margin-left:-5px; color:#e2ffe9; font-size:11px; text-shadow:0 0 6px rgba(120,255,160,.9); animation:hspin 3.2s linear infinite; }
.hdot.sparkle::before{ top:-12px; } .hdot.sparkle::after{ bottom:-12px; animation-direction:reverse; }
@keyframes hpulse{ 0%,100%{ transform:scale(1);} 50%{ transform:scale(1.2);} }
@keyframes hspin{ from{ transform:rotate(0);} to{ transform:rotate(360deg);} }
.hmark{ display:block; width:76%; margin:0 auto; }
.inv-help-btn{ background:rgba(255,255,255,.1); border:1px solid rgba(255,255,255,.25); color:#cfe0ff;
  width:26px; height:26px; border-radius:50%; cursor:pointer; font-weight:700; font-size:14px; margin-left:10px; vertical-align:middle; }
.inv-help-btn:hover{ background:rgba(60,90,150,.75); color:#fff; }
/* —— iOS-уведомления (glassmorphism-плашка сверху) —— */
.ios-notif-stack{ position:absolute; top:10px; left:0; right:0; z-index:130; display:flex; flex-direction:column;
  gap:8px; align-items:center; padding:0 12px; pointer-events:none; }
.ios-notif{ pointer-events:auto; width:100%; max-width:360px; display:flex; gap:12px; align-items:center;
  padding:11px 14px; border-radius:18px; cursor:pointer;
  background:linear-gradient(180deg,rgba(255,255,255,.18),rgba(255,255,255,.08));
  border:1px solid rgba(255,255,255,.28);
  backdrop-filter:blur(20px) saturate(160%); -webkit-backdrop-filter:blur(20px) saturate(160%);
  box-shadow:0 12px 36px rgba(0,0,0,.4), inset 0 1px 0 rgba(255,255,255,.3);
  transform:translateY(-130%); opacity:0; transition:transform .42s cubic-bezier(.2,1,.3,1), opacity .42s; }
.ios-notif.show{ transform:translateY(0); opacity:1; }
.ios-notif-ico{ font-size:24px; flex:0 0 auto; width:40px; height:40px; display:grid; place-items:center;
  background:rgba(255,255,255,.12); border-radius:12px; }
.ios-notif-title{ font-family:var(--sans); font-weight:700; font-size:14px; color:#fff; line-height:1.3; }
.ios-notif-text{ font-family:var(--sans); font-size:12.5px; color:#dfeaf6; opacity:.85; margin-top:1px; line-height:1.4; }
.ios-notif-body{ min-width:0; }
/* цветные суммы внутри уведомления (+XP/+монеты/+лани) — как в старых тостах */
.ios-notif .g{ color:#f2e3b4; } .ios-notif .x{ color:#9ec9ff; } .ios-notif .m{ color:#9be8c0; }
/* монетки, летящие к кнопке «Профиль» */
.fly-coin{ position:absolute; z-index:140; font-size:21px; pointer-events:none; opacity:.95;
  filter:drop-shadow(0 2px 6px rgba(242,227,180,.6));
  transition:transform .8s cubic-bezier(.45,0,.25,1), opacity .8s ease; will-change:transform, opacity; }
#nav button.coin-pong{ animation:coinPong .42s ease; }
@keyframes coinPong{ 0%,100%{ transform:none; } 45%{ transform:translateY(-5px) scale(1.14); color:var(--gold); } }
/* —— Привилегии: кнопка на экране модуля + подтверждение —— */
.mod-priv-btn{ display:block; margin:10px auto 0; padding:9px 16px; border-radius:999px; cursor:pointer;
  pointer-events:auto; /* шапка omap-header имеет pointer-events:none — возвращаем клик кнопке */
  font-family:var(--sans); font-size:13px; font-weight:700; color:#0d1b3a;
  background:linear-gradient(180deg,#f2e3b4,#cdb46f); border:none;
  box-shadow:0 6px 18px rgba(189,160,99,.45); }
.dl-ext{ color:#6aa9ff; font-weight:700; }
.confirm-row{ display:flex; gap:10px; margin-top:14px; }
.confirm-row .btn{ flex:1; }
/* —— Дары-инструменты уроков —— */
.lesson-tool{ display:flex; gap:12px; align-items:center; margin:0 0 14px; padding:12px 14px; border-radius:16px;
  background:linear-gradient(180deg,rgba(242,227,180,.14),rgba(242,227,180,.05)); border:1px solid rgba(242,227,180,.3); }
.lesson-tool-ico{ font-size:28px; flex:0 0 auto; }
.lesson-tool-title{ font-family:var(--sans); font-weight:700; font-size:14px; }
.lesson-tool-sub{ font-size:12px; color:var(--muted,#9fb0d0); margin-top:1px; }
.lesson-tool .btn{ flex:0 0 auto; }
.tool-head{ text-align:center; margin-bottom:6px; }
.tool-emoji{ font-size:48px; line-height:1; filter:drop-shadow(0 6px 16px rgba(120,170,255,.4)); }
/* Дар урока: круглая обрезка картинки + плавно вращающаяся градиентная обводка */
.tool-photo-wrap{ position:relative; width:160px; height:160px; margin:8px auto 10px; display:grid; place-items:center; }
.tool-photo-wrap::before{ content:""; position:absolute; inset:0; border-radius:50%;
  background:conic-gradient(from 0deg, #e6d3a3, #6fc6ee, #9fe3bd, #c9a8ff, #e6d3a3);
  animation:toolRing 9s linear infinite; filter:drop-shadow(0 8px 22px rgba(120,170,255,.4)); }
.tool-photo-wrap::after{ content:""; position:absolute; inset:5px; border-radius:50%; background:#0b1a2c; }
.tool-photo{ position:relative; z-index:1; width:146px; height:146px; object-fit:cover; border-radius:50%; display:block; margin:0;
  filter:drop-shadow(0 4px 14px rgba(120,170,255,.4)); }
@keyframes toolRing{ to{ transform:rotate(360deg); } }
.tool-prog{ display:flex; align-items:center; gap:10px; margin:10px 0 16px; }
.tool-prog-bar{ flex:1; height:8px; border-radius:99px; background:rgba(255,255,255,.1); overflow:hidden; }
.tool-prog-bar i{ display:block; height:100%; border-radius:99px; background:linear-gradient(90deg,#6aa9ff,#bfe3ff); transition:width .4s; }
.tool-prog span{ font-size:12.5px; font-weight:700; color:#cfe0ff; }
.tool-group{ margin:0 0 16px; }
.tool-group-title{ font-size:12px; font-weight:800; letter-spacing:.5px; text-transform:uppercase; color:#e6d3a3; margin-bottom:8px; }
.tool-check{ display:flex; gap:11px; align-items:flex-start; padding:9px 0; cursor:pointer; border-bottom:1px dashed rgba(255,255,255,.1); }
.tool-check:last-child{ border-bottom:none; }
.tool-check input{ display:none; }
.tool-box{ flex:0 0 auto; width:22px; height:22px; border-radius:7px; border:1.5px solid rgba(255,255,255,.3);
  display:grid; place-items:center; font-size:13px; color:#0d1b3a; margin-top:1px; transition:.15s; }
.tool-check.on .tool-box{ background:linear-gradient(180deg,#bfe3ff,#6aa9ff); border-color:transparent; }
.tool-label{ flex:1; font-size:14px; line-height:1.45; }
.tool-check.on .tool-label{ color:var(--muted,#9fb0d0); }
.tool-done{ margin-top:6px; padding:16px 18px; border-radius:16px; text-align:center; font-size:15px; line-height:1.55;
  background:linear-gradient(180deg,rgba(242,227,180,.16),rgba(242,227,180,.05)); border:1px solid rgba(242,227,180,.35); color:#f4ecd6; }
/* Инфокарта */
.ic-list{ display:flex; flex-direction:column; gap:10px; }
.ic-card{ padding:14px 16px; border-radius:14px; background:rgba(255,255,255,.06); border:1px solid rgba(255,255,255,.14); }
.ic-h{ font-weight:800; color:#e6d3a3; font-size:14px; margin-bottom:5px; }
.ic-t{ font-size:14px; line-height:1.55; color:#dfeaf6; }
/* Шаблон */
.tpl-prog{ font-size:12.5px; font-weight:700; color:#cfe0ff; margin-bottom:12px; }
.tpl-field{ margin-bottom:14px; }
.tpl-field label{ display:block; font-size:13px; font-weight:700; color:#e6d3a3; margin-bottom:6px; }
.tpl-field textarea{ width:100%; border-radius:12px; border:1px solid rgba(255,255,255,.18); background:rgba(255,255,255,.06);
  color:#fff; padding:10px 12px; font-family:var(--sans); font-size:14px; resize:vertical; box-sizing:border-box; }
/* чек-лист: пункт с раскрытием «зачем» */
.tool-check-wrap{ border-bottom:1px dashed rgba(255,255,255,.1); }
.tool-check-wrap:last-child{ border-bottom:none; }
.tool-check-wrap .tool-check{ border-bottom:none; flex:1; }
.tool-check-row{ display:flex; align-items:center; gap:8px; }
.tool-why-toggle{ flex:0 0 auto; background:none; border:none; color:#e6d3a3; font-size:12px; font-weight:600; cursor:pointer; padding:4px 6px; opacity:.8; white-space:nowrap; }
.tool-why-toggle.open{ opacity:1; text-decoration:underline; }
.tool-why{ font-size:13px; line-height:1.5; color:rgba(244,248,251,.72); padding:0 2px 11px 33px; }
/* инфокарта: разделитель-заголовок + нижний текст без плашки */
.ic-divider{ font-family:var(--serif); font-size:16px; color:var(--gold); margin:8px 0 2px; }
.ic-foot{ font-size:13.5px; line-height:1.55; color:rgba(244,248,251,.82); text-align:center; margin:16px 4px 0; }
/* чертёж: результат-сборка */
.tpl-res-head{ font-family:var(--serif); font-size:22px; color:var(--ink); text-align:center; margin:4px 0 14px; }
.tpl-res-row{ background:rgba(255,255,255,.045); border:1px solid rgba(255,255,255,.1); border-radius:13px; padding:11px 14px; margin-bottom:9px; }
.tpl-res-lbl{ font-size:12px; font-weight:700; color:var(--gold); margin-bottom:3px; }
.tpl-res-val{ font-size:14px; line-height:1.5; color:rgba(244,248,251,.9); white-space:pre-wrap; }
.tpl-res-aff{ margin-top:14px; padding:13px 15px; border-radius:13px; background:rgba(212,175,110,.12); border:1px solid rgba(212,175,110,.34); color:#f3e6c9; font-size:14px; line-height:1.55; text-align:center; }
.tpl-res-empty{ text-align:center; color:var(--muted); font-size:13.5px; }
/* Тест */
.tq{ margin-bottom:18px; }
.tq-q{ font-weight:700; font-size:14px; margin-bottom:8px; }
.tq-opt{ display:flex; gap:10px; align-items:flex-start; padding:8px 0; cursor:pointer; font-size:13.5px; line-height:1.4; }
.tq-opt input{ margin-top:3px; flex:0 0 auto; }
.tq-result{ margin-top:14px; padding:18px; border-radius:16px; text-align:center;
  background:linear-gradient(180deg,rgba(242,227,180,.16),rgba(242,227,180,.05)); border:1px solid rgba(242,227,180,.35); }
.tq-result-emoji{ font-size:44px; }
.tq-result-title{ font-weight:800; font-size:18px; color:#f4ecd6; margin:4px 0 8px; }
.tq-result p{ font-size:14px; line-height:1.55; color:#dfeaf6; }
/* Колесо баланса */
.wheel-svg{ width:200px; max-width:72%; display:block; margin:6px auto 16px; }
.wheel-row{ display:flex; align-items:center; gap:10px; margin-bottom:8px; }
.wheel-name{ flex:0 0 36%; font-size:13px; }
.wheel-lvs{ display:flex; gap:4px; flex:1; }
.wheel-lv{ flex:1; padding:6px 2px; border-radius:8px; cursor:pointer; font-size:11px; font-weight:600;
  border:1px solid rgba(255,255,255,.16); background:rgba(255,255,255,.05); color:#cfe0ff; }
.wheel-lv.on{ background:linear-gradient(180deg,#bfe3ff,#6aa9ff); color:#0d1b3a; border-color:transparent; }
/* Калькулятор */
.calc-field{ margin-bottom:12px; }
.calc-field label{ display:block; font-size:13px; font-weight:700; color:#e6d3a3; margin-bottom:6px; }
.calc-field input{ width:100%; border-radius:12px; border:1px solid rgba(255,255,255,.18); background:rgba(255,255,255,.06);
  color:#fff; padding:10px 12px; font-family:var(--sans); font-size:15px; box-sizing:border-box; }
.calc-result{ margin-top:14px; padding:16px; border-radius:14px; font-size:15px; line-height:1.5;
  background:rgba(106,169,255,.12); border:1px solid rgba(106,169,255,.3); }
/* Значок активного бустера ×2 рядом с балансом */
.boost-badge{ display:inline-block; margin-left:8px; padding:2px 8px; border-radius:999px; cursor:pointer;
  font-size:12px; font-weight:800; color:#0d1b3a; vertical-align:middle;
  background:linear-gradient(180deg,#bfe3ff,#6aa9ff); box-shadow:0 2px 8px rgba(106,169,255,.5);
  animation:boostPulse 1.4s ease-in-out infinite; }
@keyframes boostPulse{ 0%,100%{ transform:scale(1); } 50%{ transform:scale(1.12); } }
/* —— 3D-переворот карты (для коллекционных карт, инфокарт — любимый эффект) —— */
.card-zoom{ position:relative; z-index:2; display:grid; place-items:center; touch-action:none; }
.card-stage{ perspective:1600px; display:grid; place-items:center; position:relative; }
.card-reveal{ position:relative; transform-style:preserve-3d; animation:cardReveal 1.9s cubic-bezier(.18,.7,.2,1) both; }
@keyframes cardReveal{
  0%{ transform:translateY(40px) rotateY(900deg) scale(.45); opacity:0; }
  35%{ opacity:1; }
  100%{ transform:translateY(0) rotateY(0deg) scale(1); opacity:1; }
}
.card-reveal .cr-face{ position:absolute; inset:0; border-radius:18px; backface-visibility:hidden; overflow:hidden;
  box-shadow:0 30px 60px rgba(0,0,0,.55), 0 0 0 2px rgba(242,227,180,.55), inset 0 0 0 1px rgba(255,255,255,.18); }
.card-reveal .cr-face img{ width:100%; height:100%; object-fit:contain; border-radius:18px; display:block; background:#0c1838; }
.card-reveal .cr-back{ transform:rotateY(180deg); }
/* Карта поверх интерфейса: flip + blur-фон + крестик; крупная (почти весь экран), без обрезки */
.card-overlay{ position:absolute; inset:0; z-index:160; display:grid; place-items:center; }
.card-ov-dim{ position:absolute; inset:0; background:rgba(8,12,28,.42); backdrop-filter:blur(6px); -webkit-backdrop-filter:blur(6px); }
.card-ov-x{ position:absolute; top:14px; right:14px; z-index:5; width:36px; height:36px; border-radius:50%;
  border:1px solid rgba(255,255,255,.3); background:rgba(10,18,40,.65); color:#fff; font-size:16px; cursor:pointer;
  backdrop-filter:blur(6px); -webkit-backdrop-filter:blur(6px); }
.card-overlay .card-reveal.ratio-card{ aspect-ratio:2 / 3; width:264px; max-width:80vw; }
.card-overlay .card-reveal.ratio-info{ aspect-ratio:9 / 16; height:88vh; max-width:94vw; }
.card-ov-hint{ position:absolute; bottom:22px; left:0; right:0; text-align:center; font-size:11.5px;
  color:rgba(255,255,255,.6); pointer-events:none; padding:0 24px; transition:opacity .3s; z-index:4; }
/* лунные карты (часть экрана): подсказку выносим ПОД карту, чтобы не мешала читать */
.card-overlay.ratio-card .card-ov-hint{ bottom:auto; top:100%; margin-top:14px; }
.inv-back{ background:none; border:none; color:var(--gold); font-size:13px; font-weight:600;
  cursor:pointer; padding:0; font-family:var(--sans); }
.inv-back-top{ background:none; border:none; color:var(--gold); font-size:14px; font-weight:700;
  letter-spacing:.2px; cursor:pointer; padding:6px 4px; font-family:var(--sans); }
.inv-back-top:hover{ color:var(--ink); }
.ico{ width:36px;height:36px;border-radius:50%; display:grid;place-items:center; cursor:pointer; flex:0 0 auto;
  color:var(--ink); font-size:15px; background:var(--glass); border:1px solid var(--hair);
  transition:.2s; }
.ico:hover{ background:var(--glass-2); border-color:var(--hair-gold); box-shadow:var(--glow-gold); }
.stat{ display:flex; gap:6px; align-items:center; margin-left:auto; }
.chip{ display:flex; align-items:center; gap:5px; font-size:12px; font-weight:600; color:var(--muted);
  background:var(--glass); border:1px solid var(--hair); border-radius:999px; padding:5px 11px; backdrop-filter:blur(6px); }
.chip b{ color:var(--gold); font-weight:700; font-variant-numeric:tabular-nums; }
.chip.lvl b{ color:var(--lunar);} .chip.mxp b{ color:var(--good);}

/* —— Контент —— */
.scroll{ position:relative; z-index:3; flex:1; overflow-y:auto; overflow-x:hidden; -webkit-overflow-scrolling:touch; }
.scroll::-webkit-scrollbar{ width:0 }
.screen{ display:none; padding:8px 18px 110px; animation:rise .45s cubic-bezier(.2,.7,.2,1); }
.screen.active{ display:block; }
#scr-map.active, #scr-mascot.active{ padding:0; height:100%; overflow:hidden; }
#scr-profile.active{ padding:0; }
/* Запрет скролла когда карта/маскот активны */
.scroll:has(#scr-map.active), .scroll:has(#scr-mascot.active){ overflow:hidden; }

/* —— Заголовок и баланс лавки в topbar —— */
.topbar-shop-title{ text-align:center; line-height:1.2; align-self:flex-start; margin-top:12px; }
.shop-balance{ font-size:12px; color:var(--muted); font-weight:600; margin-top:5px; }
.shop-balance b{ color:var(--gold); font-weight:700; }

/* —— Фон лавки даров (держится при скролле) —— */
#scr-shop{ position:relative; }
#scr-shop.active{ padding-top:84px; }
.shop-bg{ position:sticky; top:0; height:0; z-index:0; pointer-events:none; }
.shop-bg::before{ content:""; position:absolute; left:-30px; right:-30px; top:-96px; height:100vh;
  background:url('public/universe/shop/shop-bg.webp?v=49') center top/cover no-repeat;
  filter:blur(7px) brightness(.95); transform:scale(1.04); }
.shop-bg::after{ content:""; position:absolute; left:-18px; right:-18px; top:-84px; height:100vh;
  background:linear-gradient(180deg, rgba(6,14,24,.45) 0%, rgba(6,14,24,.72) 45%, rgba(6,14,24,.9) 100%); }
.shop-content{ position:relative; z-index:1; }
/* Карточки лавки: кнопка всегда прижата к низу (выравнивание по строке) */
.shop-card{ display:flex; flex-direction:column; }
.shop-card .shop-btn{ width:100%; margin-top:auto; }
.shop-empty{ text-align:center; color:var(--muted); font-size:13.5px; line-height:1.6; padding:50px 20px; }
/* Стеклянная заглушка «в лавке пусто» */
.shop-empty-card{ margin:60px auto 0; max-width:300px; text-align:center;
  background:rgba(255,255,255,.07); border:1px solid rgba(255,255,255,.16);
  backdrop-filter:blur(18px) saturate(140%); -webkit-backdrop-filter:blur(18px) saturate(140%);
  border-radius:var(--r); padding:32px 24px; box-shadow:0 16px 40px rgba(0,0,0,.35); }
.shop-empty-ico{ font-size:46px; filter:drop-shadow(0 0 16px rgba(230,211,163,.5)); margin-bottom:10px; }
.shop-empty-title{ font-family:var(--serif); font-size:23px; font-weight:600; color:var(--ink); }
.shop-empty-text{ font-size:13px; color:var(--muted); line-height:1.6; margin-top:8px; }
/* Подарочные карточки в «Моих дарах» */
.gift-thumb{ aspect-ratio:1; border-radius:var(--r-sm); overflow:hidden; margin-bottom:10px;
  display:grid; place-items:center; font-size:42px;
  background:linear-gradient(135deg, rgba(230,211,163,.16), rgba(111,198,238,.1));
  border:1px solid var(--hair); }
.gift-thumb.streak{ background:linear-gradient(135deg, rgba(255,140,60,.18), rgba(159,227,189,.12)); }
.gift-thumb.title{ background:linear-gradient(135deg, rgba(230,211,163,.28), rgba(230,211,163,.10)); display:grid; place-items:center; font-size:40px; }
.gift-thumb img{ width:100%; height:100%; object-fit:cover; }
.gift-big{ font-size:72px; text-align:center; margin:10px 0 18px;
  filter:drop-shadow(0 6px 18px rgba(230,211,163,.4)); }

/* —— Клуб: Фраза дня (карта дня) —— */
.phrase-screen{ padding:22px 18px 28px; }
.phrase-card{ text-align:center; padding:24px 20px 26px; }
.phrase-card .gift-big{ font-size:60px; margin:2px 0 14px; }
.phrase-text{ font-family:var(--serif); font-size:23px; line-height:1.4; color:var(--ink);
  text-align:center; margin:4px 6px 2px; text-wrap:balance; }

/* Фраза дня (v2): фраза по центру на фоне-картинке, минималистично */
.phrase-screen2{ position:absolute; inset:0; overflow:hidden; }
.phrase-bg{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.phrase-scrim{ position:absolute; inset:0;
  background:radial-gradient(120% 70% at 50% 50%, rgba(6,14,24,.28), rgba(6,14,24,.52)); }
.phrase-close{ position:absolute; top:16px; right:16px; z-index:5; width:36px; height:36px; border-radius:50%;
  display:grid; place-items:center; cursor:pointer; font-size:14px; color:#fff;
  background:rgba(8,18,30,.42); border:1px solid rgba(255,255,255,.22);
  -webkit-backdrop-filter:blur(8px); backdrop-filter:blur(8px); box-shadow:0 6px 16px rgba(0,0,0,.35); transition:transform .15s; }
.phrase-close:active{ transform:scale(.9); }
.phrase-center{ position:absolute; inset:0; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:18px; padding:34px 30px; }
.phrase-quote{ font-family:var(--sans); font-size:14px; line-height:1.32; font-weight:500;
  color:#fff; text-align:center; text-wrap:balance; max-width:290px; margin:0; letter-spacing:.1px;
  text-shadow:0 2px 16px rgba(0,0,0,.75);
  background:rgba(8,18,30,.26); -webkit-backdrop-filter:blur(6px); backdrop-filter:blur(6px);
  padding:20px 22px; border-radius:18px; border:1px solid rgba(255,255,255,.1);
  box-shadow:0 12px 32px rgba(0,0,0,.34); animation:rise .5s cubic-bezier(.2,.7,.2,1); }
/* Кнопка «другая фраза» — маленькая круглая иконка обновления (лимит 2/день) */
.phrase-refresh{ width:38px; height:38px; border-radius:50%; display:grid; place-items:center; cursor:pointer;
  background:rgba(8,18,30,.34); border:1px solid rgba(255,255,255,.16); color:rgba(255,255,255,.85);
  -webkit-backdrop-filter:blur(6px); backdrop-filter:blur(6px); box-shadow:0 6px 16px rgba(0,0,0,.3);
  transition:transform .25s, opacity .2s; padding:0; }
.phrase-refresh svg{ width:18px; height:18px; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
.phrase-refresh:active{ transform:rotate(180deg) scale(.92); }
.phrase-refresh.spent{ opacity:.4; }
/* Страница «Фраза дня»: топбар прозрачный, без линии — фон-картинка видна целиком */
.phone.phrase-open .topbar{ background:transparent !important; border-bottom:0 !important;
  backdrop-filter:none !important; -webkit-backdrop-filter:none !important; box-shadow:none !important; }
.phone.phrase-open #btnHelp{ display:none !important; } /* на странице фразы дня подсказка «?» не нужна */

/* —— Клуб: Трекер привычек —— */
.habit-screen{ padding:22px 18px 28px; }
.habit-card{ padding:15px 16px 16px; }
.habit-head{ display:flex; justify-content:space-between; align-items:flex-start; gap:8px; }
.habit-title{ font-weight:600; font-size:14.5px; color:var(--ink); line-height:1.3; }
.habit-badge{ font-size:11px; color:var(--gold); white-space:nowrap; flex:none; }
.habit-streak{ font-size:12.5px; color:var(--muted); margin:7px 0 10px; }
.habit-grid{ display:grid; grid-template-columns:repeat(15, 1fr); gap:5px; align-items:center;
  margin-bottom:13px; padding:2px 0; }
.habit-dot{ width:9px; height:9px; border-radius:50%; background:var(--hair);
  justify-self:center; transition:width .2s, height .2s, background .2s; }
.habit-dot.on{ width:13px; height:13px; background:var(--good);
  box-shadow:0 0 8px rgba(159,227,189,.55); }
.habit-btn{ width:100%; }

/* —— Клуб: Дневник (2 вкладки: Запись / Мои записи) —— */
.journal-screen{ position:relative; min-height:100%; }
.jrn-wrap{ position:relative; z-index:2; padding:72px 18px 30px; min-height:100%; box-sizing:border-box; }
.jrn-toggle .tgl.on{ color:#060e18; }
/* Вкладка «Запись»: вопрос + поле по центру экрана */
.jrn-write{ min-height:calc(100vh - 200px); display:flex; flex-direction:column; justify-content:center; }
.jrn-write-card{ padding:22px 20px; display:flex; flex-direction:column; gap:14px; }
.jrn-write-title{ font-family:var(--serif); font-size:17px; letter-spacing:2.5px; text-transform:uppercase; color:var(--gold); text-align:center; margin:0; }
.jrn-write .jrn-q{ font-family:var(--serif); font-size:18px; line-height:1.4; color:var(--ink); text-align:center; margin:0; }
.jrn-input2{ width:100%; box-sizing:border-box; min-height:82px; resize:vertical;
  background:rgba(8,18,30,.5); -webkit-backdrop-filter:blur(8px); backdrop-filter:blur(8px);
  border:1px solid var(--hair); border-radius:14px; color:var(--ink); font-family:var(--sans); font-size:14px; line-height:1.5; padding:13px; }
.jrn-input2:focus{ outline:none; border-color:var(--hair-gold); }
.jrn-save2{ width:100%; }
/* Вкладка «Мои записи»: строка-календарь + запись выбранного дня */
.jrn-cal{ background:rgba(8,18,30,.45); -webkit-backdrop-filter:blur(10px); backdrop-filter:blur(10px);
  border:1px solid var(--hair); border-radius:16px; padding:12px; }
.jrn-cal-nav{ display:flex; align-items:center; justify-content:space-between; margin-bottom:10px; }
.jrn-cal-month{ font-size:13px; color:var(--muted); font-weight:600; text-transform:capitalize; }
.jrn-cal-arrow{ width:30px; height:30px; border-radius:50%; border:1px solid var(--hair); background:var(--glass);
  color:var(--ink); cursor:pointer; font-size:16px; display:grid; place-items:center; line-height:1; }
.jrn-cal-arrow:disabled{ opacity:.3; cursor:default; }
.jrn-cal-row{ display:flex; gap:5px; }
.jrn-day{ flex:1; display:flex; flex-direction:column; align-items:center; gap:3px; padding:8px 0 12px; border-radius:11px;
  border:1px solid transparent; background:none; cursor:pointer; position:relative; }
.jrn-day .jrn-dow{ font-size:10px; color:var(--faint); }
.jrn-day .jrn-num{ font-size:14px; color:var(--ink); font-weight:600; }
.jrn-day.today{ border-color:var(--hair-gold); }
.jrn-day.sel{ background:rgba(242,227,180,.16); border-color:var(--gold); }
.jrn-day.future{ opacity:.32; cursor:default; }
.jrn-dot{ width:5px; height:5px; border-radius:50%; background:var(--good); position:absolute; bottom:5px;
  box-shadow:0 0 6px rgba(159,227,189,.7); }
.jrn-entry-card{ margin-top:16px; background:rgba(8,18,30,.45); -webkit-backdrop-filter:blur(10px); backdrop-filter:blur(10px);
  border:1px solid var(--hair); border-radius:14px; padding:16px; }
.jrn-entry-date{ font-size:12px; color:var(--gold); margin-bottom:8px; font-weight:600; }
.jrn-entry-text{ font-size:14px; line-height:1.6; color:#cdd7e2; white-space:pre-wrap; }
.jrn-entry-empty{ margin-top:26px; text-align:center; color:var(--faint); font-size:13px; }
/* ——— «Вопрос на эфир»: анонимная форма обратной связи ——— */
.qst-ask{ display:flex; flex-direction:column; }
.qst-card{ padding:22px 20px; display:flex; flex-direction:column; gap:14px; }
.qst-eyebrow{ font-family:var(--serif); font-size:16px; letter-spacing:2px; text-transform:uppercase; color:var(--gold); text-align:center; margin:0; }
.qst-lead{ font-size:14px; line-height:1.6; color:var(--ink); text-align:center; margin:0; }
.qst-anon{ display:flex; gap:11px; align-items:flex-start; padding:12px 14px; border-radius:14px;
  background:rgba(242,227,180,.07); border:1px solid var(--hair-gold); }
.qst-anon-ic{ font-size:17px; line-height:1.35; flex:0 0 auto; }
.qst-anon-tx{ font-size:12.5px; line-height:1.55; color:#cdd7e2; }
.qst-anon-tx b{ color:var(--gold); }
.map-toggle.qst-type{ display:flex; width:100%; margin:2px 0; }
.qst-type .tgl.on{ color:#060e18; }
.qst-input{ min-height:120px; }
.qst-foot{ font-size:11.5px; color:var(--faint); text-align:center; margin:0; line-height:1.5; }
.qst-sent{ display:flex; flex-direction:column; gap:12px; }
.qst-sent-hint{ font-size:12px; color:var(--muted); text-align:center; margin:0 4px 4px; line-height:1.5; }
.qst-item{ background:rgba(8,18,30,.45); -webkit-backdrop-filter:blur(10px); backdrop-filter:blur(10px);
  border:1px solid var(--hair); border-radius:14px; padding:14px 15px; }
.qst-item-top{ display:flex; align-items:center; justify-content:space-between; margin-bottom:8px; }
.qst-tag{ font-size:10.5px; font-weight:700; letter-spacing:.4px; text-transform:uppercase; padding:3px 9px; border-radius:999px; }
.qst-tag.vopros{ color:#bfe3ff; background:rgba(90,160,220,.16); border:1px solid rgba(120,180,230,.35); }
.qst-tag.situaciya{ color:#e7cda3; background:rgba(230,200,140,.14); border:1px solid var(--hair-gold); }
.qst-item-date{ font-size:11.5px; color:var(--faint); }
.qst-item-text{ font-size:13.5px; line-height:1.6; color:#cdd7e2; white-space:pre-wrap; }
.qst-empty{ text-align:center; padding:60px 24px; color:var(--faint); }
.qst-empty-ic{ font-size:34px; margin-bottom:12px; opacity:.85; }
.qst-empty p{ font-size:13px; line-height:1.7; margin:0; }
/* верхний переключатель «Задать / Отправленные»: активный текст тёмный на золотой пилюле (как на континентах) */
.qst-toggle .tgl.on{ color:#060e18; }
/* контент выезжает из-за нижнего меню (скролл под стеклянное меню) */
#overlay[data-src="questions"] .jrn-wrap{ padding-bottom:104px; }
.jrn-today{ padding:16px; }
.jrn-q{ font-family:var(--serif); font-size:18px; line-height:1.35; color:var(--ink); margin-bottom:12px; }
.jrn-input{ width:100%; box-sizing:border-box; resize:vertical; min-height:96px;
  background:rgba(0,0,0,.18); border:1px solid var(--hair); border-radius:var(--r-sm);
  color:var(--ink); font:inherit; font-size:14px; padding:11px 12px; margin-bottom:12px; }
.jrn-input:focus{ outline:none; border-color:var(--hair-gold); }
/* поле домашней работы в уроке */
.hw-lbl{ display:block; font-family:var(--sans); font-size:12.5px; color:var(--gold); letter-spacing:.3px; margin:16px 0 7px; }
.hw-input{ width:100%; box-sizing:border-box; resize:vertical; min-height:90px;
  background:rgba(0,0,0,.18); border:1px solid var(--hair); border-radius:var(--r-sm);
  color:var(--ink); font:inherit; font-size:14px; padding:11px 12px; }
.hw-input:focus{ outline:none; border-color:var(--hair-gold); }
.jrn-save{ width:100%; }
.jrn-hist-title{ font-size:12px; letter-spacing:1px; text-transform:uppercase; color:var(--faint);
  margin:18px 2px 10px; }
.jrn-hist{ padding:12px 14px; }
.jrn-date{ font-size:11px; color:var(--faint); margin-bottom:4px; }
.jrn-ans{ font-size:13.5px; color:var(--muted); line-height:1.4; white-space:pre-wrap; }

/* —— Клуб: Зал Испытаний —— */
/* Зал Испытаний — горизонтальная цепочка-степпер + одно текущее задание (крупно) */
.challenge-screen{ position:relative; z-index:2; padding:72px 18px 140px; min-height:100%; box-sizing:border-box; }
.ch-title{ text-align:center; margin:6px 0 0; font-size:24px; }
.ch-desc{ font-size:13px; line-height:1.55; color:var(--muted); text-align:center; margin:10px auto 0; max-width:340px; }
/* Горизонтальная цепочка кружков */
.ch-chain-wrap{ overflow-x:auto; margin:20px -18px 4px; padding:8px 18px 12px; scrollbar-width:none; }
.ch-chain-wrap::-webkit-scrollbar{ display:none; }
.ch-chain{ display:flex; align-items:center; width:max-content; }
.ch-node{ flex:0 0 auto; width:40px; height:40px; border-radius:50%; display:grid; place-items:center; font-weight:700; font-size:14px;
  border:1px solid var(--hair); background:rgba(8,18,30,.65); color:var(--muted); transition:.2s; }
.ch-node.done{ background:rgba(159,227,189,.18); border-color:var(--good); color:var(--good); }
.ch-node.active{ border-color:var(--gold); color:var(--gold); box-shadow:0 0 18px rgba(242,227,180,.6); transform:scale(1.14);
  animation:flame-pulse 2s ease-in-out infinite; }
.ch-link{ flex:0 0 26px; height:0; border-top:2px dashed rgba(207,227,240,.22); }
.ch-link.done{ border-top-color:rgba(159,227,189,.4); }
.ch-progress-note{ font-size:12px; color:var(--gold); text-align:center; margin:6px 0 20px; font-weight:600; }
/* Текущее задание — крупная плашка */
.ch-current{ padding:20px 20px 22px; border-radius:18px; text-align:left; animation:rise .4s cubic-bezier(.2,.7,.2,1);
  background:rgba(8,18,30,.5); -webkit-backdrop-filter:blur(10px); backdrop-filter:blur(10px); border:1px solid var(--hair-gold);
  box-shadow:0 12px 34px rgba(0,0,0,.35); }
.ch-cur-head{ display:flex; align-items:center; justify-content:space-between; gap:10px; margin-bottom:10px; }
.ch-cur-step{ font-size:11px; letter-spacing:1.5px; text-transform:uppercase; color:var(--gold); font-weight:700; }
.ch-cur-title{ font-family:var(--serif); font-size:24px; line-height:1.18; color:var(--ink); font-weight:600; margin:2px 0 11px; text-wrap:balance; }
.ch-cur-text{ font-size:14.5px; line-height:1.62; color:rgba(233,238,245,.82); margin:0 0 18px; }
.ch-cur-emoji{ font-size:48px; margin-bottom:6px; }
.ch-lvl{ display:inline-block; font-size:11px; font-weight:700; padding:3px 10px; border-radius:999px; flex:0 0 auto; }
/* Особые состояния (всё пройдено / отдых) — по центру, поэтично */
.ch-current.ch-alldone, .ch-current.ch-rest{ text-align:center; padding:30px 20px; }
.ch-alldone .ch-cur-text, .ch-rest .ch-cur-text{ font-family:var(--serif); font-size:18px; line-height:1.45; color:var(--ink); text-align:center; margin:0; }
.ch-easy{ background:rgba(159,227,189,.16); color:var(--good); }
.ch-mid{ background:rgba(111,198,238,.16); color:var(--lunar); }
.ch-hard{ background:rgba(230,211,163,.16); color:var(--gold); }
.ch-do-btn{ display:block; width:100%; }
.ch-limit-note{ font-size:12.5px; color:var(--muted); line-height:1.45; }

/* —— Клуб: Оружейная (предметы открываются за монеты, прогресс-бар) —— */
.arsenal-screen{ position:relative; min-height:100%; }
.ar-progress{ position:absolute; top:72px; left:18px; right:18px; z-index:4; }
.ar-prog-label{ font-size:12px; color:#fff; text-align:center; margin-bottom:7px; font-weight:600; text-shadow:0 1px 5px rgba(0,0,0,.7); }
/* Закрытый предмет: замочек НА МЕСТЕ точки + цена под ним */
.ar-lock-circle{ width:38px; height:38px; margin:0 auto 6px; border-radius:50%; display:grid; place-items:center; font-size:18px;
  background:rgba(8,18,30,.55); border:1px solid var(--hair-gold); -webkit-backdrop-filter:blur(6px); backdrop-filter:blur(6px);
  box-shadow:0 4px 14px rgba(0,0,0,.45); transition:transform .15s; }
.arsenal-hot.locked:active .ar-lock-circle{ transform:scale(.92); }
.ar-lock-lbl{ color:rgba(242,227,180,.9) !important; }
/* Фото предмета в окошке деталей */
.ar-sheet-photo{ width:120px; height:120px; object-fit:contain; display:block; margin:2px auto 12px; border-radius:14px; }
.ar-sheet-emoji{ font-size:56px; text-align:center; margin:4px 0 12px; filter:drop-shadow(0 4px 12px rgba(120,170,255,.4)); }
.arsenal-content{ position:relative; z-index:2; padding:74px 18px 140px; }
/* Оружейная как карта: предметы-точки на шёлке (картинка/эмодзи предмета + пульс-точка + подпись) */
.arsenal-hot .ar-item-img{ width:56px; height:56px; margin:0 auto 5px; display:grid; place-items:center;
  filter:drop-shadow(0 6px 14px rgba(0,0,0,.55)); transition:transform .18s; }
.arsenal-hot:active .ar-item-img{ transform:scale(.92); }
.arsenal-hot .ar-item-img img{ width:100%; height:100%; object-fit:contain; display:block; }
.ar-item-emoji{ font-size:38px; line-height:1; filter:drop-shadow(0 4px 10px rgba(0,0,0,.6)); }
.arsenal-hot .lbl{ max-width:none; white-space:nowrap; }
.arsenal-silk{ position:relative; border-radius:var(--r); padding:16px 14px 18px; overflow:hidden;
  background:
    repeating-linear-gradient(115deg, rgba(255,255,255,.05) 0 12px, rgba(0,0,0,.04) 12px 26px),
    linear-gradient(135deg,#14315c 0%, #2a5a98 38%, #4a86c4 52%, #245083 70%, #14315c 100%);
  box-shadow:inset 0 2px 30px rgba(0,0,0,.35), inset 0 0 0 1px rgba(255,255,255,.08),
    0 14px 36px rgba(0,0,0,.4); }
.ar-section-t{ font-size:11px; letter-spacing:1.5px; text-transform:uppercase; color:rgba(255,255,255,.8);
  margin:6px 4px 10px; text-shadow:0 1px 4px rgba(0,0,0,.4); }
.ar-section-t:not(:first-child){ margin-top:18px; }
.arsenal-grid{ display:grid; grid-template-columns:repeat(3, 1fr); gap:10px; }
.arsenal-item{ background:rgba(255,255,255,.1); border:1px solid rgba(255,255,255,.18); border-radius:14px;
  padding:12px 8px; text-align:center; cursor:pointer; backdrop-filter:blur(3px);
  transition:transform .15s, background .2s; }
.arsenal-item:active{ transform:scale(.95); }
.ar-emoji{ font-size:30px; line-height:1; margin-bottom:7px; filter:drop-shadow(0 3px 8px rgba(0,0,0,.4)); }
.ar-name{ font-size:10.5px; line-height:1.25; color:#fff; text-shadow:0 1px 3px rgba(0,0,0,.5); }
.ar-pc{ font-size:13px; color:var(--muted); line-height:1.45; margin-top:9px; }
.ar-pc b{ color:var(--ink); font-weight:600; }

/* —— Клуб: Тренировочный зал —— */
/* Клубная страница: фиксированный размытый фон во весь экран (background на скролл-контейнере
   не двигается с контентом — листается только контент). Картинка ставится inline через setClubBg. */
#overlay.club-fullbg{ display:block; padding:0; background-size:cover; background-position:center; background-repeat:no-repeat; background-attachment:scroll; }
/* Не-листающаяся страница с фоном (оружейная): лёгкая прозрачная шапка, без glass */
.phone:has(#overlay.club-fullbg) .topbar{ background:linear-gradient(180deg, rgba(6,14,24,.6), transparent) !important;
  backdrop-filter:none !important; -webkit-backdrop-filter:none !important; border-bottom:0 !important; box-shadow:none !important; }
/* Листающаяся страница (.glass-top): стеклянная шапка — размывает контент, уходящий под неё */
.phone:has(#overlay.glass-top) .topbar{ background:rgba(6,14,24,.42) !important; border-bottom:1px solid var(--hair) !important;
  backdrop-filter:blur(18px) saturate(140%) !important; -webkit-backdrop-filter:blur(18px) saturate(140%) !important;
  box-shadow:0 4px 16px rgba(0,0,0,.25) !important; }
/* Оружейная: точки-предметы на шёлке (на весь экран) */
.arsenal-map{ position:absolute; inset:0; z-index:2; }
.trenazal-screen{ position:relative; padding:0; min-height:100%; }
.trenazal-content{ position:relative; z-index:2; padding:74px 18px 140px; }
/* Универсальная обёртка контента клубной страницы с фоном (отступ под шапку + под нижнее меню) */
.club-page-inner{ position:relative; z-index:2; padding:74px 18px 140px; }
.trenazal-title{ text-align:center; margin:6px 0 0; font-size:24px; }
.trenazal-desc{ font-size:13px; line-height:1.55; color:var(--muted); text-align:center; margin:10px auto 0; max-width:none; }
/* Вводное видео — открыто всем; своя glass-кнопка ▶ поверх постера */
.trenazal-intro{ margin:18px 0 6px; }
.tz-player{ position:relative; border-radius:16px; overflow:hidden; box-shadow:0 12px 30px rgba(0,0,0,.45); line-height:0; }
.trenazal-intro-video{ width:100%; max-height:230px; border-radius:16px; background:#070f1c; display:block; border:1px solid var(--hair); }
.tz-play{ position:absolute; left:50%; top:50%; transform:translate(-50%,-50%); width:72px; height:72px; border-radius:50%;
  background:rgba(8,18,32,.38); -webkit-backdrop-filter:blur(12px); backdrop-filter:blur(12px);
  border:1.5px solid rgba(255,255,255,.55); display:grid; place-items:center; cursor:pointer;
  box-shadow:0 8px 26px rgba(0,0,0,.45); transition:opacity .25s, transform .15s; padding:0; }
.tz-play svg{ width:30px; height:30px; fill:#fff; margin-left:4px; }
.tz-play:active{ transform:translate(-50%,-50%) scale(.9); }
.tz-player.playing .tz-play{ opacity:0; pointer-events:none; }
.trenazal-intro-cap{ font-size:11.5px; color:var(--faint); margin-top:9px; text-align:center; }
.trenazal-grid-label{ font-size:11px; letter-spacing:1.5px; text-transform:uppercase; color:var(--gold); font-weight:700; margin:22px 0 12px; }
/* Карточки приёмов: превью слева + замочек если не открыт */
.drill-grid{ display:flex; flex-direction:column; gap:12px; }
.drill-card2{ display:flex; gap:13px; padding:11px; border-radius:16px; border:1px solid rgba(255,255,255,.12); align-items:center;
  background:rgba(255,255,255,.06); -webkit-backdrop-filter:blur(14px) saturate(130%); backdrop-filter:blur(14px) saturate(130%);
  box-shadow:0 8px 24px rgba(0,0,0,.28); }
.drill-card2.owned{ border-color:var(--hair-gold); }
.drill-thumb{ position:relative; flex:0 0 140px; width:140px; aspect-ratio:16 / 9; border-radius:12px; overflow:hidden;
  background:#0b1c30; display:grid; place-items:center; }
.drill-card2.owned .drill-thumb{ cursor:pointer; }
.drill-thumb img{ width:100%; height:100%; object-fit:cover; display:block; }
.drill-thumb-ph{ font-size:34px; opacity:.5; }
.drill-card2.locked .drill-thumb img, .drill-card2.locked .drill-thumb-ph{ filter:blur(7px) brightness(.6); }
.drill-lock{ position:absolute; inset:0; display:grid; place-items:center; background:rgba(6,14,24,.32); }
.drill-lock span{ font-size:24px; filter:drop-shadow(0 2px 6px rgba(0,0,0,.6)); }
.drill-num{ position:absolute; top:6px; left:6px; z-index:2; min-width:21px; height:21px; padding:0 5px;
  border-radius:7px; display:grid; place-items:center; font-size:12px; font-weight:700; color:#fff;
  background:rgba(8,18,30,.6); -webkit-backdrop-filter:blur(5px); backdrop-filter:blur(5px);
  border:1px solid rgba(255,255,255,.22); box-shadow:0 2px 8px rgba(0,0,0,.4); }
.drill-play-ico{ position:absolute; left:50%; top:50%; transform:translate(-50%,-50%); width:34px; height:34px;
  border-radius:50%; background:rgba(8,18,32,.55); -webkit-backdrop-filter:blur(4px); backdrop-filter:blur(4px);
  display:grid; place-items:center; border:1px solid rgba(255,255,255,.35); }
.drill-play-ico svg{ width:15px; height:15px; fill:#fff; margin-left:2px; }
.drill-body{ flex:1; min-width:0; display:flex; flex-direction:column; }
.drill-card2 .drill-name{ font-weight:600; font-size:14px; color:var(--ink); line-height:1.25; }
.drill-card2 .drill-sit{ font-size:12px; color:var(--faint); margin:4px 0 9px; line-height:1.35; }
.drill-btn{ margin-top:auto; align-self:flex-start; padding:7px 14px; border-radius:10px; font-family:var(--sans);
  font-size:15.5px; font-weight:700; cursor:pointer; transition:.15s; }
.drill-btn.buy{ background:linear-gradient(180deg,#f2e3b4,var(--gold)); color:#1a1205; border:1px solid var(--gold); }
.drill-btn.owned{ background:rgba(242,227,180,.1); color:#f2e3b4; border:1px solid var(--hair-gold); }
.drill-btn:active{ transform:scale(.96); }
/* Страница приёма: видео в формате превью + glass-кнопка, ниже описание */
.drillvideo-screen{ padding:0; }
.drillvideo-info{ padding:18px 0 0; }
.drillvideo-name{ font-size:18px; font-weight:700; color:var(--ink); line-height:1.25; }
.drillvideo-sit{ font-size:12.5px; color:var(--gold); margin:5px 0 12px; }
.drillvideo-desc{ font-size:14px; line-height:1.6; color:var(--muted); margin:0; }
.drillvideo-desc p{ margin:0 0 12px; }
.drillvideo-desc b{ display:block; color:var(--gold); font-size:11px; letter-spacing:1.2px; text-transform:uppercase; margin:14px 0 8px; }
.drillvideo-desc ul{ margin:0 0 12px; padding-left:18px; }
.drillvideo-desc li{ margin-bottom:6px; line-height:1.5; }

/* —— Клуб: Академия —— */
.academy-screen{ position:relative; z-index:2; padding:72px 16px 140px; min-height:100%; box-sizing:border-box; }
.acad-title{ text-align:center; margin:6px 0 0; font-size:24px; }
.acad-desc{ font-size:13px; line-height:1.55; color:var(--muted); text-align:center; margin:10px auto 0; max-width:330px; }
/* Переключатель типов материалов (под описанием) — стеклянная плашка, горизонтальный скролл */
.acad-tabs{ display:flex; gap:6px; margin:16px -2px 2px; overflow-x:auto; padding:4px 2px 6px; scrollbar-width:none; }
.acad-tabs::-webkit-scrollbar{ display:none; }
.acad-tab{ flex:0 0 auto; padding:8px 15px; border-radius:999px; cursor:pointer; white-space:nowrap;
  background:rgba(255,255,255,.06); -webkit-backdrop-filter:blur(8px); backdrop-filter:blur(8px); border:1px solid var(--hair);
  color:var(--muted); font-family:var(--sans); font-size:12.5px; font-weight:600; transition:.16s; }
.acad-tab.on{ background:var(--gold); border-color:var(--gold); color:#1a1205; }
/* Переключатель Закрытые/Открытые в шапке Академии (как карта↔библиотека) */
.map-toggle.acad-toggle{ display:flex; width:max-content; margin:16px auto 6px; } /* специфичнее .map-toggle — иначе inline-flex не центрируется */
.acad-toggle .tgl.on{ color:#060e18; }
.acad-empty{ text-align:center; color:var(--muted); font-size:13px; line-height:1.6; padding:34px 18px; }
/* Карточки материалов: квадратное превью слева + заголовок, описание, кнопка */
.acad-grid{ display:flex; flex-direction:column; gap:12px; margin-top:14px; }
.acad-card2{ display:flex; gap:15px; padding:16px; border-radius:18px; border:1px solid rgba(255,255,255,.12); align-items:flex-start;
  background:rgba(8,18,30,.5); -webkit-backdrop-filter:blur(14px) saturate(130%); backdrop-filter:blur(14px) saturate(130%);
  box-shadow:0 8px 24px rgba(0,0,0,.3); }
.acad-card2.owned{ border-color:var(--hair-gold); }
.acad-thumb{ position:relative; flex:0 0 90px; width:90px; aspect-ratio:1/1; border-radius:14px; overflow:hidden;
  background:#0b1c30; display:grid; place-items:center; }
.acad-thumb img{ width:100%; height:100%; object-fit:cover; display:block; }
.acad-thumb-ph{ font-size:30px; opacity:.5; }
.acad-body{ flex:1; min-width:0; display:flex; flex-direction:column; }
.acad-card-title{ font-family:var(--serif); font-weight:600; font-size:21px; color:var(--ink); line-height:1.13; }
.acad-card-sub{ font-size:14.5px; color:var(--faint); margin:4px 0 8px; line-height:1.3; }
.acad-card-desc{ font-size:16.5px; color:var(--muted); margin:7px 0 13px; line-height:1.34; } /* продающее описание 3–5 строк */
.acad-btn{ margin-top:auto; align-self:flex-start; padding:7px 14px; border-radius:10px; font-family:var(--sans);
  font-size:15.5px; font-weight:700; cursor:pointer; transition:.15s; }
.acad-btn.buy{ background:linear-gradient(180deg,#f2e3b4,var(--gold)); color:#1a1205; border:1px solid var(--gold); }
.acad-btn.owned{ background:rgba(242,227,180,.1); color:#f2e3b4; border:1px solid var(--hair-gold); }
.acad-btn:active{ transform:scale(.96); }
.acad-btn.read{ background:rgba(111,198,238,.14); color:#bfe6f7; border:1px solid rgba(111,198,238,.4); }
.acad-btn.soon{ background:rgba(255,255,255,.05); color:var(--muted); border:1px solid var(--hair); cursor:default; }
.acad-btn.locked{ background:rgba(125,146,164,.08); color:rgba(180,190,205,.72); border:1px solid rgba(125,146,164,.25); cursor:default; }
.acad-card2.soon{ opacity:.72; }
.acad-card2.locked{ opacity:.72; }
.acad-card2.locked .acad-thumb img{ filter:grayscale(.5) brightness(.58); }
.acad-card-sub{ font-size:14px; line-height:1.28; color:var(--gold); margin:3px 0 6px; }
.acad-toggle{ align-self:center; }

/* ——— Читалка статьи (дизайн art-*): разнообразное оформление, у каждой статьи свой микс ——— */
.article-screen{ position:relative; padding:4px 20px 22px; }
.art-kicker{ font-size:11px; font-weight:700; letter-spacing:1.6px; text-transform:uppercase; color:var(--gold); margin-bottom:8px; }
.art-title2{ font-family:var(--serif); font-size:30px; font-weight:600; color:var(--ink); line-height:1.12; margin:0; }
.art-dek{ font-family:var(--serif); font-size:17px; font-style:italic; color:rgba(244,248,251,.82); line-height:1.35; margin:9px 0 0; }
.art-meta{ display:flex; align-items:center; gap:8px; font-size:12px; color:var(--muted); margin-top:13px; }
.art-meta-dot{ opacity:.5; }
.art-rule{ display:flex; align-items:center; justify-content:center; gap:12px; margin:18px 0 4px; color:var(--gold); }
.art-rule::before,.art-rule::after{ content:""; height:1px; flex:1; background:linear-gradient(90deg,transparent,var(--hair-gold),transparent); }
.art-rule span{ font-size:13px; opacity:.8; }
.art-lead{ font-size:14.5px; line-height:1.68; color:var(--ink); margin:14px 0 0; } /* размер как у .art-p — единый текст статьи */
.art-p{ font-size:14.5px; line-height:1.68; color:rgba(244,248,251,.88); margin:14px 0 0; }
.art-p b,.art-lead b{ color:var(--ink); font-weight:600; }
.art-h2{ font-family:var(--serif); font-size:21px; font-weight:600; color:var(--gold); margin:26px 0 0; line-height:1.2; }
.art-callout{ display:flex; gap:13px; align-items:flex-start; margin:18px 0 0; padding:15px 16px; border-radius:16px;
  background:rgba(111,198,238,.08); border:1px solid rgba(111,198,238,.22); }
.art-callout.gold{ background:linear-gradient(180deg,rgba(230,211,163,.12),rgba(230,211,163,.04)); border-color:var(--hair-gold); }
.art-callout.rose{ background:rgba(240,163,163,.09); border-color:rgba(240,163,163,.3); }
.art-callout.green{ background:rgba(159,227,189,.09); border-color:rgba(159,227,189,.28); }
.art-callout-ic{ font-size:26px; line-height:1; flex:0 0 auto; }
.art-callout-tx{ flex:1; min-width:0; }
.art-callout-h{ font-family:var(--serif); font-size:17px; font-weight:600; color:var(--ink); line-height:1.26; }
.art-callout.gold .art-callout-h{ color:var(--gold); }
.art-callout-tx p{ font-size:13.5px; line-height:1.58; color:rgba(244,248,251,.85); margin:5px 0 0; }
.art-quote{ font-family:var(--serif); font-style:italic; font-size:20px; line-height:1.4; color:var(--ink); text-align:center; margin:24px 6px 0; }
.art-quote::before{ content:"“"; display:block; font-size:42px; color:var(--gold); opacity:.6; line-height:.5; margin-bottom:6px; }
/* интерактивный to-do с прогресс-баром */
.art-todo{ margin:18px 0 0; padding:16px; border-radius:18px; background:rgba(9,19,33,.5); border:1px solid var(--hair-gold);
  -webkit-backdrop-filter:blur(12px); backdrop-filter:blur(12px); }
.art-todo-head{ display:flex; align-items:center; justify-content:space-between; margin-bottom:10px; }
.art-todo-title{ font-family:var(--serif); font-size:16px; font-weight:600; color:var(--gold); }
.art-todo-count{ font-size:12px; color:var(--muted); } .art-todo-count b{ color:var(--good); font-size:14px; }
.art-todo-bar{ height:7px; border-radius:99px; background:rgba(255,255,255,.08); overflow:hidden; margin-bottom:10px; }
.art-todo-bar i{ display:block; height:100%; width:0%; border-radius:99px; background:linear-gradient(90deg,#9fe3bd,#6fc6ee); transition:width .45s cubic-bezier(.3,.7,.3,1); }
.art-todo-item{ display:flex; gap:11px; align-items:flex-start; padding:9px 0; cursor:pointer; border-top:1px solid rgba(255,255,255,.06); }
.art-todo-item input{ display:none; }
.art-todo-box{ flex:0 0 auto; width:22px; height:22px; border-radius:7px; border:1.5px solid var(--hair-gold); background:rgba(255,255,255,.04);
  display:grid; place-items:center; margin-top:1px; transition:.15s; }
.art-todo-box::after{ content:"✓"; color:#0b1a2c; font-size:13px; font-weight:800; opacity:0; transform:scale(.5); transition:.15s; }
.art-todo-item.done .art-todo-box{ background:var(--good); border-color:var(--good); }
.art-todo-item.done .art-todo-box::after{ opacity:1; transform:scale(1); }
.art-todo-tx{ font-size:13.5px; line-height:1.5; color:rgba(244,248,251,.88); }
.art-todo-tx b{ color:var(--ink); }
.art-todo-item.done .art-todo-tx{ color:var(--muted); }
/* красные флаги — сетка */
.art-flags{ display:grid; grid-template-columns:1fr 1fr; gap:10px; margin:16px 0 0; }
.art-flag{ padding:12px 13px; border-radius:14px; background:rgba(240,163,163,.06); border:1px solid rgba(240,163,163,.22); }
.art-flag-top{ display:flex; align-items:center; gap:7px; margin-bottom:6px; }
.art-flag-ic{ font-size:13px; } .art-flag-cat{ font-size:13px; font-weight:700; color:#f0a3a3; }
.art-flag p{ font-size:12.5px; line-height:1.5; color:rgba(244,248,251,.85); margin:0; }
/* кейсы-истории */
.art-case{ margin:14px 0 0; padding:15px 16px; border-radius:16px; background:rgba(255,255,255,.04); border:1px solid var(--hair); border-left:3px solid var(--gold); }
.art-case-tag{ font-size:12.5px; font-weight:700; letter-spacing:.3px; color:var(--gold); margin-bottom:7px; }
.art-case-body{ font-size:13.5px; line-height:1.6; color:rgba(244,248,251,.88); margin:0; }
.art-case-take{ font-size:13px; line-height:1.55; color:var(--ink); margin-top:10px; padding-top:10px; border-top:1px solid var(--hair); }
.art-case-take b{ color:var(--good); }
/* шаги */
.art-steps{ list-style:none; counter-reset:art; margin:16px 0 0; padding:0; display:flex; flex-direction:column; gap:16px; }
/* номер-кружок слева; заголовок шага — в одну строку с цифрой; описание — под заголовком */
.art-steps li{ counter-increment:art; position:relative; padding-left:40px; min-height:28px; font-size:14px; line-height:1.6; color:rgba(244,248,251,.88); }
.art-steps li::before{ content:counter(art); position:absolute; left:0; top:0; width:28px; height:28px; border-radius:50%; display:grid; place-items:center;
  font-size:13px; font-weight:700; color:#1a1205; background:linear-gradient(180deg,#f2e3b4,var(--gold)); }
.art-steps li b{ display:flex; align-items:center; min-height:28px; margin:0 0 4px; color:#eef3ff; font-weight:700; line-height:1.3; }
.art-note{ margin:22px 0 0; padding:14px 15px; border-radius:14px; background:rgba(255,255,255,.03); border:1px dashed var(--hair); font-size:12.5px; line-height:1.6; color:var(--muted); }
.art-end{ text-align:center; font-size:22px; color:var(--gold); opacity:.55; margin-top:26px; }
/* буллеты статьи + запасной стиль для простых списков (чтобы не слипались) */
.art-points{ list-style:none; margin:14px 0 0; padding:0; display:flex; flex-direction:column; gap:10px; }
.art-points li{ position:relative; padding-left:20px; font-size:14px; line-height:1.6; color:rgba(244,248,251,.88); }
.art-points li::before{ content:""; position:absolute; left:3px; top:9px; width:6px; height:6px; border-radius:50%; background:var(--gold); }
.art-body ul:not(.art-points):not(.art-steps), .art-body ol:not(.art-points):not(.art-steps){ margin:14px 0 0; padding-left:22px; display:flex; flex-direction:column; gap:9px; }
.art-body ul:not(.art-points):not(.art-steps) li, .art-body ol:not(.art-points):not(.art-steps) li{ font-size:14px; line-height:1.6; color:rgba(244,248,251,.88); }
/* —— Интерактив: квиз-сценарий (карточки А/Б/В + цветной исход) —— */
.art-quiz{ margin:18px 0 0; padding:15px 15px 14px; border-radius:16px; background:rgba(9,19,33,.5); border:1px solid var(--hair-gold);
  -webkit-backdrop-filter:blur(12px); backdrop-filter:blur(12px); }
.art-quiz-q{ font-family:var(--serif); font-size:16px; font-weight:600; color:var(--ink); line-height:1.3; margin-bottom:6px; }
.art-quiz-opt{ display:flex; gap:11px; align-items:flex-start; width:100%; text-align:left; cursor:pointer; margin-top:9px;
  padding:11px 13px; border-radius:12px; background:rgba(255,255,255,.05); border:1px solid var(--hair); transition:.15s;
  font-size:13.5px; line-height:1.45; color:var(--ink); font-family:var(--sans); }
.art-quiz-opt:hover{ border-color:var(--lunar); }
.art-quiz-badge{ flex:0 0 auto; width:24px; height:24px; border-radius:50%; display:grid; place-items:center; font-size:12px; font-weight:700;
  background:rgba(230,211,163,.14); border:1px solid var(--hair-gold); color:var(--gold); }
.art-quiz.done .art-quiz-opt{ cursor:default; }
.art-quiz-opt.correct{ background:rgba(159,227,189,.14); border-color:var(--good); }
.art-quiz-opt.correct .art-quiz-badge{ background:var(--good); border-color:var(--good); color:#08221a; }
.art-quiz-opt.wrong{ background:rgba(240,163,163,.12); border-color:#f0a3a3; }
.art-quiz-opt.wrong .art-quiz-badge{ background:#f0a3a3; border-color:#f0a3a3; color:#3a1010; }
.art-quiz-fb{ margin-top:12px; padding:11px 13px; border-radius:11px; background:rgba(111,198,238,.08); border:1px solid rgba(111,198,238,.22);
  font-size:13px; line-height:1.55; color:rgba(244,248,251,.88); animation:tripCardIn .35s both; }
.art-quiz-fb b{ color:var(--ink); }
/* —— Интерактив: «показать ответ» —— */
.art-reveal{ margin:18px 0 0; padding:15px; border-radius:16px; background:linear-gradient(180deg,rgba(230,211,163,.1),rgba(230,211,163,.03)); border:1px solid var(--hair-gold); }
.art-reveal-q{ font-family:var(--serif); font-size:16px; font-weight:600; color:var(--ink); line-height:1.3; }
.art-reveal-btn{ margin-top:11px; padding:9px 16px; border-radius:99px; cursor:pointer; font-family:var(--sans); font-size:13px; font-weight:600;
  background:linear-gradient(180deg,#f2e3b4,var(--gold)); color:#1a1205; border:0; }
.art-reveal-btn:active{ transform:scale(.97); }
.art-reveal-a{ margin-top:12px; font-size:13.5px; line-height:1.6; color:rgba(244,248,251,.9); animation:tripCardIn .35s both; }
.art-reveal-a b{ color:var(--gold); }

/* Профильные тесты в дарах вебинаров: один вопрос на экран, автоматический результат. */
.art-profile-test{ margin:18px 0 0; padding:16px; border-radius:18px; background:rgba(7,17,30,.72); border:1px solid var(--hair-gold); box-shadow:0 18px 44px rgba(0,0,0,.2); }
.apt-head{ margin-bottom:14px; }
.apt-head-row{ display:flex; align-items:center; justify-content:space-between; gap:12px; margin-bottom:9px; }
.apt-label{ font-family:var(--serif); font-size:17px; font-weight:600; color:var(--gold); }
.apt-counter{ flex:0 0 auto; font-size:12px; color:var(--muted); }
.apt-progress{ height:7px; overflow:hidden; border-radius:99px; background:rgba(255,255,255,.08); }
.apt-progress i{ display:block; width:0; height:100%; border-radius:inherit; background:linear-gradient(90deg,var(--good),var(--lunar)); transition:width .25s ease; }
.apt-question[hidden],.apt-results[hidden],.apt-result[hidden],.apt-actions [hidden]{ display:none!important; }
.apt-question-title{ margin:0 0 12px; font-family:var(--serif); font-size:18px; line-height:1.3; color:var(--ink); }
.apt-options{ display:grid; gap:9px; }
.apt-option{ width:100%; padding:12px 13px; border-radius:12px; border:1px solid var(--hair); background:rgba(255,255,255,.045); color:rgba(244,248,251,.9); font:500 13.5px/1.45 var(--sans); text-align:left; cursor:pointer; transition:background .15s,border-color .15s,transform .15s; }
.apt-option:active{ transform:scale(.985); }
.apt-option.selected{ border-color:var(--good); background:rgba(159,227,189,.13); box-shadow:inset 0 0 0 1px rgba(159,227,189,.16); }
.apt-actions{ display:flex; align-items:center; justify-content:flex-end; gap:9px; margin-top:15px; }
.apt-btn{ min-height:40px; padding:10px 15px; border-radius:99px; border:1px solid var(--hair-gold); background:rgba(230,211,163,.08); color:var(--gold); font:700 13px/1 var(--sans); cursor:pointer; }
.apt-btn.primary{ border:0; background:linear-gradient(180deg,#f2e3b4,var(--gold)); color:#1a1205; }
.apt-btn:disabled{ opacity:.36; cursor:default; }
.apt-results{ scroll-margin-top:20px; }
.apt-result{ padding:2px 0 0; }
.apt-result-tag{ display:inline-flex; padding:5px 10px; border-radius:99px; background:rgba(159,227,189,.1); border:1px solid rgba(159,227,189,.26); color:var(--good); font-size:11px; font-weight:700; letter-spacing:.5px; text-transform:uppercase; }
.apt-result h3{ margin:12px 0 0; font-family:var(--serif); font-size:24px; line-height:1.18; color:var(--ink); }
.apt-result p{ margin:9px 0 0; font-size:14px; line-height:1.62; color:rgba(244,248,251,.88); }
.apt-result ul{ margin-top:10px!important; }
.apt-reset{ margin-top:16px; }
.art-form{ display:grid; gap:12px; margin:18px 0 0; }
.art-form-field{ display:grid; gap:6px; }
.art-form-field span{ color:var(--gold); font-size:12.5px; font-weight:700; }
.art-form-field textarea,.art-form-field input{ width:100%; box-sizing:border-box; border-radius:12px; border:1px solid var(--hair); background:rgba(5,13,24,.58); color:var(--ink); font:500 14px/1.5 var(--sans); padding:11px 12px; outline:none; resize:vertical; }
.art-form-field textarea{ min-height:82px; }
.art-form-field textarea:focus,.art-form-field input:focus{ border-color:var(--lunar); box-shadow:0 0 0 3px rgba(111,198,238,.09); }
.art-form-hint{ font-size:11.5px!important; line-height:1.45; font-weight:400!important; color:var(--muted)!important; }

/* ——— Страница подкаста (pod-*) ——— */
.podcast-screen{ position:relative; padding:8px 20px 22px; }
.pod-hero{ text-align:center; padding:6px 0 4px; }
.pod-photo-wrap{ position:relative; width:128px; height:128px; margin:0 auto 12px; display:grid; place-items:center; animation:podFloat 5s ease-in-out infinite; }
.pod-photo-wrap::before{ content:""; position:absolute; inset:-5px; border-radius:50%;
  background:conic-gradient(from 0deg,#e6d3a3,#6fc6ee,#c9a8ff,#9fe3bd,#e6d3a3); animation:toolRing 11s linear infinite; filter:drop-shadow(0 6px 20px rgba(120,170,255,.4)); }
.pod-photo-wrap::after{ content:""; position:absolute; inset:0; border-radius:50%; background:#0b1a2c; }
.pod-photo{ position:relative; z-index:1; width:118px; height:118px; border-radius:50%; object-fit:cover; display:block; }
@keyframes podFloat{ 0%,100%{ transform:translateY(0); } 50%{ transform:translateY(-6px); } }
.pod-host{ font-family:var(--serif); font-size:20px; font-weight:600; color:var(--ink); }
.pod-host-tag{ font-size:12px; color:var(--gold); margin-top:3px; }
.pod-title{ font-family:var(--serif); font-size:27px; font-weight:600; color:var(--ink); line-height:1.15; margin:16px 0 0; text-align:left; }
.pod-desc{ font-size:14.5px; line-height:1.62; color:rgba(244,248,251,.88); margin:12px 0 0; }
/* «Об авторе» — без карточки: текст на одной левой линии с заголовком и описанием */
.pod-bio{ margin:18px 0 0; }
.pod-bio-h{ font-size:11px; font-weight:700; letter-spacing:1px; text-transform:uppercase; color:var(--gold); margin-bottom:7px; }
.pod-bio p{ font-size:13.5px; line-height:1.62; color:var(--muted); margin:0; }
.pod-part{ margin:16px 0 0; padding:15px 15px 14px; border-radius:18px; background:rgba(9,19,33,.5); border:1px solid var(--hair-gold);
  -webkit-backdrop-filter:blur(12px); backdrop-filter:blur(12px); }
.pod-part-head{ margin-bottom:11px; }
.pod-part-badge{ display:inline-block; font-size:11px; font-weight:700; letter-spacing:.5px; text-transform:uppercase; color:#1a1205;
  background:linear-gradient(180deg,#f2e3b4,var(--gold)); padding:3px 11px; border-radius:99px; }
.pod-part-sub{ display:block; font-family:var(--serif); font-size:16px; color:var(--ink); line-height:1.3; margin-top:8px; }
audio[id^="podAudio"]{ display:none; }
/* Кастомный стеклянный аудио-плеер */
.pod-player{ display:flex; align-items:center; gap:13px; margin:2px 0 6px; padding:11px 13px; border-radius:14px;
  background:rgba(255,255,255,.07); -webkit-backdrop-filter:blur(14px) saturate(140%); backdrop-filter:blur(14px) saturate(140%);
  border:1px solid var(--hair-gold); box-shadow:inset 0 0 18px rgba(255,255,255,.04); }
.pod-pl-btn{ flex:0 0 auto; width:46px; height:46px; border-radius:50%; display:grid; place-items:center; cursor:pointer; border:0;
  background:linear-gradient(180deg,#f6eccb,var(--gold)); box-shadow:0 4px 14px rgba(230,211,163,.4); transition:transform .12s; }
.pod-pl-btn:active{ transform:scale(.93); }
.pod-pl-btn svg{ width:20px; height:20px; fill:#1a1205; }
.pod-pl-btn .ic-play{ margin-left:2px; }
.pod-pl-btn .ic-pause{ display:none; }
.pod-player.playing .pod-pl-btn .ic-play{ display:none; }
.pod-player.playing .pod-pl-btn .ic-pause{ display:block; }
.pod-pl-main{ flex:1; min-width:0; }
.pod-pl-bar{ height:8px; border-radius:99px; background:rgba(255,255,255,.13); cursor:pointer; position:relative; overflow:hidden; box-shadow:inset 0 1px 2px rgba(0,0,0,.25); }
.pod-pl-bar i{ display:block; height:100%; width:0%; border-radius:99px; background:linear-gradient(90deg,#9fe3bd,#6fc6ee); transition:width .15s linear; }
.pod-pl-time{ display:flex; justify-content:space-between; margin-top:7px; font-size:11px; color:var(--muted); font-variant-numeric:tabular-nums; }
.pod-chap-toggle{ width:100%; display:flex; align-items:center; justify-content:space-between; margin-top:8px; padding:9px 12px;
  background:rgba(255,255,255,.05); border:1px solid var(--hair); border-radius:10px; color:var(--ink); font-family:var(--sans); font-size:13px; font-weight:600; cursor:pointer; }
.pod-chap-arrow{ color:var(--gold); transition:transform .2s; }
.pod-chap-toggle.open .pod-chap-arrow{ transform:rotate(180deg); }
.pod-chaps{ margin-top:8px; display:flex; flex-direction:column; gap:2px; }
.pod-chaps[hidden]{ display:none; } /* перебивает display:flex — иначе кнопка «скрыть главы» не работает */
.pod-chap{ display:flex; gap:11px; align-items:baseline; text-align:left; width:100%; padding:8px 10px; border-radius:9px; background:none; border:0; cursor:pointer; transition:.12s; }
.pod-chap:hover{ background:rgba(111,198,238,.08); }
.pod-chap.cur{ background:rgba(230,211,163,.12); }
.pod-chap-t{ flex:0 0 auto; font-size:12px; font-weight:700; color:var(--gold); font-variant-numeric:tabular-nums; min-width:42px; }
.pod-chap-l{ font-size:13px; line-height:1.4; color:rgba(244,248,251,.85); }

/* —— Кнопка-карандаш «отредактировать ответ» + режим правки —— */
.hw-rev-label{ display:flex; align-items:center; gap:8px; }
.hw-edit-btn{ margin-left:auto; width:27px; height:27px; border-radius:8px; padding:0; display:inline-grid; place-items:center; cursor:pointer;
  background:rgba(255,255,255,.06); border:1px solid var(--hair-gold); color:var(--gold); transition:.15s; }
.hw-edit-btn svg{ width:14px; height:14px; }
.hw-edit-btn:hover{ background:rgba(230,211,163,.14); }
.hw-edit-btn:active{ transform:scale(.9); }
.hw-edit-row{ display:flex; gap:8px; margin-top:10px; }
.hw-edit-row .btn{ flex:1; }
.hw-edit-note{ font-size:11.5px; color:var(--muted); margin-top:9px; text-align:center; }

/* —— Клуб: Капсула времени —— */
.capsule-screen{ position:relative; min-height:100%; }
.capsule-due{ text-align:center; padding:18px 16px; }
.cap-due-t{ font-family:var(--serif); font-size:19px; color:var(--gold); margin-bottom:4px; }
.cap-guide-btn{ display:block; margin:0 auto 16px; padding:9px 18px; border-radius:999px; cursor:pointer;
  background:rgba(242,227,180,.1); border:1px solid var(--hair-gold); color:#f2e3b4; font-family:var(--sans);
  font-size:12.5px; font-weight:600; transition:.16s; }
.cap-guide-btn:hover{ background:rgba(242,227,180,.16); }
.cap-guide-list{ margin:0 0 6px; padding-left:18px; }
.cap-guide-list li{ font-size:14px; line-height:1.55; color:var(--muted); margin-bottom:7px; }
/* —— Капсула времени (минималистичная, плашка по центру) —— */
.phone.cap-open #btnHelp{ display:none !important; } /* на капсуле своя кнопка-гайд; закрытие — «✕» в шапке */
.cap-wrap{ position:relative; z-index:2; min-height:calc(100vh - 90px); display:flex; flex-direction:column;
  justify-content:center; gap:18px; padding:80px 18px 116px; box-sizing:border-box; }
.cap-form{ padding:22px 20px; }
.cap-form-title{ font-family:var(--serif); font-size:17px; letter-spacing:2.5px; text-transform:uppercase; color:var(--gold); text-align:center; }
.cap-form-sub{ font-size:12.5px; line-height:1.5; color:var(--muted); text-align:center; margin:8px auto 0; max-width:300px; }
.cap-date-pick{ display:flex; width:fit-content; align-items:center; gap:8px; margin:18px auto 0; padding:9px 16px; cursor:pointer;
  border-radius:11px; background:rgba(8,18,30,.5); border:1px solid var(--hair); color:var(--ink);
  font-family:var(--sans); font-size:13px; font-weight:600; transition:.16s; }
.cap-date-pick.chosen{ border-color:var(--gold); background:rgba(242,227,180,.14); color:#f2e3b4; }
.cap-cal-ico{ width:17px; height:17px; fill:none; stroke:currentColor; stroke-width:1.7; stroke-linecap:round; stroke-linejoin:round; }
.cap-date-hidden{ position:absolute; width:1px; height:1px; opacity:0; pointer-events:none; color-scheme:dark; }
.cap-textarea{ width:100%; box-sizing:border-box; resize:vertical; min-height:96px; margin-top:18px;
  background:rgba(8,18,30,.5); border:1px solid var(--hair); border-radius:14px; color:var(--ink);
  font-family:var(--sans); font-size:14px; line-height:1.5; padding:13px; }
.cap-textarea:focus{ outline:none; border-color:var(--hair-gold); }
.cap-seal-btn{ width:100%; margin-top:14px; }
.cap-seal-btn:disabled{ opacity:.45; cursor:default; filter:grayscale(.35); box-shadow:none; }
.cap-date-pick:disabled, .cap-textarea:disabled{ opacity:.5; cursor:default; }
.cap-left-note{ font-size:11px; color:var(--faint); text-align:center; margin-top:9px; opacity:.8; }
/* Кружки-капсулы (как «Мои дары» в профиле) */
.cap-slots-row{ display:flex; flex-wrap:nowrap; gap:11px; overflow-x:auto; overflow-y:hidden; padding-bottom:6px; justify-content:center; }
.cap-slots-row::-webkit-scrollbar{ height:3px; }
.cap-slots-row::-webkit-scrollbar-thumb{ background:rgba(242,227,180,.12); border-radius:4px; }
.cap-slot{ flex:0 0 46px; width:46px; height:46px; border-radius:50%; cursor:pointer; font-size:20px;
  display:grid; place-items:center; border:1px solid var(--hair); background:var(--glass); transition:transform .15s; padding:0; }
.cap-slot.sealed{ border-color:var(--hair-gold); }
.cap-slot.due{ border-color:var(--gold); box-shadow:0 0 12px rgba(242,227,180,.4); animation:flame-pulse 2.2s ease-in-out infinite; }
.cap-slot.opened{ border-color:rgba(159,227,189,.5); background:rgba(159,227,189,.08); }
.cap-slot:active{ transform:scale(.92); }
/* Кнопка «Архив капсул» — маленькая, под рядом капсул */
.cap-archive-btn{ display:block; margin:2px auto 0; padding:7px 16px; border-radius:999px; cursor:pointer;
  background:transparent; border:1px solid var(--hair); color:var(--muted); font-family:var(--sans);
  font-size:12px; font-weight:600; letter-spacing:.3px; transition:.16s; }
.cap-archive-btn:hover{ border-color:var(--hair-gold); color:#f2e3b4; }
.cap-archive-btn:active{ transform:scale(.96); }
/* Лист «Архив капсул» */
.cap-arch-sheet{ max-height:78vh; }
.cap-arch-list{ display:flex; flex-direction:column; gap:9px; }
.cap-arch-row{ display:flex; align-items:center; gap:13px; width:100%; text-align:left; cursor:pointer;
  padding:12px 14px; border-radius:14px; background:rgba(8,18,30,.5); border:1px solid var(--hair); transition:.16s; }
.cap-arch-row:hover{ border-color:var(--hair-gold); }
.cap-arch-row:active{ transform:scale(.99); }
.cap-arch-ico{ flex:0 0 40px; width:40px; height:40px; border-radius:50%; display:grid; place-items:center;
  font-size:18px; border:1px solid var(--hair); background:var(--glass); }
.cap-arch-ico.sealed{ border-color:var(--hair-gold); }
.cap-arch-ico.due{ border-color:var(--gold); box-shadow:0 0 10px rgba(242,227,180,.35); }
.cap-arch-ico.opened{ border-color:rgba(159,227,189,.5); background:rgba(159,227,189,.08); }
.cap-arch-txt{ display:flex; flex-direction:column; gap:2px; }
.cap-arch-txt b{ font-size:14px; color:var(--ink); }
.cap-arch-date{ font-size:11.5px; color:var(--faint); }
.cap-bottom-note{ font-size:12.5px; line-height:1.5; color:var(--faint); text-align:center; margin:24px auto 0; max-width:300px; }
.cap-peek-ico{ font-size:38px; text-align:center; margin:4px 0 12px; }
.cap-peek-date{ font-size:12px; color:var(--gold); margin-bottom:10px; font-weight:600; }
.cap-peek-msg{ font-size:15px; line-height:1.6; color:#cdd7e2; white-space:pre-wrap; }
.cap-peek-wait{ font-size:14px; line-height:1.55; color:var(--muted); text-align:center; }
.cap-label{ display:block; font-size:12px; color:var(--muted); margin:4px 2px 6px; }
.cap-date-input{ width:100%; box-sizing:border-box; background:rgba(0,0,0,.18); border:1px solid var(--hair);
  border-radius:var(--r-sm); color:var(--ink); font:inherit; font-size:14px; padding:10px 12px;
  color-scheme:dark; }
.cap-date-input:focus{ outline:none; border-color:var(--hair-gold); }
.cap-limit{ font-size:13px; color:var(--muted); line-height:1.45; }
.cap-item{ padding:13px 15px; }
.cap-lock{ font-size:13px; color:var(--lunar); }
.cap-wait{ font-size:12px; color:var(--faint); margin-top:3px; }
.cap-date{ font-size:11px; color:var(--faint); margin-bottom:5px; }
.cap-msg{ font-size:14px; color:var(--ink); line-height:1.5; white-space:pre-wrap; }
.cap-opened{ border-color:var(--hair-gold); }
.capsule-reveal{ padding:40px 22px; text-align:center;
  background:radial-gradient(120% 70% at 50% 18%, rgba(159,227,189,.16), transparent 60%); }
.cap-reveal-msg{ font-family:var(--serif); font-size:18px; line-height:1.5; color:var(--ink);
  text-align:left; padding:18px 18px; white-space:pre-wrap; margin-top:12px; }

/* —— Что дальше —— */
.next-card{ display:flex; gap:14px; align-items:center;
  background:linear-gradient(135deg, rgba(111,198,238,.14), rgba(159,227,189,.07));
  border:1px solid rgba(111,198,238,.34); border-radius:var(--r); padding:14px 16px;
  box-shadow:0 10px 30px rgba(0,0,0,.25); }
.next-left{ flex:1; min-width:0; text-align:left; }
.next-iconbox{ flex:0 0 auto; width:96px; display:flex; align-items:center; justify-content:center; }
.next-bigico{ font-size:60px; line-height:1; filter:drop-shadow(0 8px 18px rgba(0,0,0,.35)); }
.next-label{ font-size:11px; font-weight:700; letter-spacing:1.5px; text-transform:uppercase; color:var(--lunar); line-height:1.3; }
.next-text{ font-size:12.5px; color:var(--muted); line-height:1.45; margin-top:5px; }
.next-cta{ margin-top:11px; }

/* —— Серия дней (streak) —— */
.streak-card{ display:flex; align-items:center; gap:14px; margin-top:16px;
  background:linear-gradient(135deg, rgba(255,140,60,.14), rgba(230,211,163,.08));
  border:1px solid rgba(255,160,80,.35); border-radius:var(--r); padding:14px 16px;
  box-shadow:0 10px 30px rgba(0,0,0,.25); }
.streak-flame{ font-size:34px; line-height:1; filter:drop-shadow(0 0 10px rgba(255,150,60,.5));
  animation:flame-pulse 1.8s ease-in-out infinite; }
@keyframes flame-pulse{ 0%,100%{ transform:scale(1) } 50%{ transform:scale(1.13) } }
.streak-info{ flex:1; min-width:0; }
.streak-count{ font-family:var(--serif); font-size:21px; font-weight:600; color:var(--ink); line-height:1.1; }
.streak-sub{ font-size:12px; color:var(--muted); margin-top:3px; }

/* —— Чаты сообщества —— */
.chat-card{ display:flex; align-items:center; gap:12px; width:100%; text-align:left;
  background:var(--glass); border:1px solid var(--hair); border-radius:var(--r-sm);
  padding:12px 14px; cursor:pointer; transition:.18s; font-family:var(--sans); }
.chat-card:hover{ border-color:var(--hair-gold); background:var(--glass-2); }
.chat-ico{ font-size:20px; flex:0 0 auto; }
.chat-meta{ flex:1; min-width:0; display:flex; flex-direction:column; gap:2px; }
.chat-meta b{ font-size:14px; color:var(--ink); }
.chat-meta small{ font-size:11px; color:var(--muted); }
.chat-arrow{ color:var(--gold); font-size:16px; flex:0 0 auto; }
.chat-card.locked{ opacity:.9; }
.chat-card.locked .chat-ico{ opacity:.45; filter:grayscale(.6); }
.chat-card.locked .chat-meta b{ color:rgba(180,190,205,.5); font-weight:500; }
.chat-card.locked .chat-meta small{ color:rgba(180,190,205,.38); }
.chat-card.locked .chat-arrow{ font-size:14px; opacity:.55; filter:grayscale(.4); }
.chat-card.locked:hover{ border-color:var(--hair-gold); background:var(--glass-2); }

/* —— коллекция лунных карт в профиле: строка слотов, пустые заполняются —— */
.cardcol-count{ color:var(--gold); font-weight:700; margin-left:4px; }
.cardcol-row{ display:flex; flex-wrap:nowrap; gap:9px; margin-top:11px; overflow-x:auto; overflow-y:hidden;
  -webkit-overflow-scrolling:touch; scroll-snap-type:x proximity; padding-bottom:15px;
  margin-left:-2px; padding-left:2px; padding-right:14px; }
.cardcol-row::-webkit-scrollbar{ height:3px; }
.cardcol-row::-webkit-scrollbar-thumb{ background:rgba(242,227,180,.12); border-radius:4px; }
.cardcol-slot{ flex:0 0 84px; width:84px; aspect-ratio:2 / 3; border-radius:10px; overflow:hidden; scroll-snap-align:start;
  padding:0; position:relative; border:1px solid var(--hair); background:var(--glass); }
.cardcol-slot.owned{ cursor:pointer; border-color:var(--hair-gold); box-shadow:0 5px 15px rgba(0,0,0,.32);
  animation:cardSlotPop .45s cubic-bezier(.2,.8,.3,1.2) both; }
.cardcol-slot.owned img{ width:100%; height:100%; object-fit:cover; display:block; }
.cardcol-slot.owned:hover{ box-shadow:0 0 0 2px rgba(242,227,180,.55), 0 7px 18px rgba(0,0,0,.42); transform:translateY(-2px); transition:.18s; }
.cardcol-slot.empty{ border-style:dashed; border-color:rgba(242,227,180,.22);
  background:repeating-linear-gradient(45deg, rgba(21,34,74,.45) 0 9px, rgba(24,42,88,.45) 9px 18px);
  display:flex; align-items:center; justify-content:center; }
.cardcol-q{ font-size:21px; color:rgba(242,227,180,.28); filter:drop-shadow(0 0 6px rgba(242,227,180,.18)); }
/* инфокарты — другое соотношение (9:16), чтобы не обрезались */
.cardcol-row.info .cardcol-slot{ flex-basis:74px; width:74px; aspect-ratio:9 / 16; }

/* Ряд даров ученицы в профиле: круглые слоты в ОДНУ строку с горизонтальным скроллом */
.giftcol-row{ display:flex; flex-wrap:nowrap; gap:11px; margin-top:11px; overflow-x:auto; overflow-y:hidden;
  -webkit-overflow-scrolling:touch; scroll-snap-type:x proximity; padding-bottom:15px;
  margin-left:-2px; padding-left:2px; padding-right:14px; }
.giftcol-row::-webkit-scrollbar{ height:3px; }
.giftcol-row::-webkit-scrollbar-thumb{ background:rgba(242,227,180,.12); border-radius:4px; }
.giftcol-slot{ flex:0 0 46px; width:46px; height:46px; border-radius:50%; overflow:hidden; padding:0; scroll-snap-align:start;
  position:relative; border:1px solid var(--hair); background:var(--glass); }
.giftcol-slot.owned{ cursor:pointer; border-color:var(--hair-gold); box-shadow:0 4px 12px rgba(0,0,0,.3);
  animation:cardSlotPop .45s cubic-bezier(.2,.8,.3,1.2) both; }
.giftcol-slot.owned img{ width:100%; height:100%; object-fit:cover; display:block; }
.giftcol-slot.owned:hover{ box-shadow:0 0 0 2px rgba(242,227,180,.55), 0 6px 16px rgba(0,0,0,.4); transform:translateY(-2px); transition:.18s; }
.giftcol-slot.empty{ border-style:dashed; border-color:rgba(242,227,180,.22);
  display:flex; align-items:center; justify-content:center; }
.giftcol-slot.empty span{ font-size:18px; color:rgba(242,227,180,.3); }
/* надетый титул в инвентаре */
.shop-card.title-worn{ border-color:var(--hair-gold); box-shadow:0 0 0 1px rgba(242,227,180,.35), 0 8px 22px rgba(0,0,0,.3); }
@keyframes cardSlotPop{ 0%{ transform:scale(.6); opacity:0; } 100%{ transform:scale(1); opacity:1; } }

/* —— разделитель библиотеки: линия · точка · линия + подпись —— */
.lib-sep{ display:flex; align-items:center; justify-content:center; gap:10px; margin:22px 4px 0; }
.lib-sep-line{ flex:1; height:1px; background:linear-gradient(90deg, transparent, var(--hair-gold) 35%, var(--hair-gold) 65%, transparent); }
.lib-sep-dot{ width:6px; height:6px; flex:0 0 auto; border-radius:50%; background:var(--gold);
  box-shadow:0 0 7px 1px rgba(230,211,163,.55); }
.lib-sep-label{ text-align:center; font-family:var(--sans); font-size:11px; letter-spacing:1.5px;
  text-transform:uppercase; color:var(--gold); opacity:.78; margin:9px 0 14px; }

/* —— Конфетти-салют при покупке —— */
.confetti{ position:absolute; inset:0; z-index:60; pointer-events:none; overflow:hidden; }
.confetti i{ position:absolute; left:50%; top:52px; width:8px; height:8px; border-radius:2px;
  transform:translate(-50%,-50%) scale(.4); opacity:0;
  animation:confetti-fly .95s ease-out forwards; }
@keyframes confetti-fly{
  0%{ opacity:1; transform:translate(-50%,-50%) scale(.4) rotate(0deg); }
  18%{ opacity:1; }
  100%{ opacity:0;
    transform:translate(calc(-50% + var(--dx)), calc(-50% + var(--dy) + 130px)) scale(1) rotate(260deg); }
}
@keyframes rise{ from{opacity:0; transform:translateY(12px)} to{opacity:1; transform:none} }

.eyebrow{ display:inline-flex; align-items:center; gap:8px; color:var(--gold);
  font-size:10.5px; letter-spacing:3px; text-transform:uppercase; font-weight:700; margin-top:10px; }
.eyebrow::before{ content:""; width:18px; height:1px; background:linear-gradient(90deg, transparent, var(--gold)); }
h1.title{ font-family:var(--serif); font-weight:600; font-size:34px; line-height:1.05; margin:6px 0 6px; letter-spacing:.3px; }
.sub{ color:var(--muted); font-size:13.5px; line-height:1.5; margin:0 0 16px; max-width:34ch; }

/* —— Карта мира (полноэкранная) —— */
.map-fullscreen{ position:absolute; inset:0; overflow:hidden; }
.map-fullscreen .map-bg{ width:100%; height:100%; object-fit:cover; object-position:center; display:block; }
.map-fullscreen .map-veil{ position:absolute; inset:0; pointer-events:none;
  background:linear-gradient(180deg, rgba(6,14,24,.4) 0%, transparent 18%, transparent 60%, rgba(6,14,24,.6) 100%); }
.map-caption-glass{ position:absolute; bottom:78px; left:14px; right:14px; z-index:4;
  background:rgba(6,14,24,.55); backdrop-filter:blur(14px);
  border:1px solid var(--hair); border-radius:18px; padding:11px 16px; }
.map-caption-glass .t{ font-family:var(--serif); font-size:20px; font-weight:600; }
.map-caption-glass .s{ color:var(--muted); font-size:12px; margin-top:3px; }
/* —— Старый .map-wrap — остаётся для оверлеев —— */
.map-wrap{ position:relative; border-radius:var(--r); overflow:hidden; border:1px solid var(--hair);
  margin-bottom:14px; box-shadow:0 18px 50px rgba(0,0,0,.5); }
.map-wrap img.map{ width:100%; display:block; }
.map-wrap .veil{ position:absolute; inset:0; pointer-events:none;
  background:linear-gradient(180deg, rgba(6,14,24,.45), transparent 22%, transparent 62%, rgba(6,14,24,.85)); }
.map-cap{ position:absolute; left:16px; right:16px; bottom:14px; z-index:2; }
.map-cap .t{ font-family:var(--serif); font-size:26px; font-weight:600; }
.map-cap .s{ color:var(--muted); font-size:12px; }
.hot{ position:absolute; transform:translate(-50%,-50%); cursor:pointer; text-align:center; z-index:3; }
.hot .dot{ width:14px;height:14px;border-radius:50%; margin:0 auto 5px; position:relative;
  background:radial-gradient(circle, #fff, var(--lunar)); box-shadow:0 0 14px var(--lunar); }
.hot .dot::after{ content:""; position:absolute; inset:-7px; border-radius:50%; border:1px solid var(--lunar);
  opacity:.6; animation:ring 2.6s ease-out infinite; }
@keyframes ring{ 0%{transform:scale(.6);opacity:.7} 100%{transform:scale(1.7);opacity:0} }
.hot.locked .dot{ background:radial-gradient(circle,#c9d6e0,#7d92a4); box-shadow:0 0 8px rgba(125,146,164,.5); }
.hot.locked .dot::after{ display:none; }
.hot .lbl{ font-size:12px; font-weight:700; letter-spacing:.1px; color:var(--ink); text-align:center; max-width:150px; line-height:1.3;
  background:rgba(8,18,30,.78); border:1px solid var(--hair); padding:6px 10px; border-radius:10px; backdrop-filter:blur(8px); }
.hot.locked .lbl{ color:var(--muted); }
/* трипваер: длинная подпись «план безопасности» должна влезать в одну строку (иначе 3 строки вместо 2) */
.hot[data-pid="tripwire"] .lbl{ max-width:none; white-space:nowrap; }
/* точки клуба: подписи в одну строку — аккуратные одинаковые пилюли (без «длинных краёв») */
.hot[data-cl] .lbl{ max-width:none; white-space:nowrap; }

/* Док ежедневных механик клуба (Фраза дня · Дневник · Капсула) — круглые иконки справа сверху, только на карте */
.club-dock{ position:absolute; right:14px; top:72px; display:flex; flex-direction:column; gap:10px; z-index:5; }
.club-dock-ico{ width:46px; height:46px; border-radius:50%; display:grid; place-items:center; cursor:pointer;
  background:rgba(8,18,30,.62); border:1px solid var(--hair-gold); backdrop-filter:blur(10px); -webkit-backdrop-filter:blur(10px);
  box-shadow:0 6px 18px rgba(0,0,0,.35); transition:transform .15s, box-shadow .2s; padding:0; }
.club-dock-ico span,
.club-dock-emoji{
  font-family:"Apple Color Emoji","Segoe UI Emoji","Noto Color Emoji",sans-serif;
  font-size:24px;
  line-height:1;
  color:initial;
  -webkit-text-fill-color:initial;
  filter:drop-shadow(0 4px 10px rgba(0,0,0,.45)) drop-shadow(0 0 8px rgba(180,220,255,.18));
}
.club-dock-ico:active{ transform:scale(.9); }
.club-dock-ico:hover{ box-shadow:0 6px 22px rgba(230,211,163,.3); }

/* —— Переключатель карта / библиотека (в topbar) —— */
.map-toggle{ display:inline-flex; position:relative;
  background:rgba(255,255,255,.14); border:1px solid rgba(255,255,255,.22);
  border-radius:999px; padding:3px; gap:0; }
/* Скользящая пилюля — позиция выставляется из JS по реальным размерам кнопки */
.tgl-pill{ position:absolute; top:3px; bottom:3px; left:3px; width:60px;
  background:rgba(255,255,255,.96); border-radius:999px;
  box-shadow:0 1px 6px rgba(0,0,0,.22);
  transition:left .28s cubic-bezier(.4,0,.2,1), width .28s cubic-bezier(.4,0,.2,1);
  pointer-events:none; }
.map-toggle .tgl{ position:relative; z-index:1; flex:1; padding:6px 16px;
  border:none; border-radius:999px; background:none;
  color:rgba(255,255,255,.55); font-size:12.5px; font-weight:600;
  cursor:pointer; font-family:var(--sans); transition:color .25s; white-space:nowrap; }
.phone:not(.map-library) .map-toggle .tgl[data-view="map"],
.phone.map-library .map-toggle .tgl[data-view="library"]{ color:#060e18; }

/* —— Слои карты / библиотеки —— */
.lib-backdrop{ position:absolute; inset:0; pointer-events:none;
  background:rgba(6,14,24,.48); backdrop-filter:blur(10px); -webkit-backdrop-filter:blur(10px);
  opacity:0; transition:opacity .35s; }
.phone.map-library .lib-backdrop{ opacity:1; }
.map-layer{ position:absolute; inset:0; transition:opacity .35s, transform .35s; }
.map-layer-map{ }
.map-layer-lib{ opacity:0; transform:translateY(10px); pointer-events:none; }
.phone.map-library .map-layer-map{ opacity:0; pointer-events:none; transform:scale(.98); }
.phone.map-library .map-layer-lib{ opacity:1; transform:translateY(0); pointer-events:all; }

/* —— Вид библиотеки —— */
.lib-scroll{ position:absolute; top:64px; left:0; right:0; bottom:0; overflow-y:auto; -webkit-overflow-scrolling:touch; padding:0 14px 100px; }
.lib-scroll::-webkit-scrollbar{ width:0 }
.lib-grid{ display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.lib-card{ border-radius:16px; overflow:hidden; background:rgba(255,255,255,.07);
  border:1px solid rgba(255,255,255,.13); backdrop-filter:blur(14px); cursor:pointer;
  transition:transform .15s, box-shadow .2s; }
.lib-card:active{ transform:scale(.97); }
.lib-card-img{ position:relative; aspect-ratio:1; overflow:hidden; }
.lib-card-img img{ width:100%; height:100%; object-fit:cover; display:block; }
.lib-card-lock{ position:absolute; inset:0; display:grid; place-items:center;
  background:rgba(6,14,24,.42); font-size:22px; }
.lib-card-info{ padding:10px 11px 13px; }
.lib-card-title{ font-size:12px; font-weight:700; color:var(--ink); line-height:1.3; margin-bottom:3px; }
.lib-card-sub{ font-size:11px; color:var(--muted); }

/* —— Библиотека: большие карточки курсов/клуба —— */
.lib-list{ display:flex; flex-direction:column; gap:12px; }
.lib-card2{ display:flex; gap:13px; align-items:stretch; padding:12px;
  border-radius:18px; background:rgba(255,255,255,.08); border:1px solid rgba(255,255,255,.14);
  backdrop-filter:blur(14px); cursor:pointer; transition:transform .15s, border-color .2s, box-shadow .2s;
  box-shadow:0 10px 28px rgba(0,0,0,.3); }
.lib-card2:active{ transform:scale(.985); }
.lib-card2:hover{ border-color:var(--hair-gold); }
.lib-card2.locked{ opacity:.72; }
.lib2-img{ position:relative; width:84px; height:84px; flex:0 0 84px; border-radius:13px; overflow:hidden; }
.lib2-img img{ width:100%; height:100%; object-fit:cover; display:block; }
.lib2-body{ flex:1; min-width:0; display:flex; flex-direction:column; justify-content:center; }
.lib2-title{ font-family:var(--serif); font-size:17px; font-weight:600; color:var(--ink); line-height:1.15; }
.lib2-desc{ font-size:12px; color:var(--muted); margin-top:3px; line-height:1.35; }
.lib2-prog{ display:flex; align-items:center; gap:9px; margin-top:10px; }
.lib2-bar{ flex:1; height:7px; border-radius:999px; background:rgba(4,12,20,.55); border:1px solid var(--hair); overflow:hidden; }
.lib2-bar i{ display:block; height:100%; border-radius:999px;
  background:linear-gradient(90deg, #3f9e76, var(--good)); box-shadow:0 0 10px rgba(159,227,189,.5);
  transition:width 1s cubic-bezier(.2,.7,.2,1); }
.lib2-pct{ font-size:12px; font-weight:700; color:var(--good); flex:0 0 auto; }
.lib2-lock{ font-size:11.5px; color:var(--muted); margin-top:9px; }

/* —— Bottomsheet для закрытого продукта —— */
.bs-wrap{ position:absolute; inset:0; z-index:40; }
.bs-dim{ position:absolute; inset:0; background:rgba(6,14,24,.6); animation:fadein .25s; }
@keyframes fadein{ from{opacity:0} to{opacity:1} }
.bs-sheet{ position:absolute; bottom:0; left:0; right:0;
  background:linear-gradient(180deg, rgba(10,20,35,.97), rgba(6,14,24,.99));
  backdrop-filter:blur(20px) saturate(150%); -webkit-backdrop-filter:blur(20px) saturate(150%);
  border:1px solid rgba(255,255,255,.1); border-top-left-radius:24px; border-top-right-radius:24px;
  padding:22px 18px 40px;
  transform:translateY(100%); transition:transform .38s cubic-bezier(.2,.7,.2,1); }
.bs-sheet.show{ transform:translateY(0); }
.bs-x{ position:absolute; top:14px; right:16px; width:30px; height:30px; border-radius:50%;
  border:1px solid var(--hair); background:var(--glass); color:var(--muted); font-size:13px;
  cursor:pointer; display:grid; place-items:center; transition:.2s; }
.bs-x:hover{ color:var(--ink); }
/* Лист контекстной помощи «?» — текст абзацами, плашка только для акцента */
.ph-sheet{ max-height:82vh; overflow-y:auto; text-align:left;
  scrollbar-width:thin; scrollbar-color:rgba(242,227,180,.18) transparent; }
.ph-sheet::-webkit-scrollbar{ width:5px; }
.ph-sheet::-webkit-scrollbar-track{ background:transparent; }
.ph-sheet::-webkit-scrollbar-thumb{ background:rgba(242,227,180,.16); border-radius:6px; }
.ph-title{ font-family:var(--serif); font-size:21px; color:var(--ink); margin:2px 32px 12px 0; line-height:1.25; }
.ph-p{ font-size:14px; line-height:1.6; color:var(--muted); margin:0 0 11px; }
.ph-hl{ margin-top:6px; }
.ph-hl b{ display:block; color:var(--gold); font-size:11px; letter-spacing:1.2px; text-transform:uppercase; margin-bottom:5px; }
.ph-hl > div{ font-size:13.5px; line-height:1.5; color:var(--ink); }
.bs-row{ display:flex; gap:14px; margin-bottom:16px; align-items:flex-start; }
.bs-thumb{ width:76px; height:76px; border-radius:14px; overflow:hidden; flex:0 0 76px; position:relative; }
.bs-thumb img{ width:100%; height:100%; object-fit:cover; display:block; }
.bs-thumb-lock{ position:absolute; inset:0; background:rgba(6,14,24,.45); display:grid; place-items:center; font-size:18px; }
.bs-meta{ flex:1; display:flex; flex-direction:column; gap:5px; padding-top:4px; }
.bs-title{ font-family:var(--serif); font-size:19px; font-weight:700; line-height:1.2; color:var(--ink); }
.bs-sub{ font-size:12.5px; color:var(--muted); }
.bs-price{ display:inline-block; font-size:12px; font-weight:700; color:var(--gold);
  background:rgba(232,216,168,.12); border:1px solid rgba(232,216,168,.3); border-radius:999px; padding:3px 11px; }
.bs-desc{ font-size:13px; line-height:1.65; color:rgba(207,227,240,.72); margin:0 0 18px; }
.bs-inside{ font-size:12.5px; font-weight:600; color:var(--gold); margin:0 0 16px; }
/* Плашка модуля: контент на всю ширину, замок — внизу справа (чтобы «откроется …» влезало на строку заголовка) */
.bs-modrow{ display:block; position:relative; }
.bs-modleft{ min-width:0; }
.bs-modleft .bs-title{ line-height:1.3; margin-bottom:12px; }
.bs-modleft .bs-desc{ line-height:1.45; margin-bottom:0; padding-right:64px; }
.bs-modleft .bs-inside{ margin:14px 0 0; padding-right:64px; } /* больше отступ от описания */
.bs-dotsep{ font-weight:900; color:var(--gold); }
.bs-date{ font-size:12.5px; font-weight:600; color:var(--muted); white-space:nowrap; }
.bs-modlock{ position:absolute; right:2px; bottom:6px; width:54px; display:flex; align-items:center; justify-content:center; }
.bs-modlock::before{ content:""; position:absolute; top:50%; left:50%; transform:translate(-50%,-50%);
  width:66px; height:66px; border-radius:50%; pointer-events:none;
  background:radial-gradient(circle, rgba(230,211,163,.3) 0%, rgba(230,211,163,.1) 45%, transparent 72%);
  animation:lock-glow 2.4s ease-in-out infinite; }
.bs-biglock{ position:relative; font-size:46px; line-height:1; filter:drop-shadow(0 6px 16px rgba(0,0,0,.45));
  animation:lock-pulse 2.4s ease-in-out infinite; }
@keyframes lock-glow{ 0%,100%{ opacity:.7; } 50%{ opacity:1; } }
@keyframes lock-pulse{ 0%,100%{ transform:scale(1); } 50%{ transform:scale(1.07); } }
.bs-btn{ width:100%; }

/* —— Карточки (стекло) —— */
.card{ position:relative; background:var(--glass); border:1px solid var(--hair); border-radius:var(--r);
  padding:15px; margin-bottom:12px; backdrop-filter:blur(8px);
  box-shadow:0 10px 30px rgba(0,0,0,.28); transition:transform .15s, box-shadow .25s, border-color .25s; }
.card.glow{ border-color:var(--hair-gold); box-shadow:0 14px 36px rgba(0,0,0,.35), 0 0 0 1px rgba(230,211,163,.10), var(--glow-gold); }
.card.tap{ cursor:pointer; } .card.tap:hover{ transform:translateY(-2px); border-color:var(--hair-gold); }
.row{ display:flex; gap:12px; align-items:center; } .grow{ flex:1; min-width:0; }
.muted{ color:var(--muted); font-size:13px; line-height:1.45; }
.tag{ display:inline-block; font-size:10.5px; font-weight:700; letter-spacing:.4px; padding:4px 10px; border-radius:999px;
  background:rgba(111,198,238,.12); color:var(--lunar); border:1px solid rgba(111,198,238,.3); }
.tag.lock{ background:rgba(125,146,164,.12); color:#9fb3c2; border-color:rgba(125,146,164,.3); }
.tag.done{ background:rgba(159,227,189,.12); color:var(--good); border-color:rgba(159,227,189,.32); }
.tag.gold{ background:rgba(230,211,163,.12); color:var(--gold); border-color:var(--hair-gold); }

/* —— Прогресс —— */
.bar{ height:8px; border-radius:999px; background:rgba(4,12,20,.7); border:1px solid var(--hair); overflow:hidden; }
.bar > i{ display:block; height:100%; border-radius:999px; transition:width .7s cubic-bezier(.2,.7,.2,1);
  background:linear-gradient(90deg, var(--lunar-deep), var(--lunar)); box-shadow:0 0 12px rgba(111,198,238,.5); }
.bar.gold > i{ background:linear-gradient(90deg, var(--gold-deep), var(--gold)); box-shadow:0 0 12px rgba(230,211,163,.5); }
.bar.mxp > i{ background:linear-gradient(90deg, #3f9e76, var(--good)); box-shadow:0 0 12px rgba(159,227,189,.5); }
.bar.good > i{ background:linear-gradient(90deg, #3f9e76, var(--good)); box-shadow:0 0 12px rgba(159,227,189,.5); }

/* —— Кнопки —— */
.btn{ display:inline-flex; align-items:center; justify-content:center; gap:8px; width:100%;
  padding:14px 18px; border-radius:15px; border:1px solid rgba(111,198,238,.4); cursor:pointer;
  font-weight:700; font-size:15px; color:#04121d; letter-spacing:.2px;
  background:linear-gradient(180deg, #8fd6f3, #4ea7d6); box-shadow:0 8px 24px rgba(47,127,176,.4), var(--glow-lunar);
  transition:transform .08s, filter .2s; }
.btn:hover{ filter:brightness(1.07) } .btn:active{ transform:scale(.985) }
.btn[disabled]{ opacity:.4; cursor:not-allowed; filter:grayscale(.4); box-shadow:none; }
.btn.gold{ background:linear-gradient(180deg, #f2e3b4, #cdb46f); border-color:var(--hair-gold); color:#241f0e; box-shadow:0 8px 24px rgba(189,160,99,.4), var(--glow-gold); }
.btn.ghost{ background:var(--glass); color:var(--ink); border-color:var(--hair); box-shadow:none; backdrop-filter:blur(6px); }
.btn.ghost:hover{ border-color:var(--hair-gold); }
.btn.sm{ width:auto; padding:10px 16px; font-size:13px; border-radius:12px; }

/* —— Сетки —— */
.grid{ display:grid; gap:12px; } .grid.c2{ grid-template-columns:1fr 1fr; } .grid.c3{ grid-template-columns:1fr 1fr 1fr; }

/* —— Ассеты —— */
.asset{ width:100%; border-radius:var(--r-sm); border:1px solid var(--hair); display:block;
  box-shadow:0 10px 28px rgba(0,0,0,.4); }
.thumb{ width:64px; height:64px; border-radius:14px; object-fit:cover; border:1px solid var(--hair); flex:0 0 auto; }

/* —— Маскот (полноэкранный) —— */
.mascot-full{ position:absolute; inset:0; overflow:hidden; }
.mascot-full .mascot-bg-img{ width:100%; height:100%; object-fit:cover; object-position:center 10%; display:block; }
/* Видео перехода уровня — поверх текущей лани; прозрачное (под ним остаётся текущий idle, без чёрного экрана), плавно появляется по первому кадру */
.mascot-full .mascot-transition{ position:absolute; inset:0; z-index:4; opacity:0; transition:opacity .3s ease; }
/* верхний градиент — для заголовка */
.mascot-top-fade{ position:absolute; top:0; left:0; right:0; height:180px; pointer-events:none;
  background:linear-gradient(180deg, rgba(6,14,24,.7) 0%, transparent 100%); }
/* нижний градиент — для XP-плашки */
.mascot-bottom-fade{ position:absolute; bottom:0; left:0; right:0; height:200px; pointer-events:none;
  background:linear-gradient(0deg, rgba(6,14,24,.75) 0%, transparent 100%); }
.mascot-top-label{ position:absolute; top:52px; left:0; right:0; padding:16px 18px; z-index:2; }
.mascot-title{ font-family:var(--serif); font-size:30px; font-weight:600; margin:4px 0 0; line-height:1.1; }
.mascot-xp-strip{ position:absolute; bottom:80px; left:14px; right:14px; z-index:2;
  background:rgba(6,14,24,.58); backdrop-filter:blur(14px);
  border:1px solid var(--hair); border-radius:14px; padding:10px 14px; }
.mascot-xp-row{ display:flex; align-items:center; justify-content:space-between; margin-bottom:7px; }
.mascot-xp-row .lvl{ font-weight:700; font-size:13.5px; color:var(--ink); }
.mascot-xp-row .pts{ color:var(--muted); font-size:12px; }

/* —— Кнопка «Вырастить лань» —— */
.btn-upgrade{
  position:absolute; bottom:107px; left:18px; right:18px; z-index:3;
  display:flex; align-items:center; justify-content:center;
  padding:14px 18px; border-radius:15px;
  border:1px solid rgba(159,227,189,.5); cursor:pointer;
  font-weight:700; font-size:15px; font-family:var(--sans);
  color:#04211a; letter-spacing:.2px;
  background:linear-gradient(180deg,#b5edcf,#6bcfa0);
  box-shadow:0 8px 24px rgba(107,207,160,.4), 0 0 20px rgba(159,227,189,.3);
  opacity:0; transform:translateY(10px);
  transition:opacity .4s, transform .4s;
  pointer-events:none;
}
.btn-upgrade.visible{ opacity:1; transform:translateY(0); pointer-events:auto; }

/* —— Плашка-подсказка «Это ваш питомец» —— */
.mascot-hint{
  position:absolute; top:98px; left:18px; right:18px; z-index:3;
  background:rgba(6,14,24,.62); backdrop-filter:blur(16px); -webkit-backdrop-filter:blur(16px);
  border:1px solid var(--hair-gold); border-radius:16px; padding:14px 16px;
  box-shadow:0 12px 34px rgba(0,0,0,.4), var(--glow-gold);
  opacity:0; transform:translateY(-10px);
  transition:opacity .5s ease, transform .5s ease;
  pointer-events:none;
}
.mascot-hint.visible{ opacity:1; transform:translateY(0); }
.mascot-hint-title{ font-family:var(--serif); font-size:18px; font-weight:600; color:var(--gold); margin-bottom:5px; }
.mascot-hint-text{ font-size:12.5px; line-height:1.55; color:rgba(244,248,251,.85); margin:0; }

/* —— Полоса MXP: заполнена и светится —— */
@keyframes mxp-glow{
  0%,100%{ box-shadow:0 0 4px rgba(159,227,189,.5); }
  50%{ box-shadow:0 0 10px rgba(159,227,189,.9), 0 0 20px rgba(159,227,189,.45); }
}
.topbar-mxp-bar.mxp-full{ background:rgba(159,227,189,.12); }
.topbar-mxp-bar.mxp-full i{ animation:mxp-glow 1.4s ease-in-out infinite; }

/* —— Нижнее меню —— */
.phone.welcome-open .nav{ display:none; } /* на welcome меню не нужно */
.nav{ position:absolute; left:0; right:0; bottom:0; z-index:30; display:flex; padding:10px 10px 16px;
  background:linear-gradient(180deg, rgba(6,14,24,.2), rgba(6,14,24,.96)); backdrop-filter:blur(12px);
  border-top:1px solid var(--hair); }
.nav button{ flex:1; background:none; border:0; color:var(--faint); font-size:10.5px; font-weight:600; letter-spacing:.2px;
  display:flex; flex-direction:column; align-items:center; gap:5px; padding:6px 2px; cursor:pointer; transition:.2s; }
.nav button svg{ width:23px; height:23px; stroke:currentColor; fill:none; stroke-width:1.6; }
.nav button.on{ color:var(--gold); }
.nav button.on svg{ filter:drop-shadow(0 0 7px rgba(230,211,163,.7)); }

/* —— Тосты —— */
.toasts{ position:absolute; top:64px; left:0; right:0; z-index:30; display:flex; flex-direction:column; align-items:center; gap:8px; pointer-events:none; }
.toast{ font-weight:700; font-size:13.5px; color:var(--ink); padding:10px 18px; border-radius:999px;
  background:rgba(10,22,36,.92); border:1px solid var(--hair-gold); backdrop-filter:blur(10px);
  box-shadow:0 12px 30px rgba(0,0,0,.5), var(--glow-gold); animation:toast 2.2s ease forwards; }
.toast .g{ color:var(--gold) } .toast .x{ color:var(--lunar) } .toast .m{ color:var(--good) }
@keyframes toast{ 0%{opacity:0; transform:translateY(-10px) scale(.96)} 14%{opacity:1; transform:none} 78%{opacity:1} 100%{opacity:0; transform:translateY(-6px)} }

/* —— Оверлеи —— */
.overlay{ position:absolute; inset:0; z-index:20; display:none; flex-direction:column; padding:70px 18px 96px; overflow-y:auto;
  background:linear-gradient(180deg, rgba(6,13,22,.96), rgba(6,13,22,.99)); backdrop-filter:blur(12px); animation:rise .35s; }
.overlay::-webkit-scrollbar{ width:0 }
.overlay.active{ display:flex; }
/* мгновенное появление без fade — чтобы при переходах не мелькала карта сквозь анимацию */
#overlay.no-rise, .lesson-screen.no-rise{ animation:none !important; }
.overlay .close{ position:absolute; top:16px; right:18px; z-index:5; width:34px;height:34px;border-radius:50%;
  display:grid;place-items:center; color:var(--muted); cursor:pointer; background:var(--glass); border:1px solid var(--hair); }
.overlay .close:hover{ color:var(--ink); border-color:var(--hair-gold); }
/* —— Режим «карта» для overlay (курс / клуб) —— */
.overlay.mapmode{ padding:0; background:none; backdrop-filter:none; overflow:hidden; }
.overlay.mapmode .close{ display:none; }
.omap-frame{ position:absolute; inset:0; overflow:hidden; }
.omap-frame .omap-bg{ width:100%; height:100%; object-fit:cover; object-position:center; display:block; }
.omap-frame .omap-veil{ position:absolute; inset:0; pointer-events:none;
  background:linear-gradient(180deg, rgba(6,14,24,.55) 0%, transparent 22%, transparent 50%, rgba(6,14,24,.8) 100%); }
/* Заглушка-загрузка страницы-карты (пока грузится тяжёлый фон) */
.omap-loader{ position:absolute; inset:0; z-index:12; display:flex; align-items:center; justify-content:center;
  background:radial-gradient(120% 80% at 50% 35%, #0e2238, #060e18 72%); transition:opacity .45s ease; }
.omap-frame:not(.loading) .omap-loader{ opacity:0; pointer-events:none; }
.omap-spin{ width:42px; height:42px; border-radius:50%;
  border:3px solid rgba(230,211,163,.18); border-top-color:#e6d3a3;
  animation:omap-rot .8s linear infinite; box-shadow:0 0 22px rgba(230,211,163,.25); }
@keyframes omap-rot{ to{ transform:rotate(360deg); } }

/* Единый градиент-затемнение от самого верха к текстам (читаемость, без «полосы») */
.omap-scrim{ position:absolute; top:0; left:0; right:0; height:260px; z-index:3; pointer-events:none;
  background:linear-gradient(180deg, rgba(6,14,24,.82) 0%, rgba(6,14,24,.5) 45%, transparent 100%); }
/* Шапка поверх карты — текст ниже верхней панели */
.omap-header{ position:absolute; top:74px; left:0; right:0; padding:10px 16px 14px; z-index:4; pointer-events:none; }
.omap-frame.has-course-academy .omap-header{ padding-right:72px; }
.phone.club-open .omap-header{ top:59px; } /* в клубе заголовок выше — ближе к шапке */
.omap-title{ font-family:var(--serif); font-size:26px; font-weight:600; line-height:1.1; margin:3px 0 2px; }
.omap-sub{ color:var(--muted); font-size:12px; }
.omap-sub.club-about{ max-width:calc(100% - 56px); line-height:1.5; margin-top:6px; } /* описание клуба во всю ширину, оставляя место под вертикальный док справа */
.course-acad-fab{ position:absolute; top:76px; right:16px; z-index:7; width:42px; height:42px; border-radius:50%;
  display:grid; place-items:center; cursor:pointer; font-size:18px; color:var(--ink);
  background:linear-gradient(180deg, rgba(22,39,62,.82), rgba(8,18,31,.82));
  border:1px solid rgba(230,211,163,.34); box-shadow:0 10px 24px rgba(0,0,0,.28), inset 0 1px 0 rgba(255,255,255,.12);
  -webkit-backdrop-filter:blur(12px) saturate(130%); backdrop-filter:blur(12px) saturate(130%);
  transition:transform .16s ease, border-color .16s ease, box-shadow .16s ease; }
.course-acad-fab:hover{ border-color:var(--hair-gold); box-shadow:0 12px 28px rgba(0,0,0,.34), 0 0 18px rgba(230,211,163,.16); }
.course-acad-fab:active{ transform:scale(.94); }
#overlay.omap-lib .course-acad-fab{ display:none; }

/* Пунктирная дорожка между точками модулей на карте курса */
.omap-path{ position:absolute; inset:0; width:100%; height:100%; pointer-events:none; z-index:1; }
.omap-path path{ fill:none; stroke:rgba(230,211,163,.6); stroke-width:2.2; stroke-dasharray:2 5.5;
  stroke-linecap:round; stroke-linejoin:round; vector-effect:non-scaling-stroke;
  filter:drop-shadow(0 1px 3px rgba(0,0,0,.5)); }
/* Финальная точка «Подведение итогов» — золотая */
.hot.final .dot{ background:radial-gradient(circle, #fff, var(--gold)); box-shadow:0 0 14px var(--gold); }
.hot.final .lbl{ color:var(--gold); border-color:var(--hair-gold); }
.cmod-card.final .omod-num{ background:rgba(230,211,163,.14); color:var(--gold); border-color:var(--hair-gold); }
/* Пройденные модули/уроки — зелёный кружок (вместо голубого) */
.hot.done .dot{ background:radial-gradient(circle, #fff, var(--good)); box-shadow:0 0 14px var(--good); }
.hot.done .dot::after{ border-color:var(--good); }
.cmod-card.done .omod-num{ background:rgba(159,227,189,.16); color:var(--good); border-color:rgba(159,227,189,.34); }

/* —— Конспект модуля (интерактив / текст) —— */
.syn-veil{ position:absolute; inset:0; pointer-events:none; z-index:1;
  background:linear-gradient(180deg, rgba(6,14,24,.78) 0%, rgba(6,14,24,.86) 30%, rgba(6,14,24,.95) 100%);
  backdrop-filter:blur(6px); }
.syn-scroll{ position:absolute; top:0; left:0; right:0; bottom:0; z-index:3; overflow-y:auto; padding:62px 16px 96px; -webkit-overflow-scrolling:touch; }
/* заголовок-страницы конспекта/теста — теперь это контент, листается под матовую шапку */
.syn-pagehead, .test-pagehead{ margin:2px 0 10px; }
.syn-page-eyebrow{ font-size:11px; font-weight:700; letter-spacing:2px; text-transform:uppercase; color:var(--gold); }
.syn-pagetitle{ font-family:var(--serif); font-size:26px; font-weight:600; color:var(--ink); line-height:1.15; margin:3px 0 0; }
.syn-totest{ width:100%; margin-top:24px; }
.test-qhead{ font-family:var(--serif); font-size:20px; font-weight:600; color:var(--ink); margin:8px 0 16px; }
/* интро теста — крупный заголовок + карточка по центру */
.test-introwrap{ min-height:calc(100vh - 170px); display:flex; flex-direction:column; justify-content:center; gap:16px; }
.test-intro-title{ font-family:var(--serif); font-size:30px; font-weight:600; color:var(--ink); text-align:center; line-height:1.1; }
.test-intro-card{ background:rgba(9,19,33,.6); -webkit-backdrop-filter:blur(14px); backdrop-filter:blur(14px); border:1px solid var(--hair); border-radius:18px; padding:20px 17px; text-align:center; }
.test-intro-ico{ font-size:34px; margin-bottom:8px; }
.test-intro-lead{ font-size:14px; line-height:1.6; color:#cdd7e2; margin:0 0 15px; }
.test-intro-rows{ display:flex; flex-direction:column; gap:8px; margin:0 0 14px; }
.test-intro-row{ display:flex; justify-content:space-between; align-items:center; gap:10px; font-size:12.5px; color:var(--muted); padding:9px 13px; background:rgba(255,255,255,.04); border:1px solid var(--hair); border-radius:11px; text-align:left; }
.test-intro-row b{ color:var(--ink); font-size:12.5px; text-align:right; }
.test-intro-note{ font-size:12px; line-height:1.55; color:var(--faint); margin:0; }
.syn-scroll::-webkit-scrollbar{ width:0 }
/* Совмещённый конспект: секция = текст + интерактив, с воздухом между секциями */
.syn-section{ margin-bottom:34px; }
.syn-section:last-child{ margin-bottom:0; }
.syn-section .syn-h{ margin-top:0; }
/* —— Карточка интерактива (планка как в референсе) —— */
.ia-widget{ margin-top:18px; background:linear-gradient(180deg,rgba(255,255,255,.06),rgba(255,255,255,.03));
  border:1px solid var(--hair-gold); border-radius:18px; overflow:hidden;
  box-shadow:0 8px 28px rgba(0,0,0,.28), inset 0 1px 0 rgba(255,255,255,.05); animation:ia-up .4s ease both; }
@keyframes ia-up{ from{ opacity:0; transform:translateY(10px) } to{ opacity:1; transform:none } }
.ia-card-head{ display:flex; align-items:center; gap:12px; padding:13px 15px; border-bottom:1px solid var(--hair);
  background:linear-gradient(90deg,rgba(230,211,163,.12),transparent); }
.ia-card-ico{ flex:0 0 auto; width:42px; height:42px; border-radius:12px; display:grid; place-items:center; font-size:21px;
  background:radial-gradient(circle at 35% 30%,rgba(230,211,163,.28),rgba(230,211,163,.10)); border:1px solid var(--hair-gold);
  box-shadow:0 2px 10px rgba(230,211,163,.15); }
.ia-card-title{ font-family:var(--serif); font-size:16px; font-weight:700; color:var(--gold); line-height:1.15; }
.ia-card-sub{ font-size:11.5px; color:var(--muted); margin-top:2px; }
.ia-card-body{ padding:15px 16px 16px; }
/* SVG-сценка-иллюстрация (светлая «картинка» внутри тёмной карточки) */
.ia-scene{ border-radius:12px; overflow:hidden; margin-bottom:10px; box-shadow:0 2px 10px rgba(0,0,0,.2); animation:ia-up .35s ease both; }
.ia-scene svg{ display:block; }
/* полировка кликабельных: подъём при наведении, отклик при нажатии */
.ia-simopt:hover:not(:disabled), .ia-room:hover, .ia-act:hover, .ia-arrow:hover, .ia-choice:hover:not(:disabled),
.ia-nord-card:hover:not(:disabled), .tube-item:hover{ transform:translateY(-2px); box-shadow:0 6px 18px rgba(0,0,0,.25); }
.ia-simopt, .ia-room, .ia-act, .ia-arrow, .ia-choice, .ia-nord-card{ transition:transform .15s, box-shadow .15s, border-color .15s, background .15s; }
.ia-simopt:active, .ia-act:active, .ia-arrow:active, .ia-choice:active, .ia-room:active{ transform:translateY(0) scale(.98); }
.ia-fb.ok, .ia-fb.bad{ animation:ia-up .3s ease both; }
.ia-btn, .ia-copy, .ia-reset, .ia-secret, .ia-simcheck{ background:linear-gradient(180deg,#6fc6ee,#3fa8d8); color:#04121d; border:none; font-weight:700;
  box-shadow:0 3px 12px rgba(111,198,238,.3); }
.ia-btn.gold, .btn.gold.ia-btn{ background:linear-gradient(180deg,#f0e0b0,#d8bd72); color:#2a2008; box-shadow:0 3px 12px rgba(230,211,163,.3); }
.syn-toggle:not(.txt) .tgl[data-sview="interactive"],
.syn-toggle.txt .tgl[data-sview="text"]{ color:#060e18; }
.syn-view-text{ display:none; }
#overlay.syn-text .syn-view-interactive{ display:none; }
#overlay.syn-text .syn-view-text{ display:block; }
/* интерактив — аккордеон-карточки */
.syn-card{ background:rgba(255,255,255,.06); border:1px solid var(--hair); border-radius:16px; margin-bottom:10px; overflow:hidden; backdrop-filter:blur(8px); }
.syn-card-head{ display:flex; align-items:center; gap:11px; padding:13px 15px; cursor:pointer; }
.syn-card-num{ flex:0 0 auto; width:24px; height:24px; border-radius:50%; display:grid; place-items:center; font-size:12px; font-weight:700; background:rgba(111,198,238,.14); color:var(--lunar); border:1px solid rgba(111,198,238,.25); }
.syn-card-h{ flex:1; min-width:0; font-family:var(--serif); font-size:16px; font-weight:600; color:var(--ink); line-height:1.2; }
.syn-card-arrow{ flex:0 0 auto; color:var(--muted); transition:transform .25s; }
.syn-card.open .syn-card-arrow{ transform:rotate(180deg); }
.syn-card-body{ display:none; padding:0 15px 14px; }
.syn-card.open .syn-card-body{ display:block; }
/* текст — статья */
.syn-h{ font-family:var(--serif); font-size:20px; font-weight:600; color:var(--ink); margin:18px 0 8px; }
.syn-p{ font-size:13.5px; line-height:1.6; color:rgba(244,248,251,.86); margin:0 0 10px; }
.syn-p b, .syn-li b, .syn-quote b{ color:var(--ink); }
.syn-quote{ font-size:13px; line-height:1.55; color:var(--gold); background:rgba(230,211,163,.08); border-left:2px solid var(--hair-gold); border-radius:0 10px 10px 0; padding:10px 13px; margin:0 0 12px; }
.syn-li{ display:flex; gap:8px; font-size:13.5px; line-height:1.5; color:rgba(244,248,251,.86); margin:0 0 7px; }
.syn-dot{ color:var(--gold); flex:0 0 auto; }

/* —— Интерактивы конспекта —— */
.ia-block{ background:rgba(255,255,255,.06); border:1px solid var(--hair); border-radius:16px; margin-bottom:10px; overflow:hidden; backdrop-filter:blur(8px); }
.ia-block-head{ display:flex; align-items:center; gap:11px; padding:13px 15px; cursor:pointer; }
.ia-block-body{ display:none; padding:2px 15px 16px; }
.ia-block.open .ia-block-body{ display:block; }
.ia-block.open .syn-card-arrow{ transform:rotate(180deg); }
.ia-tip{ font-size:12.5px; line-height:1.5; color:var(--muted); margin-bottom:12px; }
.ia-tip b{ color:var(--ink); }
.ia-lbl{ display:block; font-size:11.5px; font-weight:600; color:var(--muted); margin:10px 0 5px; }
.ia-in{ width:100%; background:rgba(4,12,20,.5); border:1px solid var(--hair); border-radius:11px; padding:10px 12px; color:var(--ink); font-size:13px; font-family:var(--sans); }
.ia-in:focus{ outline:none; border-color:var(--hair-gold); }
textarea.ia-in{ resize:vertical; line-height:1.4; }
.ia-btn{ width:100%; margin-top:14px; }
.ia-out{ opacity:0; transform:translateY(6px); transition:opacity .4s, transform .4s; margin-top:14px; }
.ia-out.show{ opacity:1; transform:none; }
.ia-out-lbl{ font-size:11px; font-weight:700; letter-spacing:.5px; text-transform:uppercase; color:var(--gold); margin-bottom:7px; }
.ia-msg{ font-size:13.5px; line-height:1.55; color:var(--ink); background:rgba(230,211,163,.08); border:1px solid var(--hair-gold); border-radius:12px; padding:12px 14px; }
.ia-plan{ font-size:13px; line-height:1.5; color:rgba(244,248,251,.86); margin-bottom:6px; }
.ia-plan b{ color:var(--gold); }
/* Сканер */
.ia-scan{ position:relative; height:200px; border-radius:14px; overflow:hidden; border:1px solid var(--hair);
  background:linear-gradient(140deg,#16324e,#0c1c30); }
.ia-scan.dim::after{ content:""; position:absolute; inset:0; background:rgba(6,14,24,.62); }
.ia-spot{ position:absolute; transform:translate(-50%,-50%); display:flex; flex-direction:column; align-items:center; gap:2px; z-index:2; cursor:pointer; }
.ia-scan:not(.dim) .ia-spot.decoy{ opacity:0; }
.ia-scan.dim .ia-spot .ia-spot-ic, .ia-scan.dim .ia-spot .ia-spot-l{ opacity:0; }
.ia-scan.dim .ia-spot::before{ content:""; width:26px; height:26px; border-radius:50%; border:2px dashed rgba(255,255,255,.5); }
.ia-spot-ic{ font-size:24px; }
.ia-spot-l{ font-size:9px; font-weight:700; color:#fff; background:rgba(6,14,24,.7); padding:1px 6px; border-radius:999px; }
.ia-spot.hit::before{ border-style:solid; border-color:var(--good); background:rgba(159,227,189,.3); }
.ia-spot.miss::before{ border-style:solid; border-color:var(--bad); }
.ia-scan-start{ width:100%; margin-top:12px; }
.ia-scan-status{ font-size:12.5px; color:var(--gold); margin-top:9px; min-height:18px; text-align:center; }
/* Прерви цикл */
.ia-cyc-prog{ font-size:11px; font-weight:700; letter-spacing:.5px; text-transform:uppercase; color:var(--lunar); margin-bottom:8px; }
.ia-cyc-t{ font-size:14px; line-height:1.5; color:var(--ink); margin-bottom:13px; }
.ia-choice{ display:block; width:100%; text-align:left; background:rgba(255,255,255,.05); border:1px solid var(--hair); border-radius:12px; padding:12px 14px; margin-bottom:9px; color:var(--ink); font-size:13px; line-height:1.4; font-family:var(--sans); cursor:pointer; transition:.15s; }
.ia-choice:hover{ border-color:var(--hair-gold); }
.ia-choice.good{ border-color:var(--good); background:rgba(159,227,189,.12); }
.ia-choice.bad{ border-color:var(--bad); background:rgba(255,155,176,.1); }
.ia-fb{ font-size:13px; line-height:1.5; border-radius:12px; padding:11px 13px; margin-top:6px; }
.ia-fb.good{ color:var(--good); background:rgba(159,227,189,.1); border:1px solid rgba(159,227,189,.3); }
.ia-fb.bad{ color:var(--bad); background:rgba(255,155,176,.08); border:1px solid rgba(255,155,176,.28); }
.ia-cyc-next, .ia-cyc-restart, .ia-nord-reset{ margin-top:11px; }
.ia-cyc-res{ font-size:14px; line-height:1.55; color:var(--ink); margin-bottom:12px; }
/* Крик */
.ia-shout-btns{ display:flex; flex-direction:column; gap:9px; }
.ia-shout{ width:100%; height:auto; white-space:normal; line-height:1.3; padding:11px 14px; }
.ia-crowd{ display:flex; flex-wrap:wrap; gap:7px; align-items:center; justify-content:center; min-height:28px; margin:14px 0 4px; }
.ia-dot{ width:16px; height:16px; border-radius:50%; background:rgba(159,176,194,.5); transition:.3s; }
.ia-crowd.bad .ia-dot{ animation:dot-wobble .5s ease; }
@keyframes dot-wobble{ 25%{ transform:translateX(-2px) } 75%{ transform:translateX(2px) } }
.ia-dot.lit{ background:var(--good); box-shadow:0 0 10px rgba(159,227,189,.8); transform:scale(1.25); }
.ia-phone{ font-size:18px; }
.ia-memo{ font-size:13px; line-height:1.5; color:var(--gold); background:rgba(230,211,163,.08); border:1px solid var(--hair-gold); border-radius:12px; padding:11px 13px; margin-top:10px; }
.ia-memo b{ color:var(--ink); }
/* Н-О-Р-Д */
.ia-nord-slots{ display:grid; grid-template-columns:1fr 1fr; gap:8px; margin-bottom:12px; }
.ia-nord-slot{ min-height:42px; border:1px dashed var(--hair); border-radius:11px; display:flex; align-items:center; justify-content:center; color:var(--faint); font-weight:700; }
.ia-nord-pool{ display:flex; flex-wrap:wrap; gap:8px; }
.ia-nord-card{ background:rgba(111,198,238,.12); border:1px solid rgba(111,198,238,.3); color:var(--lunar); border-radius:11px; padding:9px 13px; font-size:13px; font-weight:600; font-family:var(--sans); cursor:pointer; }
.ia-nord-card.placed{ background:rgba(159,227,189,.14); border-color:rgba(159,227,189,.34); color:var(--good); }

/* —— Движок интерактивов: общие виджеты —— */
/* зоны-цвета */
.z-green{ --zc:#9fe3bd; --zb:rgba(159,227,189,.14); }
.z-amber{ --zc:#f0d28a; --zb:rgba(240,210,138,.14); }
.z-red{ --zc:#f0a3a3; --zb:rgba(240,163,163,.14); }
/* ползунок */
.ia-range{ -webkit-appearance:none; appearance:none; width:100%; height:6px; border-radius:6px; margin:4px 0 8px;
  background:linear-gradient(90deg, rgba(111,198,238,.5), rgba(230,211,163,.5)); outline:none; }
.ia-range::-webkit-slider-thumb{ -webkit-appearance:none; appearance:none; width:22px; height:22px; border-radius:50%;
  background:radial-gradient(circle at 35% 30%, #fff, #cbe6f4 60%, #6fc6ee); border:2px solid #fff; cursor:pointer;
  box-shadow:0 2px 8px rgba(0,0,0,.4); }
.ia-range::-moz-range-thumb{ width:22px; height:22px; border-radius:50%; background:#cbe6f4; border:2px solid #fff; cursor:pointer; }
.ia-rangeval{ display:flex; justify-content:space-between; font-size:12px; color:var(--muted); margin-bottom:10px; }
.ia-val{ font-family:var(--serif); font-size:16px; font-weight:600; color:var(--gold); margin:2px 0 2px; }
.ia-caption{ font-size:11.5px; color:var(--faint); margin-bottom:12px; }
/* связанные доли — горизонтальные бары */
.ia-bars{ display:flex; flex-direction:column; gap:9px; margin:4px 0 4px; }
.ia-bar{ display:flex; align-items:center; gap:9px; }
.ia-bar-lab{ flex:0 0 92px; font-size:11.5px; color:var(--muted); }
.ia-bar-track{ flex:1; height:16px; background:rgba(255,255,255,.06); border-radius:8px; overflow:hidden; }
.ia-bar-fill{ display:block; height:100%; border-radius:8px; background:var(--zc); transition:width .6s cubic-bezier(.4,0,.2,1); }
.ia-bar-pct{ flex:0 0 auto; font-size:12px; font-weight:700; color:var(--ink); }
.ia-real{ margin-top:14px; padding-top:12px; border-top:1px solid var(--hair); }
.ia-real-src{ font-size:11px; letter-spacing:.4px; text-transform:uppercase; color:var(--gold); margin-bottom:8px; }
/* зоны-сегменты */
.ia-zonestrip{ display:flex; gap:6px; margin:6px 0 12px; }
.ia-zone{ flex:1; text-align:center; padding:8px 4px; border-radius:11px; border:1px solid transparent;
  background:rgba(255,255,255,.04); opacity:.5; transition:.25s; }
.ia-zone b{ display:block; font-size:13px; color:var(--zc); }
.ia-zone span{ font-size:10px; line-height:1.25; color:var(--muted); display:block; margin-top:2px; }
.ia-zone.on{ opacity:1; background:var(--zb); border-color:var(--zc); }
.ia-rec{ font-size:13px; line-height:1.55; color:var(--ink); border-radius:12px; padding:0 14px; max-height:0; overflow:hidden;
  border:1px solid transparent; transition:.3s; }
.ia-rec.on{ max-height:240px; padding:12px 14px; background:var(--zb); border-color:var(--zc); }
/* тренажёр-сценарии */
.ia-scn-nav{ display:flex; align-items:center; justify-content:space-between; margin-bottom:10px; font-size:12px; color:var(--gold); font-weight:600; }
.ia-scn-nav button{ width:34px; height:30px; border-radius:9px; background:rgba(111,198,238,.12); border:1px solid rgba(111,198,238,.3); color:var(--lunar); font-size:15px; cursor:pointer; }
.ia-scn-nav button:disabled{ opacity:.3; cursor:default; }
.ia-scn-sit{ font-size:13.5px; line-height:1.55; color:var(--ink); background:rgba(255,255,255,.05); border-left:3px solid var(--hair-gold); border-radius:9px; padding:11px 13px; margin-bottom:12px; }
.ia-ta{ width:100%; box-sizing:border-box; min-height:54px; resize:vertical; background:rgba(255,255,255,.05); border:1px solid var(--hair);
  border-radius:11px; padding:9px 11px; color:var(--ink); font-family:var(--sans); font-size:13px; line-height:1.45; margin:4px 0 10px; }
.ia-ta:focus{ outline:none; border-color:var(--hair-gold); }
.ia-standard{ font-size:13px; line-height:1.6; color:var(--ink); background:rgba(159,227,189,.1); border:1px solid rgba(159,227,189,.32); border-radius:12px; padding:12px 14px; margin-top:6px; }
.ia-standard b{ color:var(--good); }
.ia-again{ display:block; margin-top:14px; } /* отступ от плашки-итога, чтобы кнопка не наезжала */
/* карта угроз по возрасту */
.ia-agewrap{ display:flex; flex-direction:column; gap:9px; margin-top:6px; }
.ia-ageblock{ background:rgba(255,255,255,.05); border:1px solid var(--hair); border-radius:12px; padding:10px 13px; }
.ia-ageblock h4{ margin:0 0 5px; font-family:var(--sans); font-size:11px; letter-spacing:.5px; text-transform:uppercase; color:var(--lunar); }
.ia-ageblock.red h4{ color:#f0a3a3; }
.ia-ageblock p{ margin:0; font-size:13px; line-height:1.5; color:rgba(244,248,251,.88); }
/* банковский счёт отношений */
.ia-bank-top{ display:flex; justify-content:space-between; flex-wrap:wrap; gap:6px; font-size:12.5px; color:var(--muted); margin:4px 0 8px; }
.ia-bank-top b{ color:var(--gold); font-family:var(--serif); font-size:15px; }
.ia-bank-bar{ height:14px; background:rgba(255,255,255,.06); border-radius:7px; overflow:hidden; margin-bottom:10px; }
.ia-bank-bar i{ display:block; height:100%; border-radius:7px; background:var(--zc); transition:width .5s, background .3s; }
.ia-bank-msg{ font-size:12.5px; line-height:1.5; color:var(--ink); border-radius:11px; padding:0 13px; max-height:0; overflow:hidden; transition:.3s; }
.ia-bank-msg.on{ max-height:140px; padding:11px 13px; background:var(--zb); border:1px solid var(--zc); margin-bottom:12px; }
.ia-bank-msg i{ color:var(--muted); font-style:italic; }
.ia-bank-actions{ display:grid; grid-template-columns:1fr 1fr; gap:7px; margin-bottom:12px; }
.ia-act{ text-align:left; font-family:var(--sans); font-size:11.5px; line-height:1.3; color:var(--ink); border-radius:11px;
  padding:9px 10px; cursor:pointer; transition:.15s; }
.ia-act.pos{ background:rgba(159,227,189,.1); border:1px solid rgba(159,227,189,.28); }
.ia-act.neg{ background:rgba(240,163,163,.1); border:1px solid rgba(240,163,163,.28); }
.ia-act:active{ transform:scale(.96); }
.ia-act b{ color:var(--gold); white-space:nowrap; }
.ia-reset{ width:100%; }
/* карта комнат «найди и обезвредь» */
.ia-room-prog{ display:flex; align-items:center; gap:10px; margin-bottom:10px; }
.ia-room-progbar{ flex:1; height:8px; background:rgba(255,255,255,.07); border-radius:5px; overflow:hidden; }
.ia-room-progbar i{ display:block; height:100%; border-radius:5px; background:linear-gradient(90deg,#6fc6ee,#9fe3bd); transition:width .4s; }
.ia-room-prog span{ font-size:11.5px; color:var(--muted); white-space:nowrap; }
.ia-rooms{ display:grid; grid-template-columns:1fr 1fr; gap:7px; margin-bottom:12px; }
.ia-room{ font-family:var(--sans); font-size:13px; color:var(--ink); background:rgba(255,255,255,.05); border:1px solid var(--hair); border-radius:11px; padding:10px; cursor:pointer; transition:.15s; }
.ia-room.on{ background:rgba(111,198,238,.12); border-color:var(--lunar); color:var(--lunar); font-weight:600; }
.ia-room-card{ background:rgba(255,255,255,.04); border:1px solid var(--hair); border-radius:12px; padding:12px 13px; margin-bottom:12px; }
.ia-room-h{ margin:0 0 9px; font-family:var(--serif); font-size:15px; color:var(--gold); }
.ia-check{ display:flex; align-items:flex-start; gap:9px; padding:7px 0; font-size:12.5px; line-height:1.4; color:rgba(244,248,251,.86); cursor:pointer; border-bottom:1px solid rgba(255,255,255,.05); }
.ia-check:last-child{ border-bottom:0; }
.ia-check input{ width:18px; height:18px; margin-top:1px; accent-color:#9fe3bd; flex:0 0 auto; cursor:pointer; }
.ia-check.on span{ color:var(--good); text-decoration:line-through; text-decoration-color:rgba(159,227,189,.5); }
.ia-copy{ width:100%; }
/* симулятор последствий */
.ia-simtabs{ display:flex; gap:7px; margin-bottom:12px; }
.ia-simtab{ flex:1; font-family:var(--sans); font-size:12px; color:var(--ink); background:rgba(255,255,255,.05); border:1px solid var(--hair); border-radius:10px; padding:9px 6px; cursor:pointer; }
.ia-simtab.on{ background:rgba(230,211,163,.14); border-color:var(--gold); color:var(--gold); font-weight:600; }
.ia-sim-step{ font-size:11px; letter-spacing:.4px; text-transform:uppercase; color:var(--gold); margin-bottom:7px; }
.ia-simopts{ display:flex; flex-direction:column; gap:8px; margin:4px 0 6px; }
.ia-simopt{ display:flex; align-items:center; gap:11px; text-align:left; width:100%; cursor:pointer;
  background:rgba(255,255,255,.07); border:1px solid var(--hair-gold); border-radius:13px; padding:12px 13px;
  font-family:var(--sans); font-size:13.5px; color:var(--ink); line-height:1.4; transition:.15s; }
.ia-simopt:hover:not(:disabled){ border-color:var(--lunar); background:rgba(111,198,238,.1); }
.ia-simk{ flex:0 0 auto; width:28px; height:28px; border-radius:9px; display:grid; place-items:center; font-weight:800; font-size:14px;
  background:rgba(111,198,238,.16); color:var(--lunar); border:1px solid rgba(111,198,238,.3); }
.ia-simopt.good .ia-simk{ background:var(--good); color:#06140d; border-color:transparent; }
.ia-simopt.wrong .ia-simk{ background:#f0a3a3; color:#3a0d0d; border-color:transparent; }
.ia-simt{ flex:1; }
.ia-simopt:disabled{ opacity:.5; cursor:default; }
.ia-simopt.sel{ border-color:var(--lunar); background:rgba(111,198,238,.12); }
.ia-simopt.good{ border-color:var(--good); background:rgba(159,227,189,.14); opacity:1; }
.ia-simopt.wrong{ border-color:var(--zc,#f0a3a3); background:rgba(240,163,163,.12); }
.ia-cbx{ flex:0 0 auto; width:18px; height:18px; border-radius:5px; border:1.5px solid rgba(111,198,238,.4); margin-top:1px; }
.ia-simopt.sel .ia-cbx{ background:var(--lunar); border-color:var(--lunar); }
.ia-fb{ font-size:13px; line-height:1.55; border-radius:12px; padding:0 14px; max-height:0; overflow:hidden; transition:.3s; }
.ia-fb.ok{ max-height:300px; padding:12px 14px; color:var(--ink); background:rgba(159,227,189,.12); border:1px solid rgba(159,227,189,.34); }
.ia-fb.bad{ max-height:300px; padding:12px 14px; color:var(--ink); background:rgba(240,163,163,.1); border:1px solid rgba(240,163,163,.34); }
.ia-next{ display:block; margin-top:14px; background:var(--good); color:#06140d; border:none; border-radius:8px; padding:7px 16px; font-weight:700; font-size:12.5px; cursor:pointer; }
/* анимация захвата */
.ia-grip{ display:flex; justify-content:center; padding:6px 0 4px; }
.ia-gsvg{ width:150px; height:auto; }
.ia-grip .ia-child{ transition:transform .55s cubic-bezier(.5,0,.3,1.25); }
.ia-grip.free .ia-child{ transform:translate(-42px,-24px) rotate(-15deg); }
.ia-grip .ia-adult{ transition:opacity .4s; }
.ia-grip.free .ia-adult{ opacity:.4; }
.ia-grip.shake{ animation:gshake .45s ease; }
@keyframes gshake{ 25%{ transform:translateX(-4px) } 75%{ transform:translateX(4px) } }
.ia-griparrows{ display:flex; flex-direction:column; gap:7px; margin:8px 0 4px; }
.ia-arrow{ font-family:var(--sans); font-size:13px; color:var(--ink); background:rgba(255,255,255,.05); border:1px solid var(--hair); border-radius:11px; padding:11px; cursor:pointer; transition:.15s; }
.ia-arrow:hover{ border-color:var(--hair-gold); }
.ia-arrow.gold{ background:rgba(230,211,163,.1); border-color:var(--hair-gold); color:var(--gold); }
.ia-secret{ width:100%; margin-top:10px; }
/* классификатор */
.ia-clf-pool{ display:flex; flex-wrap:wrap; gap:7px; margin-bottom:12px; min-height:8px; }
.ia-clf-card{ background:rgba(255,255,255,.07); border:1px solid var(--hair-gold); border-radius:11px; padding:9px 12px;
  font-family:var(--sans); font-size:12.5px; color:var(--ink); cursor:pointer; }
.ia-clf-card.sel{ background:rgba(111,198,238,.16); border-color:var(--lunar); box-shadow:0 0 0 2px rgba(111,198,238,.25); }
.ia-clf-buckets{ display:grid; grid-template-columns:1fr 1fr; gap:9px; margin-bottom:10px; }
.ia-clf-bucket{ background:rgba(255,255,255,.04); border:1.5px dashed var(--hair-gold); border-radius:13px; padding:10px; cursor:pointer; min-height:70px; transition:.15s; }
.ia-clf-bucket:hover{ border-color:var(--lunar); background:rgba(111,198,238,.07); }
.ia-clf-bh{ font-size:12px; font-weight:700; color:var(--gold); text-align:center; margin-bottom:7px; }
.ia-clf-placed{ font-size:11.5px; border-radius:8px; padding:5px 8px; margin-bottom:5px; line-height:1.3; }
.ia-clf-placed.ok{ background:rgba(159,227,189,.14); color:var(--good); }
.ia-clf-placed.bad{ background:rgba(240,163,163,.14); color:#f0a3a3; }
.ia-clf-fb{ font-size:12.5px; line-height:1.5; color:var(--ink); border-radius:11px; max-height:0; overflow:hidden; transition:.3s; }
.ia-clf-fb.show{ max-height:300px; padding:11px 13px; }
.ia-clf-fb.ok{ background:rgba(159,227,189,.12); border:1px solid rgba(159,227,189,.3); }
.ia-clf-fb.bad{ background:rgba(240,163,163,.1); border:1px solid rgba(240,163,163,.3); }
.ia-clf-fb b{ color:var(--gold); }
/* дыхательный таймер */
.ia-breath{ display:flex; justify-content:center; padding:26px 0 28px; }
.ia-breath-circle{ width:120px; height:120px; border-radius:50%; display:grid; place-items:center;
  background:radial-gradient(circle,rgba(111,198,238,.22),rgba(111,198,238,.06)); border:2px solid var(--hair-gold);
  color:var(--ink); font-size:14px; font-weight:600; transition:transform 1s ease, background 1s ease; }
.ia-breath-circle.in{ transform:scale(1.35); background:radial-gradient(circle,rgba(159,227,189,.3),rgba(159,227,189,.08)); }
.ia-breath-circle.hold{ transform:scale(1.35); background:radial-gradient(circle,rgba(230,211,163,.28),rgba(230,211,163,.08)); }
.ia-breath-circle.out{ transform:scale(.85); background:radial-gradient(circle,rgba(111,198,238,.2),rgba(111,198,238,.05)); }
.ia-breath-info{ text-align:center; font-size:12.5px; color:var(--muted); margin:6px 0 12px; }
/* кликабельная сцена «найди» */
.ia-find-prompt{ font-size:13px; font-weight:600; color:var(--ink); margin-bottom:8px; }
.ia-find-scene{ position:relative; width:100%; height:150px; border-radius:12px; overflow:hidden; margin-bottom:10px;
  box-shadow:inset 0 0 0 1px rgba(0,0,0,.08); }
.ia-find-spot{ position:absolute; transform:translate(-50%,-50%); font-size:26px; background:none; border:none; cursor:pointer; padding:2px;
  border-radius:50%; transition:.15s; }
.ia-find-spot:hover{ transform:translate(-50%,-50%) scale(1.15); }
.ia-find-spot.hit{ box-shadow:0 0 0 3px #07CA6B; background:rgba(7,202,107,.2); }
.ia-find-spot.miss{ box-shadow:0 0 0 3px #EA2143; opacity:.55; }

/* —— Тест модуля (квиз) —— */
.test-scroll{ position:absolute; top:0; left:0; right:0; bottom:0; z-index:3; overflow-y:auto; padding:62px 18px 96px; -webkit-overflow-scrolling:touch; }
.test-scroll::-webkit-scrollbar{ width:0 }
.test-prog{ font-size:11px; font-weight:700; letter-spacing:1.5px; text-transform:uppercase; color:var(--lunar); }
.test-progbar{ height:5px; border-radius:999px; background:rgba(4,12,20,.55); border:1px solid var(--hair); overflow:hidden; margin:8px 0 18px; }
.test-progbar i{ display:block; height:100%; border-radius:999px; background:linear-gradient(90deg,#3f9e76,var(--good)); transition:width .4s; }
.test-q{ font-family:var(--serif); font-size:19px; font-weight:600; color:var(--ink); line-height:1.3; margin-bottom:16px; }
.test-opts{ display:flex; flex-direction:column; gap:9px; }
.test-opt{ display:flex; align-items:flex-start; gap:11px; text-align:left; width:100%; cursor:pointer;
  background:rgba(255,255,255,.05); border:1px solid var(--hair); border-radius:14px; padding:13px 14px;
  font-family:var(--sans); font-size:13.5px; color:var(--ink); line-height:1.4; transition:.15s; }
.test-opt:hover{ border-color:var(--hair-gold); }
.test-opt.sel{ border-color:var(--lunar); background:rgba(111,198,238,.12); box-shadow:0 0 0 1px rgba(111,198,238,.3); }
.test-opt-k{ flex:0 0 auto; width:24px; height:24px; border-radius:50%; display:grid; place-items:center; font-size:12px; font-weight:700; background:rgba(111,198,238,.14); color:var(--lunar); border:1px solid rgba(111,198,238,.25); }
.test-opt.sel .test-opt-k{ background:var(--lunar); color:#04121d; border-color:transparent; }
/* мультивыбор: квадратные «чекбоксы» вместо круглых, + подсказка */
.test-opt.multi .test-opt-k{ border-radius:7px; }
.test-multi-hint{ font-size:12px; color:var(--gold); background:rgba(230,211,163,.1);
  border:1px solid var(--hair-gold); border-radius:10px; padding:7px 11px; margin:-6px 0 14px;
  display:flex; align-items:center; gap:6px; }
.test-multi-hint::before{ content:"☑"; font-size:13px; }
.test-next{ margin-top:20px; }
.test-result{ text-align:center; padding:30px 10px; }
.test-res-ico{ font-size:60px; }
/* порядковый вопрос — номер в кружке золотой */
.test-opt.order.sel .test-opt-k{ background:var(--gold); color:#06140d; border-color:transparent; }
/* блок награды на результате теста */
.test-reward{ margin:16px 0 0; padding:14px 15px; border-radius:14px; background:rgba(159,227,189,.1); border:1px solid rgba(159,227,189,.3); }
.test-reward.fail{ background:rgba(255,255,255,.04); border-color:var(--hair); }
.test-reward-h{ font-size:11.5px; font-weight:700; letter-spacing:.5px; color:var(--good); text-transform:uppercase; margin-bottom:4px; }
.test-reward-val{ font-family:var(--serif); font-size:18px; color:var(--ink); }
.test-reward-note{ font-size:12px; line-height:1.5; color:var(--muted); margin-top:4px; }
.test-allok{ margin:16px 0 0; font-size:14px; color:var(--good); }
/* разбор ошибок */
.test-review{ margin:18px 0 0; text-align:left; }
.test-review-h{ font-size:12.5px; font-weight:700; letter-spacing:.5px; color:var(--gold); text-transform:uppercase; margin-bottom:10px; text-align:center; }
.test-review-item{ background:rgba(255,255,255,.04); border:1px solid var(--hair); border-left:3px solid var(--bad); border-radius:12px; padding:12px 14px; margin-bottom:10px; }
.tr-q{ font-size:13.5px; font-weight:600; color:var(--ink); line-height:1.45; margin-bottom:7px; }
.tr-your{ font-size:12.5px; line-height:1.5; color:#e8a9b6; margin-bottom:3px; }
.tr-correct{ font-size:12.5px; line-height:1.5; color:var(--good); margin-bottom:6px; }
.tr-ex{ font-size:12.5px; line-height:1.55; color:var(--muted); }
.test-res-score{ font-family:var(--serif); font-size:48px; font-weight:600; color:var(--good); margin-top:6px; }
.test-res-sub{ font-size:13px; color:var(--muted); margin-top:4px; }

/* Слои страницы курса: карта (точки) / библиотека (карточки модулей) */
.omap-layer{ position:absolute; inset:0; transition:opacity .35s, transform .35s; }
.omap-layer-lib{ opacity:0; transform:translateY(10px); pointer-events:none;
  background:rgba(6,14,24,.42); backdrop-filter:blur(12px); -webkit-backdrop-filter:blur(12px); }
#overlay.omap-lib .omap-header{ opacity:0; }                 /* в библиотеке шапку даёт сам скролл */
#overlay.omap-lib .omap-layer-map{ opacity:0; pointer-events:none; transform:scale(.98); }
#overlay.omap-lib .omap-layer-lib{ opacity:1; transform:none; pointer-events:auto; z-index:5; }
/* библиотека: скролл на всю высоту; распорка задаёт начало с середины, листается до самого верха */
.omap-lib-scroll{ position:absolute; inset:0; overflow-y:auto; padding:0 14px 96px; -webkit-overflow-scrolling:touch; }
.omap-lib-scroll::-webkit-scrollbar{ width:0 }
.omap-lib-spacer{ height:40%; flex:0 0 auto; }
.omap-lib-head{ padding:0 2px 12px; }
.omap-lib-head .eyebrow{ margin-top:0; }
/* активный цвет курсового переключателя (тогл живёт в шапке, вне #overlay) */
.course-toggle:not(.lib) .tgl[data-cview="map"],
.course-toggle.lib .tgl[data-cview="library"]{ color:#060e18; }
.inv-toggle .tgl.on{ color:#060e18; }
/* 3 вкладки (Расходники · Дары · Титулы) — компактнее, чтобы влезли в шапку */
.inv-toggle-3 .tgl{ padding:6px 11px; font-size:12px; }

/* Карточка модуля в библиотеке курса */
.cmod-card{ background:rgba(8,18,30,.6); border:1px solid var(--hair); border-radius:16px;
  padding:13px 15px; margin-bottom:11px; backdrop-filter:blur(12px); cursor:pointer; transition:.15s; }
.cmod-card:hover{ border-color:var(--hair-gold); }
.cmod-card.locked{ opacity:.78; cursor:default; }
.cmod-head{ display:flex; align-items:flex-start; gap:11px; }
.cmod-info{ flex:1; min-width:0; }
.cmod-titlerow{ display:flex; align-items:flex-start; justify-content:space-between; gap:8px; }
.cmod-title{ font-family:var(--serif); font-size:16px; font-weight:600; color:var(--ink); line-height:1.2; min-width:0; }
.cmod-sub{ font-size:11.5px; color:var(--muted); margin-top:3px; line-height:1.45; }
.cmod-right{ display:flex; align-items:center; gap:7px; flex:0 0 auto; padding-top:2px; }
.cmod-date{ font-size:10.5px; color:var(--muted); white-space:nowrap; }
.cmod-lock{ font-size:13px; opacity:.7; }
.cmod-arrow{ color:var(--gold); font-size:16px; }
.cmod-arrow.done{ color:var(--good); }
.cmod-progrow{ display:flex; align-items:center; gap:10px; margin-top:11px; }
.cmod-bar{ flex:1; height:7px; border-radius:999px; background:rgba(4,12,20,.55); border:1px solid var(--hair); overflow:hidden; }
.cmod-bar i{ display:block; height:100%; border-radius:999px; background:linear-gradient(90deg,#3f9e76,var(--good)); box-shadow:0 0 10px rgba(159,227,189,.5); transition:width 1s cubic-bezier(.2,.7,.2,1); }
.cmod-pct{ font-size:11.5px; font-weight:700; color:var(--good); flex:0 0 auto; min-width:34px; text-align:right; }
/* Список уроков внутри карточки модуля (библиотека) */
.cmod-lessons{ margin-top:12px; padding-top:11px; border-top:1px solid rgba(255,255,255,.08); display:flex; flex-direction:column; gap:7px; }
.cmod-lrow{ display:flex; align-items:center; gap:9px; font-size:12.5px; color:rgba(244,248,251,.82); line-height:1.3; }
.cmod-lrow.done{ color:var(--muted); }
.cmod-lrow.extra{ color:var(--gold); opacity:.9; }
.cmod-lnum{ flex:0 0 auto; width:19px; height:19px; border-radius:50%; display:grid; place-items:center;
  font-size:10px; font-weight:700; background:rgba(111,198,238,.12); color:var(--lunar); border:1px solid rgba(111,198,238,.22); }
.cmod-lrow.done .cmod-lnum{ background:rgba(159,227,189,.14); color:var(--good); border-color:rgba(159,227,189,.3); }
.cmod-lrow.extra .cmod-lnum{ background:rgba(230,211,163,.12); color:var(--gold); border-color:var(--hair-gold); font-size:11px; }
.cmod-ltitle{ min-width:0; }
/* Нижняя панель с модулями */
.omap-modules{ position:absolute; bottom:0; left:0; right:0; max-height:48%; z-index:4;
  background:linear-gradient(180deg, transparent 0%, rgba(6,14,24,.92) 18%);
  overflow-y:auto; padding:20px 14px 90px; }
.omap-modules::-webkit-scrollbar{ width:0 }
.omod-card{ display:flex; align-items:center; gap:11px; padding:11px 14px;
  background:rgba(255,255,255,.055); border:1px solid var(--hair); border-radius:14px; margin-bottom:8px;
  backdrop-filter:blur(10px); transition:.15s; cursor:pointer; }
.omod-card:hover, .omod-card.tap:hover{ border-color:var(--hair-gold); transform:translateX(2px); }
.omod-card.locked{ opacity:.6; cursor:default; }
.omod-num{ width:28px;height:28px;border-radius:50%; flex:0 0 auto; display:grid; place-items:center;
  font-size:12px; font-weight:700; background:rgba(111,198,238,.14); color:var(--lunar); border:1px solid rgba(111,198,238,.25); }
.omod-card.locked .omod-num{ background:rgba(125,146,164,.12); color:var(--faint); border-color:rgba(125,146,164,.25); }
.omod-card.done .omod-num{ background:rgba(159,227,189,.14); color:var(--good); border-color:rgba(159,227,189,.3); }
.omod-info{ flex:1; min-width:0; }
.omod-loc{ font-weight:700; font-size:13.5px; line-height:1.2; }
.omod-prog{ color:var(--muted); font-size:11.5px; margin-top:2px; }

/* —— Экран урока (fullscreen overlay) —— */
.lesson-screen{ position:absolute; inset:0; z-index:25; display:none; flex-direction:column; overflow-y:auto;
  background:linear-gradient(180deg, rgba(6,14,24,.42), rgba(6,14,24,.66)), url('public/universe/locations/phrase-bg-blur.webp') center center/cover no-repeat;
  animation:rise .3s; }
.lesson-screen::-webkit-scrollbar{ width:0 }
.lesson-screen.active{ display:flex; }
.lesson-topbar{ display:flex; align-items:center; gap:10px; padding:14px 22px 12px; flex:0 0 auto;
  position:sticky; top:0; z-index:10;
  background:rgba(6,14,24,.55); -webkit-backdrop-filter:blur(16px) saturate(140%); backdrop-filter:blur(16px) saturate(140%);
  border-bottom:1px solid var(--hair); box-shadow:0 4px 16px rgba(0,0,0,.22); }
.lesson-back{ width:34px;height:34px;border-radius:50%; display:grid;place-items:center; cursor:pointer; flex:0 0 auto;
  color:var(--ink); background:var(--glass); border:1px solid var(--hair); font-size:16px; }
.lesson-crumbs{ font-size:12px; color:var(--muted); }
.lesson-title{ font-family:var(--serif); font-size:22px; font-weight:600; padding:14px 16px 8px; text-shadow:0 1px 14px rgba(3,8,16,.9), 0 1px 3px rgba(3,8,16,.8); }
.lesson-player{ position:relative; margin:0 16px 14px; border-radius:14px; overflow:hidden;
  background:linear-gradient(135deg, #0d1f36 0%, #091628 100%); aspect-ratio:16/9;
  display:grid; place-items:center; border:1px solid var(--hair); }
.lesson-player-btn{ width:56px;height:56px;border-radius:50%; background:rgba(111,198,238,.18);
  border:2px solid rgba(111,198,238,.4); display:grid; place-items:center; font-size:22px; cursor:pointer;
  transition:.15s; box-shadow:0 0 30px rgba(111,198,238,.25); }
.lesson-player-btn:hover{ background:rgba(111,198,238,.28); }
.lesson-body{ padding:0 16px 100px; }
.lesson-hw{ background:var(--glass); border:1px solid var(--hair); border-radius:var(--r); padding:15px; margin-top:14px; }
.lesson-hw b{ font-size:14px; }
.lesson-hw .muted{ margin:6px 0 10px; }
.lesson-hw textarea{ width:100%; background:rgba(4,12,20,.6); color:var(--ink); border:1px solid var(--hair);
  border-radius:12px; padding:10px; font-family:var(--sans); font-size:13px; resize:none; }
.lesson-hw label{ display:flex; align-items:center; gap:7px; font-size:12px; color:var(--muted); margin-top:8px; cursor:pointer; }
.lesson-hw input[type=checkbox]{ accent-color:var(--lunar); }
/* дедлайн-бейдж урока */
.lesson-dl{ padding:0 16px 8px; }
.dl-badge{ display:inline-flex; align-items:center; gap:5px; font-size:12px; font-weight:700; border-radius:99px; padding:5px 12px; }
.dl-badge.ok{ background:rgba(159,227,189,.14); color:var(--good); border:1px solid rgba(159,227,189,.3); }
.dl-badge.late{ background:rgba(240,163,163,.12); color:#f0a3a3; border:1px solid rgba(240,163,163,.3); }
/* видеоплеер урока (реальный, с памятью таймкода) */
.lesson-video-wrap{ margin:0 16px 14px; position:relative; }
.lesson-video{ width:100%; max-height:240px; border-radius:14px; background:#091628; border:1px solid var(--hair);
  box-shadow:0 10px 30px rgba(0,0,0,.4); display:block; }
.lesson-video-note{ font-size:11px; color:var(--faint); margin-top:7px; line-height:1.4; }
/* Превью видео + стеклянная кнопка play (glassmorphism, «зовёт нажать») */
.lesson-play-ov{ position:absolute; inset:0; display:grid; place-items:center; border:0; background:transparent; cursor:pointer; padding:0; }
.lesson-play-ov.hidden{ display:none; }
.lesson-play-ring{ width:76px; height:76px; border-radius:50%; display:grid; place-items:center;
  background:rgba(255,255,255,.14); -webkit-backdrop-filter:blur(10px) saturate(140%); backdrop-filter:blur(10px) saturate(140%);
  border:1.5px solid rgba(255,255,255,.55); box-shadow:0 8px 30px rgba(0,0,0,.45), inset 0 0 22px rgba(255,255,255,.12);
  animation:playPulse 2.2s ease-in-out infinite; }
.lesson-play-tri{ width:0; height:0; margin-left:6px; border-style:solid; border-width:13px 0 13px 22px;
  border-color:transparent transparent transparent #fff; filter:drop-shadow(0 2px 4px rgba(0,0,0,.35)); }
@keyframes playPulse{ 0%,100%{ transform:scale(1); box-shadow:0 8px 30px rgba(0,0,0,.45), 0 0 0 0 rgba(255,255,255,.28); }
  50%{ transform:scale(1.07); box-shadow:0 8px 30px rgba(0,0,0,.45), 0 0 0 14px rgba(255,255,255,0); } }
/* прикрепление файла к ДЗ */
.hw-file{ display:inline-flex !important; align-items:center; gap:8px; margin-top:10px !important; }
.hw-file input[type=file]{ display:none; }
.hw-file-btn{ background:rgba(111,198,238,.12); border:1px solid rgba(111,198,238,.3); color:var(--lunar);
  border-radius:10px; padding:8px 12px; font-size:12.5px; font-weight:600; cursor:pointer; }
.hw-file-name{ font-size:11.5px; color:var(--muted); }
.lesson-next{ width:100%; }

/* ——— РЕДИЗАЙН экрана урока (v2): видео скруглено, крупнее шрифт, блоки-карточки ——— */
.lesson-scroll2{ padding:6px 22px 140px; } /* поуже + запас под нижнее меню */
.lesson-scroll2 .lesson-title{ padding:16px 0 0; font-size:25px; line-height:1.18; }
.lesson-scroll2 .lesson-video-wrap{ margin:14px 0 0; }
.lesson-scroll2 .lesson-video{ width:100%; max-height:260px; border-radius:22px; background:#091628;
  border:none; box-shadow:0 16px 36px rgba(0,0,0,.5); display:block; }
.lesson-desc{ font-size:15px; line-height:1.62; color:#e3eaf2; margin:18px 0 0; text-shadow:0 1px 10px rgba(3,8,16,.85); } /* описание показывается полностью (4-5 строк), без обрезки */
.lesson-syn{ margin-top:18px; border:1px solid rgba(207,227,240,.18); border-radius:14px; overflow:hidden;
  background:rgba(9,19,33,.55); -webkit-backdrop-filter:blur(16px) saturate(135%); backdrop-filter:blur(16px) saturate(135%); }
.lesson-syn-head{ width:100%; display:flex; align-items:center; justify-content:space-between; padding:15px 16px; cursor:pointer;
  background:none; border:0; color:var(--ink); font-family:var(--sans); font-size:15px; font-weight:600; }
.syn-arrow{ color:var(--gold); font-size:13px; transition:transform .22s; }
.lesson-syn-head.open .syn-arrow{ transform:rotate(180deg); }
.lesson-syn-body{ padding:4px 16px 18px; font-size:14px; line-height:1.62; color:#cdd7e2; }
.lesson-syn-body > :first-child{ margin-top:0 !important; }
.lesson-syn-body b{ color:var(--ink); font-weight:600; } /* инлайн-акцент в прозе */
/* —— Конспект урока: визуальная подача (единый вертикальный ритм через margin-top) —— */
.syn-lead{ font-size:15px; line-height:1.6; color:var(--ink); margin:8px 0 0; }
.syn-text{ font-size:14px; line-height:1.62; color:#cdd7e2; margin:13px 0 0; }
.syn-label{ font-size:11px; font-weight:700; letter-spacing:1.2px; text-transform:uppercase; color:var(--gold);
  margin:20px 0 0; display:flex; align-items:center; gap:8px; }
.syn-label::before{ content:""; width:15px; height:1.5px; background:var(--gold); opacity:.55; border-radius:2px; flex:0 0 auto; }
/* callout-плашка (тоны: по умолчанию · warn · idea) */
.syn-callout{ display:flex; gap:11px; align-items:flex-start; margin:13px 0 0;
  background:rgba(111,198,238,.08); border:1px solid rgba(111,198,238,.22); border-radius:13px; padding:12px 13px; }
.syn-callout.warn{ background:rgba(240,210,138,.09); border-color:rgba(240,210,138,.3); }
.syn-callout.idea{ background:rgba(159,227,189,.09); border-color:rgba(159,227,189,.28); }
.syn-co-ic{ font-size:18px; line-height:1.3; flex:0 0 auto; }
.syn-co-tx{ flex:1; min-width:0; }
.syn-co-h{ font-family:var(--serif); font-size:15.5px; font-weight:600; color:var(--ink); line-height:1.25; }
.syn-co-tx p{ font-size:13px; line-height:1.55; color:rgba(244,248,251,.82); margin:4px 0 0; }
/* pull-quote */
.syn-quote{ font-family:var(--serif); font-style:italic; font-size:16px; line-height:1.45; color:var(--ink);
  border-left:3px solid var(--gold); background:rgba(230,211,163,.05); border-radius:0 10px 10px 0;
  margin:16px 0 0; padding:11px 15px; }
/* ключевой момент */
.syn-key{ display:flex; gap:10px; align-items:flex-start; margin:13px 0 0; padding:11px 13px;
  background:rgba(230,211,163,.07); border:1px solid var(--hair-gold); border-radius:12px; }
.syn-key::before{ content:"★"; color:var(--gold); font-size:14px; flex:0 0 auto; margin-top:1px; }
.syn-key span{ font-size:13.5px; line-height:1.55; color:var(--ink); }
/* нумерованные шаги */
.syn-steps{ list-style:none; margin:13px 0 0; padding:0; counter-reset:syn; display:flex; flex-direction:column; gap:9px; }
.syn-steps li{ counter-increment:syn; display:flex; gap:11px; align-items:flex-start; font-size:13.5px; line-height:1.55; color:#cdd7e2; margin:0; }
/* шаг с заголовком на отдельной строке и описанием под ним */
.ss-h{ display:block; font-weight:600; color:var(--ink); margin-bottom:2px; } /* заголовок пункта на отдельной строке */
.ss-d{ display:block; } /* описание под заголовком */
.syn-steps li::before{ content:counter(syn); flex:0 0 auto; width:23px; height:23px; border-radius:50%;
  display:grid; place-items:center; font-size:12px; font-weight:700; color:var(--gold);
  background:rgba(230,211,163,.12); border:1px solid var(--hair-gold); }
/* чистые буллеты */
.syn-points{ list-style:none; margin:13px 0 0; padding:0; display:flex; flex-direction:column; gap:8px; }
.syn-points li{ display:flex; gap:9px; align-items:flex-start; font-size:13.5px; line-height:1.55; color:#cdd7e2; margin:0; }
.syn-points li::before{ content:""; flex:0 0 auto; width:6px; height:6px; border-radius:50%; background:var(--gold); margin-top:7px; }
/* финальный вывод */
.syn-takeaway{ display:flex; gap:11px; align-items:flex-start; margin:18px 0 0; padding:14px;
  background:linear-gradient(180deg, rgba(230,211,163,.12), rgba(230,211,163,.04));
  border:1px solid var(--hair-gold); border-radius:14px; }
.syn-takeaway-ic{ font-size:20px; flex:0 0 auto; line-height:1.2; }
.syn-takeaway-tx{ flex:1; min-width:0; font-size:13.5px; line-height:1.6; color:var(--ink); }
.syn-takeaway-tx b{ color:var(--gold); }
/* совместимость со старым форматом (немигрированные уроки) */
.lesson-syn-body ul:not(.syn-points):not(.syn-steps){ margin:10px 0 0; padding-left:20px; }
.lesson-syn-body ul:not(.syn-points):not(.syn-steps) li{ margin:4px 0; }
.lesson-syn-body > p{ margin:12px 0 0; }
.lesson-gift{ margin-top:18px; background:linear-gradient(180deg, rgba(242,227,180,.12), rgba(242,227,180,.04)), rgba(12,24,40,.5);
  -webkit-backdrop-filter:blur(16px) saturate(135%); backdrop-filter:blur(16px) saturate(135%);
  border:1px solid var(--hair-gold); border-radius:16px; padding:15px 16px; }
.lesson-gift-top{ display:flex; align-items:center; gap:13px; }
.lesson-gift-ico{ font-size:30px; flex:0 0 auto; filter:drop-shadow(0 2px 9px rgba(242,227,180,.45)); }
.lesson-gift-photo{ width:52px; height:52px; object-fit:contain; display:block; border-radius:10px; filter:drop-shadow(0 4px 12px rgba(120,170,255,.45)); }
.lesson-gift-body{ min-width:0; }
.lesson-gift-title{ font-size:15px; font-weight:700; color:var(--ink); line-height:1.32; }
.lesson-gift-sub{ font-size:12.5px; color:var(--muted); margin-top:5px; }
.lesson-gift-btn{ width:100%; margin-top:13px; }
.lesson-task{ margin-top:18px; background:rgba(9,19,33,.55); -webkit-backdrop-filter:blur(16px) saturate(135%); backdrop-filter:blur(16px) saturate(135%);
  border:1px solid rgba(207,227,240,.18); border-radius:18px; padding:20px; }
.lesson-task-top{ display:flex; align-items:center; justify-content:flex-start; gap:10px; margin-bottom:12px; cursor:pointer; user-select:none; }
.task-arrow{ margin-left:auto; flex:0 0 auto; color:var(--gold); font-size:13px; transition:transform .2s; }
.lesson-task-top.collapsed .task-arrow{ transform:rotate(-90deg); }
.lesson-task-top.collapsed{ margin-bottom:0; }
.lesson-task-h{ font-family:var(--serif); font-size:19px; font-weight:600; color:var(--ink); }
.lesson-task-dl .dl-badge{ font-size:11px; padding:4px 9px; }
.lesson-task-body{ margin:0 0 18px; } /* контейнер абзацев задания */
.lesson-task-desc{ font-size:14.5px; line-height:1.62; color:#cdd7e2; margin:0; } /* абзац задания */
.lesson-task-desc + .lesson-task-desc{ margin-top:11px; } /* воздух между абзацами ДЗ */
#lessonAction{ margin-top:22px; } /* воздух между плашкой задания и кнопкой «Следующий урок» */
.drill-desc{ margin:14px 0 0; }
.drill-desc p{ font-size:14px; line-height:1.6; color:#cdd7e2; margin:0 0 10px; }
.hw-input2{ width:100%; box-sizing:border-box; resize:vertical; min-height:98px; background:rgba(4,12,20,.6); color:var(--ink);
  border:1px solid var(--hair); border-radius:12px; padding:12px; font-family:var(--sans); font-size:15px; line-height:1.5; }
.hw-input2:focus{ outline:none; border-color:var(--hair-gold); }
.lesson-hw-submit{ width:100%; margin-top:14px; } /* кнопка «Сдать домашку» — внутри плашки задания */
/* —— Обратная связь по ДЗ: сданный ответ + ответ куратора —— */
.hw-review{ margin-top:2px; }
.hw-rev-label{ font-size:11px; font-weight:700; letter-spacing:.8px; text-transform:uppercase; color:var(--gold); margin-bottom:8px; }
.hw-rev-answer{ font-size:14px; line-height:1.55; color:var(--ink); white-space:pre-wrap;
  background:rgba(4,12,20,.5); border:1px solid var(--hair); border-radius:12px; padding:12px 14px; }
.hw-rev-answer .muted{ color:var(--muted); font-style:italic; }
.hw-curator{ margin-top:14px; border:1px solid var(--hair-gold); border-radius:14px; padding:13px 14px;
  background:linear-gradient(180deg, rgba(230,211,163,.10), rgba(230,211,163,.03)); }
.hw-curator-head{ display:flex; align-items:center; gap:9px; margin-bottom:9px; }
.hw-curator-ava{ width:30px; height:30px; border-radius:50%; flex:0 0 auto; display:grid; place-items:center; font-size:16px;
  background:radial-gradient(circle at 35% 30%, #1b3a5c, #0b1a2c); border:1px solid var(--hair-gold);
  box-shadow:0 0 14px rgba(230,211,163,.25); }
.hw-curator-name{ font-family:var(--serif); font-size:15px; font-weight:600; color:var(--gold); }
.hw-curator-msg{ font-size:13.5px; line-height:1.6; color:var(--ink); }
.hw-curator-pending{ display:flex; align-items:flex-start; gap:10px; font-size:13px; line-height:1.55; color:var(--muted); }
.hw-pending-dot{ flex:0 0 auto; width:8px; height:8px; border-radius:50%; background:var(--gold); margin-top:5px;
  box-shadow:0 0 0 0 rgba(230,211,163,.5); animation:hwPulse 1.6s ease-out infinite; }
@keyframes hwPulse{ 0%{ box-shadow:0 0 0 0 rgba(230,211,163,.5); } 70%{ box-shadow:0 0 0 7px rgba(230,211,163,0); } 100%{ box-shadow:0 0 0 0 rgba(230,211,163,0); } }
/* —— Экран кейса «до/после» —— */
.case-scroll{ position:absolute; top:0; left:0; right:0; bottom:0; z-index:3; overflow-y:auto; padding:62px 18px 110px; }
.case-scroll::-webkit-scrollbar{ width:0; }
.case-lead{ font-size:14px; line-height:1.6; color:var(--ink); margin-bottom:16px; }
/* —— Интро подведения итогов (кейс «до/после») —— */
.case-intro{ display:flex; flex-direction:column; }
.case-p{ font-size:14px; line-height:1.65; color:var(--muted); margin:0 0 18px; }
.case-bonus{ padding:18px 18px 6px; margin:4px 0 20px; }
.case-bonus-h{ font-family:var(--serif); font-size:15px; color:var(--gold); margin-bottom:15px; }
.case-bonus-row{ display:flex; align-items:flex-start; gap:13px; margin-bottom:15px; }
.case-bonus-ic{ flex:0 0 34px; width:34px; height:34px; border-radius:50%; display:grid; place-items:center;
  font-size:17px; background:rgba(242,227,180,.1); border:1px solid var(--hair-gold); }
.case-bonus-tx{ display:flex; flex-direction:column; gap:3px; font-size:12.5px; color:var(--faint); line-height:1.45; }
.case-bonus-tx b{ font-size:14px; color:var(--ink); }
.case-note{ font-size:12.5px; line-height:1.55; color:var(--faint); text-align:center; margin:2px 0 20px; }
.case-intro .case-skip{ margin-top:11px; }
/* —— Форма кейса: измеримый результат (шкала/числа до/после) + вопросы-подсказки —— */
.case-metric{ background:rgba(8,18,30,.5); border:1px solid var(--hair); border-radius:16px; padding:16px 16px 14px; margin:2px 0 20px; }
.case-metric-q{ font-size:13.5px; line-height:1.5; color:var(--ink); font-weight:600; margin-bottom:14px; }
.case-scale-block{ margin-bottom:12px; }
.case-scale-lbl{ font-size:11.5px; color:var(--muted); margin-bottom:6px; }
.case-scale{ display:flex; gap:5px; }
.case-sc{ flex:1; min-width:0; padding:9px 0; border-radius:9px; cursor:pointer; font-family:var(--sans);
  font-size:13px; font-weight:600; color:var(--muted); background:rgba(255,255,255,.04); border:1px solid var(--hair); transition:.14s; }
.case-sc:hover{ border-color:var(--hair-gold); }
.case-sc.on{ background:linear-gradient(180deg,#f2e3b4,#cdb46f); color:#241f0e; border-color:transparent; font-weight:700; }
.case-scale-ends{ display:flex; justify-content:space-between; font-size:10.5px; color:var(--faint); margin-top:4px; }
.case-num-row{ display:flex; align-items:center; gap:10px; margin-bottom:10px; }
.case-num-lbl{ flex:0 0 auto; font-size:12.5px; color:var(--muted); min-width:90px; }
.case-num{ flex:1; min-width:0; box-sizing:border-box; background:rgba(8,18,30,.6); border:1px solid var(--hair); border-radius:11px;
  color:var(--ink); font:inherit; font-size:15px; font-weight:600; padding:10px 12px; }
.case-num:focus{ outline:none; border-color:var(--hair-gold); }
.case-num-unit{ flex:0 0 auto; font-size:12.5px; color:var(--muted); }
.case-q{ margin-bottom:14px; }
.case-q .ia-lbl{ display:block; margin-bottom:6px; font-size:13.5px; line-height:1.45; color:var(--ink); }
.case-qa{ width:100%; box-sizing:border-box; }
.case-delta{ display:flex; align-items:center; justify-content:center; gap:14px; margin:6px 0 14px; }
.case-delta-cell{ display:flex; flex-direction:column; align-items:center; gap:3px; }
.case-delta-cell span{ font-size:11px; color:var(--muted); }
.case-delta-cell b{ font-family:var(--serif); font-size:26px; color:var(--gold); line-height:1; }
.case-delta-arr{ font-size:20px; color:var(--good); }
.case-form .ia-lbl{ display:block; margin:12px 0 6px; }
.case-form textarea{ width:100%; box-sizing:border-box; }
.case-photos{ display:flex; gap:10px; flex-wrap:wrap; margin-top:4px; }
.case-pub{ display:flex; align-items:flex-start; gap:8px; font-size:12.5px; color:var(--muted); margin-top:14px; cursor:pointer; line-height:1.4; }
.case-pub input{ accent-color:var(--lunar); margin-top:2px; }
.case-skip{ width:100%; background:transparent; border:1px solid var(--hair); color:var(--muted); }
.case-done{ text-align:center; padding:34px 14px; }
.case-ico{ font-size:60px; }
.case-h{ font-family:var(--serif); font-size:22px; font-weight:600; color:var(--gold); margin:8px 0 10px; }
.case-p{ font-size:14px; line-height:1.6; color:var(--ink); }

/* —— Трипваер «Зеркало Рисков» —— */
.trip-scroll{ position:absolute; top:0; left:0; right:0; bottom:80px; z-index:3; overflow-y:auto; padding:62px 18px 24px; } /* bottom:80px — ползунок заканчивается над нижним меню */
/* Видимый деликатный индикатор прокрутки — полупрозрачное золото, не белый */
.trip-scroll::-webkit-scrollbar{ width:5px; }
.trip-scroll::-webkit-scrollbar-track{ background:transparent; }
.trip-scroll::-webkit-scrollbar-thumb{ background:rgba(230,211,163,.32); border-radius:6px; }
.trip-scroll::-webkit-scrollbar-thumb:hover{ background:rgba(230,211,163,.5); }

/* ——— Вебинар-страница (промо) ——— */
.promo-scroll{ position:absolute; top:70px; left:0; right:0; bottom:0; z-index:3; overflow-y:auto; padding:12px 18px 96px; }
.promo-scroll::-webkit-scrollbar{ width:0; }
.promo-title{ font-family:var(--serif); font-size:24px; line-height:1.2; color:var(--ink); text-align:left; margin:4px 0 8px; }
.promo-lead{ color:var(--ink-soft, #cdd7e2); font-size:14px; line-height:1.6; text-align:left; margin:0 0 16px; }
.promo-player{ border-radius:16px; overflow:hidden; box-shadow:0 14px 40px rgba(0,0,0,.45); }
.promo-video{ width:100%; display:block; background:#000; border-radius:16px; }
.promo-demo{ position:relative; aspect-ratio:16/10; border-radius:16px; overflow:hidden; }
.promo-demo img{ width:100%; height:100%; object-fit:cover; display:block; filter:brightness(.7); }
.promo-play{ position:absolute; left:50%; top:50%; transform:translate(-50%,-50%); width:66px; height:66px; border-radius:50%;
  border:2px solid rgba(255,255,255,.85); background:rgba(10,18,40,.5); backdrop-filter:blur(4px); color:#fff; font-size:24px;
  padding-left:5px; cursor:pointer; box-shadow:0 0 30px rgba(242,227,180,.4); transition:.18s; }
.promo-play:hover{ transform:translate(-50%,-50%) scale(1.08); background:rgba(10,18,40,.7); }
.promo-demo.playing .promo-play{ opacity:0; pointer-events:none; }
.promo-demo-bar{ position:absolute; left:0; right:0; bottom:0; height:4px; background:rgba(255,255,255,.18); }
.promo-demo-bar i{ display:block; height:100%; width:0; background:linear-gradient(90deg,#f2e3b4,#cdb46f); transition:width .12s linear; }
.promo-demo-skip{ position:absolute; right:10px; bottom:10px; font-size:11px; color:rgba(255,255,255,.6); cursor:pointer;
  background:rgba(10,18,40,.45); padding:3px 9px; border-radius:20px; backdrop-filter:blur(4px); }
.promo-demo.playing .promo-demo-skip{ opacity:1; }
.promo-gate{ margin-top:16px; }
.promo-gate.hidden{ display:none; }
.promo-reveal{ animation:promoReveal .5s cubic-bezier(.2,.7,.2,1) both; }
@keyframes promoReveal{ 0%{ opacity:0; transform:translateY(14px); } 100%{ opacity:1; transform:translateY(0); } }
.promo-codebox{ margin:18px 0 0; background:var(--glass); border:1px solid var(--hair-gold); border-radius:16px; padding:18px 16px; text-align:center;
  box-shadow:0 10px 30px rgba(0,0,0,.35); }
.promo-code-title{ font-family:var(--serif); font-size:19px; color:var(--ink); }
.promo-code-hint{ font-size:12.5px; color:var(--muted); line-height:1.5; margin:6px 0 14px; }
.promo-code-input{ width:100%; box-sizing:border-box; text-align:center; font-family:var(--sans); font-size:18px; letter-spacing:3px;
  text-transform:uppercase; color:var(--ink); background:rgba(8,14,28,.6); border:1.5px solid var(--hair); border-radius:12px;
  padding:13px 12px; margin-bottom:12px; outline:none; transition:.18s; }
.promo-code-input:focus{ border-color:var(--gold); box-shadow:0 0 0 3px rgba(242,227,180,.16); }
.promo-code-input.shake{ animation:shakeX .45s; border-color:#e0727a; }
@keyframes shakeX{ 0%,100%{ transform:translateX(0); } 20%,60%{ transform:translateX(-7px); } 40%,80%{ transform:translateX(7px); } }
.promo-code-err{ color:#ec8b91; font-size:12.5px; min-height:16px; }
.promo-thanks{ text-align:center; font-family:var(--serif); font-size:19px; color:var(--gold);
  background:rgba(242,227,180,.08); border:1px solid var(--hair-gold); border-radius:14px; padding:13px; box-shadow:var(--glow-gold); }
.promo-bonus-list{ display:flex; flex-direction:column; gap:9px; margin-top:11px; }
.promo-bonus{ display:flex; align-items:flex-start; gap:12px; background:var(--glass); border:1px solid var(--hair); border-radius:13px; padding:13px 14px; }
.pb-emoji{ font-size:23px; flex:0 0 auto; line-height:1.1; }
.pb-meta{ min-width:0; display:flex; flex-direction:column; gap:3px; }
.pb-meta b{ font-size:14px; color:var(--ink); line-height:1.25; }
.pb-meta small{ font-size:12px; color:var(--muted); line-height:1.45; }
/* бонусы вебинара — сетка карточек-кнопок «в несколько рядов» */
.promo-bonus-grid{ display:grid; grid-template-columns:1fr 1fr; gap:9px; margin-top:11px; }
.promo-bonus-card{ display:flex; flex-direction:column; align-items:center; gap:7px; text-align:center;
  background:var(--glass); border:1px solid var(--hair); border-radius:14px; padding:14px 10px; cursor:pointer;
  color:var(--ink); font:inherit; transition:transform .15s, border-color .2s, box-shadow .2s; }
.promo-bonus-card:active{ transform:scale(.96); }
.promo-bonus-card:hover{ border-color:var(--hair-gold); box-shadow:var(--glow-gold); }
.pbc-emoji{ font-size:30px; line-height:1; filter:drop-shadow(0 3px 8px rgba(0,0,0,.35)); }
.pbc-title{ font-size:11.5px; line-height:1.25; color:var(--ink); }
.promo-finale{ margin-top:20px; text-align:center; }
.promo-buy{ width:100%; font-size:16px; padding:16px; animation:promoBuyPulse 2.4s ease-in-out infinite; }
@keyframes promoBuyPulse{ 0%,100%{ box-shadow:0 8px 24px rgba(189,160,99,.4), var(--glow-gold); } 50%{ box-shadow:0 10px 32px rgba(242,227,180,.6), 0 0 26px rgba(242,227,180,.5); } }
.promo-buy-note{ font-size:12px; color:var(--gold); opacity:.85; margin:9px 0 14px; }
.promo-take{ width:100%; }
/* бонусы после кода — карточки с картинкой + название + описание */
.promo-bonus-head{ text-align:center; font-family:var(--serif); font-size:17px; color:var(--gold); margin:6px 0 13px; }
.promo-bonus-card2{ display:flex; align-items:center; gap:13px; width:100%; text-align:left; background:var(--glass); border:1px solid var(--hair); border-radius:15px; padding:12px 13px; cursor:pointer; color:var(--ink); font:inherit; transition:transform .15s, border-color .2s, box-shadow .2s; }
.promo-bonus-card2:active{ transform:scale(.98); }
.promo-bonus-card2:hover{ border-color:var(--hair-gold); box-shadow:var(--glow-gold); }
.pbc2-img{ width:52px; height:52px; flex:0 0 auto; border-radius:11px; object-fit:cover; box-shadow:0 3px 10px rgba(0,0,0,.35); }
.pbc2-emoji{ width:52px; height:52px; flex:0 0 auto; display:grid; place-items:center; font-size:28px; background:rgba(255,255,255,.05); border-radius:11px; }
.pbc2-tx{ min-width:0; display:flex; flex-direction:column; gap:3px; flex:1; }
.pbc2-title{ font-size:14px; font-weight:600; color:var(--ink); line-height:1.25; }
.pbc2-desc{ font-size:12px; color:var(--muted); line-height:1.4; }
.pbc2-arrow{ flex:0 0 auto; color:var(--gold); font-size:16px; opacity:.7; }
/* лист с содержимым дара поверх страницы (открывается из «Большого урока») */
.gift-sheet-wrap{ position:absolute; inset:0; z-index:60; display:flex; align-items:flex-end; justify-content:center; }
.gift-sheet-dim{ position:absolute; inset:0; background:rgba(4,9,18,.62); backdrop-filter:blur(3px); opacity:0; transition:opacity .22s; }
.gift-sheet-wrap.open .gift-sheet-dim{ opacity:1; }
.gift-sheet{ position:relative; z-index:1; width:100%; max-height:92%; background:#0b1322; border-radius:22px 22px 0 0; border:1px solid var(--hair); box-shadow:0 -14px 50px rgba(0,0,0,.55); transform:translateY(100%); transition:transform .26s cubic-bezier(.2,.8,.2,1); display:flex; flex-direction:column; overflow:hidden; }
.gift-sheet-wrap.open .gift-sheet{ transform:translateY(0); }
.gift-sheet-x{ position:absolute; top:12px; right:12px; z-index:2; width:34px; height:34px; border-radius:50%; border:1px solid var(--hair); background:rgba(8,14,28,.72); color:var(--ink); font-size:15px; cursor:pointer; }
.gift-sheet-scroll{ overflow-y:auto; padding:22px 18px 36px; }
.gift-sheet-scroll::-webkit-scrollbar{ width:0; }
.gift-sheet .article-screen{ padding:0; }
/* сюрприз-подарок за урок (как Лунный Сундук) */
.giftreveal-wrap{ position:absolute; inset:0; z-index:70; display:flex; align-items:center; justify-content:center; padding:24px; }
.giftreveal-dim{ position:absolute; inset:0; background:rgba(4,9,18,.72); backdrop-filter:blur(4px); opacity:0; transition:opacity .24s; }
.giftreveal-wrap.open .giftreveal-dim{ opacity:1; }
.giftreveal-card{ position:relative; z-index:1; width:100%; max-width:330px; background:linear-gradient(180deg,#15203a,#0c1322); border:1px solid var(--hair-gold); border-radius:24px; padding:24px 22px 26px; text-align:center; box-shadow:0 20px 60px rgba(0,0,0,.6), 0 0 40px rgba(212,175,110,.15); transform:scale(.85); opacity:0; transition:transform .3s cubic-bezier(.2,.9,.3,1.2), opacity .3s; }
.giftreveal-wrap.open .giftreveal-card{ transform:scale(1); opacity:1; }
.giftreveal-eyebrow{ font-size:13px; letter-spacing:.04em; color:var(--gold); font-weight:700; margin-bottom:16px; }
.giftreveal-box{ font-size:84px; line-height:1; background:none; border:none; cursor:pointer; display:flex; flex-direction:column; align-items:center; gap:10px; margin:0 auto; animation:grFloat 2.4s ease-in-out infinite; }
@keyframes grFloat{ 0%,100%{ transform:translateY(0) rotate(-2deg); } 50%{ transform:translateY(-8px) rotate(2deg); } }
.giftreveal-box.opened{ animation:grPop .42s ease both; }
@keyframes grPop{ 0%{ transform:scale(1); } 40%{ transform:scale(1.25) rotate(6deg); } 100%{ transform:scale(0) rotate(20deg); opacity:0; } }
.giftreveal-hint{ font-size:12px; color:var(--muted); font-weight:600; }
.giftreveal-img{ width:120px; height:120px; object-fit:contain; display:block; margin:0 auto 8px; filter:drop-shadow(0 6px 18px rgba(0,0,0,.45)); }
.giftreveal-emoji{ font-size:72px; line-height:1; margin-bottom:6px; }
.giftreveal-title{ font-family:var(--serif); font-size:21px; color:var(--ink); margin:2px 0 6px; }
.giftreveal-desc{ font-size:13px; line-height:1.5; color:rgba(244,248,251,.78); margin:0 0 16px; }
.giftreveal-later{ display:block; width:100%; margin-top:10px; background:none; border:none; color:var(--muted); font-size:12.5px; cursor:pointer; }

/* стрелка к «Моим дарам» */
.inv-arrow-ov{ position:absolute; inset:0; z-index:200; cursor:pointer; }
.inv-arrow-dim{ position:absolute; inset:0; background:rgba(5,10,24,.74); backdrop-filter:blur(2px); -webkit-backdrop-filter:blur(2px); }
.inv-arrow-svg{ position:absolute; inset:0; width:100%; height:100%; filter:drop-shadow(0 0 10px rgba(242,227,180,.55));
  animation:invArrowIn .5s ease both; }
@keyframes invArrowIn{ 0%{ opacity:0; } 100%{ opacity:1; } }
.inv-arrow-cap{ position:absolute; top:160px; left:0; right:0; text-align:center; font-family:var(--serif); font-size:21px;
  color:#f4ecd6; line-height:1.3; text-shadow:0 2px 14px rgba(0,0,0,.6); padding:0 30px; }
.inv-arrow-hint{ position:absolute; bottom:40px; left:0; right:0; text-align:center; font-size:12.5px; color:rgba(255,255,255,.55); }
#btnBackpack.arrow-glow{ position:relative; z-index:201; color:#f2e3b4;
  filter:drop-shadow(0 0 10px rgba(242,227,180,.95)); animation:bpGlow 1s ease-in-out infinite; }
@keyframes bpGlow{ 0%,100%{ transform:scale(1); } 50%{ transform:scale(1.22); } }
.trip-intro{ text-align:left; padding:2px 2px 18px; }
.trip-intro-head{ margin-bottom:10px; }
.trip-intro-title{ font-family:var(--serif); font-size:27px; font-weight:600; color:var(--ink); line-height:1.12; margin:0; text-wrap:balance; }
.trip-lead{ font-size:14px; line-height:1.62; color:rgba(244,248,251,.88); margin:4px 0 0; }
.trip-lead b{ color:var(--gold); font-weight:600; }
.trip-start{ width:100%; margin-top:22px; } /* пространство между плашкой «Это безопасно» и кнопкой */
/* «что внутри» — три грани плана (с лёгкой анимацией появления) */
.trip-facets{ display:flex; flex-direction:column; gap:9px; text-align:left; margin:16px 0 0; }
.trip-facet{ display:flex; align-items:center; gap:12px; background:rgba(255,255,255,.04); border:1px solid var(--hair); border-radius:13px; padding:11px 13px;
  transition:transform .18s ease, border-color .18s ease, background .18s ease; animation:tripCardIn .5s cubic-bezier(.2,.7,.2,1) both; }
.trip-facet:active{ transform:scale(.985); }
.trip-facet:nth-child(1){ animation-delay:.05s; }
.trip-facet:nth-child(2){ animation-delay:.13s; }
.trip-facet:nth-child(3){ animation-delay:.21s; }
.trip-facet-ic{ font-size:21px; flex:0 0 auto; }
.trip-facet-tx{ display:flex; flex-direction:column; line-height:1.25; }
.trip-facet-tx b{ font-size:13.5px; color:var(--ink); font-weight:600; }
.trip-facet-tx i{ font-size:12px; color:var(--muted); font-style:normal; margin-top:1px; }
@keyframes tripCardIn{ from{ opacity:0; transform:translateY(10px); } to{ opacity:1; transform:none; } }
.trip-intro .trip-callout{ margin:14px 0 0; animation:tripCardIn .5s cubic-bezier(.2,.7,.2,1) both; animation-delay:.29s; }
.trip-intro .trip-start{ animation:tripCardIn .5s cubic-bezier(.2,.7,.2,1) both; animation-delay:.37s; }
/* —— Notion-callout: плашка ключевого инсайта —— */
.trip-callout{ display:flex; gap:11px; align-items:flex-start; text-align:left;
  background:rgba(111,198,238,.08); border:1px solid rgba(111,198,238,.22); border-radius:14px; padding:14px 15px; margin:16px 0; }
.trip-co-ic{ font-size:19px; line-height:1.25; flex:0 0 auto; margin-top:1px; }
.trip-co-body{ flex:1; min-width:0; }
.trip-co-h{ font-family:var(--serif); font-size:16.5px; font-weight:600; color:var(--ink); line-height:1.26; }
.trip-co-body p{ font-size:13px; line-height:1.58; color:rgba(244,248,251,.85); margin:4px 0 0; }
.trip-callout.co-info{ background:rgba(111,198,238,.08); border-color:rgba(111,198,238,.22); }
.trip-callout.co-green{ background:rgba(159,227,189,.09); border-color:rgba(159,227,189,.28); }
.trip-callout.co-green .trip-co-h{ color:var(--good); }
.trip-callout.co-yellow{ background:rgba(240,210,138,.09); border-color:rgba(240,210,138,.32); }
.trip-callout.co-yellow .trip-co-h{ color:#f0d28a; }
.trip-callout.co-red{ background:rgba(240,163,163,.09); border-color:rgba(240,163,163,.32); }
.trip-callout.co-red .trip-co-h{ color:#f0a3a3; }
.trip-callout.co-gold{ background:rgba(230,211,163,.1); border-color:var(--hair-gold); }
.trip-callout.co-gold .trip-co-h{ color:var(--gold); }
.trip-q{ font-family:var(--serif); font-size:19px; font-weight:600; color:var(--ink); line-height:1.32; margin:10px 0 16px; }
.trip-opts{ display:flex; flex-direction:column; gap:9px; }
/* Навигация по вопросам: «Назад» / «Далее» */
.trip-qnav{ display:flex; gap:11px; margin-top:24px; }
.trip-navbtn{ flex:1; padding:12px 14px; border-radius:13px; cursor:pointer; font-family:var(--sans);
  font-size:14px; font-weight:600; transition:.16s; border:1px solid var(--hair); }
.trip-navbtn.back{ background:transparent; color:var(--muted); }
.trip-navbtn.back:hover:not(:disabled){ border-color:var(--hair-gold); color:var(--ink); }
.trip-navbtn.next{ background:linear-gradient(180deg,#f2e3b4,#cdb46f); color:#241f0e; border-color:transparent; }
.trip-navbtn:disabled{ opacity:.4; cursor:default; }
.trip-navbtn:active:not(:disabled){ transform:scale(.97); }
.trip-opt{ text-align:left; width:100%; cursor:pointer; background:rgba(255,255,255,.06); border:1px solid var(--hair-gold);
  border-radius:13px; padding:13px 15px; font-family:var(--sans); font-size:13.5px; color:var(--ink); line-height:1.4; transition:.15s; }
.trip-opt:hover{ border-color:var(--lunar); background:rgba(111,198,238,.1); transform:translateY(-1px); }
.trip-opt:active{ transform:scale(.99); }
.trip-opt.sel{ border-color:var(--lunar); background:rgba(111,198,238,.16); box-shadow:0 0 0 1px rgba(111,198,238,.3); }
.trip-opt.sel::after{ content:"✓"; float:right; color:var(--lunar); font-weight:700; }
.trip-hint{ font-size:12px; color:var(--gold); margin:-6px 0 12px; }
.trip-next2{ width:100%; margin-top:14px; }
.trip-progbar{ height:6px; background:rgba(255,255,255,.08); border-radius:4px; overflow:hidden; margin:6px 0 18px; }
.trip-progbar i{ display:block; height:100%; border-radius:4px; background:linear-gradient(90deg,#6fc6ee,#9fe3bd); transition:width .3s; }
/* результат */
.trip-result{ padding-top:4px; }
.trip-saved{ font-size:11.5px; line-height:1.5; color:var(--good); background:rgba(159,227,189,.1); border:1px solid rgba(159,227,189,.25); border-radius:10px; padding:10px 13px; margin:18px 0 24px; }
.trip-dash-h{ font-family:var(--serif); font-size:19px; font-weight:700; color:var(--gold); margin:24px 2px 4px; }
.trip-dash-hint{ font-size:12px; line-height:1.5; color:var(--muted); margin:0 2px 16px; }
/* —— Градиентная шкала риска с точкой «где ты» —— */
.trip-gauges{ display:flex; flex-direction:column; gap:14px; margin:6px 0 24px; }
.trip-gauge-top{ display:flex; align-items:center; gap:8px; margin-bottom:8px; }
.trip-gauge-ic{ font-size:16px; flex:0 0 auto; }
.trip-gauge-name{ flex:1; font-size:13px; color:var(--ink); font-weight:500; line-height:1.2; }
.trip-gauge-lvl{ font-size:10.5px; font-weight:700; padding:2px 9px; border-radius:99px; flex:0 0 auto; white-space:nowrap; }
.trip-gauge-lvl.green{ background:rgba(159,227,189,.16); color:var(--good); }
.trip-gauge-lvl.yellow{ background:rgba(240,210,138,.16); color:#f0d28a; }
.trip-gauge-lvl.red{ background:rgba(240,163,163,.16); color:#f0a3a3; }
.trip-gauge-bar{ position:relative; height:9px; border-radius:99px; margin:0 7px;
  background:linear-gradient(90deg,#5cc28a 0%,#9fe3bd 16%,#ecd189 52%,#f0a3a3 88%);
  box-shadow:inset 0 1px 2px rgba(0,0,0,.28); }
.trip-gauge-dot{ position:absolute; top:50%; width:17px; height:17px; border-radius:50%;
  transform:translate(-50%,-50%); background:#fff; border:3px solid #0b1a2c;
  box-shadow:0 1px 6px rgba(0,0,0,.55), 0 0 0 1.5px rgba(255,255,255,.5); transition:left .5s cubic-bezier(.3,.7,.3,1); }
.trip-section{ background:linear-gradient(180deg,rgba(255,255,255,.05),rgba(255,255,255,.02)); border:1px solid var(--hair);
  border-radius:16px; padding:16px 16px 10px; margin-bottom:18px; border-left:3px solid var(--hair-gold); }
.trip-section.green{ border-left-color:var(--good); }
.trip-section.yellow{ border-left-color:#f0d28a; }
.trip-section.red{ border-left-color:#f0a3a3; }
.trip-section.gold{ border-left-color:var(--gold); background:linear-gradient(180deg,rgba(230,211,163,.09),rgba(230,211,163,.03)); }
.trip-profile-h{ font-family:var(--serif); font-size:18px; font-weight:700; color:var(--gold); margin:8px 0 12px; padding-top:8px; border-top:1px solid var(--hair); }
.trip-sec-head{ display:flex; align-items:center; gap:11px; margin-bottom:4px; }
.trip-sec-ic{ font-size:23px; flex:0 0 auto; }
.trip-sec-cat{ flex:1; font-family:var(--serif); font-size:17px; font-weight:700; color:var(--gold); line-height:1.12; }
.trip-h{ font-family:var(--serif); font-size:15px; font-weight:600; color:var(--gold); margin:15px 0 6px; }
.trip-p{ font-size:13.5px; line-height:1.62; color:rgba(244,248,251,.88); margin:0 0 10px; }
.trip-p b{ color:var(--ink); }
.trip-quote{ font-size:14px; line-height:1.55; color:var(--ink); background:rgba(230,211,163,.06);
  border-left:3px solid var(--gold); border-radius:0 10px 10px 0; padding:11px 14px; margin:10px 0; font-family:var(--serif); font-style:italic; }
.trip-li{ display:flex; gap:9px; font-size:13px; line-height:1.55; color:rgba(244,248,251,.88); margin-bottom:7px; }
.trip-dot{ color:var(--gold); font-weight:700; flex:0 0 auto; }
.trip-check{ display:flex; align-items:flex-start; gap:9px; font-size:13px; line-height:1.45; color:var(--ink);
  background:rgba(159,227,189,.06); border:1px solid rgba(159,227,189,.2); border-radius:10px; padding:9px 11px; margin-bottom:6px; cursor:pointer; }
.trip-check input{ margin-top:1px; accent-color:#9fe3bd; flex:0 0 auto; }
.trip-restart{ width:100%; margin-top:8px; background:transparent; border:1px solid var(--hair); color:var(--muted); }

.center{ margin:auto 0; text-align:center; width:100%; }
.hero-img{ width:100%; border-radius:var(--r); border:1px solid var(--hair); margin-bottom:14px; box-shadow:0 16px 44px rgba(0,0,0,.5); }

/* —— Экран приветствия (welcome) —— */
.welcome-screen{ position:absolute; inset:0; overflow:hidden; }
.welcome-bg{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:center top; display:block; }
.welcome-veil{ position:absolute; inset:0; pointer-events:none;
  background:linear-gradient(180deg, transparent 28%, transparent 46%, rgba(6,14,24,.55) 68%, rgba(6,14,24,.96) 100%); }
.welcome-big-title{ text-align:center; margin-bottom:14px; }
.welcome-pre{ font-family:var(--serif); font-size:17px; font-weight:500; color:var(--ink);
  opacity:.9; letter-spacing:.3px; margin-bottom:-4px;
  text-shadow:0 1px 10px rgba(6,14,24,.8); }
.welcome-island{ font-family:"Cormorant Garamond","Times New Roman",Times,serif;
  font-size:clamp(40px, 13vw, 52px); font-weight:700; line-height:1.0; white-space:nowrap;
  color:var(--ink); letter-spacing:-.5px;
  text-shadow:0 2px 18px rgba(6,14,24,.7), 0 4px 32px rgba(6,14,24,.5); }
.welcome-bottom{ position:absolute; bottom:0; left:0; right:0; z-index:3; padding:0 22px 34px; }
.welcome-glass{ background:rgba(255,255,255,.04); backdrop-filter:blur(18px) saturate(140%); -webkit-backdrop-filter:blur(18px) saturate(140%);
  border:1px solid rgba(255,255,255,.11); border-radius:22px; padding:22px 18px 20px; text-align:center;
  animation:float 3.6s ease-in-out infinite; }
@keyframes float{
  0%,100%{ transform:translateY(0); }
  50%{ transform:translateY(-3px); }
}
.welcome-desc{ font-size:13px; line-height:1.62; color:rgba(207,227,240,.82); margin:0 0 16px; }

/* —— Онбординг: выбор облика —— */
.avatar-pick{ display:flex; gap:14px; justify-content:center; margin:20px 0; }
.avatar-pick .opt{ border:1.5px solid var(--hair); border-radius:18px; padding:8px; cursor:pointer; width:46%; transition:.2s; background:var(--glass); }
.avatar-pick .opt.sel{ border-color:var(--gold); box-shadow:var(--glow-gold); }
.avatar-pick img{ width:100%; border-radius:12px; display:block; }
.avatar-pick .nm{ font-family:var(--serif); font-size:16px; margin-top:7px; color:var(--ink); }

/* —— Профиль: фон лунного сада (блюр), держится при скролле —— */
#scr-profile{ position:relative; }
.profile-bg{ position:sticky; top:0; height:0; z-index:0; pointer-events:none; }
.profile-bg::before{ content:""; position:absolute; left:0; right:0; top:0; height:100vh;
  background:url('public/universe/profile-bg.webp?v=59') center top/cover no-repeat;
  filter:blur(7px); transform:scale(1.06); }
.profile-bg::after{ content:""; position:absolute; left:0; right:0; top:0; height:100vh;
  background:linear-gradient(180deg, rgba(6,14,24,.45) 0%, rgba(6,14,24,.74) 48%, rgba(6,14,24,.92) 100%); }
.profile-content{ position:relative; z-index:1; padding:94px 18px 110px; }

/* —— Профиль: шапка —— */
.profile-hero2{ text-align:center; margin-bottom:6px; }
.profile-ava{ width:104px; height:104px; border-radius:50%; overflow:hidden; margin:0 auto 12px;
  border:3px solid var(--gold); box-shadow:var(--glow-gold), 0 12px 30px rgba(0,0,0,.45); }
.profile-ava img{ width:100%; height:100%; object-fit:cover; display:block; }
.profile-hi{ font-family:var(--serif); font-size:25px; font-weight:600; color:var(--ink); letter-spacing:.2px; }
.profile-title{ font-family:var(--serif); font-size:14px; font-style:italic; color:var(--gold); letter-spacing:.3px; margin:4px 0 2px; }
.profile-lvl-row{ width:min(360px, 88%); margin:14px auto 0; }
.profile-lvl-bar{ height:8px; }
.profile-lvl-label{ font-size:12px; font-weight:700; color:var(--good); margin-top:7px; }
.profile-balance{ display:inline-block; margin-top:24px; font-size:13px; font-weight:600; color:var(--muted);
  background:rgba(230,211,163,.1); border:1px solid var(--hair-gold); border-radius:999px; padding:7px 16px; }
.profile-balance b{ color:var(--gold); font-weight:800; }

/* —— Серия дней: точки-сегменты + подарок —— */
.streak2{ margin-top:8px; background:linear-gradient(135deg, rgba(255,140,60,.13), rgba(230,211,163,.07));
  border:1px solid rgba(255,160,80,.32); border-radius:var(--r); padding:15px 16px;
  box-shadow:0 10px 30px rgba(0,0,0,.25); }
.streak2.ready{ border-color:rgba(159,227,189,.5); background:linear-gradient(135deg, rgba(159,227,189,.16), rgba(230,211,163,.08)); }
.streak2{ display:flex; align-items:center; gap:14px; }
.streak2-left{ flex:1; min-width:0; }
/* Заголовок карточки серии — тот же шрифт/размер, что и у «Что дальше», но в цвете этой карточки */
.streak2-title{ font-size:11px; font-weight:700; letter-spacing:1.5px; text-transform:uppercase; color:var(--gold); line-height:1.3; }
.streak2-sub{ font-size:12.5px; color:var(--muted); margin-top:5px; line-height:1.45; }
.streak2-dots{ display:grid; grid-template-columns:repeat(10, 13px); gap:6px 5px; justify-content:start; align-items:center; justify-items:center; margin-top:13px; }
.sdot{ width:12px; height:12px; border-radius:50%;
  background:rgba(255,255,255,.14); border:1px solid rgba(255,255,255,.2); transition:.35s; }
.sdot.on{ width:13px; height:13px; background:radial-gradient(circle at 35% 30%, #c9f5dd, var(--good));
  border-color:transparent; box-shadow:0 0 9px rgba(159,227,189,.7); }
.streak2-giftbox{ flex:0 0 auto; width:96px; display:flex; align-items:center; justify-content:center; }
.sgift-big{ font-size:64px; line-height:1; filter:drop-shadow(0 8px 18px rgba(0,0,0,.35)); }
.sgift-big.open{ animation:flame-pulse 1.3s ease-in-out infinite; filter:drop-shadow(0 0 14px rgba(159,227,189,.7)); }
.streak2-collect{ width:100%; margin-top:14px; background:linear-gradient(180deg,#b5edcf,#6bcfa0);
  color:#04211a; border-color:rgba(159,227,189,.5); box-shadow:0 8px 24px rgba(107,207,160,.4); }

/* —— Список уроков —— */
.lesson-list .li{ display:flex; align-items:center; gap:11px; padding:13px; border:1px solid var(--hair);
  border-radius:var(--r-sm); margin-bottom:9px; background:var(--glass); backdrop-filter:blur(6px); transition:.18s; }
.lesson-list .li.tap{ cursor:pointer } .lesson-list .li.tap:hover{ border-color:var(--hair-gold); transform:translateX(2px); }
.lesson-list .li.done{ border-color:rgba(159,227,189,.28); }
.num{ width:28px;height:28px;border-radius:50%; background:rgba(111,198,238,.14); color:var(--lunar);
  display:grid;place-items:center; font-size:12px; font-weight:700; flex:0 0 auto; border:1px solid rgba(111,198,238,.25); }
.lesson-list .li.done .num{ background:rgba(159,227,189,.14); color:var(--good); border-color:rgba(159,227,189,.3); }

.note{ font-size:12px; color:var(--muted); line-height:1.5; background:rgba(111,198,238,.05);
  border:1px solid var(--hair); border-left:2px solid var(--hair-gold); border-radius:12px; padding:11px 13px; margin:12px 0; }
.divider{ height:1px; background:linear-gradient(90deg, transparent, var(--hair-gold), transparent); margin:18px 0; }
.devbar{ font-size:11px; color:var(--faint); display:flex; gap:8px; align-items:center; flex-wrap:wrap; margin-top:18px; }
.devbar button{ font-size:11px; padding:6px 11px; border-radius:9px; border:1px solid var(--hair); background:var(--glass); color:var(--muted); cursor:pointer; }
.devbar button:hover{ border-color:var(--hair-gold); color:var(--ink); }
textarea{ font-family:var(--sans); }

/* —— Кнопка welcome (глянец + блик) —— */
.btn-welcome{
  display:block; width:100%; height:46px; border:none; border-radius:14px; cursor:pointer;
  position:relative; overflow:hidden;
  background:linear-gradient(180deg, #55d0ff 0%, #0fa8e8 42%, #0080cc 100%);
  box-shadow:0 4px 26px rgba(15,168,232,.65), 0 2px 8px rgba(0,0,0,.3), inset 0 1px 0 rgba(255,255,255,.35);
  font-family:var(--sans); font-size:12.5px; font-weight:700; letter-spacing:1.8px;
  text-transform:uppercase; color:#fff; text-shadow:0 1px 3px rgba(0,0,0,.35);
}
.btn-welcome::before{
  content:""; position:absolute; top:0; left:0; right:0; height:52%;
  background:linear-gradient(180deg, rgba(255,255,255,.4) 0%, rgba(255,255,255,.06) 100%);
  border-radius:14px 14px 50% 50% / 14px 14px 10px 10px; pointer-events:none;
}
.btn-welcome::after{
  content:""; position:absolute; top:0; left:-110%; width:55%; height:100%;
  background:linear-gradient(100deg, transparent 0%, rgba(255,255,255,.38) 50%, transparent 100%);
  animation:btn-shine 2.8s ease-in-out infinite; pointer-events:none;
}
@keyframes btn-shine{
  0%   { left:-110%; }
  55%  { left:160%; }
  100% { left:160%; }
}
/* Сравнение «одно vs другое» в статьях (напр. флирт vs домогательство) — карточки, удобные на телефоне */
.art-vs{display:flex;flex-direction:column;gap:10px;margin:20px 0}
.art-vs-card{background:rgba(255,255,255,.045);border:1px solid rgba(255,255,255,.09);border-radius:16px;padding:12px 15px}
.art-vs-asp{display:flex;align-items:center;gap:8px;font-weight:800;font-size:15px;color:#eaf0ff;margin-bottom:8px}
.art-vs-line{display:flex;gap:9px;font-size:14.5px;line-height:1.46;padding:6px 0}
.art-vs-line + .art-vs-line{border-top:1px solid rgba(255,255,255,.07)}
.art-vs-ic{flex:0 0 auto}
.art-vs-good{color:#c2e9cb}
.art-vs-bad{color:#f2c2c0}
/* Каталог гаджетов («Оружейная») — карточка: фото + название + назначение + применение + цена */
.gadget-list{display:flex;flex-direction:column;gap:16px;margin:20px 0}
.gadget-card{background:rgba(255,255,255,.045);border:1px solid rgba(255,255,255,.09);border-radius:18px;overflow:hidden}
.gadget-img{width:100%;aspect-ratio:16/10;object-fit:cover;display:block;background:#0a1626}
.gadget-info{padding:14px 16px 16px}
.gadget-name{font-family:var(--serif);font-size:18px;font-weight:600;color:var(--gold);margin:0}
.gadget-card .art-p{margin:8px 0 0}
.gadget-uses{list-style:none;padding:0;margin:11px 0 0;display:flex;flex-direction:column;gap:7px}
.gadget-uses li{display:flex;gap:8px;font-size:14px;line-height:1.45;color:rgba(244,248,251,.88)}
.gadget-uses li::before{content:'✦';color:var(--gold);flex:0 0 auto}
.gadget-price{display:inline-block;margin-top:13px;padding:4px 13px;border-radius:999px;background:rgba(212,175,110,.16);border:1px solid rgba(212,175,110,.4);color:var(--gold);font-weight:700;font-size:13px}
/* Главы-страницы внутри лонгрида (переключение разделов на одной странице) */
.art-pagenav{display:flex;gap:8px;overflow-x:auto;margin:18px -2px 2px;padding:2px 2px 6px;-webkit-overflow-scrolling:touch;scrollbar-width:none}
.art-pagenav::-webkit-scrollbar{display:none}
.art-pagebtn{flex:0 0 auto;padding:7px 15px;border-radius:999px;border:1px solid rgba(255,255,255,.14);background:rgba(255,255,255,.05);color:rgba(244,248,251,.82);font-size:13.5px;font-weight:600;white-space:nowrap;cursor:pointer;transition:all .18s}
.art-pagebtn.on{background:rgba(212,175,110,.18);border-color:rgba(212,175,110,.5);color:var(--gold)}
/* «Голос рядом» — диалоги с папой/мужем: переключатель + карточки голосовых (плеер pod-* переиспользован) */
.map-toggle.dlg-toggle{ display:flex; width:max-content; max-width:94%; margin:14px auto 6px; }
.dlg-toggle .tgl.on{ color:#060e18; } /* тёмный текст на светлой пилюле — читаемо */
.dlg-lead{font-family:var(--serif);font-size:15px;line-height:1.6;color:var(--ink);margin:16px 2px 2px;text-align:center}
.dlg-body{display:flex;flex-direction:column;gap:16px}
.dlg-msg{ background:rgba(12,20,36,.62); backdrop-filter:blur(12px); -webkit-backdrop-filter:blur(12px); border:1px solid rgba(255,255,255,.12); border-radius:18px; padding:15px 16px; }
.dlg-voice{font-size:12.5px;letter-spacing:.02em;color:var(--gold);font-weight:700;margin-bottom:6px}
.dlg-text{font-family:var(--serif);font-size:16px;line-height:1.5;color:var(--ink);margin-bottom:6px}
.dlg-desc{font-size:13.5px;line-height:1.45;color:rgba(244,248,251,.7);margin-bottom:11px}
.dlg-msg .pod-player{margin:2px 0 0}
.dlg-reply{margin-top:13px;padding-top:12px;border-top:1px solid rgba(255,255,255,.08)}
.dlg-reply-h{font-size:12.5px;font-weight:700;color:#eaf0ff;margin-bottom:7px}
.dlg-reply ul{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:6px}
.dlg-reply li{font-size:14px;line-height:1.45;color:rgba(244,248,251,.88);padding-left:15px;position:relative}
.dlg-reply li::before{content:'›';position:absolute;left:2px;color:var(--gold);font-weight:700}
.dlg-tip{font-size:13px;line-height:1.45;color:#f0d9a8;margin:10px 0 0}
/* Мастер-тест (Зеркало Реакций): вступление → вопросы → богатый результат */
.tw-intro{ text-align:center; padding:6px 4px 0; }
.tw-intro-p{ font-size:14.5px; line-height:1.7; color:rgba(244,248,251,.9); margin:8px 0 22px; }
.tw-start{ width:100%; }
.tw-q-text{ font-family:var(--serif); font-size:20px; line-height:1.42; color:var(--ink); margin:4px 0 16px; }
.tw-q-prog{ display:flex; justify-content:center; margin:0; }
.tw-q-prog-bar{ width:58%; max-width:200px; height:6px; border-radius:999px; background:rgba(255,255,255,.12); overflow:hidden; }
.tw-q-prog-bar i{ display:block; height:100%; background:linear-gradient(90deg,#f2e3b4,var(--gold)); transition:width .35s; }
.tw-q-count{ text-align:center; font-size:12px; color:var(--muted); margin:8px 0 18px; }
.tw-opts{ display:flex; flex-direction:column; gap:10px; }
.tw-opt{ text-align:left; padding:14px 15px; border-radius:14px; border:1px solid rgba(255,255,255,.12); background:rgba(255,255,255,.04); color:rgba(244,248,251,.92); font-size:14.5px; line-height:1.45; cursor:pointer; transition:border-color .16s, background .16s; display:flex; align-items:center; gap:11px; }
.tw-opt::before{ content:''; flex:0 0 auto; width:18px; height:18px; border-radius:50%; border:2px solid rgba(255,255,255,.28); transition:all .16s; }
.tw-opt.sel{ border-color:var(--gold); background:rgba(212,175,110,.14); }
.tw-opt.sel::before{ border-color:var(--gold); background:var(--gold); box-shadow:inset 0 0 0 3px rgba(12,20,36,.9), 0 0 8px rgba(212,175,110,.5); }
.tw-nav{ display:flex; justify-content:space-between; align-items:center; gap:10px; margin-top:20px; }
.tw-nav .btn[disabled]{ opacity:.4; pointer-events:none; }
.tw-result{ text-align:center; }
.tw-res-emoji{ font-size:46px; line-height:1; margin:6px 0 4px; }
.tw-res-eyebrow{ font-size:11.5px; letter-spacing:.12em; text-transform:uppercase; color:var(--gold); }
.tw-res-title{ font-family:var(--serif); font-size:26px; color:var(--ink); margin:3px 0 14px; }
.tw-res-lead{ font-size:15px; line-height:1.7; color:rgba(244,248,251,.92); text-align:left; margin:0; }
.tw-res-block{ text-align:left; margin:16px 0 0; }
.tw-res-h{ font-size:12.5px; font-weight:700; letter-spacing:.02em; color:var(--gold); margin-bottom:5px; }
.tw-res-block p{ font-size:14px; line-height:1.6; color:rgba(244,248,251,.86); margin:0; }
.tw-res-hl{ text-align:left; margin:18px 0 0; padding:14px 16px; border-radius:14px; background:rgba(212,175,110,.13); border:1px solid rgba(212,175,110,.36); color:#f3e6c9; font-size:14.5px; line-height:1.55; font-weight:600; }
/* Колесо баланса (Лунное Колесо): анимированные цветные сектора + ползунки 0–10 */
.wheel2-wrap{ display:flex; justify-content:center; margin:10px 0 24px; }
.wheel2-svg{ width:80%; max-width:300px; height:auto; aspect-ratio:1; filter:drop-shadow(0 6px 26px rgba(106,169,255,.16)); }
.wheel2-wedge{ transform-origin:100px 100px; transition:transform .28s cubic-bezier(.2,.8,.2,1); }
.wheel2-avg{ text-align:center; font-size:13px; color:var(--muted); margin:4px 0 18px; }
.wheel2-avg b{ color:var(--gold); font-size:16px; }
.wheel2-rows{ display:flex; flex-direction:column; gap:15px; }
.wheel2-row-top{ display:flex; align-items:center; gap:9px; }
.wheel2-dot{ width:11px; height:11px; border-radius:50%; flex:0 0 auto; box-shadow:0 0 7px currentColor; }
.wheel2-name{ font-size:14.5px; font-weight:600; color:#eef3ff; cursor:pointer; flex:1; }
.wheel2-name::after{ content:'ⓘ'; font-size:11px; color:var(--muted); margin-left:5px; }
.wheel2-val{ font-size:14px; font-weight:700; color:var(--gold); min-width:18px; text-align:right; }
.wheel2-slider{ width:100%; margin:9px 0 0; -webkit-appearance:none; appearance:none; height:6px; border-radius:999px; background:rgba(255,255,255,.13); outline:none; }
.wheel2-slider::-webkit-slider-thumb{ -webkit-appearance:none; appearance:none; width:21px; height:21px; border-radius:50%; background:var(--c,#6aa9ff); box-shadow:0 0 9px var(--c,#6aa9ff), 0 1px 3px rgba(0,0,0,.45); cursor:pointer; border:2px solid #0c1424; }
.wheel2-slider::-moz-range-thumb{ width:21px; height:21px; border-radius:50%; background:var(--c,#6aa9ff); border:2px solid #0c1424; cursor:pointer; box-shadow:0 0 9px var(--c,#6aa9ff); }
.wheel2-desc{ margin:10px 0 0; padding:11px 13px; border-radius:12px; background:rgba(255,255,255,.04); border:1px solid rgba(255,255,255,.09); }
.wheel2-meaning{ font-size:13px; line-height:1.52; color:rgba(244,248,251,.82); margin:0 0 7px; }
.wheel2-band{ font-size:13.5px; line-height:1.5; color:#f3e6c9; }
/* Карта опасностей — выбор угроз + персональная карта с тройкой действий */
.dm-intro-callout{ display:flex; gap:11px; align-items:flex-start; background:rgba(212,175,110,.1); border:1px solid rgba(212,175,110,.3); border-radius:14px; padding:13px 15px; margin:6px 0 18px; font-size:13.5px; line-height:1.5; color:rgba(244,248,251,.9); }
.dm-intro-ic{ font-size:20px; flex:0 0 auto; }
.dm-cat{ margin:0 0 18px; }
.dm-cat-title{ font-family:var(--serif); font-size:16px; color:var(--gold); margin:0 0 9px; }
.dm-danger{ display:flex; gap:11px; align-items:flex-start; width:100%; text-align:left; background:rgba(255,255,255,.04); border:1px solid rgba(255,255,255,.1); border-radius:13px; padding:12px 13px; margin-bottom:8px; cursor:pointer; color:inherit; font:inherit; transition:border-color .16s, background .16s; }
.dm-danger.on{ border-color:var(--gold); background:rgba(212,175,110,.12); }
.dm-box{ flex:0 0 auto; width:22px; height:22px; border-radius:7px; border:2px solid rgba(255,255,255,.28); display:grid; place-items:center; font-size:13px; color:#0c1424; margin-top:1px; transition:.16s; }
.dm-danger.on .dm-box{ background:var(--gold); border-color:var(--gold); }
.dm-danger-tx{ display:flex; flex-direction:column; gap:3px; min-width:0; }
.dm-danger-name{ font-size:14.5px; font-weight:600; color:#eef3ff; line-height:1.3; }
.dm-danger-how{ font-size:13px; color:rgba(244,248,251,.66); line-height:1.45; }
.dm-result-head{ font-family:var(--serif); font-size:27px; font-weight:600; color:var(--ink); text-align:center; margin:8px 0 10px; }
.dm-result-sub{ font-size:14px; line-height:1.6; color:rgba(244,248,251,.88); text-align:center; margin:0 0 14px; }
.dm-main-dir{ background:rgba(212,175,110,.12); border:1px solid rgba(212,175,110,.34); border-radius:13px; padding:12px 15px; font-size:14px; line-height:1.5; color:#f3e6c9; margin:0 0 16px; text-align:center; }
/* теги-фильтр «Твоя карта опасностей» — одна прокручиваемая вправо строка */
.dm-tags-scroll{ overflow-x:auto; -webkit-overflow-scrolling:touch; margin:0 -4px; padding:0 4px; }
.dm-tags-scroll::-webkit-scrollbar{ height:0; }
.dm-tags{ display:flex; flex-wrap:nowrap; gap:8px; width:max-content; margin:0; }
.dm-tag{ flex:0 0 auto; white-space:nowrap; font-size:12.5px; font-weight:600; padding:7px 13px; border-radius:999px; border:1px solid var(--hair); background:var(--glass); color:var(--muted); cursor:pointer; transition:.15s; }
.dm-tag:hover{ border-color:var(--hair-gold); color:var(--ink); }
.dm-tag.on{ background:var(--gold); color:#060e18; border-color:var(--gold); }
.dm-tags-hint{ font-size:11px; color:var(--faint); margin:6px 2px 14px; }
.dm-cat-now{ font-family:var(--serif); font-size:16px; color:var(--gold); margin:2px 0 12px; }
/* интро-экран опроса по центру по вертикали */
.dm-intro-center{ min-height:calc(100vh - 210px); display:flex; flex-direction:column; justify-content:center; gap:16px; }
.dm-plan{ background:rgba(255,255,255,.04); border:1px solid rgba(255,255,255,.1); border-radius:15px; padding:14px 15px; margin-bottom:13px; }
.dm-plan-name{ font-size:15.5px; font-weight:700; color:#eef3ff; margin-bottom:4px; }
.dm-plan-how{ font-size:13px; color:rgba(244,248,251,.66); line-height:1.45; margin-bottom:11px; }
.dm-acts{ display:flex; flex-direction:column; gap:9px; }
.dm-act{ display:flex; gap:10px; font-size:13.5px; line-height:1.46; color:rgba(244,248,251,.9); }
.dm-act-lbl{ flex:0 0 86px; font-weight:700; font-size:12px; color:var(--gold); padding-top:1px; }

/* Мобильный режим: не перестраиваем макет, а уменьшаем всю сцену 432×880 целиком. */
@media (max-width:520px){
  html, body{ width:100%; min-height:100%; overflow:hidden; background:#060e18; }
  body.phone-scaled{
    height:100vh; height:100svh;
    padding:0;
    position:relative;
  }
	  body.phone-scaled .phone{
	    position:absolute;
	    left:50%;
	    top:50%;
    width:432px;
    max-width:none;
    height:880px;
    max-height:none;
    transform:translate(-50%,-50%) scale(var(--phone-scale,1));
	    transform-origin:center center;
	  }
	  body.tg-webapp{
	    height:var(--tg-viewport-height, 100vh);
	    min-height:var(--tg-viewport-height, 100vh);
	    padding:0;
	    background:#060e18;
	    overscroll-behavior:none;
	  }
	  body.tg-webapp.phone-scaled .phone{
	    width:var(--tg-phone-width, 432px);
	    top:0;
	    border-radius:0;
	    border:0;
	    box-shadow:none;
	    overflow:visible;
	    transform:translateX(-50%) scale(var(--phone-scale,1));
	    transform-origin:top center;
	  }
	  	  body.tg-webapp.phone-scaled .phone::after{
	    box-shadow:inset 0 -80px 110px rgba(5,11,20,.58), inset 0 48px 70px rgba(5,11,20,.25);
	  }
	  	  body.tg-webapp.phone-scaled .nav{
	    padding:11px 10px 20px;
	  }
	  body.tg-webapp.phone-scaled .nav button{
	    font-size:13px;
	    gap:7px;
	    padding:8px 2px;
	  }
	  body.tg-webapp.phone-scaled .nav button svg{
	    width:26px;
	    height:26px;
	  }
	  body.tg-webapp.phone-scaled #scr-shop.active{
	    padding-left:10px;
	    padding-right:10px;
	  }
	  body.tg-webapp.phone-scaled .profile-content{
	    padding-left:10px;
	    padding-right:10px;
	  }
	  body.tg-webapp.phone-scaled .topbar{
	    min-height:62px;
	    padding-top:16px;
	    padding-bottom:13px;
	  }
	  body.tg-webapp.phone-scaled .ico{
	    width:43px;
	    height:43px;
	    font-size:17px;
	  }
	  body.tg-webapp.phone-scaled .ico svg{
	    width:24px;
	    height:24px;
	  }
	  body.tg-webapp.phone-scaled .tb-side{
	    gap:10px;
	  }
	  body.tg-webapp.phone-scaled .phone.omap-open .tb-right{
	    transform:translateX(8px);
	  }
	  body.tg-webapp.phone-scaled .map-toggle{
	    padding:4px;
	  }
	  body.tg-webapp.phone-scaled .tgl-pill{
	    top:4px;
	    bottom:4px;
	    left:4px;
	  }
	  body.tg-webapp.phone-scaled .map-toggle .tgl{
	    padding:8px 18px;
	    font-size:15px;
	  }
	  body.tg-webapp.phone-scaled .inv-toggle .tgl{
	    padding:8px 11px;
	    font-size:14px;
	  }
	  body.tg-webapp.phone-scaled .omap-title{
	    font-size:32px;
	  }
	  body.tg-webapp.phone-scaled .omap-sub{
	    font-size:15px;
	    line-height:1.52;
	  }
	  body.tg-webapp.phone-scaled .hot .dot{
	    width:15px;
	    height:15px;
	  }
	  body.tg-webapp.phone-scaled .hot .lbl{
	    max-width:190px;
	    font-size:13.5px;
	    line-height:1.26;
	  }
	  body.tg-webapp.phone-scaled .hot[data-pid="sdb"] .lbl{
	    white-space:normal;
	    min-width:198px;
	    max-width:214px;
	  }
	  body.tg-webapp.phone-scaled .hot[data-pid="tripwire"] .lbl{
	    white-space:normal;
	    min-width:170px;
	    max-width:190px;
	  }
	  body.tg-webapp.phone-scaled .topbar-eyebrow{
	    font-size:13px;
	    letter-spacing:2.8px;
	  }
	  body.tg-webapp.phone-scaled .topbar-name{
	    font-size:19px;
	  }
	  body.tg-webapp.phone-scaled .shop-balance,
	  body.tg-webapp.phone-scaled .tb-coins{
	    font-size:15px;
	  }
	  body.tg-webapp.phone-scaled .shop-card{
	    padding:16px;
	    min-height:316px;
	  }
	  body.tg-webapp.phone-scaled .gift-thumb{
	    margin-bottom:12px;
	  }
	  body.tg-webapp.phone-scaled .shop-card h3,
	  body.tg-webapp.phone-scaled .shop-card .t,
	  body.tg-webapp.phone-scaled .shop-card .title,
	  body.tg-webapp.phone-scaled .shop-card > b{
	    font-size:18.5px;
	    line-height:1.13;
	  }
	  body.tg-webapp.phone-scaled .shop-card p,
	  body.tg-webapp.phone-scaled .shop-card .muted,
	  body.tg-webapp.phone-scaled .shop-card .sub{
	    font-size:14.5px;
	    line-height:1.32;
	  }
	  body.tg-webapp.phone-scaled .shop-card .shop-btn,
	  body.tg-webapp.phone-scaled .btn{
	    font-size:15.8px;
	  }
	  body.tg-webapp.phone-scaled .shop-card .shop-btn{
	    padding-left:6px;
	    padding-right:6px;
	    white-space:nowrap;
	  }
	  body.tg-webapp.phone-scaled .lib2-title,
	  body.tg-webapp.phone-scaled .cmod-title{
	    font-size:18.5px;
	    line-height:1.17;
	  }
	  body.tg-webapp.phone-scaled .lib2-desc,
	  body.tg-webapp.phone-scaled .cmod-sub,
	  body.tg-webapp.phone-scaled .cmod-lrow,
	  body.tg-webapp.phone-scaled .omod-loc,
	  body.tg-webapp.phone-scaled .omod-prog{
	    font-size:13.6px;
	    line-height:1.38;
	  }
	  body.tg-webapp.phone-scaled .profile-hi{
	    font-size:31px;
	  }
	  body.tg-webapp.phone-scaled .profile-title,
	  body.tg-webapp.phone-scaled .profile-balance,
	  body.tg-webapp.phone-scaled .profile-lvl-label{
	    font-size:15.5px;
	  }
	  body.tg-webapp.phone-scaled .streak2{
	    padding:16px 17px;
	  }
	  body.tg-webapp.phone-scaled .streak2-title{
	    font-size:12.8px;
	    line-height:1.26;
	  }
	  body.tg-webapp.phone-scaled .streak2-sub{
	    font-size:14px;
	    line-height:1.38;
	  }
	  body.tg-webapp.phone-scaled .phone.club-open .omap-title{
	    max-width:calc(100% - 80px);
	    font-size:30px;
	    line-height:1.08;
	  }
	  body.tg-webapp.phone-scaled .phone.club-open .omap-sub.club-about{
	    max-width:calc(100% - 82px);
	    font-size:14.5px;
	    line-height:1.48;
	  }
	  body.tg-webapp.phone-scaled .next-card,
	  body.tg-webapp.phone-scaled .card,
	  body.tg-webapp.phone-scaled .lesson-gift,
	  body.tg-webapp.phone-scaled .lesson-task,
	  body.tg-webapp.phone-scaled .lesson-hw{
	    padding:16px;
	  }
	  body.tg-webapp.phone-scaled .next-card .muted,
	  body.tg-webapp.phone-scaled .card .muted,
	  body.tg-webapp.phone-scaled .note{
	    font-size:14px;
	    line-height:1.42;
	  }

	  body.tg-webapp.phone-scaled .next-label,
	  body.tg-webapp.phone-scaled .chat-meta b,
	  body.tg-webapp.phone-scaled .lesson-hw b{
	    font-size:14.5px;
	    line-height:1.28;
	  }
	  body.tg-webapp.phone-scaled .next-text,
	  body.tg-webapp.phone-scaled .chat-meta small,
	  body.tg-webapp.phone-scaled .acad-card-sub,
	  body.tg-webapp.phone-scaled .acad-card-desc{
	    font-size:13.5px;
	    line-height:1.38;
	  }
	  body.tg-webapp.phone-scaled .acad-card-title{
	    font-size:18px;
	    line-height:1.16;
	  }
	  body.tg-webapp.phone-scaled .acad-btn{
	    font-size:14px;
	  }
	  body.tg-webapp.phone-scaled .lesson-scroll2 .lesson-title{
	    font-size:29px;
	  }
	  body.tg-webapp.phone-scaled .lesson-desc,
	  body.tg-webapp.phone-scaled .lesson-syn-body,
	  body.tg-webapp.phone-scaled .lesson-task-desc{
	    font-size:17px;
	    line-height:1.62;
	  }
	  body.tg-webapp.phone-scaled .lesson-gift-title,
	  body.tg-webapp.phone-scaled .lesson-task-h,
	  body.tg-webapp.phone-scaled .bs-title,
	  body.tg-webapp.phone-scaled .ph-title{
	    font-size:22px;
	    line-height:1.24;
	  }
	  body.tg-webapp.phone-scaled .lesson-gift-sub,
	  body.tg-webapp.phone-scaled .bs-sub,
	  body.tg-webapp.phone-scaled .bs-price,
	  body.tg-webapp.phone-scaled .bs-inside{
	    font-size:15px;
	  }
	  body.tg-webapp.phone-scaled .bs-desc,
	  body.tg-webapp.phone-scaled .ph-p,
	  body.tg-webapp.phone-scaled .ph-hl > div{
	    font-size:16px;
	    line-height:1.6;
	  }
	  body.tg-webapp.phone-scaled .scroll:has(#scr-map.active),
	  body.tg-webapp.phone-scaled .scroll:has(#scr-mascot.active),
	  body.tg-webapp.phone-scaled #scr-map.active,
	  body.tg-webapp.phone-scaled #scr-mascot.active,
	  body.tg-webapp.phone-scaled #overlay.mapmode,
	  body.tg-webapp.phone-scaled .welcome-screen,
	  body.tg-webapp.phone-scaled .map-fullscreen,
	  body.tg-webapp.phone-scaled .mascot-full,
	  body.tg-webapp.phone-scaled .omap-frame{
	    overflow:visible;
	  }
	  	  body.tg-webapp.phone-scaled .welcome-bg,
	  body.tg-webapp.phone-scaled .welcome-veil,
	  body.tg-webapp.phone-scaled .map-fullscreen .map-bg,
	  body.tg-webapp.phone-scaled .map-fullscreen .map-veil,
	  body.tg-webapp.phone-scaled .mascot-full .mascot-bg-img,
	  body.tg-webapp.phone-scaled .mascot-full .mascot-transition,
	  body.tg-webapp.phone-scaled .mascot-top-fade,
	  body.tg-webapp.phone-scaled .mascot-bottom-fade,
	  body.tg-webapp.phone-scaled .omap-frame .omap-bg,
	  body.tg-webapp.phone-scaled .omap-frame .omap-veil,
	  body.tg-webapp.phone-scaled .omap-scrim,
	  body.tg-webapp.phone-scaled .lib-backdrop,
	  body.tg-webapp.phone-scaled .map-layer-lib,
	  body.tg-webapp.phone-scaled .omap-layer-lib,
	  body.tg-webapp.phone-scaled .lesson-screen,
	  body.tg-webapp.phone-scaled .lesson-topbar,
	  body.tg-webapp.phone-scaled .omap-loader{
	    width:100%;
	    margin-left:0;
	  }
	  body.tg-webapp.phone-scaled .omap-lib-scroll,
	  body.tg-webapp.phone-scaled .lesson-scroll2,
	  body.tg-webapp.phone-scaled .lesson-body{
	    padding-left:12px;
	    padding-right:12px;
	  }
	  body.tg-webapp.phone-scaled .lesson-topbar{
	    padding-left:22px;
	    padding-right:22px;
	  }
	  body.tg-webapp.phone-scaled .bs-wrap{
	    left:0;
	    right:0;
	  }
	  body.tg-webapp.phone-scaled .bs-sheet{
	    padding-left:12px;
	    padding-right:12px;
	  }
	  body.tg-webapp.phone-scaled .bs-x{
	    right:16px;
	    width:34px;
	    height:34px;
	    font-size:14px;
	  }
	  body.tg-webapp.phone-scaled .welcome-screen .welcome-bg,
	  body.tg-webapp.phone-scaled .welcome-screen .welcome-veil{
	    width:100%;
	    margin-left:0;
	  }
	  body.tg-webapp.phone-scaled .shop-bg,
	  body.tg-webapp.phone-scaled .profile-bg{
	    position:fixed;
	    left:0;
	    right:0;
	    top:0;
	    bottom:0;
	    height:auto;
	  }
	  body.tg-webapp.phone-scaled .shop-bg::before,
	  body.tg-webapp.phone-scaled .shop-bg::after,
	  body.tg-webapp.phone-scaled .profile-bg::before,
	  body.tg-webapp.phone-scaled .profile-bg::after{
	    left:0;
	    right:0;
	    top:0;
	    bottom:0;
	    height:auto;
	  }
	  body.tg-webapp.phone-scaled #overlay[data-src="inventory"]{
	    background:linear-gradient(180deg, #06101d, #050b14);
	  }
	  body.tg-webapp.phone-scaled #overlay.active:not(.mapmode){
	    margin-left:0;
	    margin-right:0;
	    padding-left:10px;
	    padding-right:10px;
	  }
	  body.tg-webapp.phone-scaled #overlay.active:not(.mapmode):not(.club-fullbg){
	    background:linear-gradient(180deg, #06101d, #050b14);
	    backdrop-filter:none;
	    -webkit-backdrop-filter:none;
	  }
	  body.tg-webapp.phone-scaled #overlay.club-fullbg{
	    margin-left:0;
	    margin-right:0;
	    padding-left:0;
	    padding-right:0;
	  }
	  /* v385: крупная типографика Академии клуба + единая читаемость Telegram */
	  body.tg-webapp.phone-scaled .topbar .mini,
	  body.tg-webapp.phone-scaled .lesson-topbar .mini{
	    font-size:13.8px;
	    line-height:1.3;
	  }
	  body.tg-webapp.phone-scaled .profile-content{
	    font-size:15px;
	  }
	  body.tg-webapp.phone-scaled .streak2-title,
	  body.tg-webapp.phone-scaled .section-title,
	  body.tg-webapp.phone-scaled .profile-section-title{
	    font-size:13px;
	    line-height:1.22;
	    letter-spacing:2px;
	  }
	  body.tg-webapp.phone-scaled .streak2-sub,
	  body.tg-webapp.phone-scaled .next-text,
	  body.tg-webapp.phone-scaled .chat-meta small{
	    font-size:14.4px;
	    line-height:1.34;
	  }
	  body.tg-webapp.phone-scaled .next-label,
	  body.tg-webapp.phone-scaled .chat-meta b{
	    font-size:15px;
	    line-height:1.24;
	    font-weight:700;
	  }
	  body.tg-webapp.phone-scaled .next-card{
	    padding:16px 17px;
	  }
	  body.tg-webapp.phone-scaled .chat-card{
	    padding-top:14px;
	    padding-bottom:14px;
	  }
	  body.tg-webapp.phone-scaled .lesson-scroll2{
	    padding-left:18px;
	    padding-right:18px;
	  }
	  body.tg-webapp.phone-scaled .lesson-scroll2 .lesson-title{
	    font-size:30px;
	    line-height:1.16;
	  }
	  body.tg-webapp.phone-scaled .lesson-syn-head{
	    padding:16px 17px;
	  }
	  body.tg-webapp.phone-scaled .lesson-syn-head b{
	    font-size:17px;
	    line-height:1.24;
	  }
	  body.tg-webapp.phone-scaled .lesson-syn-body{
	    padding:8px 18px 20px;
	    font-size:15.8px;
	    line-height:1.52;
	  }
	  body.tg-webapp.phone-scaled .syn-lead,
	  body.tg-webapp.phone-scaled .syn-text,
	  body.tg-webapp.phone-scaled .lesson-syn-body > p{
	    font-size:15.8px;
	    line-height:1.52;
	  }
	  body.tg-webapp.phone-scaled .syn-label{
	    font-size:13.4px;
	    line-height:1.22;
	    letter-spacing:1.9px;
	    margin-top:20px;
	  }
	  body.tg-webapp.phone-scaled .syn-callout{
	    padding:15px 16px;
	  }
	  body.tg-webapp.phone-scaled .syn-co-h{
	    font-size:18px;
	    line-height:1.18;
	  }
	  body.tg-webapp.phone-scaled .syn-co-tx p,
	  body.tg-webapp.phone-scaled .syn-key span,
	  body.tg-webapp.phone-scaled .syn-steps li,
	  body.tg-webapp.phone-scaled .syn-points li,
	  body.tg-webapp.phone-scaled .syn-takeaway-tx,
	  body.tg-webapp.phone-scaled .lesson-syn-body ul:not(.syn-points):not(.syn-steps) li{
	    font-size:15.2px;
	    line-height:1.48;
	  }
	  body.tg-webapp.phone-scaled .syn-quote{
	    font-size:18px;
	    line-height:1.38;
	  }
	  body.tg-webapp.phone-scaled .syn-points,
	  body.tg-webapp.phone-scaled .syn-steps{
	    gap:10px;
	  }
	  body.tg-webapp.phone-scaled .syn-scroll{
	    padding-left:18px;
	    padding-right:18px;
	  }
	  body.tg-webapp.phone-scaled .syn-pagetitle{
	    font-size:30px;
	    line-height:1.12;
	  }
	  body.tg-webapp.phone-scaled .syn-page-eyebrow{
	    font-size:13px;
	    letter-spacing:2.3px;
	  }
	  body.tg-webapp.phone-scaled .syn-card-h{
	    font-size:18px;
	    line-height:1.18;
	  }
	  body.tg-webapp.phone-scaled .syn-p,
	  body.tg-webapp.phone-scaled .syn-li{
	    font-size:15.8px;
	    line-height:1.5;
	  }
	  body.tg-webapp.phone-scaled .art-lead,
	  body.tg-webapp.phone-scaled .art-p,
	  body.tg-webapp.phone-scaled .art-points li,
	  body.tg-webapp.phone-scaled .art-body ul:not(.art-points):not(.art-steps) li,
	  body.tg-webapp.phone-scaled .art-body ol:not(.art-points):not(.art-steps) li{
	    font-size:15.6px;
	    line-height:1.58;
	  }
	  body.tg-webapp.phone-scaled .art-callout-tx p,
	  body.tg-webapp.phone-scaled .art-todo-tx,
	  body.tg-webapp.phone-scaled .art-case-body,
	  body.tg-webapp.phone-scaled .art-case-take{
	    font-size:15px;
	    line-height:1.5;
	  }
	  body.tg-webapp.phone-scaled .art-note{
	    font-size:14.2px;
	    line-height:1.5;
	  }

	  body.tg-webapp.phone-scaled .academy-screen{
	    padding-left:16px;
	    padding-right:16px;
	  }
	  body.tg-webapp.phone-scaled .acad-title{
	    font-size:29px;
	    line-height:1.1;
	  }
	  body.tg-webapp.phone-scaled .acad-desc{
	    font-size:14.8px;
	    line-height:1.43;
	    max-width:360px;
	  }
	  body.tg-webapp.phone-scaled .acad-tab{
	    font-size:14px;
	    padding:9px 16px;
	  }
	  body.tg-webapp.phone-scaled .acad-card2{
	    gap:15px;
	    padding:17px;
	    border-radius:18px;
	  }
	  body.tg-webapp.phone-scaled .acad-thumb{
	    flex-basis:92px;
	    width:92px;
	    border-radius:14px;
	  }
	  body.tg-webapp.phone-scaled .acad-card-title{
	    font-size:22px;
	    line-height:1.12;
	  }
	  body.tg-webapp.phone-scaled .acad-card-sub{
	    font-size:15px;
	    line-height:1.24;
	    margin:4px 0 7px;
	  }
	  body.tg-webapp.phone-scaled .acad-card-desc{
	    font-size:17px;
	    line-height:1.32;
	    margin:8px 0 14px;
	  }
	  body.tg-webapp.phone-scaled .acad-btn{
	    font-size:16px;
	    line-height:1.15;
	    padding:10px 17px;
	    border-radius:12px;
	  }
	  body.tg-webapp.phone-scaled .shop-card p,
	  body.tg-webapp.phone-scaled .shop-card .muted,
	  body.tg-webapp.phone-scaled .shop-card .sub{
	    font-size:14.7px;
	    line-height:1.28;
	  }
	  body.tg-webapp.phone-scaled .lib2-desc,
	  body.tg-webapp.phone-scaled .cmod-sub,
	  body.tg-webapp.phone-scaled .cmod-lrow,
	  body.tg-webapp.phone-scaled .omod-loc,
	  body.tg-webapp.phone-scaled .omod-prog{
	    font-size:14.4px;
	    line-height:1.34;
	  }
	}

/* v386: финальный слой читаемости для Telegram, стоит после всех старых сжатий */
body.tg-webapp .phone .acad-title,
body.phone-scaled .phone .acad-title{ font-size:32px !important; line-height:1.08 !important; }
body.tg-webapp .phone .acad-desc,
body.phone-scaled .phone .acad-desc{ font-size:17px !important; line-height:1.42 !important; }
body.tg-webapp .phone .acad-tab,
body.phone-scaled .phone .acad-tab{ font-size:16px !important; line-height:1.15 !important; padding:11px 18px !important; }
body.tg-webapp .phone .acad-card2,
body.phone-scaled .phone .acad-card2{ gap:16px !important; padding:18px !important; border-radius:18px !important; }
body.tg-webapp .phone .acad-thumb,
body.phone-scaled .phone .acad-thumb{ flex-basis:96px !important; width:96px !important; border-radius:14px !important; }
body.tg-webapp .phone .acad-card-title,
body.phone-scaled .phone .acad-card-title{ font-size:24px !important; line-height:1.12 !important; }
body.tg-webapp .phone .acad-card-sub,
body.phone-scaled .phone .acad-card-sub{ font-size:16.5px !important; line-height:1.28 !important; margin:5px 0 8px !important; }
body.tg-webapp .phone .acad-card-desc,
body.phone-scaled .phone .acad-card-desc{ font-size:18px !important; line-height:1.36 !important; margin:8px 0 15px !important; }
body.tg-webapp .phone .acad-btn,
body.phone-scaled .phone .acad-btn{ font-size:17px !important; line-height:1.15 !important; padding:11px 18px !important; font-weight:800 !important; }

body.tg-webapp .phone .cmod-title,
body.phone-scaled .phone .cmod-title,
body.tg-webapp .phone .lib2-title,
body.phone-scaled .phone .lib2-title{ font-size:24px !important; line-height:1.14 !important; }
body.tg-webapp .phone .cmod-sub,
body.phone-scaled .phone .cmod-sub,
body.tg-webapp .phone .lib2-desc,
body.phone-scaled .phone .lib2-desc{ font-size:16.5px !important; line-height:1.36 !important; }
body.tg-webapp .phone .cmod-lrow,
body.phone-scaled .phone .cmod-lrow,
body.tg-webapp .phone .omod-loc,
body.phone-scaled .phone .omod-loc,
body.tg-webapp .phone .omod-prog,
body.phone-scaled .phone .omod-prog{ font-size:15.5px !important; line-height:1.32 !important; }

body.tg-webapp .phone .streak2-title,
body.phone-scaled .phone .streak2-title,
body.tg-webapp .phone .section-title,
body.phone-scaled .phone .section-title,
body.tg-webapp .phone .profile-section-title,
body.phone-scaled .phone .profile-section-title{ font-size:15px !important; line-height:1.2 !important; letter-spacing:2.1px !important; }
body.tg-webapp .phone .streak2-sub,
body.phone-scaled .phone .streak2-sub,
body.tg-webapp .phone .next-text,
body.phone-scaled .phone .next-text,
body.tg-webapp .phone .chat-meta small,
body.phone-scaled .phone .chat-meta small{ font-size:16px !important; line-height:1.34 !important; }
body.tg-webapp .phone .next-label,
body.phone-scaled .phone .next-label,
body.tg-webapp .phone .chat-meta b,
body.phone-scaled .phone .chat-meta b{ font-size:17px !important; line-height:1.22 !important; font-weight:800 !important; }

body.tg-webapp .phone .lesson-syn-head b,
body.phone-scaled .phone .lesson-syn-head b{ font-size:19px !important; line-height:1.2 !important; }
body.tg-webapp .phone .lesson-syn-body,
body.phone-scaled .phone .lesson-syn-body,
body.tg-webapp .phone .lesson-syn-body > p,
body.phone-scaled .phone .lesson-syn-body > p,
body.tg-webapp .phone .syn-lead,
body.phone-scaled .phone .syn-lead,
body.tg-webapp .phone .syn-text,
body.phone-scaled .phone .syn-text{ font-size:17.5px !important; line-height:1.5 !important; }
body.tg-webapp .phone .syn-co-tx p,
body.phone-scaled .phone .syn-co-tx p,
body.tg-webapp .phone .syn-key span,
body.phone-scaled .phone .syn-key span,
body.tg-webapp .phone .syn-steps li,
body.phone-scaled .phone .syn-steps li,
body.tg-webapp .phone .syn-points li,
body.phone-scaled .phone .syn-points li,
body.tg-webapp .phone .lesson-syn-body ul:not(.syn-points):not(.syn-steps) li,
body.phone-scaled .phone .lesson-syn-body ul:not(.syn-points):not(.syn-steps) li{ font-size:16.8px !important; line-height:1.46 !important; }

/* v387: единый эталон карточек — как текст в карточке серии дней */
body.tg-webapp .phone,
body.phone-scaled .phone{
  --card-copy:16px;
  --card-copy-lh:1.42;
  --card-title:21px;
  --card-title-lh:1.18;
}

body.tg-webapp .phone .acad-card-title,
body.phone-scaled .phone .acad-card-title,
body.tg-webapp .phone .drill-card2 .drill-name,
body.phone-scaled .phone .drill-card2 .drill-name,
body.tg-webapp .phone .bs-title,
body.phone-scaled .phone .bs-title,
body.tg-webapp .phone .lib2-title,
body.phone-scaled .phone .lib2-title,
body.tg-webapp .phone .cmod-title,
body.phone-scaled .phone .cmod-title,
body.tg-webapp .phone .omod-title,
body.phone-scaled .phone .omod-title{
  font-size:var(--card-title) !important;
  line-height:var(--card-title-lh) !important;
}

body.tg-webapp .phone .acad-card-sub,
body.phone-scaled .phone .acad-card-sub,
body.tg-webapp .phone .acad-card-desc,
body.phone-scaled .phone .acad-card-desc,
body.tg-webapp .phone .drill-card2 .drill-sit,
body.phone-scaled .phone .drill-card2 .drill-sit,
body.tg-webapp .phone .drillvideo-sit,
body.phone-scaled .phone .drillvideo-sit,
body.tg-webapp .phone .drillvideo-desc,
body.phone-scaled .phone .drillvideo-desc,
body.tg-webapp .phone .drill-desc p,
body.phone-scaled .phone .drill-desc p,
body.tg-webapp .phone .ch-desc,
body.phone-scaled .phone .ch-desc,
body.tg-webapp .phone .trenazal-desc,
body.phone-scaled .phone .trenazal-desc,
body.tg-webapp .phone .bs-desc,
body.phone-scaled .phone .bs-desc,
body.tg-webapp .phone .lib2-desc,
body.phone-scaled .phone .lib2-desc,
body.tg-webapp .phone .cmod-sub,
body.phone-scaled .phone .cmod-sub,
body.tg-webapp .phone .cmod-lrow,
body.phone-scaled .phone .cmod-lrow,
body.tg-webapp .phone .omod-loc,
body.phone-scaled .phone .omod-loc,
body.tg-webapp .phone .omod-prog,
body.phone-scaled .phone .omod-prog,
body.tg-webapp .phone .next-text,
body.phone-scaled .phone .next-text,
body.tg-webapp .phone .streak2-sub,
body.phone-scaled .phone .streak2-sub,
body.tg-webapp .phone .chat-meta small,
body.phone-scaled .phone .chat-meta small,
body.tg-webapp .phone .test-intro-lead,
body.phone-scaled .phone .test-intro-lead,
body.tg-webapp .phone .test-intro-note,
body.phone-scaled .phone .test-intro-note,
body.tg-webapp .phone .test-review-item,
body.phone-scaled .phone .test-review-item,
body.tg-webapp .phone .lesson-task-desc,
body.phone-scaled .phone .lesson-task-desc{
  font-size:var(--card-copy) !important;
  line-height:var(--card-copy-lh) !important;
}

body.tg-webapp .phone .acad-card2,
body.phone-scaled .phone .acad-card2{ gap:15px !important; padding:17px !important; }
body.tg-webapp .phone .acad-thumb,
body.phone-scaled .phone .acad-thumb{ flex-basis:94px !important; width:94px !important; }
body.tg-webapp .phone .acad-btn,
body.phone-scaled .phone .acad-btn,
body.tg-webapp .phone .drill-btn,
body.phone-scaled .phone .drill-btn{
  font-size:16px !important;
  line-height:1.15 !important;
  padding:10px 17px !important;
}

/* v388: заголовки материалов в Академиях — плотные, как заголовки чатов */
body.tg-webapp .phone .acad-card-title,
body.phone-scaled .phone .acad-card-title{
  font-family:var(--sans) !important;
  font-size:18.5px !important;
  line-height:1.16 !important;
  font-weight:800 !important;
  letter-spacing:0 !important;
}

/* v389: единый Telegram-проход — стабильные фоны, читаемые шрифты, без случайного зума */
html,
body,
.phone{
  -webkit-text-size-adjust:100%;
}
body.tg-webapp,
body.tg-webapp .phone,
body.tg-webapp .screen,
body.phone-scaled,
body.phone-scaled .phone,
body.phone-scaled .screen{
  touch-action:manipulation;
}
body.tg-webapp input,
body.tg-webapp textarea,
body.tg-webapp select,
body.phone-scaled input,
body.phone-scaled textarea,
body.phone-scaled select{
  font-size:16px !important;
}
.toast{ pointer-events:auto; }
.toasts{ pointer-events:none; }
.toast.dismiss{ animation:toastDismiss .18s ease forwards !important; }
@keyframes toastDismiss{ to{ opacity:0; transform:translateY(-34px) scale(.97); } }

body.tg-webapp .phone #scr-shop,
body.phone-scaled .phone #scr-shop{
  background:
    linear-gradient(180deg,rgba(5,11,20,.18),rgba(5,11,20,.56)),
    url('public/universe/shop/shop-bg.webp?v=49') center top/cover no-repeat,
    #06101d !important;
}
body.tg-webapp .phone #scr-profile,
body.phone-scaled .phone #scr-profile{
  background:
    linear-gradient(180deg,rgba(5,11,20,.1),rgba(5,11,20,.42)),
    url('public/universe/profile-bg.webp?v=59') center top/cover no-repeat,
    #06101d !important;
}
body.tg-webapp .phone .shop-bg,
body.phone-scaled .phone .shop-bg,
body.tg-webapp .phone .profile-bg,
body.phone-scaled .phone .profile-bg{
  position:fixed !important;
  inset:0 !important;
  height:auto !important;
  opacity:1 !important;
}
body.tg-webapp .phone .shop-bg::before,
body.phone-scaled .phone .shop-bg::before,
body.tg-webapp .phone .shop-bg::after,
body.phone-scaled .phone .shop-bg::after,
body.tg-webapp .phone .profile-bg::before,
body.phone-scaled .phone .profile-bg::before,
body.tg-webapp .phone .profile-bg::after,
body.phone-scaled .phone .profile-bg::after{
  inset:0 !important;
  height:auto !important;
  left:0 !important;
  right:0 !important;
  top:0 !important;
  bottom:0 !important;
}

body.tg-webapp .phone .welcome-pre,
body.phone-scaled .phone .welcome-pre{
  font-size:21px !important;
  line-height:1.12 !important;
}
body.tg-webapp .phone .welcome-island,
body.phone-scaled .phone .welcome-island{
  font-size:58px !important;
  line-height:.92 !important;
}
body.tg-webapp .phone .welcome-desc,
body.phone-scaled .phone .welcome-desc{
  font-size:16px !important;
  line-height:1.5 !important;
}

body.tg-webapp .phone .topbar-mascot-title .mini,
body.phone-scaled .phone .topbar-mascot-title .mini{
  font-size:14.5px !important;
  letter-spacing:2.2px !important;
}
body.tg-webapp .phone .topbar-mxp-row,
body.phone-scaled .phone .topbar-mxp-row{
  width:270px !important;
  gap:11px !important;
}
body.tg-webapp .phone .topbar-mxp-bar,
body.phone-scaled .phone .topbar-mxp-bar{
  width:270px !important;
  height:7px !important;
}
body.tg-webapp .phone .topbar-mxp-val,
body.phone-scaled .phone .topbar-mxp-val{
  font-size:12.5px !important;
  line-height:1.1 !important;
}

body.tg-webapp .phone .profile-content,
body.phone-scaled .phone .profile-content{
  padding-left:22px !important;
  padding-right:22px !important;
}
body.tg-webapp .phone .streak2-title,
body.phone-scaled .phone .streak2-title,
body.tg-webapp .phone .section-title,
body.phone-scaled .phone .section-title,
body.tg-webapp .phone .profile-section-title,
body.phone-scaled .phone .profile-section-title{
  font-size:14px !important;
  line-height:1.22 !important;
}
body.tg-webapp .phone .streak2-sub,
body.phone-scaled .phone .streak2-sub,
body.tg-webapp .phone .next-text,
body.phone-scaled .phone .next-text,
body.tg-webapp .phone .chat-meta small,
body.phone-scaled .phone .chat-meta small{
  font-size:16px !important;
  line-height:1.36 !important;
}
body.tg-webapp .phone .next-label,
body.phone-scaled .phone .next-label,
body.tg-webapp .phone .chat-meta b,
body.phone-scaled .phone .chat-meta b{
  font-size:17px !important;
  line-height:1.22 !important;
  font-weight:800 !important;
}
body.tg-webapp .phone .next-card,
body.phone-scaled .phone .next-card{
  padding:18px 20px !important;
}

body.tg-webapp .phone .acad-card2,
body.phone-scaled .phone .acad-card2{
  gap:16px !important;
  padding:19px !important;
}
body.tg-webapp .phone .acad-card-title,
body.phone-scaled .phone .acad-card-title{
  font-family:var(--sans) !important;
  font-size:18px !important;
  line-height:1.2 !important;
  font-weight:800 !important;
}
body.tg-webapp .phone .acad-card-desc,
body.phone-scaled .phone .acad-card-desc,
body.tg-webapp .phone .acad-card-sub,
body.phone-scaled .phone .acad-card-sub{
  font-size:16px !important;
  line-height:1.36 !important;
}
body.tg-webapp .phone .acad-btn,
body.phone-scaled .phone .acad-btn{
  font-size:16px !important;
}

body.tg-webapp .phone .jrn-write-card,
body.phone-scaled .phone .jrn-write-card,
body.tg-webapp .phone .qst-card,
body.phone-scaled .phone .qst-card{
  padding:28px 24px !important;
  gap:18px !important;
}
body.tg-webapp .phone .jrn-write-title,
body.phone-scaled .phone .jrn-write-title,
body.tg-webapp .phone .cap-form-title,
body.phone-scaled .phone .cap-form-title,
body.tg-webapp .phone .qst-eyebrow,
body.phone-scaled .phone .qst-eyebrow{
  font-size:20px !important;
  line-height:1.2 !important;
}
body.tg-webapp .phone .jrn-write .jrn-q,
body.phone-scaled .phone .jrn-write .jrn-q{
  font-size:22px !important;
  line-height:1.34 !important;
}
body.tg-webapp .phone .qst-lead,
body.phone-scaled .phone .qst-lead{
  font-size:18px !important;
  line-height:1.5 !important;
}
body.tg-webapp .phone .qst-anon-tx,
body.phone-scaled .phone .qst-anon-tx,
body.tg-webapp .phone .qst-foot,
body.phone-scaled .phone .qst-foot,
body.tg-webapp .phone .qst-sent-hint,
body.phone-scaled .phone .qst-sent-hint,
body.tg-webapp .phone .qst-empty p,
body.phone-scaled .phone .qst-empty p{
  font-size:16px !important;
  line-height:1.48 !important;
}
body.tg-webapp .phone .qst-input,
body.phone-scaled .phone .qst-input,
body.tg-webapp .phone .jrn-input,
body.phone-scaled .phone .jrn-input,
body.tg-webapp .phone .jrn-input2,
body.phone-scaled .phone .jrn-input2,
body.tg-webapp .phone .cap-textarea,
body.phone-scaled .phone .cap-textarea{
  font-size:16px !important;
  line-height:1.45 !important;
}

body.tg-webapp .phone .cap-wrap,
body.phone-scaled .phone .cap-wrap{
  justify-content:flex-start !important;
  padding-top:116px !important;
}
body.tg-webapp .phone .cap-form,
body.phone-scaled .phone .cap-form{
  padding:28px 24px !important;
}
body.tg-webapp .phone .cap-form-sub,
body.phone-scaled .phone .cap-form-sub,
body.tg-webapp .phone .cap-left-note,
body.phone-scaled .phone .cap-left-note{
  font-size:16px !important;
  line-height:1.42 !important;
}
body.tg-webapp .phone .cap-date-pick,
body.phone-scaled .phone .cap-date-pick{
  font-size:16px !important;
}

body.tg-webapp .phone .dialogs-screen .acad-title,
body.phone-scaled .phone .dialogs-screen .acad-title,
body.tg-webapp .phone .challenge-screen .ch-title,
body.phone-scaled .phone .challenge-screen .ch-title,
body.tg-webapp .phone .trenazal-title,
body.phone-scaled .phone .trenazal-title{
  font-size:34px !important;
  line-height:1.08 !important;
}
body.tg-webapp .phone .dialogs-screen .acad-desc,
body.phone-scaled .phone .dialogs-screen .acad-desc,
body.tg-webapp .phone .art-callout-tx p,
body.phone-scaled .phone .art-callout-tx p,
body.tg-webapp .phone .challenge-screen .ch-desc,
body.phone-scaled .phone .challenge-screen .ch-desc,
body.tg-webapp .phone .trenazal-desc,
body.phone-scaled .phone .trenazal-desc{
  font-size:17px !important;
  line-height:1.48 !important;
}
body.tg-webapp .phone .dlg-voice,
body.phone-scaled .phone .dlg-voice,
body.tg-webapp .phone .art-callout-h,
body.phone-scaled .phone .art-callout-h{
  font-size:18px !important;
  line-height:1.22 !important;
}
body.tg-webapp .phone .challenge-screen .ch-progress-note,
body.phone-scaled .phone .challenge-screen .ch-progress-note{
  font-size:16px !important;
  line-height:1.3 !important;
}
body.tg-webapp .phone .challenge-screen .ch-cur-text,
body.phone-scaled .phone .challenge-screen .ch-cur-text{
  font-size:18px !important;
  line-height:1.5 !important;
}
body.tg-webapp .phone .drill-card2 .drill-name,
body.phone-scaled .phone .drill-card2 .drill-name{
  font-size:18px !important;
  line-height:1.18 !important;
}
body.tg-webapp .phone .drill-card2 .drill-sit,
body.phone-scaled .phone .drill-card2 .drill-sit{
  font-size:16px !important;
  line-height:1.36 !important;
}

body.tg-webapp .phone .dm-intro-callout,
body.phone-scaled .phone .dm-intro-callout,
body.tg-webapp .phone .dm-danger-how,
body.phone-scaled .phone .dm-danger-how,
body.tg-webapp .phone .dm-plan-how,
body.phone-scaled .phone .dm-plan-how,
body.tg-webapp .phone .dm-act,
body.phone-scaled .phone .dm-act,
body.tg-webapp .phone .dm-main-dir,
body.phone-scaled .phone .dm-main-dir,
body.tg-webapp .phone .dm-result-sub,
body.phone-scaled .phone .dm-result-sub{
  font-size:16px !important;
  line-height:1.46 !important;
}
body.tg-webapp .phone .dm-danger-name,
body.phone-scaled .phone .dm-danger-name,
body.tg-webapp .phone .dm-plan-name,
body.phone-scaled .phone .dm-plan-name{
  font-size:17px !important;
  line-height:1.25 !important;
  font-weight:800 !important;
}
body.tg-webapp .phone .dm-cat-title,
body.phone-scaled .phone .dm-cat-title,
body.tg-webapp .phone .dm-cat-now,
body.phone-scaled .phone .dm-cat-now{
  font-size:18px !important;
  line-height:1.22 !important;
}

body.tg-webapp .phone .bs-modleft .module-open-pill,
body.phone-scaled .phone .bs-modleft .module-open-pill{
  display:inline-flex;
  width:max-content;
  max-width:100%;
  margin:0 0 10px;
  padding:5px 11px;
  border-radius:999px;
  border:1px solid rgba(230,211,163,.32);
  background:rgba(230,211,163,.12);
  color:var(--gold);
  font-family:var(--sans);
  font-size:13px;
  line-height:1.2;
  font-weight:800;
}

/* v390: точная правка формы "Вопрос на эфир" в Telegram */
body.tg-webapp #overlay[data-src="questions"] .jrn-wrap,
body.phone-scaled #overlay[data-src="questions"] .jrn-wrap{
  padding-top:22px !important;
}
body.tg-webapp .phone .qst-card,
body.phone-scaled .phone .qst-card{
  padding:24px 22px 25px !important;
  gap:14px !important;
}
body.tg-webapp .phone .qst-eyebrow,
body.phone-scaled .phone .qst-eyebrow{
  font-size:18px !important;
  line-height:1.18 !important;
}
body.tg-webapp .phone .qst-lead,
body.phone-scaled .phone .qst-lead{
  font-size:15.5px !important;
  line-height:1.42 !important;
  max-width:330px !important;
  margin:0 auto !important;
}
body.tg-webapp .phone .qst-anon,
body.phone-scaled .phone .qst-anon{
  padding:12px 14px !important;
}
body.tg-webapp .phone .qst-anon-tx,
body.phone-scaled .phone .qst-anon-tx{
  font-size:14.5px !important;
  line-height:1.42 !important;
}
body.tg-webapp .phone .qst-foot,
body.phone-scaled .phone .qst-foot{
  font-size:13.5px !important;
  line-height:1.42 !important;
}

/* v391: читаемые карточки голосов в "Защитном звонке" */
body.tg-webapp .phone .dlg-body,
body.phone-scaled .phone .dlg-body{
  gap:18px !important;
}
body.tg-webapp .phone .dlg-msg,
body.phone-scaled .phone .dlg-msg{
  padding:18px 18px !important;
  border-radius:19px !important;
}
body.tg-webapp .phone .dlg-voice,
body.phone-scaled .phone .dlg-voice{
  font-size:18px !important;
  line-height:1.22 !important;
  margin-bottom:9px !important;
}
body.tg-webapp .phone .dlg-text,
body.phone-scaled .phone .dlg-text{
  font-size:17px !important;
  line-height:1.42 !important;
  margin-bottom:8px !important;
}
body.tg-webapp .phone .dlg-desc,
body.phone-scaled .phone .dlg-desc{
  font-size:15.5px !important;
  line-height:1.42 !important;
  margin-bottom:12px !important;
}
body.tg-webapp .phone .dlg-reply,
body.phone-scaled .phone .dlg-reply{
  margin-top:15px !important;
  padding-top:14px !important;
}
body.tg-webapp .phone .dlg-reply-h,
body.phone-scaled .phone .dlg-reply-h{
  font-size:14.5px !important;
  line-height:1.25 !important;
  margin-bottom:9px !important;
}
body.tg-webapp .phone .dlg-reply ul,
body.phone-scaled .phone .dlg-reply ul{
  gap:8px !important;
}
body.tg-webapp .phone .dlg-reply li,
body.phone-scaled .phone .dlg-reply li{
  font-size:15.5px !important;
  line-height:1.38 !important;
  padding-left:17px !important;
}


/* v393: единая финальная типографика и отступы Telegram mini app */
body.tg-webapp .phone,
body.phone-scaled .phone{
  -webkit-text-size-adjust:100%;
  text-size-adjust:100%;
}
body.tg-webapp .phone .welcome-pre,
body.phone-scaled .phone .welcome-pre{
  font-size:20px !important;
  line-height:1.22 !important;
  margin-bottom:2px !important;
}
body.tg-webapp .phone .welcome-island,
body.phone-scaled .phone .welcome-island{
  font-size:54px !important;
  line-height:.95 !important;
  white-space:nowrap !important;
}
body.tg-webapp .phone .welcome-desc,
body.phone-scaled .phone .welcome-desc{
  font-size:16px !important;
  line-height:1.42 !important;
  max-width:430px !important;
  margin:10px auto 17px !important;
  text-wrap:balance;
}
body.tg-webapp .phone .welcome-desc span,
body.phone-scaled .phone .welcome-desc span{ display:block; }

body.tg-webapp .phone .acad-card-title,
body.phone-scaled .phone .acad-card-title{
  font-family:var(--sans) !important;
  font-size:18px !important;
  line-height:1.22 !important;
  font-weight:800 !important;
  color:var(--ink) !important;
}
body.tg-webapp .phone .acad-card-desc,
body.phone-scaled .phone .acad-card-desc,
body.tg-webapp .phone .acad-card-sub,
body.phone-scaled .phone .acad-card-sub,
body.tg-webapp .phone .cmod-sub,
body.phone-scaled .phone .cmod-sub,
body.tg-webapp .phone .cmod-lrow,
body.phone-scaled .phone .cmod-lrow,
body.tg-webapp .phone .omod-sub,
body.phone-scaled .phone .omod-sub,
body.tg-webapp .phone .omod-meta,
body.phone-scaled .phone .omod-meta,
body.tg-webapp .phone .streak2-sub,
body.phone-scaled .phone .streak2-sub{
  font-size:16px !important;
  line-height:1.42 !important;
  color:var(--muted) !important;
}
body.tg-webapp .phone .acad-card2,
body.phone-scaled .phone .acad-card2{
  gap:16px !important;
  padding:18px !important;
}
body.tg-webapp .phone .acad-thumb,
body.phone-scaled .phone .acad-thumb{
  flex-basis:94px !important;
  width:94px !important;
}
body.tg-webapp .phone .acad-btn,
body.phone-scaled .phone .acad-btn{
  font-size:16px !important;
  line-height:1.2 !important;
  font-weight:800 !important;
}

body.tg-webapp .phone .cmod-card,
body.phone-scaled .phone .cmod-card{
  padding:16px !important;
}
body.tg-webapp .phone .cmod-titlerow,
body.phone-scaled .phone .cmod-titlerow{
  display:block !important;
}
body.tg-webapp .phone .cmod-title,
body.phone-scaled .phone .cmod-title{
  font-family:var(--sans) !important;
  font-size:18px !important;
  line-height:1.22 !important;
  font-weight:800 !important;
}
body.tg-webapp .phone .cmod-right,
body.phone-scaled .phone .cmod-right{
  margin-top:0 !important;
  padding-top:0 !important;
  justify-content:flex-start !important;
}
body.tg-webapp .phone .cmod-open-pill,
body.phone-scaled .phone .cmod-open-pill,
body.tg-webapp .phone .module-open-pill,
body.phone-scaled .phone .module-open-pill{
  display:inline-flex !important;
  width:max-content !important;
  max-width:100% !important;
  margin:0 0 8px !important;
  padding:5px 11px !important;
  border-radius:999px !important;
  border:1px solid rgba(230,211,163,.34) !important;
  background:rgba(230,211,163,.13) !important;
  color:var(--gold) !important;
  font-family:var(--sans) !important;
  font-size:13px !important;
  line-height:1.2 !important;
  font-weight:800 !important;
  letter-spacing:0 !important;
}

body.tg-webapp .phone .trip-scroll,
body.phone-scaled .phone .trip-scroll{
  padding-top:86px !important;
}
body.tg-webapp .phone .trip-intro,
body.phone-scaled .phone .trip-intro{
  padding-top:18px !important;
}
body.tg-webapp .phone .trip-intro-title,
body.phone-scaled .phone .trip-intro-title{
  font-size:31px !important;
  line-height:1.08 !important;
  margin:0 0 14px !important;
}
body.tg-webapp .phone .trip-lead,
body.phone-scaled .phone .trip-lead,
body.tg-webapp .phone .trip-co-body p,
body.phone-scaled .phone .trip-co-body p,
body.tg-webapp .phone .trip-p,
body.phone-scaled .phone .trip-p,
body.tg-webapp .phone .trip-li,
body.phone-scaled .phone .trip-li,
body.tg-webapp .phone .trip-saved,
body.phone-scaled .phone .trip-saved,
body.tg-webapp .phone .trip-dash-hint,
body.phone-scaled .phone .trip-dash-hint,
body.tg-webapp .phone .trip-facet-tx i,
body.phone-scaled .phone .trip-facet-tx i{
  font-size:16px !important;
  line-height:1.44 !important;
}
body.tg-webapp .phone .trip-facet-tx b,
body.phone-scaled .phone .trip-facet-tx b,
body.tg-webapp .phone .trip-co-h,
body.phone-scaled .phone .trip-co-h{
  font-family:var(--sans) !important;
  font-size:18px !important;
  line-height:1.22 !important;
  font-weight:800 !important;
}
body.tg-webapp .phone .trip-q,
body.phone-scaled .phone .trip-q{
  font-size:26px !important;
  line-height:1.18 !important;
}
body.tg-webapp .phone .trip-opt,
body.phone-scaled .phone .trip-opt{
  font-size:20px !important;
  line-height:1.22 !important;
  min-height:58px !important;
}

body.tg-webapp .phone .dialogs-screen,
body.phone-scaled .phone .dialogs-screen{
  padding-top:86px !important;
}
body.tg-webapp .phone .dialogs-screen .acad-title,
body.phone-scaled .phone .dialogs-screen .acad-title{
  margin-top:20px !important;
  font-size:34px !important;
  line-height:1.08 !important;
}
body.tg-webapp .phone .dialogs-screen .acad-desc,
body.phone-scaled .phone .dialogs-screen .acad-desc{
  font-size:16px !important;
  line-height:1.46 !important;
  max-width:390px !important;
  margin-top:12px !important;
}
body.tg-webapp .phone .dlg-hint,
body.phone-scaled .phone .dlg-hint{
  font-size:16px !important;
  line-height:1.42 !important;
}
body.tg-webapp .phone .dlg-msg,
body.phone-scaled .phone .dlg-msg{
  padding:18px !important;
}
body.tg-webapp .phone .dlg-voice,
body.phone-scaled .phone .dlg-voice{
  font-family:var(--sans) !important;
  font-size:18px !important;
  line-height:1.22 !important;
  font-weight:800 !important;
}
body.tg-webapp .phone .dlg-text,
body.phone-scaled .phone .dlg-text,
body.tg-webapp .phone .dlg-desc,
body.phone-scaled .phone .dlg-desc,
body.tg-webapp .phone .dlg-reply li,
body.phone-scaled .phone .dlg-reply li{
  font-family:var(--sans) !important;
  font-size:16px !important;
  line-height:1.42 !important;
  color:rgba(244,248,251,.86) !important;
}
body.tg-webapp .phone .dlg-reply-h,
body.phone-scaled .phone .dlg-reply-h{
  font-size:15px !important;
  line-height:1.25 !important;
  font-weight:800 !important;
}

body.tg-webapp .phone .qst-card,
body.phone-scaled .phone .qst-card{
  margin-top:24px !important;
  padding:24px 22px !important;
  gap:14px !important;
}
body.tg-webapp .phone .qst-lead,
body.phone-scaled .phone .qst-lead,
body.tg-webapp .phone .qst-anon-tx,
body.phone-scaled .phone .qst-anon-tx,
body.tg-webapp .phone .qst-input,
body.phone-scaled .phone .qst-input,
body.tg-webapp .phone .qst-foot,
body.phone-scaled .phone .qst-foot,
body.tg-webapp .phone .qst-empty p,
body.phone-scaled .phone .qst-empty p{
  font-size:16px !important;
  line-height:1.42 !important;
}
body.tg-webapp .phone .qst-eyebrow,
body.phone-scaled .phone .qst-eyebrow{
  font-size:18px !important;
  line-height:1.18 !important;
}

body.tg-webapp .phone .trenazal-desc,
body.phone-scaled .phone .trenazal-desc,
body.tg-webapp .phone .drill-card2 .drill-sit,
body.phone-scaled .phone .drill-card2 .drill-sit,
body.tg-webapp .phone .challenge-screen .ch-desc,
body.phone-scaled .phone .challenge-screen .ch-desc,
body.tg-webapp .phone .challenge-screen .ch-cur-text,
body.phone-scaled .phone .challenge-screen .ch-cur-text{
  font-size:16px !important;
  line-height:1.42 !important;
}
body.tg-webapp .phone .drill-card2 .drill-name,
body.phone-scaled .phone .drill-card2 .drill-name{
  font-size:18px !important;
  line-height:1.2 !important;
}
body.tg-webapp .phone .challenge-screen .ch-progress-note,
body.phone-scaled .phone .challenge-screen .ch-progress-note{
  font-size:16px !important;
}

body.tg-webapp .phone .lesson-title,
body.phone-scaled .phone .lesson-title{
  font-size:30px !important;
  line-height:1.12 !important;
}
body.tg-webapp .phone .lesson-desc,
body.phone-scaled .phone .lesson-desc,
body.tg-webapp .phone .note-body,
body.phone-scaled .phone .note-body,
body.tg-webapp .phone .note-body p,
body.phone-scaled .phone .note-body p,
body.tg-webapp .phone .note-body li,
body.phone-scaled .phone .note-body li{
  font-size:16px !important;
  line-height:1.44 !important;
}

/* v394: опускаем форму "Вопрос на эфир" ниже верхней панели в Telegram */
body.tg-webapp #overlay[data-src="questions"] .jrn-wrap,
body.phone-scaled #overlay[data-src="questions"] .jrn-wrap{
  padding-top:60px !important;
}

/* v395: профиль и лавка сразу получают финальный фон, без поздней подмены слоя */
body.tg-webapp .phone #scr-shop,
body.phone-scaled .phone #scr-shop{
  background:
    linear-gradient(180deg,rgba(5,11,20,.48),rgba(5,11,20,.72) 44%,rgba(5,11,20,.9)),
    url('public/universe/shop/shop-bg.webp?v=49') center top/cover no-repeat,
    #06101d !important;
}
body.tg-webapp .phone #scr-profile,
body.phone-scaled .phone #scr-profile{
  background:
    linear-gradient(180deg,rgba(5,11,20,.42),rgba(5,11,20,.7) 48%,rgba(5,11,20,.9)),
    url('public/universe/profile-bg.webp?v=59') center top/cover no-repeat,
    #06101d !important;
}
body.tg-webapp .phone .shop-bg::before,
body.phone-scaled .phone .shop-bg::before,
body.tg-webapp .phone .profile-bg::before,
body.phone-scaled .phone .profile-bg::before,
body.tg-webapp .phone .shop-bg::after,
body.phone-scaled .phone .shop-bg::after,
body.tg-webapp .phone .profile-bg::after,
body.phone-scaled .phone .profile-bg::after{
  background:none !important;
}

/* v396: Telegram Desktop / WebView fallback, единая типографика и стабильные фоны */
html{
  -webkit-text-size-adjust:100%;
  text-size-adjust:100%;
  touch-action:manipulation;
}
body{
  overscroll-behavior:none;
}
button,
input,
textarea,
select{
  touch-action:manipulation;
}
input,
textarea,
select{
  font-size:16px !important;
}
.phone.screen-shop-bg{
  background:
    linear-gradient(180deg,rgba(5,11,20,.42),rgba(5,11,20,.72) 50%,rgba(5,11,20,.94)),
    url('public/universe/shop/shop-bg.webp?v=49') center top/cover no-repeat,
    #06101d;
}
.phone.screen-profile-bg{
  background:
    linear-gradient(180deg,rgba(5,11,20,.42),rgba(5,11,20,.72) 50%,rgba(5,11,20,.94)),
    url('public/universe/profile-bg.webp?v=59') center top/cover no-repeat,
    #06101d;
}
.ui-fixed-ico{
  width:22px;
  height:22px;
  display:block;
  fill:none;
  stroke:currentColor;
  stroke-width:1.65;
  stroke-linecap:round;
  stroke-linejoin:round;
}
.club-dock-ico .ui-fixed-ico{
  width:24px;
  height:24px;
  color:#f2e3b4;
  filter:drop-shadow(0 0 9px rgba(230,211,163,.28));
}
.cap-slot .ui-fixed-ico,
.cap-arch-ico .ui-fixed-ico{
  width:22px;
  height:22px;
}
.cap-big-ico{
  margin:8px 0 16px;
  display:grid;
  place-items:center;
  animation:flame-pulse 2.4s ease-in-out infinite;
}
.cap-big-ico .ui-fixed-ico{
  width:58px;
  height:58px;
  color:#f2e3b4;
  filter:drop-shadow(0 8px 20px rgba(230,211,163,.4));
}
.cap-peek-ico{
  display:grid;
  place-items:center;
  color:#f2e3b4;
}
.cap-peek-ico .ui-fixed-ico{
  width:42px;
  height:42px;
}
.ios-notif.dismiss{
  transform:translateY(-130%) !important;
  opacity:0 !important;
}
.cmod-titlerow{
  display:grid;
  grid-template-columns:1fr auto;
  align-items:start;
}
.cmod-open-pill{
  grid-column:1 / -1;
  justify-self:start;
  margin:0 0 7px;
  font-size:12px;
  line-height:1.1;
  font-weight:800;
  letter-spacing:.4px;
  text-transform:uppercase;
  color:#f2e3b4;
  background:rgba(230,211,163,.12);
  border:1px solid rgba(230,211,163,.35);
  border-radius:999px;
  padding:5px 10px;
}
.module-open-pill{
  display:inline-flex;
  margin:0 0 10px;
  font-size:12px;
  line-height:1.1;
  font-weight:800;
  letter-spacing:.4px;
  text-transform:uppercase;
  color:#f2e3b4;
  background:rgba(230,211,163,.12);
  border:1px solid rgba(230,211,163,.35);
  border-radius:999px;
  padding:5px 10px;
}
body.tg-webapp .phone .acad-card-title,
body.phone-scaled .phone .acad-card-title,
body.tg-webapp .phone .chat-meta b,
body.phone-scaled .phone .chat-meta b{
  font-family:var(--sans) !important;
  font-size:18px !important;
  line-height:1.22 !important;
  font-weight:800 !important;
  letter-spacing:0 !important;
}
body.tg-webapp .phone .acad-card-desc,
body.phone-scaled .phone .acad-card-desc,
body.tg-webapp .phone .acad-card-sub,
body.phone-scaled .phone .acad-card-sub,
body.tg-webapp .phone .trenazal-desc,
body.phone-scaled .phone .trenazal-desc,
body.tg-webapp .phone .ch-desc,
body.phone-scaled .phone .ch-desc,
body.tg-webapp .phone .ch-cur-text,
body.phone-scaled .phone .ch-cur-text,
body.tg-webapp .phone .drill-card2 .drill-sit,
body.phone-scaled .phone .drill-card2 .drill-sit{
  font-size:14px !important;
  line-height:1.48 !important;
}
body.tg-webapp .phone .streak2-sub,
body.phone-scaled .phone .streak2-sub{
  font-size:14px !important;
  line-height:1.48 !important;
}
body.tg-webapp .phone .drill-card2 .drill-name,
body.phone-scaled .phone .drill-card2 .drill-name{
  font-size:17px !important;
  line-height:1.24 !important;
  font-weight:800 !important;
}
body.tg-webapp .phone .welcome-desc,
body.phone-scaled .phone .welcome-desc{
  max-width:320px;
  margin-left:auto;
  margin-right:auto;
  text-wrap:balance;
}
body.tg-webapp .phone .welcome-desc span,
body.phone-scaled .phone .welcome-desc span{
  display:inline;
}
body.tg-webapp .phone .welcome-desc span + span::before,
body.phone-scaled .phone .welcome-desc span + span::before{
  content:" ";
}
body.tg-webapp #overlay[data-src="questions"] .jrn-wrap,
body.phone-scaled #overlay[data-src="questions"] .jrn-wrap{
  padding-top:88px !important;
}
body.tg-webapp .phone .trip-scroll,
body.phone-scaled .phone .trip-scroll,
body.tg-webapp .phone .syn-scroll,
body.phone-scaled .phone .syn-scroll,
body.tg-webapp .phone .test-scroll,
body.phone-scaled .phone .test-scroll{
  padding-top:82px !important;
}
body.tg-desktop .topbar,
body.tg-desktop .nav,
body.tg-desktop .card,
body.tg-desktop .shop-card,
body.tg-desktop .acad-card2,
body.tg-desktop .drill-card2,
body.tg-desktop .cmod-card,
body.tg-desktop .lib-card2,
body.tg-desktop .next-card,
body.tg-desktop .chat-card,
body.tg-desktop .streak2,
body.tg-desktop .bs-sheet,
body.tg-desktop .ios-notif,
body.tg-desktop .club-dock-ico,
body.tg-desktop .course-acad-fab,
body.tg-desktop .map-toggle,
body.tg-desktop .qst-item,
body.tg-desktop .jrn-cal,
body.tg-desktop .jrn-input2,
body.tg-desktop .cap-date-pick,
body.tg-desktop .cap-textarea{
  background-color:rgba(10,22,36,.84) !important;
  -webkit-backdrop-filter:blur(0px) !important;
  backdrop-filter:blur(0px) !important;
  box-shadow:0 12px 34px rgba(0,0,0,.42), inset 0 1px 0 rgba(255,255,255,.08) !important;
}
body.tg-desktop .nav{
  background:linear-gradient(180deg,rgba(10,22,36,.72),rgba(5,11,20,.98)) !important;
}
body.tg-desktop .shop-card,
body.tg-desktop .acad-card2,
body.tg-desktop .drill-card2,
body.tg-desktop .cmod-card{
  border-color:rgba(207,227,240,.22) !important;
}
@supports not ((backdrop-filter:blur(1px)) or (-webkit-backdrop-filter:blur(1px))){
  .topbar,
  .nav,
  .card,
  .shop-card,
  .acad-card2,
  .drill-card2,
  .cmod-card,
  .lib-card2,
  .next-card,
  .chat-card,
  .streak2,
  .bs-sheet,
  .ios-notif{
    background-color:rgba(10,22,36,.88) !important;
    box-shadow:0 12px 34px rgba(0,0,0,.44), inset 0 1px 0 rgba(255,255,255,.08) !important;
  }
}

/* v397: фон лавки/профиля фиксированный, карточки снова настоящее матовое стекло */
.phone.screen-shop-bg,
.phone.screen-profile-bg{
  background:
    radial-gradient(120% 60% at 50% -6%, rgba(111,198,238,.10), transparent 60%),
    linear-gradient(180deg, #0a1828, #060e18 60%) !important;
}
.phone.screen-shop-bg::before,
.phone.screen-profile-bg::before{
  content:"";
  position:absolute;
  inset:-18px;
  z-index:0;
  pointer-events:none;
  opacity:1;
  transform:none;
  background-repeat:no-repeat;
  background-size:cover;
  background-position:center top;
  filter:blur(7px) brightness(.92);
}
.phone.screen-shop-bg::before{
  background-image:
    linear-gradient(180deg,rgba(5,11,20,.38),rgba(5,11,20,.7) 48%,rgba(5,11,20,.94)),
    url('public/universe/shop/shop-bg.webp?v=49');
}
.phone.screen-profile-bg::before{
  background-image:
    linear-gradient(180deg,rgba(5,11,20,.36),rgba(5,11,20,.68) 48%,rgba(5,11,20,.94)),
    url('public/universe/profile-bg.webp?v=59');
}
body.tg-webapp .phone #scr-shop,
body.phone-scaled .phone #scr-shop,
body.tg-webapp .phone #scr-profile,
body.phone-scaled .phone #scr-profile,
.phone.screen-shop-bg #scr-shop,
.phone.screen-profile-bg #scr-profile{
  background:transparent !important;
}
body.tg-webapp .phone .shop-bg,
body.phone-scaled .phone .shop-bg,
body.tg-webapp .phone .profile-bg,
body.phone-scaled .phone .profile-bg,
.phone.screen-shop-bg .shop-bg,
.phone.screen-profile-bg .profile-bg{
  display:none !important;
}
.phone.screen-shop-bg .shop-card,
.phone.screen-profile-bg .streak2,
.phone.screen-profile-bg .next-card,
.phone.screen-profile-bg .chat-card,
.phone.screen-profile-bg .card,
.phone.screen-shop-bg .card.shop-card{
  background:
    linear-gradient(180deg,rgba(255,255,255,.16),rgba(255,255,255,.055)) !important;
  border-color:rgba(225,238,247,.22) !important;
  -webkit-backdrop-filter:blur(24px) saturate(155%) !important;
  backdrop-filter:blur(24px) saturate(155%) !important;
  box-shadow:
    0 16px 42px rgba(0,0,0,.38),
    inset 0 1px 0 rgba(255,255,255,.18),
    inset 0 -1px 0 rgba(255,255,255,.04) !important;
}
.phone.screen-shop-bg .shop-card .gift-thumb{
  background:rgba(5,12,22,.22) !important;
  border-color:rgba(225,238,247,.18) !important;
}
.phone.screen-shop-bg .nav,
.phone.screen-profile-bg .nav,
.phone.screen-shop-bg .topbar,
.phone.screen-profile-bg .topbar{
  -webkit-backdrop-filter:blur(22px) saturate(150%) !important;
  backdrop-filter:blur(22px) saturate(150%) !important;
}
body.tg-desktop .phone.screen-shop-bg .shop-card,
body.tg-desktop .phone.screen-profile-bg .streak2,
body.tg-desktop .phone.screen-profile-bg .next-card,
body.tg-desktop .phone.screen-profile-bg .chat-card,
body.tg-desktop .phone.screen-profile-bg .card,
body.tg-desktop .phone.screen-shop-bg .card.shop-card{
  background:
    linear-gradient(180deg,rgba(18,36,56,.76),rgba(8,18,31,.64)) !important;
  -webkit-backdrop-filter:blur(24px) saturate(145%) !important;
  backdrop-filter:blur(24px) saturate(145%) !important;
}

/* v398: отдельный фиксированный фон вне .scroll, чтобы профиль не "ехал" при прокрутке */
.screen-fixed-bg{
  position:absolute;
  inset:-18px;
  z-index:0;
  pointer-events:none;
  opacity:0;
  background-repeat:no-repeat;
  background-size:cover;
  background-position:center top;
  filter:blur(7px) brightness(.92);
  transform:translateZ(0);
}
.phone.screen-shop-bg .screen-fixed-bg{
  opacity:1;
  background-image:
    linear-gradient(180deg,rgba(5,11,20,.38),rgba(5,11,20,.7) 48%,rgba(5,11,20,.94)),
    url('public/universe/shop/shop-bg.webp?v=49');
}
.phone.screen-profile-bg .screen-fixed-bg{
  opacity:1;
  background-image:
    linear-gradient(180deg,rgba(5,11,20,.36),rgba(5,11,20,.68) 48%,rgba(5,11,20,.94)),
    url('public/universe/profile-bg.webp?v=59');
}
.phone.screen-shop-bg::before,
.phone.screen-profile-bg::before{
  background-image:
    radial-gradient(1px 1px at 20% 18%, rgba(207,227,240,.7) 60%, transparent),
    radial-gradient(1px 1px at 70% 12%, rgba(207,227,240,.7) 60%, transparent),
    radial-gradient(1.4px 1.4px at 42% 30%, rgba(234,244,251,.7) 60%, transparent),
    radial-gradient(1px 1px at 85% 38%, rgba(207,227,240,.65) 60%, transparent),
    radial-gradient(1px 1px at 32% 52%, rgba(185,214,232,.6) 60%, transparent),
    radial-gradient(1px 1px at 60% 60%, rgba(207,227,240,.65) 60%, transparent) !important;
  inset:0 !important;
  filter:none !important;
  opacity:.5 !important;
}
body.tg-webapp .phone #scr-profile,
body.phone-scaled .phone #scr-profile,
.phone.screen-profile-bg #scr-profile,
.phone.screen-profile-bg .profile-content{
  background:none !important;
  background-image:none !important;
}
body.tg-webapp .phone .profile-bg,
body.phone-scaled .phone .profile-bg,
.phone.screen-profile-bg .profile-bg{
  display:none !important;
  background:none !important;
  background-image:none !important;
}

/* v399: финальный предохранитель — картинка профиля не может жить внутри скроллящегося экрана */
.phone.screen-profile-bg #scr-profile,
.phone.screen-profile-bg #scr-profile *,
body.tg-webapp .phone.screen-profile-bg #scr-profile,
body.tg-webapp .phone.screen-profile-bg #scr-profile *,
body.phone-scaled .phone.screen-profile-bg #scr-profile,
body.phone-scaled .phone.screen-profile-bg #scr-profile *{
  background-attachment:initial !important;
}
.phone.screen-profile-bg #scr-profile,
.phone.screen-profile-bg .profile-content,
.phone.screen-profile-bg .profile-hero2{
  background-image:none !important;
  background-color:transparent !important;
}
.phone.screen-profile-bg #screenFixedBg{
  position:absolute !important;
  inset:-18px !important;
  z-index:0 !important;
  transform:translate3d(0,0,0) !important;
  will-change:auto !important;
}

/* v400: единая типографика для сайта и Telegram. Эталон описания - карточки товаров в лавке. */
body .phone .streak2-sub,
body .phone .next-text,
body .phone .chat-meta small,
body .phone .acad-card-desc,
body .phone .acad-card-sub,
body .phone .trenazal-desc,
body .phone .ch-desc,
body .phone .ch-cur-text,
body .phone .drill-card2 .drill-sit,
body .phone .cmod-sub,
body .phone .cmod-lrow,
body .phone .omod-sub,
body .phone .omod-meta,
body.tg-webapp .phone .streak2-sub,
body.tg-webapp .phone .next-text,
body.tg-webapp .phone .chat-meta small,
body.tg-webapp .phone .acad-card-desc,
body.tg-webapp .phone .acad-card-sub,
body.tg-webapp .phone .trenazal-desc,
body.tg-webapp .phone .ch-desc,
body.tg-webapp .phone .ch-cur-text,
body.tg-webapp .phone .drill-card2 .drill-sit,
body.tg-webapp .phone .cmod-sub,
body.tg-webapp .phone .cmod-lrow,
body.tg-webapp .phone .omod-sub,
body.tg-webapp .phone .omod-meta,
body.phone-scaled .phone .streak2-sub,
body.phone-scaled .phone .next-text,
body.phone-scaled .phone .chat-meta small,
body.phone-scaled .phone .acad-card-desc,
body.phone-scaled .phone .acad-card-sub,
body.phone-scaled .phone .trenazal-desc,
body.phone-scaled .phone .ch-desc,
body.phone-scaled .phone .ch-cur-text,
body.phone-scaled .phone .drill-card2 .drill-sit,
body.phone-scaled .phone .cmod-sub,
body.phone-scaled .phone .cmod-lrow,
body.phone-scaled .phone .omod-sub,
body.phone-scaled .phone .omod-meta{
  font-size:14px !important;
  line-height:1.48 !important;
  letter-spacing:0 !important;
}

body .phone .acad-card-title,
body .phone .chat-meta b,
body .phone .cmod-title,
body .phone .drill-card2 .drill-name,
body.tg-webapp .phone .acad-card-title,
body.tg-webapp .phone .chat-meta b,
body.tg-webapp .phone .cmod-title,
body.tg-webapp .phone .drill-card2 .drill-name,
body.phone-scaled .phone .acad-card-title,
body.phone-scaled .phone .chat-meta b,
body.phone-scaled .phone .cmod-title,
body.phone-scaled .phone .drill-card2 .drill-name{
  font-family:var(--sans) !important;
  font-size:17px !important;
  line-height:1.24 !important;
  font-weight:800 !important;
  letter-spacing:0 !important;
}

body .phone .streak2-title,
body .phone .section-title,
body .phone .profile-section-title,
body .phone .next-label,
body.tg-webapp .phone .streak2-title,
body.tg-webapp .phone .section-title,
body.tg-webapp .phone .profile-section-title,
body.tg-webapp .phone .next-label,
body.phone-scaled .phone .streak2-title,
body.phone-scaled .phone .section-title,
body.phone-scaled .phone .profile-section-title,
body.phone-scaled .phone .next-label{
  font-size:14px !important;
  line-height:1.25 !important;
  letter-spacing:0 !important;
}

/* v11: читаемый текст, стабильное нижнее меню и меньший отступ лавки. */
html body.tg-webapp.phone-scaled .phone .mascot-hint-text,
html body.tg-webapp.phone-scaled .phone .ios-notif-text,
html body.tg-webapp.phone-scaled .phone .lesson-tool-sub,
html body.tg-webapp.phone-scaled .phone .tool-why-text,
html body.tg-webapp.phone-scaled .phone .qst-anon-tx,
html body.tg-webapp.phone-scaled .phone .qst-foot,
html body.tg-webapp.phone-scaled .phone .qst-sent-hint,
html body.tg-webapp.phone-scaled .phone .trenazal-desc,
html body.tg-webapp.phone-scaled .phone .drill-card2 .drill-sit,
html body.tg-webapp.phone-scaled .phone .ch-desc,
html body.tg-webapp.phone-scaled .phone .ch-cur-text,
html body.tg-webapp.phone-scaled .phone .acad-card-desc,
html body.tg-webapp.phone-scaled .phone .acad-card-sub,
html body.tg-webapp.phone-scaled .phone .cmod-sub,
html body.tg-webapp.phone-scaled .phone .cmod-lrow,
html body.tg-webapp.phone-scaled .phone .omod-sub,
html body.tg-webapp.phone-scaled .phone .omod-meta,
html body.tg-webapp.phone-scaled .phone .lib2-desc,
html body.tg-webapp.phone-scaled .phone .next-text,
html body.tg-webapp.phone-scaled .phone .streak2-sub,
html body.tg-webapp.phone-scaled .phone .note,
html body.tg-webapp.phone-scaled .phone .cap-form-sub,
html body.tg-webapp.phone-scaled .phone .cap-bottom-note,
html body.tg-webapp.phone-scaled .phone .trip-lead,
html body.tg-webapp.phone-scaled .phone .trip-p,
html body.tg-webapp.phone-scaled .phone .trip-li,
html body.tg-webapp.phone-scaled .phone .trip-saved,
html body.tg-webapp.phone-scaled .phone .trip-dash-hint{
  font-size:14px !important;
  line-height:1.45 !important;
  letter-spacing:0 !important;
}

html body.tg-webapp.phone-scaled .phone .mascot-hint-title{
  font-size:18px !important;
  line-height:1.18 !important;
}

html body.tg-webapp.phone-scaled .phone:not(.welcome-open) .nav,
html body.tg-webapp.phone-scaled .phone.screen-shop-bg .nav,
html body.tg-webapp.phone-scaled .phone.screen-profile-bg .nav,
html body.tg-webapp.phone-scaled.screen-shop-bg .phone .nav,
html body.tg-webapp.phone-scaled.screen-profile-bg .phone .nav{
  left:0 !important;
  right:0 !important;
  bottom:0 !important;
  width:auto !important;
  max-width:none !important;
  min-height:78px !important;
  padding:10px 10px 16px !important;
  border-radius:0 !important;
  background:linear-gradient(180deg, rgba(6,14,24,.20), rgba(6,14,24,.96)) !important;
  border-top:1px solid rgba(207,227,240,.14) !important;
  -webkit-backdrop-filter:blur(12px) saturate(130%) !important;
  backdrop-filter:blur(12px) saturate(130%) !important;
  transition:none !important;
  transform:none !important;
}

html body.tg-webapp.phone-scaled .phone:not(.welcome-open) .nav button,
html body.tg-webapp.phone-scaled .phone.screen-shop-bg .nav button,
html body.tg-webapp.phone-scaled .phone.screen-profile-bg .nav button,
html body.tg-webapp.phone-scaled.screen-shop-bg .phone .nav button,
html body.tg-webapp.phone-scaled.screen-profile-bg .phone .nav button{
  min-height:52px !important;
  font-size:10.5px !important;
  line-height:1.12 !important;
  gap:5px !important;
  padding:6px 2px !important;
  transition:color .12s ease, filter .12s ease !important;
}

html body.tg-webapp.phone-scaled .phone:not(.welcome-open) .nav button svg,
html body.tg-webapp.phone-scaled .phone.screen-shop-bg .nav button svg,
html body.tg-webapp.phone-scaled .phone.screen-profile-bg .nav button svg,
html body.tg-webapp.phone-scaled.screen-shop-bg .phone .nav button svg,
html body.tg-webapp.phone-scaled.screen-profile-bg .phone .nav button svg{
  width:23px !important;
  height:23px !important;
}

@media (max-width:720px){
  html body.tg-webapp.phone-scaled.screen-shop-bg .phone .shop-content,
  html body.tg-webapp.phone-scaled .phone.screen-shop-bg .shop-content,
  html body.tg-webapp.phone-scaled.screen-shop-bg .phone.screen-shop-bg #scr-shop .shop-content,
  html body.tg-webapp.phone-scaled .phone.screen-shop-bg #scr-shop .shop-content{
    padding-top:50px !important;
  }
}

/* v12: mobile Telegram polish for shop spacing and stable shared nav. */
html body.tg-webapp.phone-scaled.screen-shop-bg .phone #scr-shop .shop-content,
html body.tg-webapp.phone-scaled .phone.screen-shop-bg #scr-shop .shop-content{
  padding-top:50px !important;
}

@media (max-width:720px){
  html body.tg-webapp.phone-scaled .phone:not(.welcome-open) .nav{
    position:fixed !important;
    left:0 !important;
    right:0 !important;
    bottom:0 !important;
    /* .phone is already scaled to the Telegram viewport. Using 100vw here
       scales the viewport width a second time and leaves a gap on the right. */
    width:100% !important;
    max-width:none !important;
    min-height:78px !important;
    padding:10px 10px 16px !important;
    border-radius:0 !important;
    transform:none !important;
    transition:none !important;
  }
}

/* v13: tighter shop cards start under the header. */
html body.tg-webapp.phone-scaled.screen-shop-bg .phone #scr-shop.active,
html body.tg-webapp.phone-scaled .phone.screen-shop-bg #scr-shop.active{
  padding-top:70px !important;
}

html body.tg-webapp.phone-scaled.screen-shop-bg .phone #scr-shop .shop-content,
html body.tg-webapp.phone-scaled .phone.screen-shop-bg #scr-shop .shop-content{
  padding-top:18px !important;
}

/* Site/email auth shell. */
.site-login{
  position:fixed;
  inset:0;
  z-index:9999;
  display:grid;
  place-items:center;
  padding:22px;
  background:
    radial-gradient(circle at 50% 18%, rgba(108,190,255,.16), transparent 34%),
    rgba(2,8,16,.92);
  -webkit-backdrop-filter:blur(18px);
  backdrop-filter:blur(18px);
}
.site-login-card{
  width:min(420px,100%);
  padding:24px;
  border:1px solid rgba(218,232,255,.22);
  border-radius:24px;
  background:linear-gradient(180deg, rgba(21,38,58,.90), rgba(8,18,32,.96));
  box-shadow:0 24px 80px rgba(0,0,0,.45), inset 0 1px 0 rgba(255,255,255,.12);
  color:#f4f8ff;
}
.site-login-kicker{
  color:#ead9a9;
  font-size:12px;
  font-weight:800;
  letter-spacing:.24em;
  text-transform:uppercase;
}
.site-login-card h2{
  margin:8px 0 8px;
  font-family:var(--serif, Georgia, "Times New Roman", serif);
  font-size:31px;
  line-height:1.05;
}
.site-login-card p{
  margin:0 0 18px;
  color:rgba(221,235,248,.78);
  font-size:15px;
  line-height:1.45;
}
.site-login-card label{
  display:block;
  margin:13px 0 7px;
  color:#ead9a9;
  font-size:12px;
  font-weight:800;
  letter-spacing:.12em;
  text-transform:uppercase;
}
.site-login-card input{
  width:100%;
  border:1px solid rgba(218,232,255,.18);
  border-radius:14px;
  background:rgba(3,12,24,.48);
  color:#f4f8ff;
  padding:13px 14px;
  font-size:16px;
  outline:none;
}
.site-login-card input:focus{
  border-color:rgba(116,213,255,.75);
  box-shadow:0 0 0 3px rgba(88,189,242,.16);
}
.site-login-card .btn{
  width:100%;
  margin-top:18px;
}
.site-login-secondary{
  width:100%;
  margin-top:10px;
  padding:10px;
  color:rgba(221,235,248,.82);
  font-weight:700;
}
.site-login-error{
  min-height:20px;
  margin-top:8px;
  color:#ff9a9a;
  font-size:13px;
}
