/* =====================================================================
   SoulMates landing page — ISOLATED.
   Every component selector starts with .landing-new / .ln-.
   No application screen styles are changed here.
   ===================================================================== */

body:has(.landing-new) {
    min-height: 100%;
    height: auto !important;
    overflow-x: hidden !important;
    overflow-y: auto !important;
}
body:has(.landing-new) #app {
    min-height: 100dvh !important;
    height: auto !important;
    overflow: visible !important;
}
body:has(.landing-new) #app::after { opacity: .08; }

.landing-new {
    --ln-text: #f7fbff;
    --ln-muted: rgba(220, 237, 251, .78);
    --ln-line: rgba(155, 216, 255, .24);
    --ln-glass: rgba(4, 24, 51, .72);
    --ln-glass-strong: rgba(5, 29, 61, .88);
    position: relative;
    z-index: 2;
    width: 100%;
    min-height: 100dvh;
    color: var(--ln-text);
    font-family: "Segoe UI Variable Text", "Segoe UI", system-ui, sans-serif;
}
.landing-new button,
.landing-new a { -webkit-tap-highlight-color: transparent; }

.ln-topbar {
    position: relative;
    z-index: 10;
    display: grid;
    grid-template-columns: minmax(250px, 1fr) auto minmax(120px, 1fr);
    align-items: center;
    gap: 28px;
    width: min(1320px, calc(100% - 56px));
    margin: 0 auto;
    padding: 22px 0 8px;
}
.ln-brand {
    display: inline-flex;
    align-items: center;
    justify-self: start;
    gap: 12px;
    padding: 0;
    color: #fff;
    background: transparent;
    border: 0;
    cursor: pointer;
    text-align: left;
}
.ln-brand img { width: 52px; height: 52px; object-fit: contain; filter: drop-shadow(0 8px 18px rgba(0,12,35,.36)); }
.ln-brand-copy { display: grid; gap: 1px; }
.ln-brand-copy strong { font-size: 23px; letter-spacing: -.025em; }
.ln-brand-copy span { color: var(--ln-muted); font-size: 12px; }
.ln-nav { display: flex; align-items: center; gap: 26px; }
.ln-nav button,
.ln-text-link {
    padding: 8px 0;
    color: rgba(235, 246, 255, .82);
    background: none;
    border: 0;
    font: inherit;
    font-size: 14px;
    cursor: pointer;
}
.ln-nav button:hover,
.ln-text-link:hover { color: #fff; }
.ln-login {
    justify-self: end;
    min-width: 112px;
    min-height: 44px;
    padding: 10px 20px;
    color: #f4fbff;
    background: rgba(3, 21, 46, .48);
    border: 1px solid rgba(147, 215, 255, .55);
    border-radius: 16px;
    font: inherit;
    font-weight: 620;
    cursor: pointer;
    transition: transform .18s ease, background .18s ease, border-color .18s ease;
}
.ln-login:hover { transform: translateY(-1px); background: rgba(16, 58, 102, .60); border-color: rgba(180, 229, 255, .78); }

.ln-main { width: 100%; }

.ln-hero {
    display: grid;
    grid-template-columns: minmax(0, 1.05fr) minmax(340px, .65fr);
    align-items: center;
    gap: 54px;
    width: min(1200px, calc(100% - 56px));
    min-height: 510px;
    margin: 0 auto;
    padding: 50px 0 34px;
}
.ln-hero-copy { max-width: 760px; }
.ln-kicker {
    display: inline-block;
    margin-bottom: 14px;
    color: #7bd8ff;
    font-size: 12px;
    font-weight: 720;
    letter-spacing: .14em;
}
.ln-hero h1 {
    max-width: 760px;
    margin: 0;
    font-size: clamp(48px, 6.2vw, 82px);
    line-height: 1.04;
    letter-spacing: -.032em;
    text-wrap: balance;
    text-shadow: 0 10px 30px rgba(0, 7, 28, .58);
}
.ln-hero-lead {
    max-width: 690px;
    margin: 24px 0 0;
    color: rgba(235, 246, 255, .90);
    font-size: clamp(18px, 1.7vw, 23px);
    line-height: 1.58;
    letter-spacing: -.01em;
    text-shadow: 0 3px 16px rgba(0, 8, 28, .72);
}
.ln-hero-actions { display: flex; gap: 12px; margin-top: 28px; }
.ln-primary,
.ln-secondary {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 52px;
    padding: 12px 26px;
    border-radius: 17px;
    font: inherit;
    font-size: 15px;
    font-weight: 680;
    cursor: pointer;
    text-decoration: none;
    transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease, background .18s ease;
}
.ln-primary {
    min-width: 226px;
    color: #06162d;
    background: linear-gradient(145deg, #eef9ff 0%, #cdeaff 48%, #87cfff 100%);
    border: 1px solid rgba(142, 211, 255, .78);
    box-shadow: 0 14px 34px rgba(0, 14, 42, .34), inset 0 1px 0 rgba(255,255,255,.45);
}
.ln-primary:hover { transform: translateY(-2px); box-shadow: 0 18px 38px rgba(0, 14, 42, .42), inset 0 1px 0 rgba(255,255,255,.52); }
.ln-secondary {
    min-width: 186px;
    color: #edf8ff;
    background: rgba(5, 28, 59, .62);
    border: 1px solid rgba(145, 211, 255, .34);
    box-shadow: inset 0 1px 0 rgba(255,255,255,.04);
}
.ln-secondary:hover { transform: translateY(-2px); background: rgba(15, 56, 101, .68); border-color: rgba(165, 222, 255, .58); }
.ln-age { margin: 14px 0 0; color: rgba(208, 229, 246, .65); font-size: 12px; }

.ln-hero-logo {
    position: relative;
    display: grid;
    place-items: center;
    width: min(100%, 390px);
    aspect-ratio: 1;
    justify-self: center;
}
.ln-logo-halo {
    position: absolute;
    inset: 12%;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(86, 198, 255, .20), rgba(90, 132, 255, .07) 46%, transparent 70%);
    filter: blur(10px);
}
.ln-hero-logo img {
    position: relative;
    width: 88%;
    height: 88%;
    object-fit: contain;
    filter: drop-shadow(0 24px 42px rgba(0, 7, 27, .50));
    animation: ln-float 6s ease-in-out infinite;
}
@keyframes ln-float { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-7px); } }

.ln-interests {
    width: min(1200px, calc(100% - 56px));
    margin: 6px auto 0;
    padding: 24px 28px 28px;
    border: 1px solid var(--ln-line);
    border-radius: 28px;
    background: linear-gradient(145deg, rgba(9, 43, 79, .66), rgba(4, 22, 48, .70));
    box-shadow: 0 24px 60px rgba(0, 8, 28, .24), inset 0 1px 0 rgba(255,255,255,.05);
    backdrop-filter: blur(9px);
}
.ln-section-heading { text-align: center; }
.ln-section-heading h2 { margin: 0; font-size: 25px; }
.ln-section-heading p { margin: 6px 0 0; color: var(--ln-muted); font-size: 14px; }

.ln-interest-row {
    position: relative;
    display: grid;
    grid-template-columns: repeat(6, minmax(0, 1fr));
    gap: 12px;
    margin-top: 24px;
    padding-top: 10px;
}
.ln-interest-row::before {
    content: "";
    position: absolute;
    z-index: 0;
    left: 2%;
    right: 2%;
    top: -2px;
    height: 108px;
    pointer-events: none;
    opacity: .76;
    background: center / 100% 100% no-repeat url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1000 110' preserveAspectRatio='none'%3E%3Cdefs%3E%3ClinearGradient id='a' x1='0' y1='0' x2='1' y2='0'%3E%3Cstop stop-color='%2358dce8' stop-opacity='.12'/%3E%3Cstop offset='.26' stop-color='%2388c8ff' stop-opacity='.62'/%3E%3Cstop offset='.55' stop-color='%235ee4cf' stop-opacity='.48'/%3E%3Cstop offset='.8' stop-color='%2390b8ff' stop-opacity='.58'/%3E%3Cstop offset='1' stop-color='%2358dce8' stop-opacity='.1'/%3E%3C/linearGradient%3E%3C/defs%3E%3Cpath d='M0 69 C92 13 176 92 286 48 S487 25 603 61 S794 83 1000 24' fill='none' stroke='url(%23a)' stroke-width='21' stroke-linecap='round' opacity='.18'/%3E%3Cpath d='M0 69 C92 13 176 92 286 48 S487 25 603 61 S794 83 1000 24' fill='none' stroke='url(%23a)' stroke-width='7' stroke-linecap='round'/%3E%3Cpath d='M0 91 C125 51 191 102 322 70 S526 42 653 78 S842 64 1000 43' fill='none' stroke='url(%23a)' stroke-width='3' stroke-linecap='round' opacity='.72'/%3E%3C/svg%3E");
    filter: drop-shadow(0 0 6px rgba(91, 218, 235, .34));
    animation: ln-aurora-drift 10s ease-in-out infinite alternate;
}
.ln-interest-row::after {
    content: "";
    position: absolute;
    z-index: 0;
    left: 4%;
    right: 4%;
    top: 18px;
    height: 72px;
    pointer-events: none;
    opacity: .32;
    background: linear-gradient(90deg, transparent 0 4%, rgba(95, 221, 230, .12) 12%, transparent 20%, rgba(128, 184, 255, .13) 32%, transparent 42%, rgba(85, 226, 204, .11) 55%, transparent 66%, rgba(129, 181, 255, .12) 78%, transparent 91%);
    clip-path: polygon(0 61%, 9% 23%, 17% 74%, 28% 35%, 39% 64%, 50% 22%, 61% 71%, 72% 31%, 82% 67%, 92% 20%, 100% 55%, 100% 100%, 0 100%);
    animation: ln-aurora-breathe 8s ease-in-out infinite alternate;
}
@keyframes ln-aurora-drift {
    from { transform: translate3d(-1%, 1px, 0) scaleY(.96); opacity: .66; }
    to { transform: translate3d(1%, -2px, 0) scaleY(1.04); opacity: .82; }
}
@keyframes ln-aurora-breathe {
    from { transform: translateY(4px) scaleX(.99); opacity: .22; }
    to { transform: translateY(-3px) scaleX(1.01); opacity: .38; }
}

.ln-interest { position: relative; z-index: 1; display: grid; justify-items: center; gap: 9px; min-width: 0; }
.ln-interest-icon {
    display: grid;
    place-items: center;
    width: 76px;
    height: 76px;
    border: 1px solid rgba(151, 218, 255, .26);
    border-radius: 24px;
    background: radial-gradient(circle at 50% 36%, rgba(77, 177, 241, .18), rgba(4, 25, 54, .72));
    box-shadow: 0 12px 25px rgba(0, 11, 33, .24), inset 0 1px 0 rgba(255,255,255,.05);
}
.ln-interest-icon img { width: 58px; height: 58px; object-fit: contain; }
.ln-interest span { font-size: 13px; font-weight: 620; }

.ln-features {
    display: grid;
    grid-template-columns: repeat(3, minmax(0,1fr));
    gap: 16px;
    width: min(1200px, calc(100% - 56px));
    margin: 18px auto 0;
    scroll-margin-top: 22px;
}
.ln-feature {
    min-height: 220px;
    padding: 26px;
    border: 1px solid var(--ln-line);
    border-radius: 25px;
    background: linear-gradient(145deg, rgba(11, 49, 88, .78), rgba(5, 25, 53, .83));
    box-shadow: 0 18px 46px rgba(0,8,28,.22), inset 0 1px 0 rgba(255,255,255,.05);
}
.ln-feature-icon {
    display: grid;
    place-items: center;
    width: 52px;
    height: 52px;
    margin-bottom: 20px;
    color: #bceaff;
    border-radius: 16px;
    background: rgba(83, 180, 239, .13);
    border: 1px solid rgba(147, 217, 255, .16);
    box-shadow: inset 0 1px 0 rgba(255,255,255,.04);
}

.ln-feature-icon .ui-icon { width: 25px; height: 25px; display: inline-block; }

.ln-feature h2 { margin: 0; max-width: 300px; font-size: 20px; line-height: 1.2; }
.ln-feature p { margin: 12px 0 0; color: var(--ln-muted); font-size: 14px; line-height: 1.6; }

.ln-product {
    width: min(1320px, calc(100% - 56px));
    margin: 78px auto 0;
    padding: 42px 30px 36px;
    scroll-margin-top: 22px;
    border: 1px solid rgba(160, 220, 255, .20);
    border-radius: 32px;
    background: linear-gradient(180deg, rgba(2, 17, 40, .54), rgba(4, 25, 55, .75));
    box-shadow: 0 32px 80px rgba(0, 8, 28, .28), inset 0 1px 0 rgba(255,255,255,.04);
    backdrop-filter: blur(7px);
}
.ln-product-intro { width: min(820px, 100%); margin: 0 auto 34px; text-align: center; }
.ln-product-intro h2 { margin: 0; font-size: clamp(28px, 3.4vw, 44px); line-height: 1.08; }
.ln-product-intro p { margin: 13px auto 0; color: var(--ln-muted); line-height: 1.6; }
.ln-product-grid {
    display: grid;
    grid-template-columns: minmax(190px, .72fr) minmax(235px, .9fr) minmax(235px, .9fr) minmax(190px, .72fr);
    align-items: center;
    gap: 24px;
}
.ln-product-copy { min-width: 0; }
.ln-product-copy h3 { margin: 0; font-size: 26px; }
.ln-product-copy > p { margin: 10px 0 20px; color: var(--ln-muted); font-size: 14px; line-height: 1.55; }
.ln-note {
    margin-top: 10px;
    padding: 14px 15px;
    border: 1px solid rgba(151, 217, 255, .18);
    border-radius: 17px;
    background: rgba(9, 42, 77, .58);
}
.ln-note strong { display: block; font-size: 14px; }
.ln-note p { margin: 5px 0 0; color: rgba(218, 236, 250, .72); font-size: 12.5px; line-height: 1.48; }
.ln-phone {
    position: relative;
    width: min(100%, 310px);
    /* Окно совпадает с полезной областью двух исходных скриншотов:
       системные панели Android остаются за пределами рамки. */
    aspect-ratio: 576 / 1088;
    justify-self: center;
    padding: 10px;
    overflow: hidden;
    border: 2px solid rgba(161, 218, 255, .58);
    border-radius: 39px;
    background: #020b16;
    box-shadow: 0 26px 56px rgba(0, 5, 20, .54), 0 0 0 5px rgba(56, 129, 190, .10), inset 0 0 0 1px rgba(255,255,255,.10);
}
.ln-phone::after {
    content: "";
    position: absolute;
    inset: 10px;
    border-radius: 29px;
    pointer-events: none;
    box-shadow: inset 0 0 0 1px rgba(255,255,255,.05);
}
.ln-phone-speaker { position: absolute; z-index: 2; top: 15px; left: 50%; width: 58px; height: 4px; transform: translateX(-50%); border-radius: 10px; background: rgba(173, 204, 225, .22); }
.ln-phone img {
    display: block;
    width: 100%;
    height: auto;
    border-radius: 29px;
    transform: translateY(-4.2%);
}

.ln-cta {
    display: grid;
    grid-template-columns: 78px minmax(0,1fr) auto;
    align-items: center;
    gap: 22px;
    width: min(1120px, calc(100% - 56px));
    margin: 34px auto 0;
    padding: 22px 26px;
    border: 1px solid var(--ln-line);
    border-radius: 25px;
    background: linear-gradient(135deg, rgba(10, 48, 87, .82), rgba(4, 24, 51, .86));
    box-shadow: 0 20px 52px rgba(0, 8, 28, .24);
}
.ln-cta img { width: 72px; height: 72px; object-fit: contain; }
.ln-cta-copy h2 { margin: 0; font-size: 22px; }
.ln-cta-copy p { margin: 7px 0 0; color: var(--ln-muted); font-size: 14px; line-height: 1.5; }
.ln-cta .ln-primary { min-width: 205px; }

.ln-partners {
    display: grid;
    grid-template-columns: minmax(0, 1.05fr) minmax(0, .95fr) 210px;
    align-items: center;
    gap: 24px;
    width: min(1120px, calc(100% - 56px));
    margin: 18px auto 0;
    padding: 28px;
    scroll-margin-top: 22px;
    border: 1px solid var(--ln-line);
    border-radius: 25px;
    background: rgba(4, 25, 53, .78);
}
.ln-partners-main h2 { margin: 0; font-size: 26px; }
.ln-partners-main p,
.ln-partners-money p { margin: 9px 0 0; color: var(--ln-muted); font-size: 13.5px; line-height: 1.55; }
.ln-partners-money { padding-left: 24px; border-left: 1px solid rgba(151, 217, 255, .18); }
.ln-partners-money strong { font-size: 15px; }
.ln-partners-actions { display: grid; gap: 8px; justify-items: stretch; }
.ln-link-button { min-width: 0; text-align: center; }
.ln-text-link { text-decoration: underline; text-underline-offset: 3px; }

.ln-footer {
    display: grid;
    grid-template-columns: minmax(260px, 1.3fr) minmax(150px, .6fr) minmax(200px, .8fr) auto;
    gap: 34px;
    width: min(1120px, calc(100% - 56px));
    margin: 42px auto 0;
    padding: 32px 0 36px;
    color: var(--ln-muted);
    border-top: 1px solid rgba(166, 220, 255, .16);
}
.ln-footer-brandline { display: flex; align-items: center; gap: 10px; color: #fff; font-size: 19px; }
.ln-footer-brandline img { object-fit: contain; }
.ln-footer-brand p { max-width: 330px; margin: 12px 0 0; font-size: 12.5px; line-height: 1.5; }
.ln-footer-column { display: grid; align-content: start; gap: 9px; }
.ln-footer-column h3 { margin: 0 0 4px; color: #e6f5ff; font-size: 13px; }
.ln-footer-column a,
.ln-footer-meta a { color: var(--ln-muted); font-size: 12.5px; text-decoration: none; }
.ln-footer-column a:hover,
.ln-footer-meta a:hover { color: #fff; text-decoration: underline; text-underline-offset: 3px; }
.ln-footer-meta { align-self: end; text-align: right; }
.ln-footer-meta p { margin: 0 0 8px; font-size: 12px; }

.ln-reveal { opacity: 0; transform: translateY(14px); transition: opacity .5s ease, transform .5s ease; }
.ln-reveal.is-visible { opacity: 1; transform: translateY(0); }

@media (hover:hover) and (pointer:fine) {
    .ln-interest-icon,
    .ln-feature,
    .ln-note { transition: transform .2s ease, border-color .2s ease, background .2s ease; }
    .ln-interest:hover .ln-interest-icon { transform: translateY(-4px); border-color: rgba(174, 228, 255, .48); }
    .ln-feature:hover { transform: translateY(-4px); border-color: rgba(174, 228, 255, .39); }
    .ln-note:hover { transform: translateX(2px); border-color: rgba(174, 228, 255, .34); }
}

@media (max-width: 1100px) {
    .ln-topbar { grid-template-columns: 1fr auto; }
    .ln-nav { display: none; }
    .ln-hero { grid-template-columns: minmax(0,1fr) 300px; gap: 30px; }
    .ln-product-grid { grid-template-columns: minmax(180px,.75fr) minmax(250px,1fr) minmax(250px,1fr); }
    .ln-product-copy-right { grid-column: 1 / -1; display: grid; grid-template-columns: 1fr repeat(3, minmax(0,1fr)); gap: 10px; align-items: stretch; }
    .ln-product-copy-right > h3,
    .ln-product-copy-right > p { grid-column: 1; }
    .ln-product-copy-right .ln-note { margin-top: 0; }
    .ln-partners { grid-template-columns: 1fr 1fr; }
    .ln-partners-actions { grid-column: 1 / -1; grid-template-columns: 1fr auto; align-items: center; }
}

@media (max-width: 820px) {
    .ln-topbar { width: min(100% - 28px, 680px); padding-top: 14px; }
    .ln-brand-copy span { display: none; }
    .ln-brand-copy strong { font-size: 20px; }
    .ln-brand img { width: 46px; height: 46px; }
    .ln-login { min-width: 92px; min-height: 42px; padding: 9px 15px; }
    .ln-hero {
        grid-template-columns: 1fr;
        width: min(100% - 32px, 680px);
        min-height: 0;
        padding: 52px 0 24px;
        text-align: center;
    }
    .ln-hero-copy { max-width: none; }
    .ln-hero h1 { font-size: clamp(43px, 11vw, 70px); line-height: 1.05; letter-spacing: -.028em; }
    .ln-hero-lead { margin-left: auto; margin-right: auto; }
    .ln-hero-actions { justify-content: center; }
    .ln-hero-logo { order: -1; width: 230px; }
    .ln-interests,
    .ln-features,
    .ln-product,
    .ln-cta,
    .ln-partners,
    .ln-footer { width: min(100% - 32px, 680px); }
    .ln-interest-row { grid-template-columns: repeat(3, minmax(0,1fr)); gap: 18px 10px; padding-top: 0; }
    .ln-interest-row::before,
    .ln-interest-row::after { display: none; }
    .ln-features { grid-template-columns: 1fr; }
    .ln-feature { min-height: 0; }
    .ln-product { margin-top: 48px; padding: 30px 20px; }
    .ln-product-grid { grid-template-columns: 1fr 1fr; gap: 20px; }
    .ln-product-copy-left,
    .ln-product-copy-right { grid-column: 1 / -1; display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 10px; }
    .ln-product-copy-left > h3,
    .ln-product-copy-left > p,
    .ln-product-copy-right > h3,
    .ln-product-copy-right > p { grid-column: 1 / -1; }
    .ln-product-copy .ln-note { margin-top: 0; }
    .ln-phone { width: min(100%, 285px); aspect-ratio: 576 / 1088; }
    .ln-cta { grid-template-columns: 64px minmax(0,1fr); }
    .ln-cta img { width: 60px; height: 60px; }
    .ln-cta .ln-primary { grid-column: 1 / -1; width: min(100%, 300px); justify-self: center; }
    .ln-partners { grid-template-columns: 1fr; }
    .ln-partners-money { padding: 18px 0 0; border-left: 0; border-top: 1px solid rgba(151, 217, 255, .18); }
    .ln-partners-actions { grid-column: auto; grid-template-columns: 1fr; }
    .ln-footer { grid-template-columns: 1fr 1fr; }
    .ln-footer-meta { text-align: left; align-self: start; }
}

@media (max-width: 520px) {
    .ln-topbar { width: calc(100% - 24px); }
    .ln-brand-copy strong { font-size: 18px; }
    .ln-brand img { width: 42px; height: 42px; }
    .ln-hero { width: calc(100% - 28px); padding-top: 38px; }
    .ln-hero-logo { width: 190px; }
    .ln-kicker { font-size: 10px; letter-spacing: .11em; }
    .ln-hero h1 { font-size: clamp(40px, 12.5vw, 58px); line-height: 1.06; letter-spacing: -.024em; }
    .ln-hero-lead { font-size: 17px; }
    .ln-hero-actions { display: grid; width: 100%; }
    .ln-primary,
    .ln-secondary { width: 100%; min-width: 0; }
    .ln-interests,
    .ln-features,
    .ln-product,
    .ln-cta,
    .ln-partners,
    .ln-footer { width: calc(100% - 24px); }
    .ln-interests { padding: 22px 14px; }
    .ln-interest-icon { width: 66px; height: 66px; border-radius: 20px; }
    .ln-interest-icon img { width: 50px; height: 50px; }
    .ln-interest span { font-size: 12px; }
    .ln-product-grid { grid-template-columns: 1fr; }
    .ln-product-copy-left,
    .ln-product-copy-right { display: block; }
    .ln-product-copy .ln-note { margin-top: 10px; }
    .ln-phone { width: min(100%, 310px); aspect-ratio: 576 / 1088; }
    .ln-cta { grid-template-columns: 52px minmax(0,1fr); padding: 20px; }
    .ln-cta img { width: 48px; height: 48px; }
    .ln-cta-copy h2 { font-size: 19px; }
    .ln-footer { grid-template-columns: 1fr; gap: 24px; }
}

@media (prefers-reduced-motion: reduce) {
    .landing-new *, .landing-new *::before, .landing-new *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
    .ln-reveal { opacity: 1; transform: none; }
}
