*,*::before,*::after{box-sizing:border-box}
  :root{
    --bg:#0e1116; --bg2:#151a22; --card:#171d26; --line:#232b37;
    --tx:#e7ecf3; --tx2:#98a4b6; --ac:#5b8cff; --ac2:#8b6cff; --ok:#3fbf87;
    --rad:14px; --wrap:1120px;
  }
  html{-webkit-text-size-adjust:100%}
  body{margin:0;background:var(--bg);color:var(--tx);
    font:16px/1.6 -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
    -webkit-font-smoothing:antialiased}
  a{color:inherit;text-decoration:none}
  img{max-width:100%}
  .wrap{max-width:var(--wrap);margin:0 auto;padding:0 24px}

  /* header */
  header{position:sticky;top:0;z-index:20;background:rgba(14,17,22,.82);
    backdrop-filter:saturate(140%) blur(10px);border-bottom:1px solid var(--line)}
  .nav{display:flex;align-items:center;gap:28px;height:64px}
  .logo{display:flex;align-items:center;gap:10px;font-weight:650;letter-spacing:-.02em;font-size:18px}
  .mark{width:26px;height:26px;border-radius:8px;flex:0 0 auto;
    background:linear-gradient(135deg,var(--ac),var(--ac2));position:relative}
  .mark::after{content:"";position:absolute;inset:7px 7px 9px 7px;border-radius:3px 3px 0 3px;background:#0e1116}
  .nav nav{display:flex;gap:22px;margin-left:8px}
  .nav nav a{color:var(--tx2);font-size:14.5px}
  .nav nav a:hover{color:var(--tx)}
  .nav .sp{margin-left:auto}
  .btn{display:inline-block;padding:9px 18px;border-radius:10px;font-size:14.5px;font-weight:550;
    border:1px solid var(--line);color:var(--tx);white-space:nowrap}
  .btn.primary{background:var(--ac);border-color:var(--ac);color:#fff}
  .btn.primary:hover{filter:brightness(1.08)}
  .btn:hover{border-color:#33405280}
  @media(max-width:820px){.nav nav{display:none}}

  /* hero */
  .hero{padding:84px 0 64px;position:relative;overflow:hidden}
  .hero::before{content:"";position:absolute;left:50%;top:-220px;width:900px;height:520px;
    transform:translateX(-50%);pointer-events:none;
    background:radial-gradient(closest-side,rgba(91,140,255,.18),transparent 70%)}
  .hero .in{position:relative;display:grid;grid-template-columns:1.05fr .95fr;gap:56px;align-items:center}
  .pill{display:inline-flex;align-items:center;gap:8px;padding:5px 12px;border:1px solid var(--line);
    border-radius:999px;font-size:13px;color:var(--tx2);background:var(--bg2)}
  .dot{width:6px;height:6px;border-radius:50%;background:var(--ok)}
  h1{margin:18px 0 0;font-size:clamp(32px,4.4vw,50px);line-height:1.1;letter-spacing:-.03em;font-weight:680}
  h1 span{background:linear-gradient(100deg,var(--ac),var(--ac2));-webkit-background-clip:text;
    background-clip:text;color:transparent}
  .lead{margin:18px 0 0;font-size:17.5px;color:var(--tx2);max-width:52ch}
  .cta{display:flex;gap:12px;flex-wrap:wrap;margin-top:28px}
  .note{margin-top:14px;font-size:13.5px;color:var(--tx2)}
  @media(max-width:900px){.hero .in{grid-template-columns:1fr;gap:40px}.hero{padding:56px 0 48px}}

  /* app mock */
  .app{border:1px solid var(--line);border-radius:16px;background:var(--card);overflow:hidden;
    box-shadow:0 24px 60px -24px rgba(0,0,0,.75)}
  .app .bar{display:flex;align-items:center;gap:7px;padding:11px 14px;border-bottom:1px solid var(--line);background:var(--bg2)}
  .app .bar i{width:10px;height:10px;border-radius:50%;background:#2c3542;display:block}
  .app .bar b{margin-left:8px;font-size:12.5px;color:var(--tx2);font-weight:500}
  .app .body{display:grid;grid-template-columns:150px 1fr;min-height:290px}
  .side{border-right:1px solid var(--line);padding:12px 10px;background:#131820}
  .ch{display:flex;align-items:center;gap:8px;padding:7px 9px;border-radius:8px;font-size:13px;color:var(--tx2)}
  .ch.on{background:#1d2531;color:var(--tx)}
  .ch em{width:18px;height:18px;border-radius:5px;background:#2a3444;flex:0 0 auto}
  .msgs{padding:16px 16px 18px;display:flex;flex-direction:column;gap:11px;justify-content:flex-end}
  .m{max-width:74%;padding:9px 13px;border-radius:12px;font-size:13.5px;line-height:1.45;background:#1d2531;color:var(--tx)}
  .m.me{align-self:flex-end;background:linear-gradient(135deg,var(--ac),#4a76e0);color:#fff}
  .m u{display:block;text-decoration:none;font-size:11.5px;color:var(--tx2);margin-bottom:3px}
  .m.me u{color:#dbe6ff}
  .lock{display:flex;align-items:center;gap:6px;font-size:11.5px;color:var(--tx2);padding:0 16px 14px}
  @media(max-width:520px){.app .body{grid-template-columns:1fr}.side{display:none}}

  /* sections */
  section{padding:72px 0;border-top:1px solid var(--line)}
  .eyebrow{font-size:13px;letter-spacing:.14em;text-transform:uppercase;color:var(--ac);font-weight:600}
  h2{margin:12px 0 0;font-size:clamp(24px,3vw,34px);letter-spacing:-.02em;line-height:1.2;font-weight:660}
  .sub{margin:14px 0 0;color:var(--tx2);max-width:62ch}
  .grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:40px}
  @media(max-width:900px){.grid{grid-template-columns:repeat(2,1fr)}}
  @media(max-width:620px){.grid{grid-template-columns:1fr}section{padding:52px 0}}
  .card{border:1px solid var(--line);border-radius:var(--rad);padding:22px;background:var(--card)}
  .card h3{margin:14px 0 8px;font-size:16.5px;font-weight:600;letter-spacing:-.01em}
  .card p{margin:0;color:var(--tx2);font-size:14.5px}
  .ico{width:36px;height:36px;border-radius:10px;background:#1e2735;display:flex;align-items:center;
    justify-content:center;color:var(--ac);font-size:17px}

  .split{display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:center}
  @media(max-width:900px){.split{grid-template-columns:1fr;gap:32px}}
  ul.checks{list-style:none;padding:0;margin:26px 0 0;display:grid;gap:13px}
  ul.checks li{display:flex;gap:11px;align-items:flex-start;color:var(--tx2);font-size:15px}
  ul.checks b{color:var(--tx);font-weight:600}
  .tick{width:19px;height:19px;border-radius:50%;background:#17301f;color:var(--ok);flex:0 0 auto;
    display:flex;align-items:center;justify-content:center;font-size:11px;margin-top:2px}

  .stats{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:8px}
  .stat{border:1px solid var(--line);border-radius:var(--rad);padding:20px;background:var(--bg2)}
  .stat b{display:block;font-size:26px;letter-spacing:-.02em}
  .stat span{color:var(--tx2);font-size:13.5px}
  @media(max-width:620px){.stats{grid-template-columns:1fr}}

  .cta-box{border:1px solid var(--line);border-radius:18px;padding:40px;text-align:center;
    background:linear-gradient(180deg,var(--bg2),var(--card))}
  .cta-box h2{margin-top:0}
  .cta-box .cta{justify-content:center}

  footer{border-top:1px solid var(--line);padding:36px 0 44px;color:var(--tx2);font-size:14px}
  .fgrid{display:flex;gap:40px;flex-wrap:wrap;justify-content:space-between;align-items:flex-start}
  .fcol{display:grid;gap:9px}
  .fcol b{color:var(--tx);font-size:14px;font-weight:600;margin-bottom:2px}
  .fcol a{color:var(--tx2)}
  .fcol a:hover{color:var(--tx)}
  .copy{margin-top:30px;padding-top:22px;border-top:1px solid var(--line);font-size:13px;color:#6f7d91}

  /* login modal — только клиентская логика, ничего не отправляется */
  .ov{position:fixed;inset:0;background:rgba(6,9,14,.72);backdrop-filter:blur(6px);
    display:none;align-items:center;justify-content:center;z-index:50;padding:20px}
  .ov.open{display:flex}
  .dlg{width:100%;max-width:400px;background:var(--card);border:1px solid var(--line);border-radius:18px;
    padding:30px 28px 26px;box-shadow:0 30px 80px -30px rgba(0,0,0,.8);position:relative}
  .dlg .x{position:absolute;top:12px;right:12px;width:32px;height:32px;border-radius:8px;border:0;
    background:transparent;color:var(--tx2);font-size:20px;cursor:pointer}
  .dlg .x:hover{background:#1e2735;color:var(--tx)}
  .dlg h3{margin:6px 0 4px;font-size:21px;letter-spacing:-.02em;font-weight:650}
  .dlg .hint{margin:0 0 20px;color:var(--tx2);font-size:14px}
  .f{display:grid;gap:6px;margin-bottom:14px}
  .f label{font-size:13px;color:var(--tx2)}
  .f input{width:100%;padding:11px 13px;border-radius:10px;border:1px solid var(--line);background:var(--bg2);
    color:var(--tx);font-size:15px;outline:none}
  .f input:focus{border-color:var(--ac);box-shadow:0 0 0 3px rgba(91,140,255,.18)}
  .err{display:none;margin:-4px 0 14px;padding:10px 12px;border-radius:10px;font-size:13.5px;
    background:#2a1a1e;color:#ff8a94;border:1px solid #3d232a}
  .err.on{display:block}
  .dlg .btn{width:100%;text-align:center;padding:11px}
  .dlg .foot{display:flex;justify-content:space-between;margin-top:16px;font-size:13.5px;color:var(--tx2)}
  .dlg .foot a:hover{color:var(--tx)}
  .shake{animation:sh .35s}
  @keyframes sh{20%{transform:translateX(-6px)}40%{transform:translateX(6px)}60%{transform:translateX(-4px)}80%{transform:translateX(4px)}}
