/* no-recolor — Главная страница типа платформы «Нео» (templates/basic/neo-landing.blade.php).
   Приёмы разбора olymptrade (чёрный холст, иерархия текста прозрачностью, огромная типографика с трекингом −2…−3 %,
   карточки с градиентной рамкой 1px и матовой радиальной заливкой, стеклянные кнопки и чипы, шаг 4px, крупные отступы
   между блоками, аккордеон, финальный призыв кнопкой-блоком, подвал градиентом) — в гамме Нео: #A67EFB → #7C5CFF → #5B8CFF,
   Montserrat, текст на акценте белый. Анимации — только transform/opacity (60 fps), «уменьшение движения» — всё статично.
   Старые WebView: без inset/:is/color-mix, у clamp() есть запасное значение перед ним. */

/* ---------------- токены: тёмная (по умолчанию) ---------------- */
:root, html.nl-dark {
    --nl-bg: #0B0B10; --nl-bg-rgb: 11, 11, 16;
    --nl-s1: #131319; --nl-s2: #1A1A22; --nl-s3: #23232E;
    --nl-t1: #FFFFFF; --nl-t1-rgb: 255, 255, 255;
    --nl-t2: rgba(255, 255, 255, .66); --nl-t3: rgba(255, 255, 255, .44); --nl-t4: rgba(255, 255, 255, .22);
    --nl-line: rgba(255, 255, 255, .08); --nl-line-2: rgba(255, 255, 255, .14);
    --nl-glass: rgba(242, 242, 255, .08); --nl-glass-2: rgba(242, 242, 255, .14); --nl-glass-line: rgba(242, 242, 255, .13);
    --nl-glass-solid: rgba(26, 26, 36, .92);
    --nl-acc: #A67EFB; --nl-acc-rgb: 166, 126, 251; --nl-acc-2: #7C5CFF; --nl-acc-3: #5B8CFF;
    --nl-grad: linear-gradient(100deg, #A67EFB 0%, #7C5CFF 50%, #5B8CFF 100%);
    --nl-grad-wide: linear-gradient(100deg, #A67EFB 0%, #7C5CFF 25%, #5B8CFF 50%, #7C5CFF 75%, #A67EFB 100%);
    --nl-grad-text: linear-gradient(100deg, #E2D6FF 0%, #B394FF 30%, #8C6BFF 62%, #6F9BFF 100%);
    --nl-card-border: linear-gradient(148deg, rgba(255, 255, 255, .17) 8%, rgba(255, 255, 255, .04) 48%, rgba(166, 126, 251, .2) 100%);
    --nl-card-fill: radial-gradient(120% 150% at 14% 0%, #1A1A23 0%, #111117 62%);
    --nl-up: #22C55E; --nl-down: #F2555A;
    --nl-frame: linear-gradient(160deg, #34343F 0%, #191920 40%, #0F0F14 100%);
    --nl-frame-base: linear-gradient(180deg, #3B3B48 0%, #24242D 45%, #121218 100%);
    --nl-shadow-lg: 0 50px 110px -40px rgba(0, 0, 0, .85);
    --nl-photo-op: .62;
    --nl-font: 'Montserrat', 'Segoe UI', system-ui, -apple-system, Roboto, sans-serif;
    --nl-ease: cubic-bezier(.2, .8, .2, 1);
    --nl-head-h: 72px;
    color-scheme: dark;
    /* полоса прокрутки (partials/scrollbar-styles) — в гамме Нео */
    --sb-track: #0B0B10; --sb-thumb: #2B2A3A; --sb-thumb-hover: #3A3850; --sb-thumb-active: #A67EFB;
}
/* светлая: поверхности — в <head> шаблона (neoShade, как в кабинете Нео) */
html.nl-light {
    --nl-bg: #CFCFD2; --nl-bg-rgb: 207, 207, 210;
    --nl-s1: #D9D9D9; --nl-s2: #C9C9CF; --nl-s3: #C0C1CA;
    --nl-t1: #22232F; --nl-t1-rgb: 34, 35, 47;
    --nl-t2: rgba(34, 35, 47, .74); --nl-t3: rgba(34, 35, 47, .54); --nl-t4: rgba(34, 35, 47, .3);
    --nl-line: rgba(34, 35, 47, .1); --nl-line-2: rgba(34, 35, 47, .17);
    --nl-glass: rgba(255, 255, 255, .34); --nl-glass-2: rgba(255, 255, 255, .55); --nl-glass-line: rgba(255, 255, 255, .55);
    --nl-glass-solid: rgba(225, 225, 230, .95);
    --nl-grad-text: linear-gradient(100deg, #7C4FE8 0%, #6A47F0 45%, #3E6CE6 100%);
    --nl-card-border: linear-gradient(148deg, rgba(255, 255, 255, .8) 6%, rgba(255, 255, 255, .18) 50%, rgba(124, 92, 255, .32) 100%);
    --nl-card-fill: radial-gradient(120% 150% at 14% 0%, var(--nl-s1) 0%, var(--nl-s2) 70%);
    --nl-up: #12933F; --nl-down: #D93A3F;
    --nl-frame: linear-gradient(160deg, #F2F2F6 0%, #CDCED8 45%, #B5B6C2 100%);
    --nl-frame-base: linear-gradient(180deg, #E6E6EC 0%, #C2C3CD 45%, #9FA0AC 100%);
    --nl-shadow-lg: 0 50px 110px -46px rgba(30, 24, 70, .55);
    --nl-photo-op: .4;
    color-scheme: light;
    --sb-track: #C9C9CF; --sb-thumb: #A7A8B6; --sb-thumb-hover: #8E8FA0; --sb-thumb-active: #7C5CFF;
}
/* «тёмный остров» — блоки, которые и в светлой теме остаются тёмными (цифры на фото) */
.nl-dark-scope {
    --nl-t1: #FFFFFF; --nl-t1-rgb: 255, 255, 255;
    --nl-t2: rgba(255, 255, 255, .7); --nl-t3: rgba(255, 255, 255, .48); --nl-t4: rgba(255, 255, 255, .22);
    --nl-line: rgba(255, 255, 255, .1); --nl-line-2: rgba(255, 255, 255, .16);
    --nl-glass: rgba(242, 242, 255, .1); --nl-glass-2: rgba(242, 242, 255, .16); --nl-glass-line: rgba(242, 242, 255, .16);
    --nl-grad-text: linear-gradient(100deg, #FFFFFF 0%, #E2D6FF 35%, #B394FF 70%, #8FB2FF 100%);
}

/* ---------------- база ---------------- */
html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; }
html, body.nl-body { background: var(--nl-bg); }
.nl-body {
    margin: 0; min-width: 320px; overflow-x: hidden;
    font: 400 16px/1.6 var(--nl-font); color: var(--nl-t1);
    -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; text-rendering: optimizeLegibility;
}
.nl-body *, .nl-body *::before, .nl-body *::after { box-sizing: border-box; }
/* сброс — селекторами по тегу (низкая специфичность: классы компонентов его перекрывают) */
img { max-width: 100%; display: block; }
a { color: inherit; text-decoration: none; }
h1, h2, h3, p, dl, dd, ol, ul { margin: 0; padding: 0; }
ol, ul { list-style: none; }
button { font: inherit; color: inherit; background: none; border: 0; padding: 0; cursor: pointer; -webkit-tap-highlight-color: transparent; }
svg { flex: none; }
.nl-body :focus-visible { outline: 2px solid var(--nl-acc); outline-offset: 3px; border-radius: 8px; }
.nl-body section[id], .nl-body main[id] { scroll-margin-top: 84px; }
.nl-skip { position: fixed; left: 16px; top: -60px; z-index: 2000; padding: 10px 16px; border-radius: 12px; background: var(--nl-acc); color: #fff !important; font-weight: 600; transition: top .2s; }
.nl-skip:focus { top: 12px; }

.nl-wrap { width: 100%; max-width: 1360px; margin: 0 auto; padding: 0 40px; padding-left: calc(40px + env(safe-area-inset-left, 0px)); padding-right: calc(40px + env(safe-area-inset-right, 0px)); }

.nl-grad-text {
    background: var(--nl-grad-text); -webkit-background-clip: text; background-clip: text; color: transparent; -webkit-text-fill-color: transparent;
}

/* ---------------- кнопки ---------------- */
.nl-btn {
    position: relative; display: inline-flex; align-items: center; justify-content: center; gap: 10px; overflow: hidden; isolation: isolate;
    font-family: var(--nl-font); font-weight: 600; white-space: nowrap; letter-spacing: -.005em; line-height: 1.2;
    transition: transform .3s var(--nl-ease), box-shadow .3s ease, background-position .6s ease, background-color .3s ease, color .3s ease;
    -webkit-tap-highlight-color: transparent; -webkit-user-select: none; user-select: none;
}
.nl-btn svg { width: 20px; height: 20px; transition: transform .35s var(--nl-ease); }
.nl-btn:hover svg { transform: translateX(3px); }
.nl-btn:active { transform: translateY(1px) scale(.985); }
.nl-btn--md { height: 44px; padding: 0 18px; border-radius: 12px; font-size: 14px; }
.nl-btn--lg { height: 54px; padding: 0 26px; border-radius: 16px; font-size: 15px; }
.nl-btn--xl { height: 62px; padding: 0 32px; border-radius: 18px; font-size: 16px; }
.nl-btn--acc {
    color: #fff !important; background-image: var(--nl-grad-wide); background-size: 220% 100%; background-position: 0 0; background-color: #7C5CFF;
    box-shadow: 0 16px 36px -16px rgba(124, 92, 255, .85), inset 0 1px 0 rgba(255, 255, 255, .28);
}
.nl-btn--acc:hover { background-position: 60% 0; box-shadow: 0 22px 44px -16px rgba(124, 92, 255, .95), inset 0 1px 0 rgba(255, 255, 255, .32); transform: translateY(-2px); }
.nl-btn--glass {
    color: var(--nl-t1); background: var(--nl-glass); box-shadow: inset 0 0 0 1px var(--nl-glass-line);
    -webkit-backdrop-filter: blur(20px); backdrop-filter: blur(20px);
}
.nl-btn--glass:hover { background: var(--nl-glass-2); transform: translateY(-2px); }
.nl-btn--ghost { color: var(--nl-t1); }
.nl-btn--ghost:hover { background: var(--nl-glass); }
/* блик по кнопке: при наведении и сам раз в несколько секунд */
.nl-btn--acc::after {
    content: ""; position: absolute; top: -20%; bottom: -20%; left: 0; width: 46%; z-index: -1; pointer-events: none;
    background: linear-gradient(100deg, transparent 0%, rgba(255, 255, 255, .42) 50%, transparent 100%);
    transform: translateX(-160%) skewX(-18deg); opacity: 0;
}
.nl-btn--acc > * { position: relative; z-index: 1; }
.nl-btn--acc:hover::after { opacity: 1; transform: translateX(330%) skewX(-18deg); transition: transform .9s var(--nl-ease), opacity .2s; }
html.nl-anim .nl-btn--shine::after { animation: nlShine 6.5s ease-in-out 2.4s infinite; }
@keyframes nlShine { 0% { transform: translateX(-160%) skewX(-18deg); opacity: 0; } 4% { opacity: 1; } 16% { transform: translateX(330%) skewX(-18deg); opacity: 1; } 17%, 100% { transform: translateX(330%) skewX(-18deg); opacity: 0; } }

.nl-icon-btn {
    display: inline-flex; align-items: center; justify-content: center; gap: 6px; height: 44px; min-width: 44px; padding: 0 10px; border-radius: 12px;
    color: var(--nl-t1); background: var(--nl-glass); box-shadow: inset 0 0 0 1px var(--nl-glass-line);
    -webkit-backdrop-filter: blur(20px); backdrop-filter: blur(20px); transition: background-color .3s, transform .3s var(--nl-ease);
}
.nl-icon-btn:hover { background: var(--nl-glass-2); }
.nl-icon-btn svg { width: 22px; height: 22px; }

/* пилюля / надзаголовок */
.nl-pill, .nl-kicker {
    display: inline-flex; align-items: center; gap: 10px; max-width: 100%; min-height: 36px; padding: 6px 16px 6px 12px; border-radius: 999px;
    background: var(--nl-glass); box-shadow: inset 0 0 0 1px var(--nl-glass-line); -webkit-backdrop-filter: blur(20px); backdrop-filter: blur(20px);
    font-size: 13px; font-weight: 600; line-height: 1.3; color: var(--nl-t1);
}
.nl-pill__dot, .nl-kicker i {
    position: relative; flex: none; width: 8px; height: 8px; border-radius: 50%; background: var(--nl-acc);
    box-shadow: 0 0 0 4px rgba(166, 126, 251, .22), 0 0 14px rgba(166, 126, 251, .9);
}
.nl-pill__dot::after { content: ""; position: absolute; top: -4px; left: -4px; right: -4px; bottom: -4px; border-radius: 50%; border: 1.5px solid rgba(166, 126, 251, .7); animation: nlPing 2.2s ease-out infinite; }
@keyframes nlPing { from { transform: scale(.6); opacity: 1; } to { transform: scale(2.4); opacity: 0; } }
.nl-pill__sep { width: 1px; height: 14px; background: var(--nl-line-2); }
.nl-pill__muted { color: var(--nl-t2); font-weight: 500; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.nl-kicker { text-transform: uppercase; letter-spacing: .12em; font-size: 12px; color: var(--nl-t2); padding: 6px 16px 6px 14px; }
.nl-kicker--glass { color: #fff; background: rgba(255, 255, 255, .12); box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .18); }

/* ---------------- шапка ---------------- */
.nl-head {
    position: fixed; top: 0; left: 0; right: 0; z-index: 1000;
    padding-top: env(safe-area-inset-top, 0px); padding-top: var(--safe-area-inset-top, env(safe-area-inset-top, 0px));
    transition: background-color .4s ease, box-shadow .4s ease, transform .45s var(--nl-ease);
}
.nl-head::before {
    content: ""; position: absolute; top: 0; left: 0; right: 0; bottom: 0; z-index: -1; opacity: 0; transition: opacity .4s ease;
    background: rgba(var(--nl-bg-rgb), .72); -webkit-backdrop-filter: blur(20px) saturate(1.4); backdrop-filter: blur(20px) saturate(1.4);
    box-shadow: inset 0 -1px 0 var(--nl-line);
}
.nl-head.is-scrolled::before { opacity: 1; }
.nl-head__in { display: flex; align-items: center; gap: 24px; height: var(--nl-head-h); }
.nl-logo { display: inline-flex; align-items: center; gap: 12px; min-width: 0; flex: none; }
.nl-logo__img { display: inline-flex; align-items: center; justify-content: center; width: 40px; height: 40px; background: transparent; filter: drop-shadow(0 6px 14px rgba(124, 92, 255, .45)); flex: none; }
.nl-logo__img img { width: 100%; height: 100%; object-fit: contain; }
.nl-logo__name { font-size: 18px; font-weight: 700; letter-spacing: -.02em; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: 220px; }
.nl-nav { display: flex; align-items: center; gap: 4px; margin: 0 auto; }
.nl-nav a { position: relative; padding: 10px 14px; border-radius: 12px; font-size: 14px; font-weight: 600; color: var(--nl-t2); transition: color .25s, background-color .25s; white-space: nowrap; }
.nl-nav a:hover { color: var(--nl-t1); background: var(--nl-glass); }
.nl-nav a.is-on { color: var(--nl-t1); }
.nl-nav a.is-on::after { content: ""; position: absolute; left: 14px; right: 14px; bottom: 4px; height: 2px; border-radius: 2px; background: var(--nl-grad); }
.nl-head__tools { display: flex; align-items: center; gap: 8px; margin-left: auto; }
.nl-nav + .nl-head__tools { margin-left: 0; }
.nl-burger { display: none; }
/* меню не поместилось (длинные языки, neo-landing.js fitNav) — бургер, как на планшете */
html.nl-nav-tight .nl-nav { display: none; }
html.nl-nav-tight .nl-burger { display: inline-flex; }
html.nl-nav-tight .nl-head__tools { margin-left: auto !important; }

/* язык */
.nl-lang { position: relative; }
.nl-lang__btn { padding: 0 10px 0 12px; }
.nl-lang__flag { display: inline-flex; width: 20px; flex: none; }
.nl-lang__flag img, .nl-lang__flag svg { width: 20px; height: auto; border-radius: 3px; }
.nl-lang__code { font-size: 13px; font-weight: 700; letter-spacing: .02em; }
.nl-lang__chev svg { width: 16px; height: 16px; opacity: .6; transition: transform .3s var(--nl-ease); }
.nl-lang.is-open .nl-lang__chev svg { transform: rotate(180deg); }
.nl-dd {
    position: absolute; top: calc(100% + 10px); right: 0; z-index: 10; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 2px;
    width: 380px; max-height: 64vh; overflow-y: auto; padding: 8px; border-radius: 20px;
    background: var(--nl-glass-solid); box-shadow: inset 0 0 0 1px var(--nl-glass-line), 0 30px 70px -20px rgba(0, 0, 0, .55);
    -webkit-backdrop-filter: blur(24px); backdrop-filter: blur(24px);
    opacity: 0; visibility: hidden; transform: translateY(-8px) scale(.98); transform-origin: top right; transition: opacity .25s ease, transform .3s var(--nl-ease), visibility 0s .3s;
}
.nl-lang.is-open .nl-dd { opacity: 1; visibility: visible; transform: none; transition: opacity .25s ease, transform .3s var(--nl-ease); }
.nl-dd__item { display: flex; align-items: center; gap: 10px; padding: 10px 12px; border-radius: 12px; font-size: 14px; font-weight: 500; color: var(--nl-t2); }
.nl-dd__item span:last-child { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.nl-dd__item:hover { background: var(--nl-glass-2); color: var(--nl-t1); }
.nl-dd__item.is-on { color: var(--nl-t1); background: rgba(166, 126, 251, .16); }

/* тема: в тёмной — солнце, в светлой — луна */
.nl-theme { width: 44px; padding: 0; color: #FFD43B; }
html.nl-light .nl-theme { color: #5B4BE0; }
.nl-theme__ic { display: inline-flex; }
.nl-theme__ic svg { width: 22px; height: 22px; }
html.nl-light .nl-theme__ic--sun, html.nl-dark .nl-theme__ic--moon { display: none; }
html.nl-vt .nl-theme__ic { animation: nlThemeIc .7s var(--nl-ease) both; }
@keyframes nlThemeIc { from { transform: rotate(-120deg) scale(.4); opacity: 0; } to { transform: none; opacity: 1; } }
/* смена темы: новая раскрывается кругом из кнопки (View Transitions), старая чуть притухает; без поддержки — плавное перетекание */
@property --nl-iris { syntax: '<length>'; inherits: false; initial-value: 0px; }
html.nl-vt::view-transition-old(root), html.nl-vt::view-transition-new(root) { animation: none; mix-blend-mode: normal; }
html.nl-vt::view-transition-old(root) { z-index: 1; animation: nlThemeDim .72s ease both; }
html.nl-vt::view-transition-new(root) {
    z-index: 2;
    -webkit-mask-image: radial-gradient(circle at var(--nl-iris-x, 90%) var(--nl-iris-y, 36px), #000 calc(var(--nl-iris) - 70px), transparent var(--nl-iris));
            mask-image: radial-gradient(circle at var(--nl-iris-x, 90%) var(--nl-iris-y, 36px), #000 calc(var(--nl-iris) - 70px), transparent var(--nl-iris));
}
@keyframes nlThemeDim { to { filter: brightness(.8); } }
html.nl-theme-fade, html.nl-theme-fade *, html.nl-theme-fade *::before, html.nl-theme-fade *::after {
    transition: background-color .5s ease, color .5s ease, border-color .5s ease, box-shadow .5s ease, fill .5s ease !important;
}

/* ---------------- боковое меню ---------------- */
.nl-drawer { position: fixed; top: 0; left: 0; right: 0; bottom: 0; z-index: 1200; visibility: hidden; transition: visibility 0s .5s; }
.nl-drawer.is-open { visibility: visible; transition: none; }
.nl-drawer__back { position: absolute; top: 0; left: 0; right: 0; bottom: 0; background: rgba(5, 5, 10, .55); opacity: 0; transition: opacity .4s ease; -webkit-backdrop-filter: blur(4px); backdrop-filter: blur(4px); }
.nl-drawer.is-open .nl-drawer__back { opacity: 1; }
.nl-drawer__panel {
    position: absolute; top: 0; right: 0; bottom: 0; display: flex; flex-direction: column; gap: 18px;
    width: 380px; max-width: 90vw; overflow-y: auto; -webkit-overflow-scrolling: touch;
    padding: 18px 20px 24px; padding-top: calc(18px + var(--safe-area-inset-top, env(safe-area-inset-top, 0px)));
    padding-bottom: calc(24px + var(--safe-area-inset-bottom, env(safe-area-inset-bottom, 0px)));
    background: var(--nl-s1); box-shadow: -30px 0 80px -30px rgba(0, 0, 0, .6), inset 1px 0 0 var(--nl-line);
    transform: translateX(104%); transition: transform .5s var(--nl-ease);
}
.nl-drawer.is-open .nl-drawer__panel { transform: none; }
.nl-drawer__top { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.nl-drawer__nav { display: flex; flex-direction: column; }
.nl-drawer__nav a {
    display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 16px 2px; border-bottom: 1px solid var(--nl-line);
    font-size: 22px; font-weight: 600; letter-spacing: -.02em; opacity: 0; transform: translateX(24px);
    transition: opacity .4s ease, transform .5s var(--nl-ease), color .2s;
}
.nl-drawer__nav a i { display: inline-flex; color: var(--nl-t3); }
.nl-drawer__nav a i svg { width: 20px; height: 20px; }
.nl-drawer.is-open .nl-drawer__nav a { opacity: 1; transform: none; }
.nl-drawer.is-open .nl-drawer__nav a:nth-child(2) { transition-delay: .04s; }
.nl-drawer.is-open .nl-drawer__nav a:nth-child(3) { transition-delay: .08s; }
.nl-drawer.is-open .nl-drawer__nav a:nth-child(4) { transition-delay: .12s; }
.nl-drawer.is-open .nl-drawer__nav a:nth-child(5) { transition-delay: .16s; }
.nl-drawer__row {
    display: flex; align-items: center; gap: 12px; width: 100%; min-height: 56px; padding: 0 16px; border-radius: 16px; text-align: left;
    background: var(--nl-glass); box-shadow: inset 0 0 0 1px var(--nl-glass-line); font-weight: 600;
}
.nl-drawer__row > span:nth-child(2) { flex: 1; }
.nl-drawer__row-ic { display: inline-flex; color: #FFD43B; }
html.nl-light .nl-drawer__row-ic { color: #5B4BE0; }
.nl-switch { position: relative; width: 46px; height: 28px; border-radius: 999px; background: var(--nl-line-2); transition: background-color .3s; }
.nl-switch i { position: absolute; top: 3px; left: 3px; width: 22px; height: 22px; border-radius: 50%; background: #fff; box-shadow: 0 2px 6px rgba(0, 0, 0, .3); transition: transform .35s var(--nl-ease); }
html.nl-dark .nl-switch { background: var(--nl-acc-2); }
html.nl-dark .nl-switch i { transform: translateX(18px); }
.nl-drawer__langs { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 4px; }
.nl-drawer__langs a { display: flex; align-items: center; gap: 10px; min-width: 0; padding: 10px 12px; border-radius: 12px; font-size: 14px; color: var(--nl-t2); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.nl-drawer__langs a.is-on { color: var(--nl-t1); background: rgba(166, 126, 251, .16); }
.nl-drawer__auth { display: grid; gap: 10px; margin-top: auto; padding-top: 8px; }
.nl-drawer__auth .nl-btn { width: 100%; }
html.nl-lock, html.nl-lock body { overflow: hidden; }

/* ---------------- первый экран ---------------- */
.nl-hero {
    position: relative; overflow: hidden; display: flex; align-items: center;
    /* высота окна минус бегущая строка: строка котировок видна сразу при открытии (заказчик) */
    min-height: 700px; min-height: calc(100vh - var(--nl-tick-h)); min-height: calc(100svh - var(--nl-tick-h));
    padding: calc(var(--nl-head-h) + 12px) 0 28px;
    --nl-tick-h: 60px;
}
@media (min-height: 1100px) { .nl-hero { min-height: 1000px; } }
/* невысокий экран ПК (ноутбуки 768–820 px): сцена с ноутбуком ниже, чтобы первый экран со строкой котировок поместился */
@media (max-height: 820px) and (min-width: 1101px) {
    .nl-hero .nl-stage { height: 540px; }
    .nl-hero .nl-hero__btns { margin-top: 30px; }
    .nl-hero .nl-hero__facts { margin-top: 32px !important; padding-top: 22px; }
    .nl-hero .nl-scroll { display: none; }   /* значок «листайте» налезал на телефон */
}
.nl-hero__bg { position: absolute; top: 0; left: 0; right: 0; bottom: 0; z-index: 0; pointer-events: none; }
.nl-hero__photo { position: absolute; top: -12%; left: 0; right: 0; height: 124%; will-change: transform; }
.nl-hero__photo img { width: 100%; height: 100%; object-fit: cover; object-position: 70% 50%; opacity: var(--nl-photo-op); }
html.nl-light .nl-hero__photo img { filter: saturate(.75); }
.nl-hero__bg::after {
    content: ""; position: absolute; top: 0; left: 0; right: 0; bottom: 0;
    background:
        linear-gradient(90deg, rgba(var(--nl-bg-rgb), .97) 0%, rgba(var(--nl-bg-rgb), .86) 34%, rgba(var(--nl-bg-rgb), .3) 68%, rgba(var(--nl-bg-rgb), .12) 100%),
        linear-gradient(180deg, rgba(var(--nl-bg-rgb), .55) 0%, transparent 22%, transparent 70%, rgb(var(--nl-bg-rgb)) 100%);
}
.nl-blob { position: absolute; border-radius: 50%; will-change: transform; pointer-events: none; }
.nl-blob--a { width: 900px; height: 900px; right: -260px; top: -320px; background: radial-gradient(closest-side, rgba(124, 92, 255, .42), rgba(124, 92, 255, 0)); animation: nlDriftA 22s ease-in-out infinite alternate; }
.nl-blob--b { width: 680px; height: 680px; left: -240px; bottom: -300px; background: radial-gradient(closest-side, rgba(166, 126, 251, .26), rgba(166, 126, 251, 0)); animation: nlDriftB 26s ease-in-out infinite alternate; }
.nl-blob--c { width: 560px; height: 560px; right: 18%; bottom: -120px; background: radial-gradient(closest-side, rgba(91, 140, 255, .26), rgba(91, 140, 255, 0)); animation: nlDriftC 19s ease-in-out infinite alternate; }
html.nl-light .nl-blob--a { opacity: .75; }
html.nl-light .nl-blob--b, html.nl-light .nl-blob--c { opacity: .6; }
@keyframes nlDriftA { to { transform: translate3d(-120px, 90px, 0) scale(1.08); } }
@keyframes nlDriftB { to { transform: translate3d(140px, -70px, 0) scale(.92); } }
@keyframes nlDriftC { to { transform: translate3d(-90px, -60px, 0) scale(1.12); } }
.nl-hero__grid {
    position: absolute; top: 0; left: 0; right: 0; bottom: 0; opacity: .5;
    background-image: linear-gradient(rgba(var(--nl-t1-rgb), .045) 1px, transparent 1px), linear-gradient(90deg, rgba(var(--nl-t1-rgb), .045) 1px, transparent 1px);
    background-size: 64px 64px; background-position: center top;
    -webkit-mask-image: radial-gradient(70% 70% at 70% 45%, #000 0%, transparent 75%); mask-image: radial-gradient(70% 70% at 70% 45%, #000 0%, transparent 75%);
}

/* живая линия графика в стеклянной карточке композиции: рисуется, «дышит», новые точки каждые 1,5 с (neo-landing.js) */
.nl-chart { position: relative; height: 78px; margin: 4px -2px 0; }
.nl-chart__clip { position: absolute; top: 0; left: 0; right: 0; bottom: 0; overflow: hidden; border-radius: 0 0 8px 8px; }
.nl-chart__move { position: absolute; top: 0; bottom: 0; left: 0; width: 100%; will-change: transform; }
.nl-chart__svg { display: block; width: 100%; height: 100%; overflow: visible; }
.nl-chart__line { stroke-dasharray: 1; stroke-dashoffset: 0; }
.nl-chart__glow { opacity: .3; }
html.nl-anim .nl-chart__line { stroke-dashoffset: 1; }
html.nl-anim .nl-stage.is-ready .nl-chart__line { animation: nlDraw 2.2s cubic-bezier(.6, .1, .2, 1) 1.3s forwards; }
html.nl-anim .nl-chart__area, html.nl-anim .nl-chart__glow { opacity: 0; }
html.nl-anim .nl-stage.is-ready .nl-chart__area { animation: nlFade 1.4s ease 2.4s forwards; }
html.nl-anim .nl-stage.is-ready .nl-chart__glow { animation: nlFade 1s ease 3s forwards, nlBreath 4.2s ease-in-out 4s infinite; }
.nl-chart.is-live .nl-chart__line { stroke-dasharray: none; stroke-dashoffset: 0; animation: none !important; }
@keyframes nlDraw { to { stroke-dashoffset: 0; } }
@keyframes nlFade { to { opacity: 1; } }
@keyframes nlBreath { 0%, 100% { opacity: .2; } 50% { opacity: .65; } }
.nl-chart__dot { position: absolute; top: 0; left: 0; width: 0; height: 0; opacity: 0; transition: opacity .6s ease; will-change: transform; }
.nl-chart.is-live .nl-chart__dot { opacity: 1; }
.nl-chart__dot::before, .nl-chart__dot i { content: ""; position: absolute; left: -5px; top: -5px; width: 10px; height: 10px; border-radius: 50%; background: #fff; box-shadow: 0 0 0 3px rgba(124, 92, 255, .5), 0 0 18px 5px rgba(124, 92, 255, .85); }
.nl-chart__dot i { background: none; box-shadow: none; border: 2px solid rgba(166, 126, 251, .9); animation: nlPing 1.8s ease-out infinite; }

.nl-hero__in { position: relative; z-index: 1; display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); align-items: center; gap: 48px; }
.nl-hero__copy { min-width: 0; max-width: 640px; }
.nl-display {
    margin: 28px 0 0 !important; font-weight: 700; font-size: 52px; font-size: clamp(42px, 5vw, 80px); line-height: 1.02; letter-spacing: -.035em;
    color: var(--nl-t1); overflow-wrap: break-word;
}
.nl-display--long { font-size: 44px; font-size: clamp(34px, 3.4vw, 54px); line-height: 1.07; letter-spacing: -.03em; }
/* первый экран главной без плашки «бренд | продукты» над заголовком (заказчик: «убери») — заголовок без отступа сверху */
@media (min-width: 1101px) { .nl-hero__copy > .nl-display:first-child { margin-top: 0 !important; } }   /* телефон/планшет — прежний отступ (заказчик: «в моб версии добавь отступ, ПК оставь») */
.nl-w { display: inline-block; overflow: hidden; vertical-align: top; padding: 0 .02em .14em; margin: 0 -.02em -.14em; }
.nl-w__in { display: inline-block; }
html.nl-anim .nl-w__in { transform: translateY(105%) rotate(4deg); opacity: 0; transform-origin: 0 100%; }
html.nl-anim .nl-display.is-ready .nl-w__in {
    transform: none; opacity: 1;
    transition: transform 1s var(--nl-ease), opacity .6s ease; transition-delay: calc(var(--i) * 70ms + 150ms);
}
.nl-hero__lead { margin-top: 28px !important; max-width: 560px; font-size: 18px; line-height: 1.65; color: var(--nl-t2); }
.nl-hero__lead--long { font-size: 16px; }
.nl-hero__btns { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 40px; }
.nl-hero__facts { display: flex; flex-wrap: wrap; gap: 16px 44px; margin-top: 48px !important; padding-top: 28px; border-top: 1px solid var(--nl-line); max-width: 560px; }
.nl-hero__facts dt { font-size: 30px; font-weight: 700; letter-spacing: -.03em; line-height: 1.1; }
.nl-hero__facts dd { margin-top: 4px; font-size: 13px; font-weight: 500; color: var(--nl-t3); }

/* композиция: ноутбук и телефон со снимками терминала, стеклянные плашки */
.nl-hero__visual { position: relative; min-width: 0; }
.nl-stage { position: relative; height: 620px; perspective: 1900px; perspective-origin: 30% 40%; --nl-ty: -17deg; --nl-tx: 7deg; --nl-tz: 1.5deg; }
.nl-stage__tilt {
    position: absolute; top: 0; left: 0; right: 0; bottom: 0; transform-style: preserve-3d;
    transform: rotateY(var(--nl-ty)) rotateX(var(--nl-tx)) rotateZ(var(--nl-tz)) rotateY(var(--nl-ry, 0deg)) rotateX(var(--nl-rx, 0deg));
}
/* проявление — на .nl-stage, а не на .nl-stage__tilt: opacity < 1 у preserve-3d делает сцену плоской, и в момент, когда opacity
   доходила до 1, телефон (translateZ) рывком «выезжал» вперёд — заказчик: «телефон в конце анимации дёргается» */
html.nl-anim .nl-stage { opacity: 0; }
html.nl-anim .nl-stage.is-ready { opacity: 1; transition: opacity 1s ease; }
html.nl-anim .nl-stage__tilt { transform: translate3d(60px, 40px, 0) rotateY(-32deg) rotateX(14deg) rotateZ(3deg); }
html.nl-anim .nl-stage.is-ready .nl-stage__tilt {
    transform: rotateY(var(--nl-ty)) rotateX(var(--nl-tx)) rotateZ(var(--nl-tz)) rotateY(var(--nl-ry, 0deg)) rotateX(var(--nl-rx, 0deg));
    transition: transform 1.6s var(--nl-ease);
}
html.nl-anim .nl-stage.is-ready.is-settled .nl-stage__tilt { transition: transform .9s cubic-bezier(.2, .7, .3, 1); }
.nl-laptop { position: absolute; top: 10%; left: 6%; width: 118%; }
.nl-laptop__lid {
    position: relative; padding: 1.6% 1.6% 2.4%; border-radius: 20px 20px 8px 8px; background: var(--nl-frame);
    box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .09), var(--nl-shadow-lg), 0 0 140px -30px rgba(124, 92, 255, .55);
}
.nl-laptop__screen { position: relative; overflow: hidden; border-radius: 9px; padding-bottom: 62.5%; background: #0F0F14; }
html.nl-light .nl-laptop__screen { background: #C8C8CE; }
.nl-laptop__screen .nl-shot, .nl-phone__screen .nl-shot { position: absolute; top: 0; left: 0; width: 100%; height: 100%; object-fit: cover; object-position: top center; }
.nl-shot-logo { position: absolute; object-fit: contain; object-position: left center; border-radius: 3px; }
.nl-shot-logo--d { left: 1.25%; top: 1.8%; width: 4.2%; height: 4.4%; }
.nl-laptop__glare { position: absolute; top: 0; left: 0; right: 0; bottom: 0; pointer-events: none; background: linear-gradient(118deg, rgba(255, 255, 255, .12) 0%, rgba(255, 255, 255, 0) 34%, rgba(255, 255, 255, 0) 70%, rgba(255, 255, 255, .05) 100%); }
.nl-laptop__base { position: relative; height: 16px; margin: 0 -7%; border-radius: 2px 2px 20px 20px; background: var(--nl-frame-base); box-shadow: 0 30px 50px -20px rgba(0, 0, 0, .7); }
.nl-laptop__base::before { content: ""; position: absolute; top: 0; left: 50%; width: 16%; height: 6px; margin-left: -8%; border-radius: 0 0 8px 8px; background: rgba(0, 0, 0, .28); }
.nl-phone { position: absolute; width: 220px; padding: 8px; border-radius: 38px; background: var(--nl-frame); box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .12), 0 40px 80px -30px rgba(0, 0, 0, .85), 0 0 80px -30px rgba(124, 92, 255, .6); }
.nl-phone__screen { position: relative; overflow: hidden; border-radius: 30px; padding-bottom: 216.4%; background: #0F0F14; }
html.nl-light .nl-phone__screen { background: #C8C8CE; }
/* полоса состояния телефона: снимок — под ней, в полосе — камера */
.nl-phone__screen::before { content: ""; position: absolute; top: 0; left: 0; right: 0; height: 5%; z-index: 2; background: #101014; }
html.nl-light .nl-phone__screen::before { background: #D3D3D3; }
.nl-phone__screen .nl-shot { top: 4.8%; height: 95.2%; }
.nl-phone__island { position: absolute; top: 1.4%; left: 50%; z-index: 3; width: 3.4%; height: 0; padding-bottom: 3.4%; margin-left: -1.7%; border-radius: 50%; background: #050507; box-shadow: 0 0 0 2px rgba(255, 255, 255, .06); }
.nl-shot-logo--m { left: 3.1%; top: calc(4.8% + 1.35%); width: 13.1%; height: 3.8%; z-index: 1; }
.nl-phone--hero { left: -1%; bottom: -3%; transform: translateZ(90px); }

.nl-chip, .nl-live { position: absolute; z-index: 3; will-change: transform; }
.nl-chip__in, .nl-live__in {
    display: flex; align-items: center; gap: 10px; padding: 10px 14px 10px 10px; border-radius: 18px;
    background: rgba(28, 26, 40, .62); box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .14), 0 24px 48px -20px rgba(0, 0, 0, .7);
    -webkit-backdrop-filter: blur(18px) saturate(1.3); backdrop-filter: blur(18px) saturate(1.3); color: #fff; white-space: nowrap;
}
html.nl-light .nl-chip__in, html.nl-light .nl-live__in { background: rgba(255, 255, 255, .55); box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .7), 0 24px 48px -24px rgba(40, 30, 90, .45); color: #22232F; }
.nl-chip__ic { width: 34px; height: 34px; border-radius: 50%; }
.nl-chip__txt { display: flex; flex-direction: column; line-height: 1.25; }
.nl-chip__txt b { font-size: 13px; font-weight: 700; }
.nl-chip__txt span { font-size: 12.5px; font-weight: 500; opacity: .72; font-variant-numeric: tabular-nums; }
.nl-chg { display: inline-flex; align-items: center; height: 24px; padding: 0 8px; border-radius: 8px; font-size: 12px; font-weight: 700; font-variant-numeric: tabular-nums; white-space: nowrap; }
.nl-chg.is-up { color: var(--nl-up); background: rgba(34, 197, 94, .14); }
.nl-chg.is-down { color: var(--nl-down); background: rgba(242, 85, 90, .14); }
.nl-chip--1 { top: 2%; right: 4%; }
.nl-chip--2 { top: 2%; left: 0; }   /* выше и левее ноутбука — не закрывает его край (заказчик) */
.nl-chip--3 { bottom: 9%; right: 8%; }
.nl-live { top: 49%; right: -3%; }
.nl-live__in { flex-direction: column; align-items: stretch; gap: 2px; width: 236px; padding: 14px 16px 12px; }
.nl-live__head { display: flex; align-items: center; gap: 8px; font-size: 13px; }
.nl-live__ic { width: 24px; height: 24px; border-radius: 50%; }
.nl-live__head b { flex: 1; font-weight: 700; }
.nl-live__badge { display: inline-flex; align-items: center; gap: 5px; padding: 3px 7px; border-radius: 6px; font-size: 10px; font-weight: 700; letter-spacing: .06em; color: #fff; background: rgba(124, 92, 255, .9); }
.nl-live__badge i { width: 6px; height: 6px; border-radius: 50%; background: #fff; animation: nlBlink 1.4s ease-in-out infinite; }
@keyframes nlBlink { 50% { opacity: .25; } }
.nl-live__row { display: flex; align-items: center; justify-content: space-between; gap: 8px; margin-top: 6px; }
.nl-live__px { font-size: 20px; font-weight: 700; letter-spacing: -.02em; font-variant-numeric: tabular-nums; }
.nl-live .nl-chg { height: 22px; font-size: 11.5px; }
/* плавают: появление — у обёртки (.is-ready), качание — у внутреннего блока */
html.nl-anim .nl-chip, html.nl-anim .nl-live { opacity: 0; transform: translateY(24px) scale(.92); }
html.nl-anim .nl-stage.is-ready .nl-chip, html.nl-anim .nl-stage.is-ready .nl-live { opacity: 1; transform: none; transition: opacity .7s ease, transform 1s var(--nl-ease); }
html.nl-anim .nl-stage.is-ready .nl-live { transition-delay: 1s; }
html.nl-anim .nl-stage.is-ready .nl-chip--1 { transition-delay: .9s; }
html.nl-anim .nl-stage.is-ready .nl-chip--2 { transition-delay: 1.1s; }
html.nl-anim .nl-stage.is-ready .nl-chip--3 { transition-delay: 1.3s; }
html.nl-anim .nl-chip__in, html.nl-anim .nl-live__in { animation: nlFloat 7s ease-in-out infinite; }
html.nl-anim .nl-live__in { animation-duration: 9s; animation-delay: -1s; }
html.nl-anim .nl-chip--2 .nl-chip__in { animation-duration: 8.5s; animation-delay: -2s; }
html.nl-anim .nl-chip--3 .nl-chip__in { animation-duration: 6.4s; animation-delay: -4s; }
@keyframes nlFloat { 0%, 100% { transform: translate3d(0, 0, 0); } 50% { transform: translate3d(0, -12px, 0); } }

.nl-mono { display: inline-flex; align-items: center; justify-content: center; flex: none; width: 34px; height: 34px; border-radius: 50%; font-size: 13px; font-weight: 700; color: #fff; letter-spacing: -.02em; }
.nl-mono--sm { width: 24px; height: 24px; font-size: 10px; }
.nl-mono--gold { background: linear-gradient(135deg, #F7D774, #C8961F); color: #3B2A00; }
.nl-mono--silver { background: linear-gradient(135deg, #F1F3F7, #9AA1AE); color: #262A33; }
.nl-mono--blue { background: linear-gradient(135deg, #6E9BFF, #3B5BDB); }
.nl-mono--slate { background: linear-gradient(135deg, #5B6075, #2C2F3D); }
.nl-mono--green { background: linear-gradient(135deg, #4ADE80, #15803D); }
.nl-mono--red { background: linear-gradient(135deg, #FF7A7A, #C2262B); }
.nl-mono--amber { background: linear-gradient(135deg, #FBBF24, #B45309); }
.nl-mono--accent { background: var(--nl-grad); }

/* подсказка «листайте» */
.nl-scroll { position: absolute; left: 50%; bottom: 8px; z-index: 2; width: 26px; height: 42px; margin-left: -13px; border-radius: 14px; box-shadow: inset 0 0 0 1.5px var(--nl-t4); }
.nl-scroll span { position: absolute; top: 8px; left: 50%; width: 4px; height: 8px; margin-left: -2px; border-radius: 2px; background: var(--nl-t2); animation: nlWheel 2s ease-in-out infinite; }
@keyframes nlWheel { 0% { transform: translateY(0); opacity: 0; } 30% { opacity: 1; } 80% { transform: translateY(14px); opacity: 0; } 100% { opacity: 0; } }

/* ---------------- бегущая строка ---------------- */
.nl-ticker {
    position: relative; z-index: 2; overflow: hidden; padding: 18px 0; background: var(--nl-s1);
    box-shadow: inset 0 1px 0 var(--nl-line), inset 0 -1px 0 var(--nl-line);
    -webkit-mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent); mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent);
}
.nl-ticker__track { display: flex; width: -webkit-max-content; width: max-content; animation: nlMarquee 60s linear infinite; }
.nl-ticker:hover .nl-ticker__track { animation-play-state: paused; }
.nl-ticker__list { display: flex; flex: none; align-items: center; }
.nl-tk { display: flex; align-items: center; gap: 10px; padding: 0 28px; white-space: nowrap; position: relative; }
.nl-tk::after { content: ""; position: absolute; right: 0; top: 50%; width: 4px; height: 4px; margin-top: -2px; border-radius: 50%; background: var(--nl-t4); }
.nl-tk__ic { width: 24px; height: 24px; border-radius: 50%; }
.nl-tk__sym { font-size: 14px; font-weight: 700; letter-spacing: -.01em; }
.nl-tk__px { font-size: 14px; font-weight: 500; color: var(--nl-t2); font-variant-numeric: tabular-nums; }
.nl-tk .nl-chg { height: 22px; font-size: 11.5px; }
@keyframes nlMarquee { from { transform: translate3d(0, 0, 0); } to { transform: translate3d(-50%, 0, 0); } }

/* ---------------- разделы ---------------- */
.nl-sec { position: relative; padding: 144px 0; }
.nl-sec__head { display: flex; flex-direction: column; align-items: flex-start; margin-bottom: 64px; }
.nl-sec__head--center { align-items: center; text-align: center; }
.nl-sec__head--split { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); column-gap: 64px; align-items: end; }
.nl-sec__head--split .nl-kicker { grid-column: 1; justify-self: start; }
.nl-sec__head--split .nl-h2 { grid-column: 1; }
.nl-sec__head--split .nl-lead { grid-column: 2; grid-row: 2; margin-top: 0 !important; padding-bottom: 6px; }
/* мягкие пятна света за разделами (статичные) */
.nl-sec > .nl-wrap { position: relative; z-index: 1; }
.nl-products::before, .nl-steps::before, .nl-faq::before, .nl-banks::before, .nl-trust::before {
    content: ""; position: absolute; z-index: 0; pointer-events: none; border-radius: 50%; width: 900px; height: 900px;
    background: radial-gradient(closest-side, rgba(124, 92, 255, .14), rgba(124, 92, 255, 0));
}
.nl-products::before { top: -200px; right: -300px; }
.nl-steps::before { top: 50%; right: -100px; margin-top: -450px; background: radial-gradient(closest-side, rgba(124, 92, 255, .18), rgba(124, 92, 255, 0)); }
.nl-trust::before { bottom: -300px; left: -360px; background: radial-gradient(closest-side, rgba(91, 140, 255, .12), rgba(91, 140, 255, 0)); }
.nl-banks::before { top: -260px; left: 50%; margin-left: -450px; }
.nl-faq::before { top: 0; left: -420px; }
html.nl-light .nl-products::before, html.nl-light .nl-steps::before, html.nl-light .nl-faq::before, html.nl-light .nl-banks::before, html.nl-light .nl-trust::before { opacity: .7; }
.nl-sec { overflow: hidden; }
.nl-faq { overflow: visible; }
.nl-h2 { display: block; margin-top: 22px !important; max-width: 900px; font-size: 40px; font-size: clamp(32px, 3.9vw, 58px); font-weight: 700; line-height: 1.06; letter-spacing: -.032em; color: var(--nl-t1); }
.nl-lead { display: block; margin-top: 22px !important; max-width: 640px; font-size: 18px; line-height: 1.65; color: var(--nl-t2); }
.nl-sec__head--center .nl-lead { margin-left: auto; margin-right: auto; }

/* слова заголовков разделов «загораются» по очереди */
html.nl-anim .nl-hw { opacity: .16; transition: opacity .7s ease; transition-delay: calc(var(--i) * 70ms + 250ms); }
html.nl-anim .is-in .nl-hw, html.nl-anim .is-in.nl-h2 .nl-hw { opacity: 1; }
/* появление при прокрутке (со ступенькой --d) */
html.nl-anim [data-rv] { opacity: 0; transform: translate3d(0, 36px, 0); }
html.nl-anim [data-rv].is-in { opacity: 1; transform: none; transition: opacity .9s ease, transform 1.1s var(--nl-ease); transition-delay: calc(var(--d, 0) * 90ms); }
html.nl-anim .nl-hero [data-rv].is-in { transition-delay: calc(var(--d, 0) * 110ms + 100ms); }

/* ---------------- карточки ---------------- */
.nl-card { position: relative; display: block; border-radius: 32px; padding: 1px; background: var(--nl-card-border); color: var(--nl-t1); transform-style: preserve-3d; }
.nl-card__in { position: relative; display: flex; flex-direction: column; height: 100%; border-radius: 31px; background: var(--nl-card-fill); overflow: hidden; isolation: isolate; }
.nl-card__glow {
    position: absolute; left: 0; top: 0; z-index: 0; width: 520px; height: 520px; margin: -260px 0 0 -260px; border-radius: 50%; pointer-events: none;
    background: radial-gradient(closest-side, rgba(166, 126, 251, .26), rgba(124, 92, 255, .1) 45%, rgba(124, 92, 255, 0));
    opacity: 0; transform: translate3d(var(--mx, 50%), var(--my, 50%), 0); transition: opacity .4s ease;
}
html.nl-light .nl-card__glow { background: radial-gradient(closest-side, rgba(255, 255, 255, .7), rgba(166, 126, 251, .18) 50%, rgba(166, 126, 251, 0)); }
.nl-card.is-hover .nl-card__glow { opacity: 1; }
[data-tilt] { transition: transform .7s var(--nl-ease), box-shadow .5s ease; will-change: transform; }
[data-tilt].is-hover { transition: transform .12s linear, box-shadow .5s ease; box-shadow: 0 40px 80px -40px rgba(124, 92, 255, .55); }
html.nl-anim [data-rv][data-tilt].is-in { transition: opacity .9s ease, transform 1.1s var(--nl-ease), box-shadow .5s ease; transition-delay: calc(var(--d, 0) * 90ms); }
html.nl-anim [data-rv][data-tilt].is-in.is-hover { transition: transform .12s linear, box-shadow .5s ease; transition-delay: 0s; }
html.nl-anim [data-rv][data-tilt].is-in.is-settled { transition: transform .7s var(--nl-ease), box-shadow .5s ease; transition-delay: 0s; }

/* продукты */
.nl-products__grid { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 20px; perspective: 1600px; }
.nl-span-4 { grid-column: span 4; } .nl-span-5 { grid-column: span 5; } .nl-span-6 { grid-column: span 6; } .nl-span-7 { grid-column: span 7; } .nl-span-12 { grid-column: span 12; }
.nl-pcard__media { position: relative; z-index: 1; display: block; height: 220px; margin: 8px 8px 0; border-radius: 24px; overflow: hidden; background: var(--nl-s3); }
.nl-pcard--wide .nl-pcard__media { height: 280px; }
.nl-pcard__media img { width: 100%; height: 100%; object-fit: cover; transform: scale(1.03); transition: transform 1.2s var(--nl-ease); }
.nl-pcard:hover .nl-pcard__media img { transform: scale(1.1); }
.nl-pcard__media::after { content: ""; position: absolute; top: 0; left: 0; right: 0; bottom: 0; background: linear-gradient(180deg, rgba(10, 8, 20, .05) 40%, rgba(10, 8, 20, .45) 100%), linear-gradient(135deg, rgba(124, 92, 255, .18), transparent 55%); pointer-events: none; }
.nl-pcard__num {
    position: absolute; top: 16px; left: 16px; z-index: 1; display: inline-flex; align-items: center; height: 30px; padding: 0 12px; border-radius: 999px;
    font-size: 12px; font-weight: 700; letter-spacing: .06em; color: #fff; background: rgba(15, 12, 28, .38); box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .22);
    -webkit-backdrop-filter: blur(14px); backdrop-filter: blur(14px);
}
.nl-pcard__body { position: relative; z-index: 1; display: flex; flex: 1; flex-direction: column; gap: 12px; padding: 26px 30px 28px; }
.nl-pcard__title { font-size: 26px; font-weight: 700; letter-spacing: -.025em; line-height: 1.15; }
.nl-pcard--wide .nl-pcard__title { font-size: 30px; }
.nl-pcard__text { font-size: 15px; line-height: 1.6; color: var(--nl-t2); max-width: 560px; }
.nl-pcard__foot { display: flex; align-items: flex-end; justify-content: space-between; gap: 16px; margin-top: auto; padding-top: 10px; }
.nl-pcard__chips { display: flex; flex-wrap: wrap; gap: 6px; min-width: 0; }
.nl-pcard__chips span { display: inline-flex; align-items: center; height: 30px; padding: 0 12px; border-radius: 10px; font-size: 12.5px; font-weight: 600; color: var(--nl-t2); background: var(--nl-glass); box-shadow: inset 0 0 0 1px var(--nl-glass-line); }
.nl-pcard__go {
    display: inline-flex; align-items: center; justify-content: center; flex: none; width: 48px; height: 48px; border-radius: 50%;
    color: var(--nl-t1); background: var(--nl-glass); box-shadow: inset 0 0 0 1px var(--nl-glass-line); transition: transform .5s var(--nl-ease), background-color .3s, color .3s;
}
.nl-pcard__go svg { width: 20px; height: 20px; transition: transform .5s var(--nl-ease); }
.nl-pcard:hover .nl-pcard__go { color: #fff; background: var(--nl-acc-2); box-shadow: 0 10px 26px -10px rgba(124, 92, 255, .9); transform: scale(1.06); }
.nl-pcard:hover .nl-pcard__go svg { transform: rotate(45deg); }
.nl-products__bar { display: none; }

/* тарифы (только текст Nordic) */
.nl-plans__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; align-items: stretch; perspective: 1500px; }
.nl-plan .nl-card__in { gap: 18px; padding: 34px 32px 30px; }
.nl-plan--focus { background: linear-gradient(150deg, #C9B2FF 0%, #7C5CFF 45%, #5B8CFF 100%); box-shadow: 0 40px 90px -45px rgba(124, 92, 255, .9); }
.nl-plan--focus .nl-card__in { background: radial-gradient(120% 120% at 50% 0%, rgba(124, 92, 255, .28) 0%, rgba(124, 92, 255, 0) 60%), var(--nl-card-fill); }
.nl-plan__top { position: relative; z-index: 1; display: flex; flex-direction: column; gap: 8px; padding-bottom: 20px; box-shadow: inset 0 -1px 0 var(--nl-line); }
.nl-plan__name { align-self: flex-start; padding: 6px 12px; border-radius: 999px; font-size: 12px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--nl-t2); background: var(--nl-glass); box-shadow: inset 0 0 0 1px var(--nl-glass-line); }
.nl-plan--focus .nl-plan__name { color: #fff; background: var(--nl-acc-2); background-image: var(--nl-grad); box-shadow: none; }
.nl-plan__price { display: flex; align-items: flex-start; gap: 6px; margin-top: 8px; }
.nl-plan__price b { font-size: 56px; font-weight: 700; line-height: 1; letter-spacing: -.04em; }
.nl-plan__price i { font-style: normal; font-size: 24px; font-weight: 700; color: var(--nl-t3); margin-top: 6px; }
.nl-plan__tag { min-height: 2.8em; font-size: 15px; font-weight: 600; color: var(--nl-t1); line-height: 1.4; }
.nl-plan__text { position: relative; z-index: 1; font-size: 14.5px; line-height: 1.65; color: var(--nl-t2); }
.nl-plan__fits { position: relative; z-index: 1; font-size: 13px; font-weight: 700; color: var(--nl-t3); text-transform: uppercase; letter-spacing: .06em; }
.nl-plan__list { position: relative; z-index: 1; display: grid; gap: 10px; }
.nl-plan__list > span { display: flex; align-items: flex-start; gap: 10px; font-size: 14.5px; line-height: 1.45; color: var(--nl-t2); }
.nl-plan__list i { display: inline-flex; align-items: center; justify-content: center; flex: none; width: 22px; height: 22px; border-radius: 7px; color: var(--nl-acc); background: rgba(166, 126, 251, .14); }
html.nl-light .nl-plan__list i { color: #6A47F0; }
.nl-plan__list i svg { width: 14px; height: 14px; }
.nl-plan__foot { position: relative; z-index: 1; display: flex; flex-direction: column; gap: 16px; margin-top: auto; padding-top: 22px; box-shadow: inset 0 1px 0 var(--nl-line); }
.nl-plan__cap { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; }
.nl-plan__cap small { font-size: 13px; color: var(--nl-t3); }
.nl-plan__cap b { font-size: 18px; font-weight: 700; }
.nl-plan__foot .nl-btn { width: 100%; }
.nl-plans::before { content: ""; position: absolute; z-index: 0; top: 30%; left: 50%; width: 1100px; height: 800px; margin-left: -550px; border-radius: 50%; pointer-events: none; background: radial-gradient(closest-side, rgba(124, 92, 255, .16), rgba(124, 92, 255, 0)); }

/* цифры — тёмный остров на фото */
.nl-stats { position: relative; overflow: hidden; padding: 150px 0; color: #fff; background: #0A0A0F; }
.nl-stats { --nl-t1: #FFFFFF; --nl-t1-rgb: 255, 255, 255; --nl-t2: rgba(255, 255, 255, .7); --nl-t3: rgba(255, 255, 255, .48); --nl-t4: rgba(255, 255, 255, .22); --nl-line: rgba(255, 255, 255, .12); --nl-glass: rgba(242, 242, 255, .1); --nl-glass-line: rgba(242, 242, 255, .16); --nl-grad-text: linear-gradient(100deg, #FFFFFF 0%, #E2D6FF 35%, #B394FF 70%, #8FB2FF 100%); }
.nl-stats__bg { position: absolute; top: 0; left: 0; right: 0; bottom: 0; }
.nl-stats__photo { position: absolute; top: -15%; left: 0; right: 0; height: 130%; will-change: transform; }
.nl-stats__photo img { width: 100%; height: 100%; object-fit: cover; opacity: .5; }
.nl-stats__bg::after {
    content: ""; position: absolute; top: 0; left: 0; right: 0; bottom: 0;
    background: radial-gradient(60% 80% at 50% 50%, rgba(36, 22, 80, .45), rgba(8, 8, 14, .92) 100%), linear-gradient(180deg, rgba(10, 10, 15, .9), rgba(10, 10, 15, .4) 40%, rgba(10, 10, 15, .4) 60%, rgba(10, 10, 15, .95));
}
.nl-stats .nl-wrap { position: relative; z-index: 1; }
.nl-stats__grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); }
.nl-stat { display: flex; flex-direction: column; align-items: center; gap: 14px; padding: 12px 20px; text-align: center; }
.nl-stat + .nl-stat { box-shadow: inset 1px 0 0 var(--nl-line); }
.nl-stat__val {
    font-size: 56px; font-size: clamp(40px, 5vw, 80px); font-weight: 700; line-height: 1; letter-spacing: -.04em; font-variant-numeric: tabular-nums; white-space: nowrap;
    background: var(--nl-grad-text); -webkit-background-clip: text; background-clip: text; color: transparent; -webkit-text-fill-color: transparent;
}
.nl-stat__lbl { font-size: 15px; font-weight: 500; color: var(--nl-t2); }

/* шаги */
.nl-steps__in { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); align-items: center; gap: 64px; }
.nl-steps__copy { min-width: 0; }
.nl-steps__copy .nl-sec__head { margin-bottom: 40px; }
.nl-steps__list { margin-bottom: 40px !important; counter-reset: s; }
.nl-step { position: relative; box-shadow: inset 0 1px 0 var(--nl-line); }
.nl-step:last-child { box-shadow: inset 0 1px 0 var(--nl-line), inset 0 -1px 0 var(--nl-line); }
.nl-step__btn { display: flex; align-items: flex-start; gap: 20px; width: 100%; padding: 26px 0; text-align: left; }
.nl-step__num {
    display: inline-flex; align-items: center; justify-content: center; flex: none; width: 44px; height: 44px; border-radius: 14px;
    font-size: 16px; font-weight: 700; color: var(--nl-t2); background: var(--nl-glass); box-shadow: inset 0 0 0 1px var(--nl-glass-line);
    transition: color .4s, background-color .4s, box-shadow .4s, transform .5s var(--nl-ease);
}
.nl-step.is-on .nl-step__num { color: #fff; background: var(--nl-acc-2); background-image: var(--nl-grad); box-shadow: 0 12px 30px -12px rgba(124, 92, 255, .9); transform: scale(1.05); }
.nl-step__txt { display: grid; grid-template-rows: auto 0fr; min-width: 0; padding-top: 9px; transition: grid-template-rows .55s var(--nl-ease); }
.nl-step__txt b { font-size: 21px; font-weight: 600; letter-spacing: -.02em; line-height: 1.3; color: var(--nl-t3); transition: color .4s; }
.nl-step__txt span { overflow: hidden; font-size: 15.5px; line-height: 1.65; color: var(--nl-t2); opacity: 0; transition: opacity .5s ease, padding .5s var(--nl-ease); }
.nl-step.is-on .nl-step__txt { grid-template-rows: auto 1fr; }
.nl-step.is-on .nl-step__txt b { color: var(--nl-t1); }
.nl-step.is-on .nl-step__txt span { opacity: 1; padding-top: 10px; }
.nl-step:hover .nl-step__txt b { color: var(--nl-t1); }
.nl-step__bar { position: absolute; left: 0; right: 0; bottom: -1px; height: 2px; overflow: hidden; }
.nl-step__bar i { position: absolute; top: 0; left: 0; bottom: 0; width: 100%; background: var(--nl-grad); transform: scaleX(0); transform-origin: 0 50%; }
.nl-step.is-on .nl-step__bar i { transform: scaleX(1); }
.nl-steps.is-auto .nl-step.is-on .nl-step__bar i { transform: scaleX(0); animation: nlProgress var(--nl-step-ms, 1900ms) linear forwards; }
.nl-steps.is-paused .nl-step.is-on .nl-step__bar i { animation-play-state: paused; }
@keyframes nlProgress { to { transform: scaleX(1); } }

.nl-steps__visual { position: relative; display: flex; align-items: center; justify-content: center; min-height: 680px; }
.nl-ring { position: absolute; top: 50%; left: 50%; border-radius: 50%; pointer-events: none; }
.nl-ring--1 { width: 560px; height: 560px; margin: -280px 0 0 -280px; border: 1px solid rgba(166, 126, 251, .22); background: radial-gradient(closest-side, rgba(124, 92, 255, .2), rgba(124, 92, 255, 0)); }
.nl-ring--2 { width: 420px; height: 420px; margin: -210px 0 0 -210px; border: 1px dashed rgba(166, 126, 251, .3); animation: nlSpin 40s linear infinite; }
.nl-ring--1::after, .nl-ring--2::after { content: ""; position: absolute; top: -5px; left: 50%; width: 10px; height: 10px; margin-left: -5px; border-radius: 50%; background: var(--nl-acc); box-shadow: 0 0 16px 4px rgba(166, 126, 251, .8); }
.nl-ring--1 { animation: nlSpin 60s linear infinite reverse; }
@keyframes nlSpin { to { transform: rotate(360deg); } }
.nl-phone--steps { position: relative; width: 300px; padding: 10px; border-radius: 48px; }
.nl-phone--steps .nl-phone__screen { border-radius: 38px; }
.nl-screen { position: absolute; top: 0; left: 0; right: 0; bottom: 0; opacity: 0; transform: scale(1.06); transition: opacity .7s ease, transform 1s var(--nl-ease); }
.nl-screen.is-on { opacity: 1; transform: none; }
.nl-screen .nl-shot { position: absolute; top: 4.8%; left: 0; width: 100%; height: 95.2%; object-fit: cover; object-position: top center; }
.nl-screen { z-index: 1; }
.nl-screen--form { background: #101014; }
html.nl-light .nl-screen--form { background: #D3D3D3; }
.nl-form { position: absolute; top: 0; left: 0; right: 0; bottom: 0; display: flex; flex-direction: column; align-items: stretch; gap: 10px; padding: 64px 22px 24px; color: var(--nl-t1); }
.nl-form__logo { width: 52px; height: 52px; margin: 0 auto 4px; background: transparent; filter: drop-shadow(0 8px 18px rgba(124, 92, 255, .5)); }
.nl-form__logo img { width: 100%; height: 100%; object-fit: contain; }
.nl-form__title { text-align: center; font-size: 22px; font-weight: 700; letter-spacing: -.02em; }
.nl-form__sub { text-align: center; font-size: 12.5px; color: var(--nl-t3); margin: -6px 0 10px; }
.nl-form__field { position: relative; display: flex; flex-direction: column; justify-content: center; height: 56px; padding: 0 16px; border-radius: 14px; background: rgba(var(--nl-t1-rgb), .06); box-shadow: inset 0 0 0 1px var(--nl-line); }
.nl-form__field i { font-style: normal; font-size: 10.5px; font-weight: 600; color: var(--nl-t3); text-transform: uppercase; letter-spacing: .06em; }
.nl-form__typed { font-size: 14px; font-weight: 600; }
.nl-form__check { display: flex; align-items: center; gap: 10px; margin: 2px 0 4px; }
.nl-form__check span { display: inline-flex; align-items: center; justify-content: center; width: 20px; height: 20px; border-radius: 6px; background: var(--nl-acc-2); color: #fff; }
.nl-form__check span svg { width: 14px; height: 14px; }
.nl-form__check i { flex: 1; height: 8px; border-radius: 4px; background: rgba(var(--nl-t1-rgb), .1); }
.nl-form__btn { display: flex; align-items: center; justify-content: center; height: 52px; margin-top: auto; border-radius: 16px; font-size: 15px; font-weight: 700; color: #fff; background: var(--nl-grad); box-shadow: 0 14px 30px -14px rgba(124, 92, 255, .9); }
html.nl-anim .nl-screen--form .nl-form > * { opacity: 0; transform: translateY(14px); }
html.nl-anim .nl-screen--form.is-on .nl-form > * { opacity: 1; transform: none; transition: opacity .5s ease, transform .7s var(--nl-ease); }
html.nl-anim .nl-screen--form.is-on .nl-form > *:nth-child(2) { transition-delay: .08s; }
html.nl-anim .nl-screen--form.is-on .nl-form > *:nth-child(3) { transition-delay: .12s; }
html.nl-anim .nl-screen--form.is-on .nl-form > *:nth-child(4) { transition-delay: .3s; }
html.nl-anim .nl-screen--form.is-on .nl-form > *:nth-child(5) { transition-delay: .55s; }
html.nl-anim .nl-screen--form.is-on .nl-form > *:nth-child(6) { transition-delay: .8s; }
html.nl-anim .nl-screen--form.is-on .nl-form > *:nth-child(7) { transition-delay: 1.05s; }
html.nl-anim .nl-screen--form.is-on .nl-form > *:nth-child(8) { transition-delay: 1.3s; }
html.nl-anim .nl-screen--form.is-on .nl-form > *:nth-child(9) { transition-delay: 1.5s; }
.nl-float {
    position: absolute; z-index: 2; display: flex; align-items: center; gap: 12px; padding: 12px 18px 12px 12px; border-radius: 18px; white-space: nowrap;
    background: rgba(28, 26, 40, .66); box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .14), 0 24px 50px -20px rgba(0, 0, 0, .7);
    -webkit-backdrop-filter: blur(18px); backdrop-filter: blur(18px); color: #fff;
}
html.nl-light .nl-float { background: rgba(255, 255, 255, .6); box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .7), 0 24px 50px -24px rgba(40, 30, 90, .45); color: #22232F; }
.nl-float b { display: block; font-size: 13.5px; font-weight: 700; }
.nl-float small { display: block; font-size: 12px; opacity: .7; }
.nl-float__ic { display: inline-flex; align-items: center; justify-content: center; width: 38px; height: 38px; border-radius: 12px; color: #fff; background: var(--nl-grad); }
.nl-float__ic--up { background: linear-gradient(135deg, #34D399, #16A34A); }
.nl-float__ic svg { width: 20px; height: 20px; }
.nl-float--a { top: 18%; left: 2%; }
.nl-float--b { bottom: 16%; right: 0; }
html.nl-anim .nl-float { animation: nlFloat 7.5s ease-in-out infinite; }
html.nl-anim .nl-float--b { animation-duration: 8.6s; animation-delay: -3s; }

/* безопасность */
.nl-trust__grid { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: 20px; }
.nl-trust__photo { min-height: 560px; }
.nl-trust__photo .nl-card__in { justify-content: flex-end; }
.nl-trust__img { position: absolute; top: -10%; left: 0; right: 0; height: 120%; z-index: 0; will-change: transform; }
.nl-trust__img img { width: 100%; height: 100%; object-fit: cover; }
.nl-trust__photo .nl-card__in::after { content: ""; position: absolute; top: 0; left: 0; right: 0; bottom: 0; z-index: 0; background: linear-gradient(180deg, rgba(20, 12, 50, .25) 0%, rgba(14, 10, 30, .55) 45%, rgba(9, 8, 16, .96) 100%), linear-gradient(135deg, rgba(124, 92, 255, .35), transparent 60%); }
.nl-trust__over { position: relative; z-index: 1; display: flex; flex-direction: column; align-items: flex-start; gap: 16px; padding: 40px; color: #fff; }
.nl-trust__shield { display: inline-flex; align-items: center; justify-content: center; width: 64px; height: 64px; margin-bottom: 8px; border-radius: 20px; color: #fff; background: rgba(255, 255, 255, .12); box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .22), 0 0 50px -6px rgba(166, 126, 251, .8); -webkit-backdrop-filter: blur(16px); backdrop-filter: blur(16px); }
.nl-trust__shield svg { width: 32px; height: 32px; }
.nl-trust__title { font-size: 34px; font-size: clamp(28px, 2.8vw, 40px); font-weight: 700; letter-spacing: -.03em; line-height: 1.1; }
.nl-trust__lead { font-size: 16px; line-height: 1.6; color: rgba(255, 255, 255, .76); max-width: 460px; }
.nl-trust__list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; perspective: 1400px; }
.nl-tfeat .nl-card__in { gap: 12px; padding: 34px 32px; }
.nl-tfeat__ic {
    position: relative; z-index: 1; display: inline-flex; align-items: center; justify-content: center; width: 56px; height: 56px; margin-bottom: 12px; border-radius: 18px;
    color: var(--nl-acc); background: rgba(166, 126, 251, .12); box-shadow: inset 0 0 0 1px rgba(166, 126, 251, .26);
}
html.nl-light .nl-tfeat__ic { color: #6A47F0; }
.nl-tfeat__ic svg { width: 26px; height: 26px; }
.nl-tfeat__title { position: relative; z-index: 1; font-size: 20px; font-weight: 700; letter-spacing: -.02em; line-height: 1.25; }
.nl-tfeat__text { position: relative; z-index: 1; font-size: 15px; line-height: 1.65; color: var(--nl-t2); }

/* приложение */
.nl-app__card { border-radius: 40px; }
.nl-app__card > .nl-card__in { border-radius: 39px; }
.nl-app__in { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); align-items: center; gap: 40px; padding: 56px 64px; min-height: 560px; }
.nl-app__in--land { grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr); }
.nl-app__in::before { content: ""; position: absolute; top: -30%; left: -10%; width: 70%; height: 140%; background: radial-gradient(closest-side, rgba(124, 92, 255, .3), rgba(124, 92, 255, 0)); pointer-events: none; }
.nl-app__visual { position: relative; display: flex; align-items: center; justify-content: center; min-height: 420px; }
.nl-app__figure { position: relative; z-index: 1; display: block; width: var(--nl-app-size, 100%); }
.nl-app__figure img { width: 100%; height: auto; max-height: 520px; object-fit: contain; margin: 0 auto; }
.nl-app__visual--dark .nl-app__figure img, .nl-app__visual--light .nl-app__figure img { border-radius: 28px; box-shadow: 0 0 0 1px var(--nl-line-2), 0 40px 90px -40px rgba(0, 0, 0, .8); }
.nl-app__visual--transparent .nl-app__figure img { filter: drop-shadow(0 40px 50px rgba(0, 0, 0, .45)); }
html.nl-light .nl-app__visual--transparent .nl-app__figure img { filter: drop-shadow(0 40px 40px rgba(40, 30, 90, .3)); }
html.nl-anim .nl-app__visual.is-anim .nl-app__figure { animation: nlFloat 8s ease-in-out infinite; }
.nl-ring--app1 { width: 460px; height: 460px; margin: -230px 0 0 -230px; border: 1px solid rgba(166, 126, 251, .2); background: radial-gradient(closest-side, rgba(124, 92, 255, .28), rgba(124, 92, 255, 0)); animation: nlSpin 50s linear infinite; }
.nl-ring--app2 { width: 340px; height: 340px; margin: -170px 0 0 -170px; border: 1px dashed rgba(166, 126, 251, .3); animation: nlSpin 34s linear infinite reverse; }
.nl-ring--app1::after, .nl-ring--app2::after { content: ""; position: absolute; top: -4px; left: 50%; width: 8px; height: 8px; margin-left: -4px; border-radius: 50%; background: var(--nl-acc); box-shadow: 0 0 14px 3px rgba(166, 126, 251, .8); }
.nl-app__copy { position: relative; z-index: 1; display: flex; flex-direction: column; align-items: flex-start; min-width: 0; }
.nl-app__title { font-size: 36px; font-size: clamp(28px, 3vw, 46px); }
.nl-app__list { display: grid; gap: 12px; margin: 30px 0 36px; }
.nl-app__list > span { display: flex; align-items: flex-start; gap: 12px; font-size: 15.5px; line-height: 1.5; color: var(--nl-t2); }
.nl-app__list i { display: inline-flex; align-items: center; justify-content: center; flex: none; width: 24px; height: 24px; border-radius: 8px; color: #fff; background: var(--nl-grad); }
.nl-app__list i svg { width: 15px; height: 15px; }
.nl-app .nl-btn { white-space: normal; text-align: left; }

/* банки */
.nl-banks__grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 20px; perspective: 1400px; }
.nl-bank .nl-card__in { align-items: flex-start; gap: 12px; padding: 30px 28px; }
.nl-bank__logo { position: relative; z-index: 1; display: flex; align-items: center; width: 100%; height: 72px; margin-bottom: 8px; }
.nl-bank__logo img { max-width: 78%; max-height: 64px; object-fit: contain; }
.nl-bank__name { position: relative; z-index: 1; font-size: 18px; font-weight: 700; letter-spacing: -.015em; }
.nl-bank__tag { position: relative; z-index: 1; display: inline-flex; align-items: center; gap: 6px; min-height: 28px; padding: 4px 10px; border-radius: 999px; font-size: 12px; font-weight: 600; line-height: 1.3; color: var(--nl-up); background: rgba(34, 197, 94, .1); box-shadow: inset 0 0 0 1px rgba(34, 197, 94, .26); }
.nl-bank__tag svg { width: 13px; height: 13px; }

/* вопросы */
.nl-faq__in { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: 64px; align-items: start; }
.nl-faq__head { position: -webkit-sticky; position: sticky; top: 110px; margin-bottom: 0; }
.nl-faq__mail { margin-top: 32px; }
.nl-faq__mail svg { width: 18px; height: 18px; }
.nl-faq__mail:hover svg { transform: none; }
.nl-acc__item { box-shadow: inset 0 1px 0 var(--nl-line-2); }
.nl-acc__item:last-child { box-shadow: inset 0 1px 0 var(--nl-line-2), inset 0 -1px 0 var(--nl-line-2); }
.nl-acc__q { font: inherit; }
.nl-acc__q button { display: flex; align-items: center; justify-content: space-between; gap: 24px; width: 100%; padding: 28px 0; text-align: left; font-size: 19px; font-weight: 600; letter-spacing: -.015em; line-height: 1.4; color: var(--nl-t1); transition: color .3s; }
.nl-acc__q button:hover { color: var(--nl-acc); }
html.nl-light .nl-acc__q button:hover { color: #6A47F0; }
.nl-acc__q i { display: inline-flex; align-items: center; justify-content: center; flex: none; width: 40px; height: 40px; border-radius: 12px; color: var(--nl-t2); background: var(--nl-glass); box-shadow: inset 0 0 0 1px var(--nl-glass-line); transition: background-color .3s, color .3s, box-shadow .3s; }
.nl-acc__q i svg { width: 22px; height: 22px; transition: transform .45s var(--nl-ease); }
.nl-acc__item.is-open .nl-acc__q i { color: #fff; background: var(--nl-acc-2); background-image: var(--nl-grad); box-shadow: 0 10px 24px -10px rgba(124, 92, 255, .9); }
.nl-acc__item.is-open .nl-acc__q i svg { transform: rotate(135deg); }
.nl-acc__a { display: grid; grid-template-rows: 0fr; transition: grid-template-rows .5s var(--nl-ease); }
.nl-acc__a > div { overflow: hidden; }
.nl-acc__a p { max-width: 680px; padding: 0 64px 28px 0; font-size: 16px; line-height: 1.7; color: var(--nl-t2); opacity: 0; transform: translateY(-6px); transition: opacity .4s ease, transform .5s var(--nl-ease); }
.nl-acc__item.is-open .nl-acc__a { grid-template-rows: 1fr; }
.nl-acc__item.is-open .nl-acc__a p { opacity: 1; transform: none; transition-delay: .08s; }

/* финальный призыв */
.nl-final { padding: 24px 0 144px; }
.nl-final__btn {
    position: relative; isolation: isolate; overflow: hidden; display: flex; align-items: center; justify-content: space-between; gap: 40px;
    min-height: 260px; padding: 64px 72px; border-radius: 44px; color: #fff !important;
    background-color: #7C5CFF; background-image: var(--nl-grad-wide); background-size: 220% 100%; background-position: 0 0;
    box-shadow: 0 50px 120px -50px rgba(124, 92, 255, .9), inset 0 1px 0 rgba(255, 255, 255, .3);
    transition: transform .6s var(--nl-ease), box-shadow .6s ease, background-position 1.4s ease;
}
.nl-final__btn:hover { transform: translateY(-4px); background-position: 70% 0; box-shadow: 0 60px 130px -50px rgba(124, 92, 255, 1), inset 0 1px 0 rgba(255, 255, 255, .34); }
.nl-final__photo { position: absolute; top: 0; left: 0; right: 0; bottom: 0; z-index: -1; opacity: .5; mix-blend-mode: soft-light; }
.nl-final__photo img { width: 100%; height: 100%; object-fit: cover; }
.nl-final__sheen { position: absolute; top: -50%; left: 0; z-index: -1; width: 34%; height: 200%; background: linear-gradient(90deg, rgba(255, 255, 255, 0), rgba(255, 255, 255, .22), rgba(255, 255, 255, 0)); transform: translateX(-140%) rotate(16deg); }
html.nl-anim .nl-final__sheen { animation: nlSheen 7s ease-in-out 1s infinite; }
@keyframes nlSheen { 0% { transform: translateX(-140%) rotate(16deg); } 45%, 100% { transform: translateX(420%) rotate(16deg); } }
.nl-final__txt { display: flex; flex-direction: column; gap: 18px; min-width: 0; }
.nl-final__txt b { font-size: 44px; font-size: clamp(32px, 4.4vw, 68px); font-weight: 700; line-height: 1.02; letter-spacing: -.035em; text-wrap: balance; }
.nl-final__txt span { max-width: 600px; font-size: 17px; line-height: 1.6; color: rgba(255, 255, 255, .84); }
.nl-final__go {
    position: relative; display: inline-flex; align-items: center; justify-content: center; flex: none; width: 128px; height: 128px; border-radius: 50%;
    color: #5B3FE0; background: #fff; box-shadow: 0 20px 50px -18px rgba(20, 10, 60, .6); transition: transform .6s var(--nl-ease);
}
.nl-final__go::before { content: ""; position: absolute; top: -10px; left: -10px; right: -10px; bottom: -10px; border-radius: 50%; border: 1.5px solid rgba(255, 255, 255, .5); animation: nlPing 2.6s ease-out infinite; }
.nl-final__go svg { width: 44px; height: 44px; transition: transform .6s var(--nl-ease); }
.nl-final__btn:hover .nl-final__go { transform: scale(1.07) rotate(-8deg); }
.nl-final__btn:hover .nl-final__go svg { transform: translateX(6px); }

/* подвал */
.nl-foot { position: relative; overflow: hidden; padding: 96px 0 0; background: linear-gradient(180deg, var(--nl-bg) 0%, var(--nl-s2) 100%); box-shadow: inset 0 1px 0 var(--nl-line); }
.nl-foot__top { display: grid; grid-template-columns: minmax(0, 1.6fr) repeat(3, minmax(0, 1fr)); gap: 48px; }
.nl-foot__brand p { margin-top: 20px !important; max-width: 360px; font-size: 14.5px; line-height: 1.7; color: var(--nl-t3); }
.nl-foot__col { display: flex; flex-direction: column; align-items: flex-start; gap: 12px; min-width: 0; }
.nl-foot__col b { margin-bottom: 6px; font-size: 12px; font-weight: 700; text-transform: uppercase; letter-spacing: .12em; color: var(--nl-t3); }
.nl-foot__col a { font-size: 15px; font-weight: 500; color: var(--nl-t2); transition: color .25s; overflow-wrap: anywhere; }
.nl-foot__col a:hover { color: var(--nl-t1); }
.nl-foot__legal { margin-top: 72px; padding: 32px 0 36px; box-shadow: inset 0 1px 0 var(--nl-line); }
.nl-foot__legal p { max-width: 980px; font-size: 13px; line-height: 1.7; color: var(--nl-t3); }
.nl-foot__copy { margin-top: 12px !important; color: var(--nl-t2) !important; font-weight: 500; }
.nl-foot__word {
    padding: 0 16px; margin-bottom: -.2em; text-align: center; white-space: nowrap; overflow: hidden;
    font-size: 120px; font-size: clamp(64px, 15vw, 240px); font-weight: 700; line-height: 1; letter-spacing: -.055em;
    background: linear-gradient(180deg, rgba(var(--nl-t1-rgb), .12) 0%, rgba(var(--nl-t1-rgb), 0) 82%); -webkit-background-clip: text; background-clip: text; color: transparent; -webkit-text-fill-color: transparent;
    -webkit-user-select: none; user-select: none; pointer-events: none;
}

/* ---------------- ширины ---------------- */
@media (max-width: 1280px) {
    .nl-nav a { padding: 10px 10px; }
    .nl-stage { height: 540px; }
    .nl-pcard__title { font-size: 24px; }
    .nl-pcard--wide .nl-pcard__title { font-size: 28px; }
    .nl-app__in { padding: 48px; }
}
@media (max-width: 1180px) {
    .nl-nav { display: none; }
    .nl-burger { display: inline-flex; }
    .nl-head__tools { margin-left: auto !important; }
}
@media (max-width: 1100px) {
    .nl-hero { min-height: 0; padding: calc(var(--nl-head-h) + 48px) 0 64px; padding-top: calc(var(--nl-head-h) + 48px + var(--safe-area-inset-top, env(safe-area-inset-top, 0px))); }
    .nl-hero__in { grid-template-columns: minmax(0, 1fr); gap: 24px; }
    .nl-hero__copy { max-width: 760px; }
    .nl-display { font-size: 56px; font-size: clamp(40px, 7.4vw, 76px); }
    .nl-display--long { font-size: 46px; font-size: clamp(32px, 5.8vw, 56px); }
    .nl-hero__bg::after { background: linear-gradient(180deg, rgba(var(--nl-bg-rgb), .9) 0%, rgba(var(--nl-bg-rgb), .7) 45%, rgba(var(--nl-bg-rgb), .3) 70%, rgb(var(--nl-bg-rgb)) 100%); }
    .nl-stage { height: 520px; max-width: 760px; margin: 0 auto; --nl-ty: -12deg; --nl-tx: 6deg; --nl-tz: 1deg; }
    .nl-laptop { left: 12%; width: 86%; top: 6%; }
    .nl-phone--hero { left: 2%; }
    .nl-chip--2 { top: -1%; left: 2%; }
    .nl-scroll { display: none; }
    .nl-sec { padding: 112px 0; }
    .nl-stats { padding: 112px 0; }
    .nl-final { padding-bottom: 112px; }
    .nl-steps__in { grid-template-columns: minmax(0, 1fr); gap: 32px; }
    .nl-steps__visual { min-height: 640px; }
    .nl-trust__grid { grid-template-columns: minmax(0, 1fr); }
    .nl-trust__photo { min-height: 440px; }
    .nl-app__in, .nl-app__in--land { grid-template-columns: minmax(0, 1fr); padding: 40px; gap: 24px; }
    .nl-app__visual { min-height: 360px; }
    .nl-banks__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .nl-plans__grid { grid-template-columns: minmax(0, 1fr); max-width: 560px; margin: 0 auto; }
    .nl-faq__in { grid-template-columns: minmax(0, 1fr); gap: 32px; }
    .nl-faq__head { position: static; }
    .nl-faq { overflow: hidden; }
    .nl-foot__top { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .nl-foot__brand { grid-column: 1 / -1; }
}
@media (max-width: 1024px) {
    .nl-sec__head--split { display: flex; align-items: flex-start; }
    .nl-sec__head--split .nl-lead { margin-top: 22px !important; padding-bottom: 0; }
    .nl-products__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .nl-products__grid > .nl-card { grid-column: span 1; }
    .nl-products__grid > .nl-card:last-child:nth-child(odd) { grid-column: 1 / -1; }
    .nl-pcard--wide .nl-pcard__media, .nl-pcard__media { height: 220px; }
    .nl-stats__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); row-gap: 48px; }
    .nl-stat:nth-child(3) { box-shadow: none; }
}
@media (max-width: 768px) {
    :root, html.nl-dark, html.nl-light { --nl-head-h: 64px; }
    .nl-wrap { padding-left: calc(20px + env(safe-area-inset-left, 0px)); padding-right: calc(20px + env(safe-area-inset-right, 0px)); }
    .nl-head__login { display: none; }
    .nl-lang { display: none; }
    .nl-theme { display: none; }
    .nl-sec { padding: 88px 0; }
    .nl-stats { padding: 88px 0; }
    .nl-sec__head { margin-bottom: 40px; }
    .nl-lead { font-size: 16px; }
    .nl-display { margin-top: 22px !important; }
    .nl-hero__lead { font-size: 16px; margin-top: 20px !important; }
    .nl-hero__btns { margin-top: 28px; }
    .nl-hero__facts { margin-top: 32px !important; padding-top: 22px; gap: 12px 32px; }
    .nl-hero__facts dt { font-size: 24px; }
    .nl-stage { height: 440px; }
    .nl-phone { width: 150px; padding: 6px; border-radius: 30px; }
    .nl-phone__screen { border-radius: 24px; }
    .nl-chip__in { padding: 8px 12px 8px 8px; gap: 8px; border-radius: 15px; }
    .nl-chip__ic, .nl-chip .nl-mono { width: 28px; height: 28px; }
    .nl-chip__txt b { font-size: 12px; } .nl-chip__txt span { font-size: 11.5px; }
    .nl-chip .nl-chg { height: 20px; font-size: 11px; padding: 0 6px; }
    /* телефон: плавающие плашки без размытия фона — дешевле для слабых устройств */
    .nl-chip__in, .nl-live__in, .nl-float { -webkit-backdrop-filter: none; backdrop-filter: none; background: rgba(26, 24, 38, .92); }
    html.nl-light .nl-chip__in, html.nl-light .nl-live__in, html.nl-light .nl-float { background: rgba(236, 236, 242, .94); }
    .nl-live__in { width: 196px; padding: 11px 13px 10px; border-radius: 16px; }
    .nl-live__px { font-size: 17px; }
    .nl-chart { height: 60px; }
    .nl-trust__list { grid-template-columns: minmax(0, 1fr); gap: 14px; }
    .nl-tfeat .nl-card__in { padding: 26px 24px; }
    .nl-trust__over { padding: 28px 24px; }
    .nl-final__btn { flex-direction: column; align-items: flex-start; gap: 28px; padding: 40px 28px; border-radius: 32px; min-height: 0; }
    .nl-final__go { width: 80px; height: 80px; align-self: flex-end; margin-top: -8px; }
    .nl-final__go svg { width: 30px; height: 30px; }
    .nl-final__txt span { font-size: 15.5px; }
    .nl-foot { padding-top: 72px; }
    .nl-foot__top { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 36px 24px; }
    .nl-acc__q button { font-size: 17px; padding: 22px 0; }
    .nl-acc__a p { padding-right: 0; font-size: 15px; }
}
@media (max-width: 640px) {
    .nl-wrap { padding-left: calc(16px + env(safe-area-inset-left, 0px)); padding-right: calc(16px + env(safe-area-inset-right, 0px)); }
    .nl-logo__name { font-size: 16px; max-width: 140px; }
    .nl-logo__img { width: 36px; height: 36px; border-radius: 11px; }
    .nl-head__tools { gap: 6px; }
    .nl-head__cta { height: 40px; padding: 0 14px; font-size: 13.5px; }
    .nl-icon-btn { height: 40px; min-width: 40px; }
    .nl-hero { padding-top: calc(var(--nl-head-h) + 28px + var(--safe-area-inset-top, env(safe-area-inset-top, 0px))); padding-bottom: 40px; }   /* + строка состояния в приложении: шапка выше на неё */
    .nl-pill { font-size: 12px; min-height: 32px; padding: 5px 14px 5px 10px; }
    .nl-display { font-size: 38px; font-size: clamp(32px, 9.6vw, 44px); line-height: 1.06; letter-spacing: -.03em; }
    .nl-display--long { font-size: 30px; font-size: clamp(27px, 8vw, 36px); }
    .nl-hero__btns { display: grid; grid-template-columns: minmax(0, 1fr); gap: 10px; }
    .nl-hero__btns .nl-btn { width: 100%; height: 56px; }
    .nl-hero__facts { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .nl-stage { height: 340px; margin: 0 -4px; perspective: 1200px; --nl-ty: -9deg; --nl-tx: 5deg; --nl-tz: .5deg; }
    .nl-laptop { left: 18%; width: 92%; top: 7%; }
    .nl-laptop__lid { border-radius: 12px 12px 5px 5px; }
    .nl-laptop__screen { border-radius: 5px; }
    .nl-laptop__base { height: 9px; border-radius: 2px 2px 12px 12px; }
    .nl-phone { width: 112px; padding: 5px; border-radius: 22px; }
    .nl-phone__screen { border-radius: 18px; }
    .nl-phone--hero { left: 3%; bottom: 1%; }
    .nl-chip--1 { top: -3%; right: 1%; }
    .nl-chip--2, .nl-chip--3 { display: none; }
    .nl-live { top: auto; bottom: 0; right: 1%; }
    .nl-live__in { width: 170px; padding: 10px 12px 9px; }
    .nl-live__head { font-size: 12px; gap: 6px; }
    .nl-live__ic { width: 20px; height: 20px; }
    .nl-live__px { font-size: 15px; }
    .nl-chart { height: 48px; }
    .nl-ticker { padding: 14px 0; }
    .nl-tk { padding: 0 20px; }
    .nl-sec { padding: 72px 0; }
    .nl-stats { padding: 72px 0; }
    .nl-h2 { margin-top: 18px !important; }
    .nl-lead { margin-top: 16px !important; }
    /* продукты — лента с прокруткой пальцем и полосой-прогрессом */
    .nl-products__grid {
        display: grid; grid-auto-flow: column; grid-template-columns: none; grid-auto-columns: 86%; gap: 12px;
        overflow-x: auto; -webkit-overflow-scrolling: touch; scroll-snap-type: x mandatory; scrollbar-width: none;
        margin: 0 -16px; padding: 4px 16px 8px; scroll-padding: 0 16px;
    }
    .nl-products__grid::-webkit-scrollbar { display: none; }
    .nl-products__grid > .nl-card, .nl-products__grid > .nl-card:last-child:nth-child(odd) { grid-column: auto; scroll-snap-align: start; }
    .nl-card { border-radius: 26px; }
    .nl-card__in { border-radius: 25px; }
    .nl-pcard__media, .nl-pcard--wide .nl-pcard__media { height: 190px; margin: 6px 6px 0; border-radius: 20px; }
    .nl-pcard__body { padding: 20px 20px 22px; }
    .nl-pcard__title, .nl-pcard--wide .nl-pcard__title { font-size: 22px; }
    .nl-pcard__text { font-size: 14.5px; }
    .nl-pcard__go { width: 42px; height: 42px; }
    .nl-products__bar { display: block; position: relative; height: 4px; margin-top: 18px; border-radius: 4px; background: var(--nl-line); overflow: hidden; }
    .nl-products__bar i { position: absolute; top: 0; left: 0; bottom: 0; width: 100%; border-radius: 4px; background: var(--nl-grad); transform-origin: 0 50%; transform: scaleX(.2); }
    .nl-stats__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); row-gap: 36px; }
    .nl-stat { padding: 4px 8px; gap: 10px; }
    .nl-stat__val { font-size: 38px; font-size: clamp(32px, 10vw, 44px); }
    .nl-stat__lbl { font-size: 13.5px; }
    .nl-step__btn { gap: 14px; padding: 20px 0; }
    .nl-step__num { width: 40px; height: 40px; border-radius: 12px; }
    .nl-step__txt { padding-top: 7px; }
    .nl-step__txt b { font-size: 18px; }
    .nl-step__txt span { font-size: 14.5px; }
    .nl-steps__copy > div:last-child .nl-btn { width: 100%; }
    .nl-steps__visual { min-height: 560px; margin: 0 -16px; overflow: hidden; }
    .nl-ring--1 { width: 440px; height: 440px; margin: -220px 0 0 -220px; }
    .nl-ring--2 { width: 330px; height: 330px; margin: -165px 0 0 -165px; }
    .nl-phone--steps { width: 236px; padding: 8px; border-radius: 40px; }
    .nl-phone--steps .nl-phone__screen { border-radius: 32px; }
    .nl-form { padding: 50px 16px 18px; gap: 8px; }
    .nl-form__field { height: 48px; }
    .nl-form__btn { height: 46px; }
    .nl-float { padding: 10px 14px 10px 10px; gap: 10px; border-radius: 16px; }
    .nl-float__ic { width: 32px; height: 32px; border-radius: 10px; }
    .nl-float b { font-size: 12.5px; } .nl-float small { font-size: 11px; }
    .nl-float--a { top: 10%; left: 8px; }
    .nl-float--b { bottom: 10%; right: 8px; }
    .nl-trust__photo { min-height: 400px; }
    .nl-app__card { border-radius: 30px; }
    .nl-app__card > .nl-card__in { border-radius: 29px; }
    .nl-app__in, .nl-app__in--land { padding: 28px 20px 24px; }
    .nl-app__visual { min-height: 260px; }
    .nl-ring--app1 { width: 300px; height: 300px; margin: -150px 0 0 -150px; }
    .nl-ring--app2 { width: 220px; height: 220px; margin: -110px 0 0 -110px; }
    .nl-app .nl-btn { width: 100%; height: auto; min-height: 54px; padding: 12px 20px; justify-content: center; text-align: center; }
    .nl-app__list { margin: 22px 0 26px; }
    .nl-banks__grid { gap: 12px; }
    .nl-bank .nl-card__in { padding: 20px 16px; }
    .nl-bank__logo { height: 52px; }
    .nl-bank__logo img { max-height: 46px; max-width: 100%; }
    .nl-bank__name { font-size: 15px; }
    .nl-bank__tag { font-size: 11px; }
    .nl-final { padding-bottom: 80px; }
    .nl-final__btn { padding: 34px 22px 26px; border-radius: 28px; }
    .nl-foot__top { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
    .nl-foot__legal { margin-top: 48px; }
}
@media (max-width: 380px) {
    .nl-logo__name { display: none; }
    .nl-display { font-size: 31px; }
    .nl-stage { height: 290px; }
    .nl-banks__grid { grid-template-columns: minmax(0, 1fr); }
}
@media (hover: none) {
    .nl-pcard:hover .nl-pcard__media img { transform: scale(1.03); }
}

/* «уменьшение движения»: всё статично и сразу видно */
@media (prefers-reduced-motion: reduce) {
    html { scroll-behavior: auto; }
    .nl-body *, .nl-body *::before, .nl-body *::after { animation: none !important; transition-duration: .01ms !important; transition-delay: 0s !important; }
    .nl-ticker__track { transform: none !important; }
    .nl-ticker { overflow-x: auto; }
}
