/* ============ ANASTÉ — premium motion layer ============ */

/* прогресс чтения */
.mo-prog{position:fixed;left:0;top:0;right:0;height:2px;z-index:120;pointer-events:none}
.mo-prog i{display:block;height:100%;transform:scaleX(0);transform-origin:0 50%;
  background:linear-gradient(90deg,var(--oxblood),var(--brass) 55%,var(--blush));
  box-shadow:0 0 14px color-mix(in oklab,var(--brass) 55%,transparent)}

/* появление снизу */
.mo-rise{opacity:0;transform:translate3d(0,26px,0);
  transition:opacity .9s var(--ease),transform 1s var(--ease)}
.mo-rise.mo-in{opacity:1;transform:none}
.mo-d1{transition-delay:.08s}.mo-d2{transition-delay:.16s}.mo-d3{transition-delay:.24s}
.mo-d4{transition-delay:.32s}.mo-d5{transition-delay:.4s}.mo-d6{transition-delay:.48s}

/* раскрытие изображения шторкой (клипим внутренний img, чтобы
   IntersectionObserver видел сам контейнер) */
.mo-mask{position:relative;overflow:hidden}
.mo-mask>img{clip-path:inset(0 0 100% 0);transform:scale(1.1);
  transition:clip-path 1.15s var(--ease),transform 1.6s var(--ease)}
.mo-mask.mo-in>img{clip-path:inset(0 0 0 0);transform:scale(1)}

/* тонкая линия, что «прочерчивается» */
.mo-line{position:relative}
.mo-line::after{content:'';position:absolute;left:0;right:0;bottom:0;height:1px;
  background:linear-gradient(90deg,var(--brass),transparent);
  transform:scaleX(0);transform-origin:0 50%;transition:transform 1.1s var(--ease)}
.mo-line.mo-in::after{transform:scaleX(1)}

/* заголовок по словам */
.mo-split .mo-w{display:inline-block;overflow:hidden;vertical-align:bottom}
.mo-split .mo-w>i{display:inline-block;font-style:inherit;transform:translateY(105%);
  transition:transform .95s var(--ease)}
.mo-split.mo-in .mo-w>i{transform:none}

/* параллакс по скроллу */
[data-par]{will-change:transform;transform:translate3d(0,var(--py,0),0)}

/* магнитная кнопка */
.mo-mag{transform:translate3d(var(--mx,0),var(--my,0),0);
  transition:transform .5s var(--ease),box-shadow .45s var(--ease),background .35s var(--ease)}

/* 3D-наклон карточки + световой блик */
.mo-tilt{transform-style:preserve-3d;
  transform:perspective(900px) rotateX(var(--rx,0)) rotateY(var(--ry,0));
  transition:transform .55s var(--ease),box-shadow .55s var(--ease)}
.mo-tilt::before{content:'';position:absolute;inset:0;z-index:4;pointer-events:none;
  border-radius:inherit;opacity:0;transition:opacity .45s var(--ease);
  background:radial-gradient(340px circle at var(--gx,50%) var(--gy,50%),
    rgba(255,255,255,.16),transparent 62%)}
.mo-tilt:hover::before{opacity:1}

/* сцена с параллаксом по курсору */
.mo-scene .mo-l1{transform:translate3d(calc(var(--sx,0) * 1),calc(var(--sy,0) * 1),0)}
.mo-scene .mo-l2{transform:translate3d(calc(var(--sx,0) * -.6),calc(var(--sy,0) * -.5),0)}
.mo-scene .mo-l3{transform:translate3d(calc(var(--sx,0) * .35),calc(var(--sy,0) * .45),0)}
.mo-scene .mo-l1,.mo-scene .mo-l2,.mo-scene .mo-l3{transition:transform .1s linear}

/* бегущая строка */
.mo-marq{position:relative;overflow:hidden;border-block:1px solid var(--border);
  padding-block:14px;-webkit-mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent);
  mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent)}
.mo-marq-t{display:flex;width:max-content;gap:0;animation:mo-slide 42s linear infinite}
.mo-marq:hover .mo-marq-t{animation-play-state:paused}
.mo-marq b{font-family:var(--font-display);font-weight:400;font-size:var(--text-lg);
  color:var(--text);white-space:nowrap;display:inline-flex;align-items:center;gap:var(--s5);
  padding-inline:var(--s5)}
.mo-marq b::after{content:'';width:5px;height:5px;border-radius:50%;background:var(--brass);
  flex:0 0 5px;opacity:.85}
@keyframes mo-slide{to{transform:translate3d(-50%,0,0)}}

/* блеск латуни на CTA */
.mo-shine{position:relative;overflow:hidden}
.mo-shine::after{content:'';position:absolute;top:-60%;bottom:-60%;left:-40%;width:34%;
  transform:skewX(-18deg) translate3d(-260%,0,0);pointer-events:none;
  background:linear-gradient(90deg,transparent,rgba(255,255,255,.42),transparent)}
.mo-shine:hover::after{animation:mo-shine 1.1s var(--ease)}
@keyframes mo-shine{to{transform:skewX(-18deg) translate3d(420%,0,0)}}

@media (prefers-reduced-motion: reduce){
  .mo-rise,.mo-mask>img,.mo-line::after,.mo-split .mo-w>i{transition:none!important;
    opacity:1!important;transform:none!important;clip-path:none!important}
  .mo-marq-t{animation:none}
  .mo-tilt,.mo-mag{transform:none!important}
  .mo-prog{display:none}
}

/* ============ страница бренда — премиальные блоки ============ */
.bhero{position:relative}
.bhero-glow{position:absolute;z-index:0;right:-10%;top:-20%;width:60vw;height:60vw;pointer-events:none;
  background:radial-gradient(circle at 50% 50%,color-mix(in oklab,var(--oxblood) 42%,transparent),transparent 66%);
  filter:blur(30px);opacity:.55}
.bhero-logo{height:34px;width:auto;max-width:190px;object-fit:contain;display:block;
  margin-bottom:var(--s4);opacity:.94}
.bhero-cta{display:flex;align-items:center;gap:var(--s4);flex-wrap:wrap;margin-top:var(--s5)}
.bhero-cta .bprice{color:var(--muted);font-size:var(--text-sm);letter-spacing:.02em}
.bfounder{margin-top:var(--s4);color:var(--muted);font-size:var(--text-sm);
  padding-left:var(--s3);border-left:1px solid var(--brass)}

/* числовая полоса */
.bdigits{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));
  gap:1px;margin-top:var(--s6);background:var(--border);border-radius:18px;overflow:hidden}
.bdigit{background:var(--surface);padding:var(--s5) var(--s4);text-align:center}
.bdigit b{display:block;font-family:var(--font-display);font-weight:400;
  font-size:clamp(1.9rem,3.4vw,2.7rem);line-height:1;
  background:linear-gradient(180deg,var(--text),var(--brass));
  -webkit-background-clip:text;background-clip:text;color:transparent}
.bdigit span{display:block;margin-top:10px;font-size:var(--text-xs);letter-spacing:.14em;
  text-transform:uppercase;color:var(--muted)}

.bmarq{margin-top:var(--s6)}
.bfacts{margin-top:var(--s6)!important;border-radius:18px;overflow:hidden}

/* история: боковое фото с параллаксом */
.bstory-side{display:flex;flex-direction:column;gap:var(--s5)}
.bstory-ph{border-radius:20px;overflow:hidden;background:var(--plate);aspect-ratio:4/3}
.bstory-ph img{width:100%;height:100%;object-fit:contain;padding:10%;display:block}

/* ритуал бренда */
.britual{padding-block:var(--s7) var(--s5)}
.brit-rail{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:var(--s4)}
.brit{position:relative;display:flex;flex-direction:column;gap:10px;padding:var(--s5) var(--s4) var(--s4);
  border:1px solid var(--border);border-radius:20px;background:var(--surface);overflow:hidden;
  transition:transform .55s var(--ease),border-color .4s var(--ease),background .4s var(--ease)}
.brit::after{content:'';position:absolute;left:0;right:0;top:0;height:2px;transform:scaleX(0);
  transform-origin:0 50%;background:linear-gradient(90deg,var(--brass),transparent);
  transition:transform .6s var(--ease)}
.brit:hover{transform:translateY(-6px);border-color:color-mix(in oklab,var(--brass) 55%,var(--border));
  background:var(--surface-2)}
.brit:hover::after{transform:scaleX(1)}
.brit-n{font-family:var(--font-display);font-size:var(--text-sm);color:var(--brass);letter-spacing:.1em}
.brit-ph{display:block;height:118px;border-radius:14px;background:var(--plate);overflow:hidden}
.brit-ph img{width:100%;height:100%;object-fit:contain;padding:8%;display:block;
  transition:transform .7s var(--ease)}
.brit:hover .brit-ph img{transform:scale(1.06)}
.brit-st{font-size:var(--text-xs);letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.brit-nm{font-size:var(--text-sm);color:var(--text);line-height:1.45;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.brit-pr{color:var(--blush);font-size:var(--text-sm);font-weight:600}

/* AI-блок бренда */
.bai{padding-block:var(--s6)}
.bai-in{display:flex;align-items:center;justify-content:space-between;gap:var(--s6);
  padding:var(--s6);border:1px solid var(--border);border-radius:24px;position:relative;overflow:hidden;
  background:linear-gradient(120deg,var(--surface-2),var(--surface) 62%)}
.bai-in::before{content:'';position:absolute;inset:-40% -10% auto auto;width:44%;height:180%;
  pointer-events:none;background:radial-gradient(circle at 50% 50%,
    color-mix(in oklab,var(--brass) 26%,transparent),transparent 62%);filter:blur(24px)}
.bai-in>div{position:relative;z-index:1;max-width:60ch}
.bai-in .eyebrow{color:var(--brass)}
.bai-in h3{font-family:var(--font-display);font-weight:400;font-size:var(--text-xl);margin:10px 0 8px}
.bai-in .mut{color:var(--muted);font-size:var(--text-sm);line-height:1.65}
.bai-in .btn{position:relative;z-index:1;flex:0 0 auto}
.bai-in .btn svg{width:16px;height:16px}

/* чипы с количеством */
.bcats .chip i{font-style:normal;opacity:.55;font-size:.88em;margin-left:4px}
.bcats .chip.on i{opacity:.7}

@media(max-width:900px){
  .bhero-glow{width:110vw;height:80vw;right:-30%}
  .bstory-side{gap:var(--s4)}
  .bai-in{flex-direction:column;align-items:flex-start;gap:var(--s5);padding:var(--s5)}
  .bai-in .btn{width:100%;justify-content:center}
  .bdigits{grid-template-columns:repeat(2,1fr)}
  .bdigits>.bdigit:last-child:nth-child(odd){grid-column:1/-1}
  .bhero-logo{height:26px}
  .bhero{padding-top:var(--s6)!important}
  .brit-ph{height:96px}
}
@media(max-width:560px){
  .brit-rail{grid-template-columns:repeat(2,1fr);gap:12px}
  .brit{padding:var(--s4) 12px 12px;border-radius:16px}
  .bhero-cta{gap:12px}
  .bhero-cta .btn{width:100%;justify-content:center}
}

/* совмещение магнитного смещения с существующим подъёмом кнопок */
.btn-p.mo-mag:hover,.btn-g.mo-mag:hover{
  transform:translate3d(var(--mx,0),calc(var(--my,0) - 2px),0)}
/* наклон фото-подложки карточки товара */
.pcard .ph.mo-tilt{transition:transform .5s var(--ease),box-shadow .5s var(--ease)}
.pcard:hover .ph.mo-tilt{box-shadow:0 24px 48px -22px rgba(0,0,0,.55)}
/* защита от обрезки выносных элементов при пословном раскрытии */
.mo-split .mo-w{padding-bottom:.1em;margin-bottom:-.1em}
/* счётчик в чипах подкатегорий: воздух и приглушение */
.subrow .chip em{font-style:normal;margin-left:6px;opacity:.5;font-size:.88em}
.subrow .chip.on em,.subrow .chip[aria-current] em{opacity:.7}
