:root{--hh:64px}
/* ================= 404 AFFILIATE — hero redesign (desktop) ================= */
:root{
  --black:#000000;
  --ink-1:#0A0A0B;
  --orange:#FF4600;
  --orange-2:#FF6A33;
  --amber:#FFB005;
  --gray:#E7E7E3;
  --dark-gray:#232321;
  --font-display:'Unbounded','Montserrat',system-ui,sans-serif;
  --font-head:'Unbounded','Montserrat',system-ui,sans-serif;
  --font-body:'Montserrat',system-ui,-apple-system,sans-serif;
  --hh:64px;                 /* высота хедера */
}
/* ================= HEADER (как на текущем сайте) ================= */
.site{position:fixed;top:0;left:0;right:0;height:var(--hh);z-index:1000;background:#000;
  border-bottom:1px solid rgba(255,255,255,.07);transition:background .3s,backdrop-filter .3s}
/* ================= HERO ================= */
#hero.af-hero{position:relative;min-height:100vh;padding-top:var(--hh);overflow:hidden;background:var(--black);
  display:flex;flex-direction:column;isolation:isolate}
/* фон с руками — раскладка 1:1 по макету:
   картинка 1514×852 в кадре 1440×1075 → ширина 105% кадра,
   центр смещён влево на 63px и вниз на 169px */
.hero-bg{position:absolute;inset:0;z-index:0;will-change:transform}
.hero-bg picture{display:block}
/* Кадр макета 1440×1075, картинка 1514×852 (соотношение 1.7768):
   ширина = 105% кадра, высота = 79% кадра.
   Берём min(105% ширины, 79vh в пересчёте на ширину = 140vh) —
   композиция всегда видна целиком и не «приближается» на широких экранах. */
.hero-bg img{position:absolute;left:45.6%;top:55%;transform:translate(-50%,-50%);
  width:min(105%,165vh);height:auto;max-width:none;
  opacity:0;transition:opacity 1.2s ease;
  /* края растворяются в чёрный — не видно линии обреза кадра */
  -webkit-mask-image:linear-gradient(90deg,transparent 0,#000 7%,#000 93%,transparent 100%),
                     linear-gradient(180deg,transparent 0,#000 8%,#000 92%,transparent 100%);
  -webkit-mask-composite:source-in;
  mask-image:linear-gradient(90deg,transparent 0,#000 7%,#000 93%,transparent 100%),
             linear-gradient(180deg,transparent 0,#000 8%,#000 92%,transparent 100%);
  mask-composite:intersect}
#hero.af-hero.ready .hero-bg img{opacity:1}
/* виньетка: гасим края, чтобы текст читался */
.hero-vignette{position:absolute;inset:0;z-index:1;pointer-events:none;
  background:
    linear-gradient(180deg,rgba(0,0,0,.82) 0%,rgba(0,0,0,.28) 26%,rgba(0,0,0,0) 46%),
    linear-gradient(0deg,rgba(0,0,0,.92) 0%,rgba(0,0,0,.45) 22%,rgba(0,0,0,0) 44%),
    radial-gradient(120% 90% at 50% 45%,rgba(0,0,0,0) 40%,rgba(0,0,0,.55) 100%)}
/* мягкое оранжевое свечение от логотипа */
.hero-glow{position:absolute;left:50%;top:52%;width:min(52vw,760px);aspect-ratio:1;z-index:1;pointer-events:none;
  transform:translate(-50%,-50%);
  background:radial-gradient(circle,rgba(255,70,0,.13) 0%,rgba(255,106,51,.06) 38%,rgba(0,0,0,0) 68%);
  filter:blur(6px);animation:glowPulse 6s ease-in-out infinite}
@keyframes glowPulse{0%,100%{opacity:.75;transform:translate(-50%,-50%) scale(1)}
  50%{opacity:1;transform:translate(-50%,-50%) scale(1.06)}}
/* гуттер как в макете: 60px на кадре 1440 ≈ 4.2% */
.hero-in{position:relative;z-index:2;flex:1;display:flex;flex-direction:column;justify-content:space-between;
  width:100%;padding:clamp(28px,3.4vw,64px) clamp(20px,4.2vw,86px) 0}
/* ---- верхний текстовый блок ---- */
.hero-top{max-width:none}
.h-title{font-family:var(--font-head);font-weight:600;text-transform:uppercase;
  font-size:clamp(26px,min(3.5vw,5.1vh),56px);line-height:1.12;letter-spacing:-.01em;color:#fff}
.h-sub{font-family:var(--font-body);font-weight:600;text-transform:uppercase;color:var(--gray);
  font-size:clamp(14px,min(1.62vw,2.3vh),25px);line-height:1.45;margin-top:.85em;font-weight:400;color:#B9B9B6;text-transform:none;letter-spacing:.01em}
@media(min-width:1100px){.h-title{white-space:nowrap}}
/* построчный reveal (в духе /webdev/) */
.line{display:block;overflow:hidden}
.line .inner{display:block;transform:translateY(112%);opacity:0;
  transition:transform 1s cubic-bezier(.16,1,.3,1),opacity .8s ease}
#hero.af-hero.ready .line .inner{transform:none;opacity:1}
#hero.af-hero.ready .h-sub .line .inner{transition-delay:.12s}
/* ---- кнопки ---- */
.h-btns{display:flex;gap:clamp(14px,1.6vw,24px);margin-top:clamp(20px,min(2.2vw,3.2vh),34px);flex-wrap:wrap;
  opacity:0;transform:translateY(18px);transition:opacity .8s ease .34s,transform .9s cubic-bezier(.16,1,.3,1) .34s}
#hero.af-hero.ready .h-btns{opacity:1;transform:none}
.btn{display:inline-flex;align-items:center;justify-content:center;font-family:var(--font-body);font-weight:600;
  text-transform:uppercase;letter-spacing:.08em;font-size:clamp(11px,min(.95vw,1.4vh),14px);
  height:clamp(44px,min(3.9vw,5.6vh),58px);padding:0 clamp(24px,min(3.4vw,4.8vh),46px);border-radius:6px;
  position:relative;overflow:hidden;transition:transform .3s cubic-bezier(.2,.7,.2,1),box-shadow .3s,color .3s,border-color .3s}
.btn-primary{background:var(--orange);color:#000}
.btn-primary::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent,rgba(255,255,255,.42),transparent);
  transform:translateX(-120%);transition:transform .7s cubic-bezier(.2,.7,.2,1)}
.btn-primary:hover{transform:translateY(-2px);box-shadow:0 18px 40px -16px rgba(255,70,0,.7)}
.btn-primary:hover::after{transform:translateX(120%)}
.btn-outline{border:1px solid rgba(255,255,255,.9);color:#fff;background:transparent}
.btn-outline:hover{transform:translateY(-2px);border-color:var(--orange);color:var(--orange);
  box-shadow:0 18px 40px -22px rgba(255,70,0,.6)}
/* ---- нижний вордмарк ---- */
.hero-wordmark{width:100%;padding-bottom:clamp(10px,2vh,28px);user-select:none}
.wm-line{display:block;overflow:hidden}
.wm-inner{display:block;font-family:var(--font-display);font-weight:400;text-transform:uppercase;
  font-size:var(--wm-size,10vw);line-height:1.0;letter-spacing:-.01em;white-space:nowrap;padding-bottom:.02em;
  transform:translateY(104%);transition:transform 1.15s cubic-bezier(.16,1,.3,1)}
#hero.af-hero.ready .wm-inner{transform:none}
#hero.af-hero.ready .wm-line:nth-child(2) .wm-inner{transition-delay:.1s}
.wm-orange{color:var(--orange)}
.wm-white{color:#fff}
/* заглушка следующего блока */
.next-stub{min-height:60vh;display:grid;place-items:center;background:#050608;
  border-top:1px solid rgba(255,255,255,.06)}
/* ================= ПЛАНШЕТ ================= */
@media(max-width:1099px){
  .h-title,.h-sub{white-space:normal}
}
/* ================= ТЕЛЕФОН (макет 3780:22) =================
   Раскладка макета: картинка сверху с наклоном −4.67°, под ней
   заголовок → подзаголовок → кнопки → вордмарк.
   Кегли берём из макета (пропорции кадра 402px), но кнопки
   поднимаем до нормального тач-размера (в макете 29px — мало для пальца). */
@media(max-width:900px){
  .hnav,.hact .hbtn-ghost,.hact .hbtn-tg{display:none}
  .burger{display:flex}
  .ic-btn{display:flex}
  .hact{gap:8px}
  .hlang{display:flex;gap:9px;padding-left:0;border-left:none;font-size:12px;letter-spacing:.06em;margin-right:2px}
  .hlogo img{height:26px}
  .hbar{padding:0 16px;gap:10px}

  /* порядок на телефоне: ВОРДМАРК сверху -> картинка -> текст снизу.
     .hero-in раскрывается (display:contents), чтобы всё было в одной flex-колонке
     и между блоками не оставалось пустот. */
  #hero.af-hero{min-height:100svh;display:flex;flex-direction:column;padding-top:var(--hh)}
  .hero-in{display:contents}
  .hero-vignette,.hero-glow{position:absolute;pointer-events:none;z-index:1}

  /* 1. вордмарк — сразу под шапкой */
  .hero-wordmark{order:1;position:relative;z-index:3;padding:clamp(26px,5svh,58px) 22px 0;margin:0}
  .wm-inner{letter-spacing:-.02em;line-height:.92;padding-bottom:.03em}

  /* 2. картинка — занимает всё оставшееся место, без дыр */
  .hero-bg{order:2;position:relative;flex:1 1 auto;min-height:0;width:100%;top:auto;bottom:auto;overflow:hidden}
  .hero-bg img{position:absolute;left:50%;top:50%;
    width:min(142%,155svh);height:auto;
    transform:translate(-50%,-50%) rotate(-4.67deg);
    -webkit-mask-image:radial-gradient(128% 122% at 50% 50%,#000 64%,transparent 100%);
    mask-image:radial-gradient(128% 122% at 50% 50%,#000 64%,transparent 100%)}
  .hero-vignette{background:linear-gradient(180deg,rgba(4,5,8,.9) 0%,rgba(4,5,8,0) 16%,rgba(4,5,8,0) 62%,rgba(4,5,8,.9) 88%,#040508 100%)}
  .hero-glow{top:44%;width:min(88vw,420px)}

  /* 3. текст — внизу, вплотную к картинке */
  .hero-top{order:3;position:relative;z-index:3;padding:0 22px clamp(20px,3.2svh,34px);margin:0}
  .h-title{font-size:var(--mt-size,22px);line-height:1.1;letter-spacing:-.015em;white-space:nowrap}
  .h-sub{font-size:clamp(12.5px,3.3vw,15px);line-height:1.4;margin-top:.55em;color:#B9B9B6}
  .h-btns{margin-top:14px;gap:10px;flex-wrap:nowrap}
  .btn{flex:1 1 0;min-width:0;height:46px;padding:0 8px;font-size:11px;letter-spacing:.06em;border-radius:8px;white-space:nowrap}

  .next-stub{min-height:40vh}
}
@media(max-width:380px){.btn{font-size:10px;height:44px}
.hero-in{padding-left:16px;padding-right:16px}}
/* ================= БУРГЕР + МОБИЛЬНОЕ МЕНЮ ================= */
.burger{display:none;width:36px;height:36px;border-radius:8px;background:transparent;
  border:1.5px solid rgba(255,255,255,.2);cursor:pointer;flex-direction:column;
  justify-content:center;align-items:center;gap:4px;flex:0 0 auto;padding:0;transition:border-color .25s}
body.menu-open{overflow:hidden}
@media(prefers-reduced-motion:reduce){.line .inner,.wm-inner{transform:none;opacity:1}
.h-btns{opacity:1;transform:none}
.hero-bg img{opacity:1}}
/* ===== круглые кнопки шапки (структура как на текущем сайте, палитра — оранжевая) ===== */
.ic-btn{display:none;width:36px;height:36px;align-items:center;justify-content:center;flex:0 0 auto;transition:.25s}
/* ===== мобильная шапка: показываем круглые кнопки и бургер (правило в конце, чтобы победить базовое display:none) ===== */
@media(max-width:900px){
  .ic-btn{display:flex}
  .burger{display:flex}
  .hact .hbtn-ghost,.hact .hbtn-tg,.hnav{display:none}
}
/* ================= ДОБАВЛЕННЫЕ БЛОКИ (по CRO-разбору) ================= */

/* тикер услуг — 8 реальных услуг за 30px высоты */
.ticker{display:none;position:relative;z-index:5;overflow:hidden;width:100%;flex:0 0 auto;
  border-top:1px solid rgba(255,255,255,.07);border-bottom:1px solid rgba(255,255,255,.07);
  background:rgba(255,255,255,.012)}
.ticker-track{display:flex;width:max-content;animation:tick 42s linear infinite}
.ticker-row{display:flex;align-items:center;gap:0;padding:0;flex:0 0 auto}
.ticker-row span{font-family:var(--font-body);font-size:10.5px;font-weight:500;letter-spacing:.14em;
  text-transform:uppercase;color:#B9B9B6;white-space:nowrap;padding:9px 0}
.ticker-row i{display:block;width:4px;height:4px;border-radius:50%;background:var(--orange);margin:0 14px;flex:0 0 auto}
@keyframes tick{from{transform:translate3d(0,0,0)}to{transform:translate3d(-50%,0,0)}}
/* полоса цифр-доказательств */
.stats{display:none;align-items:stretch}
.stat{flex:1 1 0;min-width:0;display:flex;flex-direction:column;gap:3px;position:relative;padding:0 4px}
.stat+.stat::before{content:"";position:absolute;left:0;top:50%;transform:translateY(-50%);
  width:1px;height:28px;background:rgba(255,255,255,.10)}
.stat b{font-family:var(--font-head);font-weight:600;font-size:clamp(20px,6vw,26px);color:#fff;
  line-height:1;font-variant-numeric:tabular-nums;letter-spacing:-.01em}
.stat span{font-family:var(--font-body);font-size:9.5px;font-weight:500;letter-spacing:.1em;
  text-transform:uppercase;color:#8E8E8B;line-height:1.2}
/* строка доверия с живой точкой */
.trust{display:none;align-items:center;gap:8px;font-family:var(--font-body);font-size:11px;color:#B9B9B6}
.trust .dot{width:6px;height:6px;border-radius:50%;background:var(--orange);flex:0 0 auto;position:relative}
.trust .dot::after{content:"";position:absolute;inset:0;border-radius:50%;background:var(--orange);
  animation:ping 2.2s cubic-bezier(0,0,.2,1) infinite}
@keyframes ping{0%{transform:scale(1);opacity:.7}70%{transform:scale(2.6);opacity:0}100%{opacity:0}}
/* уголки-прицел вокруг кадра */
.frame-corners{display:none;position:absolute;z-index:2;pointer-events:none}
.frame-corners i{position:absolute;width:20px;height:20px;border:1.5px solid var(--orange);opacity:.85}
.frame-corners i:nth-child(1){top:0;left:0;border-right:0;border-bottom:0}
.frame-corners i:nth-child(2){top:0;right:0;border-left:0;border-bottom:0}
.frame-corners i:nth-child(3){bottom:0;left:0;border-right:0;border-top:0}
.frame-corners i:nth-child(4){bottom:0;right:0;border-left:0;border-top:0}
/* иконка телеграма в кнопке */
.btn .tg{width:15px;height:15px;margin-right:8px;flex:0 0 auto}
/* скролл-хинт */
.scroll-hint{display:none;position:absolute;left:50%;bottom:10px;transform:translateX(-50%);z-index:5;
  transition:opacity .3s}
.scroll-hint span{display:block;width:1px;height:22px;
  background:linear-gradient(180deg,rgba(255,255,255,.45),transparent);animation:hint 2.4s ease-in-out infinite}
.scroll-hint.gone{opacity:0}
@keyframes hint{0%,100%{transform:translateY(0);opacity:.5}50%{transform:translateY(6px);opacity:1}}
/* ================= МОБИЛЬНАЯ РАСКЛАДКА: новая структура ================= */
@media(max-width:900px){
  /* фон: убираем абсолютный чёрный — лёгкий градиент + тонкий шум */
  #hero.af-hero{background:
    radial-gradient(120% 55% at 50% 38%,#0A0B10 0%,#040508 70%),
    #040508}

  .ticker{display:block;order:0}
  .stats{display:flex;order:3;margin-top:16px;padding-top:14px;border-top:1px solid rgba(255,255,255,.07)}
  .trust{display:flex;order:6;margin-top:12px;padding-bottom:clamp(10px,2svh,20px)}
  .scroll-hint{display:block}

  /* 1. вордмарк — компактнее, чтобы не спорить с заголовком */
  .hero-wordmark{order:1;position:relative;z-index:3;padding:clamp(14px,2.4svh,26px) 22px 0}

  /* 2. КАДР: фиксированный слот вместо flex:1 — это убирает ~236px пустоты */
  .hero-bg{position:absolute;inset:0;z-index:0;flex:none;order:0;margin:0;
    width:100%;height:100%;border:none;border-radius:0;overflow:hidden}
  /* композиция видна ЦЕЛИКОМ, отдалённая, края растворяются в чёрный */
  .hero-bg img{position:absolute;left:50%;top:44%;transform:translate(-50%,-50%) rotate(-4.67deg);
    width:min(138%,148svh);height:auto;min-width:0;min-height:0;max-width:none;object-fit:contain;
    -webkit-mask-image:radial-gradient(126% 120% at 50% 50%,#000 60%,transparent 100%);
    mask-image:radial-gradient(126% 120% at 50% 50%,#000 60%,transparent 100%)}
  .hero-vignette{display:block;position:absolute;inset:0;z-index:1;pointer-events:none;
    background:linear-gradient(180deg,rgba(4,5,8,.55) 0%,rgba(4,5,8,0) 18%,rgba(4,5,8,0) 46%,rgba(4,5,8,.88) 68%,#040508 84%)}
  .hero-glow{display:none}

  /* отсвет под кадром — чёрное читается как затухание света, а не как дыра */


  /* 3. текст */
  .hero-top{order:4;position:relative;z-index:3;margin-top:auto;padding:0 22px 0}
  .h-title{font-size:var(--mt-size,24px);line-height:1.08}
  .h-sub{font-size:clamp(12.5px,3.3vw,14.5px);line-height:1.45;margin-top:.5em;color:#B9B9B6}

  /* 4. кнопки — в столбик, приоритет разведён */
  .h-btns{order:5;flex-direction:column;gap:9px;margin-top:16px;flex-wrap:nowrap}
  .btn{width:100%;flex:0 0 auto;height:52px;font-size:12.5px;letter-spacing:.06em;padding:0 14px}
  .btn-outline{height:48px}

  .next-stub{min-height:40vh}
}
@media(max-width:380px){.hero-bg{height:clamp(190px,29svh,240px)}
.btn{height:48px;font-size:11.5px}
.stat b{font-size:19px}}
@media(prefers-reduced-motion:reduce){.ticker-track,.trust .dot::after,.scroll-hint span{animation:none!important}}
/* ===== новый заголовок: две строки, ступенчатый выезд ===== */
.h-title .line + .line .inner{transition-delay:.09s}
.h-sub .sub-line{display:block}
.h-sub{opacity:0;transform:translateY(14px);
  transition:opacity .8s ease .26s,transform .9s cubic-bezier(.16,1,.3,1) .26s}
#hero.af-hero.ready .h-sub{opacity:1;transform:none}
.br-m{display:none}
@media(max-width:900px){.h-title{font-size:var(--mt-size,23px);line-height:1.14;letter-spacing:-.02em;white-space:nowrap}
.h-sub{font-size:var(--ms-size,13px);line-height:1.5;margin-top:.7em;color:#B9B9B6}
.h-sub .sub-line{margin-top:.18em;white-space:nowrap}
.h-sub .sub-line:first-child{margin-top:0}
.br-m{display:inline}}
@media(min-width:901px){.h-title{line-height:1.06}
.h-sub .sub-line{display:block}}
/* ---- кнопки нашего hero — в едином стиле с /webdev/ ---- */
#hero.af-hero .btn{border-radius:9999px;letter-spacing:.06em;font-weight:600}
#hero.af-hero .btn-primary{background:#FF4600;color:#fff;font-family:'Montserrat',system-ui,sans-serif;font-size:13px}
#hero.af-hero .btn-primary:hover{background:#E03E00}
#hero.af-hero .btn-outline{font-family:'JetBrains Mono',ui-monospace,monospace;font-weight:400;
  font-size:11px;letter-spacing:.18em;text-transform:uppercase;border:1px solid rgba(217,217,217,.25);color:#D8D8D8}
#hero.af-hero .btn-outline:hover{border-color:rgba(255,70,0,.75);color:#FF6A33}
/* мелкие подписи hero — моноширинным, как метки на /webdev/ */
#hero.af-hero .ticker-row span,
#hero.af-hero .trust,
#hero.af-hero .stat span{font-family:'JetBrains Mono',ui-monospace,monospace}
