/* ==========================================================================
   v57 — точечная полировка после аудита.
   Грузится после v56.css; тот же приём специфичности :root:not(#v).
   ========================================================================== */

/* 1. Бегущая строка: полоса чёрная (тёмная тема) / белая (светлая), текст фиолетовый */
:root:not(#v) .topline{background:#000;color:var(--violet-hi);border-bottom:1px solid rgba(255,255,255,.08)}
:root:not(#v) .topline .marquee a,:root:not(#v) .topline .marquee span{color:var(--violet-hi)}
:root:not(#v) .topline .marquee a::after{color:var(--pink);opacity:.8}
:root[data-theme="light"]:not(#v) .topline{background:#fff;color:var(--violet);border-bottom-color:rgba(0,0,0,.08)}
:root[data-theme="light"]:not(#v) .topline .marquee a,:root[data-theme="light"]:not(#v) .topline .marquee span{color:var(--violet)}

/* 2. Полутон: цвета на 40% меньше */
:root:not(#v) .hwf__word{--ht-amount:.24}
:root:not(#v) .display-xl{--ht-amount:.28}

/* 3. Слово-полутон в шапке страницы видно целиком (без подрезки краем героя) */
:root:not(#v) .ghr__mast{bottom:clamp(18px,3vw,44px)}
:root:not(#v) .ghr__mast .masthead{height:clamp(84px,12vw,180px)}
:root:not(#v) .ghr__content--page{padding-bottom:clamp(150px,19vw,280px)}

/* 4. Логотип из микроточек: цвета сегментов; в тёмной теме индиговый светлее */
:root:not(#v){--logo-pink:#f777b7;--logo-ink:#7c4dff;--logo-violet:#8b5cf6;--logo-lav:#bfa3ff}
:root[data-theme="light"]:not(#v){--logo-pink:#ef5aa6;--logo-ink:#46019a;--logo-violet:#6f28cf;--logo-lav:#9a6df5}
:root:not(#v) .logo__svg{width:30px;height:30px}

/* 5. Бублик: цифры в центре — общий стиль подписи больше не задевает барабаны
      цифр (12px и обрезка ломали их), центр читается на кольце из точек */
:root:not(#v) .donut__total > span{margin-top:4px;font:500 12px/1.2 var(--f-sans);color:var(--text-dim)}
:root:not(#v) .donut__total b{display:inline-flex;align-items:flex-start;font:700 34px/1 var(--f-num);letter-spacing:-.02em;color:var(--text)}
:root:not(#v) .donut__total b .rd,:root:not(#v) .donut__total b .rd__s,:root:not(#v) .donut__total b .rd-sep{
  font:inherit;line-height:1;margin:0;color:inherit}
:root:not(#v) .donut__total b .rd{height:1em;overflow:hidden}
:root:not(#v) .donut__total::before{content:"";position:absolute;left:50%;top:50%;width:58%;aspect-ratio:1;border-radius:50%;
  translate:-50% -50%;z-index:-1;background:color-mix(in srgb,var(--bg) 82%,transparent);box-shadow:var(--lq-rim)}
:root:not(#v) .donut__total{z-index:1;isolation:isolate}
:root:not(#v) .donut__val b .rd{height:1em;overflow:hidden}

/* 6. Загрузочный показ: название собирается по буквам, факт с ценой, подсказка */
:root:not(#v) .intro__label b{font:900 clamp(34px,6.2vw,72px)/.92 var(--f-display2);letter-spacing:-.04em}
:root:not(#v) .intro__ch{display:inline-block;opacity:0;translate:0 .45em;filter:blur(6px)}
:root:not(#v) .intro__label.is-on .intro__ch{opacity:1;translate:0 0;filter:blur(0);
  transition:opacity .42s cubic-bezier(.22,1,.36,1) calc(var(--n) * 22ms),translate .6s cubic-bezier(.22,1,.36,1) calc(var(--n) * 22ms),
             filter .5s cubic-bezier(.22,1,.36,1) calc(var(--n) * 22ms)}
:root:not(#v) .intro__label i{font:600 12.5px/1.4 var(--f-cond);letter-spacing:.12em;text-transform:uppercase;color:var(--text-dim)}
:root:not(#v) .intro__skip{position:absolute;left:50%;bottom:max(64px,calc(env(safe-area-inset-bottom) + 52px));translate:-50% 0;
  font:500 12px/1 var(--f-sans);color:var(--text-mute);letter-spacing:.02em;opacity:0;animation:v57-skip .6s .9s ease-out forwards}
@keyframes v57-skip{to{opacity:1}}
:root:not(#v) .intro__pips i.is-on{background:var(--violet-hi)}

/* 7. Курсор-линза: форма задаётся из JS по объекту (радиус, поворот) */
:root:not(#v) .lgc__lens,:root:not(#v) .lgc__shadow{transform-origin:50% 50%}
:root:not(#v) .lgc__shine,:root:not(#v) .lgc__rim{border-radius:inherit}

@media (prefers-reduced-motion:reduce){
  :root:not(#v) .intro__ch{opacity:1;translate:none;filter:none}
}
