/* FX-слой лендинга «Контент-завод» — порт движка обоих хабов (sergeiai.com / shchepkov.ru),
   палитра янтарная. Подключать ПОСЛЕ zavod.css. Анимации идут ВСЕГДА (prefers-reduced-motion
   осознанно не глушим — Windows Server включает его по умолчанию и убивает весь визуал). */
:root{
  --fx-glow:rgba(255,199,92,.15);    /* свечение под курсором (янтарь цеха) */
  --mq-ink:rgba(233,229,221,.82);    /* текст бегущей строки на тёмном */
}

/* курсор-свечение: область под мышью светлее */
.fx-spotlight{position:fixed;inset:0;z-index:4;pointer-events:none;mix-blend-mode:screen;opacity:0;
  transition:opacity .5s ease;
  background:radial-gradient(300px circle at var(--mx,50%) var(--my,40%),var(--fx-glow),transparent 62%)}
.fx-spotlight.on{opacity:1}

/* звёздное поле внутри тёмных блоков (canvas ОБЯЗАТЕЛЬНО absolute — иначе распирает блок) */
.fx-stars{position:absolute!important;inset:0;z-index:0;pointer-events:none}

/* бегущая строка */
.marquee{position:relative;overflow:hidden;
  -webkit-mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent);
          mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent)}
.marquee-track{display:inline-flex;align-items:center;white-space:nowrap;will-change:transform;
  animation:fxmq 36s linear infinite}
.marquee:hover .marquee-track{animation-play-state:paused}
.marquee .mi{display:inline-flex;align-items:center;font-size:13px;letter-spacing:.1em;text-transform:uppercase;
  font-weight:600;color:var(--mq-ink)}
.marquee .mi::after{content:'';width:6px;height:6px;border-radius:50%;background:var(--amber);margin:0 30px;flex:0 0 auto}
@keyframes fxmq{to{transform:translateX(-50%)}}

/* мигающий курсор (терминал-строка рова) */
.caret{display:inline-block;width:8px;height:1.02em;vertical-align:-2px;background:currentColor;margin-left:4px;
  animation:fxblink 1.06s steps(1) infinite}
@keyframes fxblink{50%{opacity:0}}

/* блик по основной кнопке */
.btn-pri{position:relative;overflow:hidden}
.btn-pri::after{content:'';position:absolute;top:-20%;left:-130%;width:55%;height:140%;
  background:linear-gradient(100deg,transparent,rgba(255,255,255,.30),transparent);
  transform:skewX(-18deg);pointer-events:none}
.btn-pri:hover::after{animation:fxsheen .9s ease}
@keyframes fxsheen{to{left:140%}}

@media(hover:none){.fx-spotlight{display:none}}

/* мерцание заголовка hero (белый→янтарь) */
.hero h1{background:linear-gradient(110deg,#fff 20%,#ffd98a 42%,#fff 64%);background-size:240% auto;
  -webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:transparent;
  animation:fxshimmer 6.5s linear infinite}
@keyframes fxshimmer{to{background-position:-240% center}}

/* scroll-reveal */
[data-reveal]{opacity:0;transform:translateY(22px);transition:opacity .6s ease,transform .6s cubic-bezier(.21,.7,.28,1)}
[data-reveal].is-in{opacity:1;transform:none}
[data-reveal][data-d="1"]{transition-delay:.08s}
[data-reveal][data-d="2"]{transition-delay:.16s}
[data-reveal][data-d="3"]{transition-delay:.24s}

/* ===== фишки 27.07 (разбор конкурента) ===== */

/* дыхание карточек: медленное вверх-вниз, соседи в противофазе */
.fx-float{animation:fxfloat 6s ease-in-out infinite}
.fx-float:nth-child(2){animation-delay:-2s}
.fx-float:nth-child(3){animation-delay:-4s}
@keyframes fxfloat{50%{transform:translateY(-8px)}}

/* авто-волна-блик по акцентному блоку/кнопке раз в ~5 сек (без ховера) */
.fx-sheen{position:relative;overflow:hidden}
.fx-sheen::before{content:'';position:absolute;top:-20%;left:-130%;width:55%;height:140%;z-index:1;
  background:linear-gradient(100deg,transparent,rgba(255,255,255,.28),transparent);
  transform:skewX(-18deg);pointer-events:none;animation:fxsheenloop 5s ease infinite}
@keyframes fxsheenloop{0%{left:-130%}22%{left:140%}100%{left:140%}}

/* вращающиеся лучи-санбёрст (за контентом тёмной секции) */
.fx-rays{position:absolute;left:50%;top:50%;width:240vmax;height:240vmax;z-index:0;pointer-events:none;
  transform:translate(-50%,-50%);opacity:.05;
  background:repeating-conic-gradient(from 0deg,#ffd84d 0deg 9deg,transparent 9deg 24deg);
  animation:fxrays 90s linear infinite}
@keyframes fxrays{to{transform:translate(-50%,-50%) rotate(360deg)}}

/* зубчатый разделитель-перфорация (низ тёмного блока над светлым/тёмным) */
.fx-serr{height:14px;background:radial-gradient(circle at 8px -4px,transparent 9px,var(--bg,#0e1116) 10px);
  background-size:16px 14px;background-repeat:repeat-x}
