  :root{
    --bg:#ffffff;
    --bg-2:#F4FBF7;
    --bg-3:#E9F8F0;
    --ink:#0B1220;
    --ink-soft:#3A4458;
    --primary:#0A9F5A;
    --primary-2:#0A9F5A;
    --primary-deep:#07814A;
    --charcoal:#0B1220;
    --gold:#0A9F5A;
    --text:#3A4458;
    --muted:#6B7690;
    --muted-2:#8A94AA;
    --line:#E4EAF4;
    --line-2:#D3DCEE;
    --card:#ffffff;
    --shadow:0 22px 50px -28px rgba(24,46,34,.35);
    --shadow-lg:0 44px 90px -34px rgba(24,46,34,.5);
    --radius:10px;
    --maxw:1180px;
  }
  *{box-sizing:border-box;margin:0;padding:0}
  html{scroll-behavior:smooth}
  body{background:var(--bg);color:var(--text);font-family:'Inter',system-ui,sans-serif;line-height:1.6;-webkit-font-smoothing:antialiased;overflow-x:hidden}
  body::before{content:"";position:fixed;inset:0;z-index:0;pointer-events:none;background:radial-gradient(800px 560px at 84% -6%,rgba(10,159,90,.1),transparent 60%),radial-gradient(700px 480px at 4% 2%,rgba(10,159,90,.07),transparent 58%)}
  .wrap{max-width:var(--maxw);margin:0 auto;padding:0 24px;position:relative;z-index:1}
  a{color:inherit;text-decoration:none}
  h1,h2,h3,h4{font-family:'Inter',system-ui,sans-serif;font-weight:600;line-height:1.08;letter-spacing:-.01em;color:var(--ink)}

  /* NAV */
  header{position:sticky;top:env(safe-area-inset-top, 0px);z-index:50;transition:background .3s,border-color .3s,box-shadow .3s;border-bottom:1px solid transparent}
  header.scrolled{background:rgba(255,255,255,.92);backdrop-filter:blur(14px);border-bottom:1px solid var(--line);box-shadow:0 8px 30px -22px rgba(24,46,34,.4)}
  nav{display:flex;align-items:center;justify-content:space-between;height:72px;gap:12px}
  .brand{display:flex;align-items:center;gap:10px;font-family:'Inter',system-ui,sans-serif;font-weight:600;font-size:1.2rem;letter-spacing:-.02em;color:var(--ink);min-width:0;flex-shrink:0}
  .mark{width:33px;height:33px;border-radius:9px;display:grid;place-items:center;background:linear-gradient(140deg,var(--primary),var(--primary-2));color:#fff;font-weight:800;font-family:'Inter',system-ui,sans-serif;font-size:.9rem;box-shadow:0 8px 20px -8px rgba(10,159,90,.7);flex-shrink:0}
  .brand b{color:var(--primary-2);font-weight:600}
  .navlinks{display:flex;align-items:center;gap:28px}
  .navlinks a{color:var(--ink-soft);font-size:.93rem;font-weight:500;transition:color .2s}
  .navlinks a:hover{color:var(--primary-2)}
  .nav-cta{display:flex;align-items:center;gap:10px;flex-shrink:0}
  .btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;font-family:'Inter',system-ui,sans-serif;font-weight:600;font-size:.95rem;padding:12px 20px;border-radius:11px;cursor:pointer;border:1px solid transparent;transition:transform .18s,box-shadow .25s,background .2s,border-color .2s;white-space:nowrap}
  .btn-primary{background:linear-gradient(135deg,var(--primary),var(--primary-2));color:#fff;box-shadow:0 14px 28px -12px rgba(10,159,90,.6)}
  .btn-primary:hover{transform:translateY(-2px);box-shadow:0 20px 38px -12px rgba(10,159,90,.7)}
  .btn-ghost{background:#fff;color:var(--primary);border-color:var(--line-2)}
  .btn-ghost:hover{background:var(--bg-2);transform:translateY(-2px)}
  .btn-lg{padding:15px 26px;font-size:1rem}

  /* HERO */
  .hero{padding:64px 0 56px;text-align:center}
  .hero-inner{max-width:780px;margin:0 auto}
  .eyebrow{display:inline-flex;align-items:center;gap:9px;font-size:.78rem;font-weight:700;letter-spacing:.13em;text-transform:uppercase;color:var(--primary-2);background:rgba(10,159,90,.07);border:1px solid rgba(10,159,90,.2);padding:7px 14px;border-radius:100px}
  .dot{width:7px;height:7px;border-radius:50%;background:var(--primary-2);animation:pulse 2.4s infinite}
  @keyframes pulse{0%{box-shadow:0 0 0 0 rgba(10,159,90,.5)}70%{box-shadow:0 0 0 9px rgba(10,159,90,0)}100%{box-shadow:0 0 0 0 rgba(10,159,90,0)}}
  .hero h1{font-size:clamp(2.5rem,5.4vw,4rem);margin:22px 0 16px}
  .hero h1 em{font-style:normal;background:linear-gradient(120deg,var(--primary),var(--primary-2));-webkit-background-clip:text;background-clip:text;color:transparent}
  .hero p.lead{font-size:1.12rem;color:var(--muted);max-width:54ch;margin:0 auto}
  .trustline{display:flex;align-items:center;gap:13px;flex-wrap:wrap;color:var(--muted-2);font-size:.86rem;justify-content:center;margin-top:20px}
  .trustline b{color:var(--ink-soft);font-weight:600}
  .trustline .sep{width:4px;height:4px;border-radius:50%;background:var(--muted-2)}

  /* HERO ASK BAR */
  .ask-wrap{position:relative;max-width:680px;margin:32px auto 0}
  .ask-glow{position:absolute;inset:-3px;border-radius:22px;pointer-events:none;background:linear-gradient(90deg,rgba(10,159,90,.26),rgba(10,159,90,.15),rgba(10,159,90,.24));filter:blur(16px);opacity:.65}
  .ask{position:relative;display:flex;align-items:flex-end;gap:8px;background:#fff;border:1px solid var(--line-2);border-radius:18px;padding:9px 9px 9px 16px;box-shadow:var(--shadow-lg)}
  .ask:focus-within{border-color:var(--primary-2);box-shadow:0 0 0 3px rgba(10,159,90,.13),var(--shadow-lg)}
  .ask .search-ico{width:21px;height:21px;color:var(--muted-2);flex:none;align-self:center}
  /* Auto-growing textarea: starts at one line, grows to 3 rows, then scrolls. */
  .ask textarea{flex:1;min-width:0;box-sizing:border-box;border:none;outline:none;background:transparent;font-family:inherit;font-size:1rem;line-height:1.45;color:var(--ink);resize:none;padding:7px 0;margin:0;max-height:calc(1.45em * 3 + 14px);overflow-y:hidden}
  /* THE PLACEHOLDER STAYS ON ONE LINE. The field is rows=1 with its overflow
     hidden, so it is exactly one line tall, and a placeholder longer than it
     wrapped onto a second line the box then cut in half — a sliced row of letters
     under the first. Nowrap keeps it to one line and the ellipsis says there is
     more, rather than showing a broken one. On ::placeholder alone, so typed text
     still wraps and the field still grows to its three-line cap as before. */
  .ask textarea::placeholder{color:var(--muted-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  /* Hero ask-bar stays exactly one row tall; scrolls (no auto-grow) when text wraps. */
  #heroInput{height:calc(1.45em + 14px);max-height:calc(1.45em + 14px);resize:none;overflow-y:auto;scrollbar-width:thin;scrollbar-color:rgba(10,159,90,.4) transparent}
  #heroInput::-webkit-scrollbar{width:6px}
  #heroInput::-webkit-scrollbar-track{background:transparent}
  #heroInput::-webkit-scrollbar-thumb{background:rgba(10,159,90,.4);border-radius:6px}
  .hero-chips{display:flex;flex-wrap:wrap;gap:9px;justify-content:center;margin:18px auto 0;max-width:620px}
  .ask-cap{max-width:560px;margin:15px auto 0;color:var(--muted-2);font-size:.84rem;text-align:center}

  /* CHIPS / BUTTONS (shared) */
  .chip{font-size:.8rem;font-weight:500;color:var(--ink-soft);background:var(--bg-2);border:1px solid var(--line-2);padding:8px 13px;border-radius:100px;cursor:pointer;transition:all .18s}
  .chip:hover{color:#fff;border-color:var(--primary);background:var(--primary)}
  .chip.cb{color:var(--primary);border-color:var(--line-2);background:#fff}
  .chip.cb:hover{color:#fff;background:var(--primary-2);border-color:var(--primary-2)}
  .iconbtn{width:44px;height:44px;flex-shrink:0;border-radius:12px;border:1px solid var(--line-2);background:#fff;color:var(--primary);cursor:pointer;display:grid;place-items:center;transition:all .18s}
  .iconbtn:hover{background:var(--bg-2);border-color:var(--primary)}
  .iconbtn svg{width:20px;height:20px}
  .iconbtn.mic.rec{background:#e23b3b;border-color:#e23b3b;color:#fff;animation:recpulse 1.2s infinite}
  @keyframes recpulse{0%{box-shadow:0 0 0 0 rgba(226,59,59,.5)}70%{box-shadow:0 0 0 8px rgba(226,59,59,0)}100%{box-shadow:0 0 0 0 rgba(226,59,59,0)}}
  .send{width:46px;height:46px;flex-shrink:0;border-radius:12px;border:none;cursor:pointer;background:linear-gradient(135deg,var(--primary),var(--primary-2));color:#fff;display:grid;place-items:center;transition:transform .18s}
  .send:hover{transform:scale(1.06)}.send svg{width:20px;height:20px}
  .ask .iconbtn,.ask .send{width:42px;height:42px;border-radius:50%}

  /* FILE CHIPS */
  .attach-row{display:flex;flex-wrap:wrap;gap:7px}
  .attach-row.hero-attach{justify-content:center;max-width:680px;margin:11px auto 0}
  .attach-row.chat-attach{padding:0 16px}
  .attach-row.chat-attach:not(:empty){padding-bottom:10px}
  .filechip{display:inline-flex;align-items:center;gap:7px;font-size:.78rem;color:var(--ink-soft);background:rgba(10,159,90,.07);border:1px solid var(--line-2);padding:6px 9px;border-radius:9px;max-width:200px}
  .filechip span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .filechip b{cursor:pointer;color:var(--muted);font-weight:700;padding:0 2px}
  .filechip b:hover{color:#e23b3b}
  .filechip svg{width:14px;height:14px;color:var(--primary);flex-shrink:0}
  .filechip.reading{color:var(--muted);opacity:.85}
  .filechip.error{color:#c0392b;border-color:#f3c6c0;background:#fdecea}
  .filechip.error svg{color:#c0392b}
  .filechip .spin{width:13px;height:13px;border:2px solid var(--line-2);border-top-color:var(--primary);border-radius:50%;animation:spin .7s linear infinite;flex-shrink:0}
  @keyframes spin{to{transform:rotate(360deg)}}
  .iconbtn.mic.listening{background:var(--primary);border-color:var(--primary);color:#fff;animation:recpulse 1.2s infinite}
  .iconbtn.mic.transcribing{color:var(--primary);cursor:wait}
  .iconbtn.mic.transcribing svg{display:none}
  .iconbtn.mic.transcribing::after{content:"";width:16px;height:16px;border:2px solid currentColor;border-top-color:transparent;border-radius:50%;animation:spin .7s linear infinite}
  .ai-input.busy{opacity:.6;pointer-events:none}
  .send:disabled{opacity:.5;cursor:not-allowed;transform:none}

  /* CHAT OVERLAY */
  .ai-head{display:flex;align-items:center;gap:13px;padding:16px 20px;border-bottom:1px solid var(--line);background:linear-gradient(180deg,rgba(10,159,90,.05),#fff)}
  .ai-avatar{width:42px;height:42px;border-radius:12px;background:linear-gradient(140deg,var(--primary),var(--primary-2));display:grid;place-items:center;color:#fff;flex-shrink:0}
  .ai-avatar svg{width:22px;height:22px}
  .ai-title{font-family:'Inter',system-ui,sans-serif;font-weight:700;font-size:1rem;color:var(--ink);letter-spacing:-.01em}
  .ai-sub{font-size:.78rem;color:var(--muted);display:flex;align-items:center;gap:7px}
  .live{width:7px;height:7px;border-radius:50%;background:#27a567;box-shadow:0 0 8px #27a567}
  .chat-close{margin-left:auto;background:none;border:none;color:var(--muted);cursor:pointer;font-size:1.6rem;line-height:1;padding:0 4px;transition:color .15s}
  .chat-close:hover{color:var(--ink)}

  .chat-overlay{position:fixed;inset:0;z-index:120;background:rgba(24,46,34,.34);backdrop-filter:blur(6px);display:flex;justify-content:center;animation:rise .25s ease}
  .chat-overlay[hidden]{display:none}
  .chat-shell{position:relative;width:100%;max-width:960px;height:100%;display:flex;background:var(--bg);box-shadow:0 0 90px rgba(24,46,34,.5);overflow:hidden}
  @media(min-width:900px){.chat-overlay{padding:24px}.chat-shell{height:calc(100vh - 48px);border-radius:22px;border:1px solid var(--line-2)}}
  .chat-main{flex:1;min-width:0;display:flex;flex-direction:column}

  /* SESSIONS PANEL */
  .sessions{display:flex;flex-direction:column;background:var(--bg-2);overflow:hidden;flex-shrink:0}
  .sessions-head{display:flex;align-items:center;gap:8px;padding:15px 16px;border-bottom:1px solid var(--line)}
  .sessions-head span{font-size:.72rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);flex:1;white-space:nowrap}
  .sessions-x{background:none;border:none;color:var(--muted);cursor:pointer;display:grid;place-items:center;padding:2px;border-radius:7px}
  .sessions-x:hover{color:var(--ink);background:var(--bg-3)}
  .sessions-x svg{width:18px;height:18px}
  .new-session{margin:12px 12px 6px;display:inline-flex;align-items:center;justify-content:center;gap:8px;border:none;cursor:pointer;border-radius:11px;padding:11px 14px;font-family:inherit;font-weight:700;font-size:.9rem;color:#fff;background:linear-gradient(135deg,var(--primary),var(--primary-2));box-shadow:0 10px 22px -12px rgba(10,159,90,.7);white-space:nowrap}
  .new-session:hover{filter:brightness(1.04)}
  .new-session svg{width:17px;height:17px}
  .session-list{flex:1;overflow-y:auto;padding:8px 10px;display:flex;flex-direction:column;gap:4px;scrollbar-width:thin}
  .session-list::-webkit-scrollbar{width:6px}.session-list::-webkit-scrollbar-thumb{background:var(--line-2);border-radius:6px}
  .session-empty{padding:10px 12px;font-size:.8rem;color:var(--muted-2)}
  .session-item{display:flex;align-items:center;gap:9px;padding:10px 11px;border-radius:10px;cursor:pointer;color:var(--ink-soft);transition:background .15s}
  .session-item:hover{background:var(--bg-3)}
  .session-item.active{background:rgba(10,159,90,.12);color:var(--primary-deep)}
  .session-item .si-ico{width:16px;height:16px;flex-shrink:0;color:var(--primary-2)}
  .session-item .si-title{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.88rem}
  .session-item .si-del{opacity:0;flex-shrink:0;background:none;border:none;color:var(--muted-2);cursor:pointer;display:grid;place-items:center;padding:2px;border-radius:6px;transition:opacity .15s,color .15s}
  .session-item:hover .si-del{opacity:1}
  .session-item .si-del:hover{color:#e23b3b}
  .session-item .si-del svg{width:14px;height:14px}
  .sessions-backdrop{position:absolute;inset:0;z-index:20;background:rgba(24,46,34,.4);opacity:0;pointer-events:none;transition:opacity .25s}
  .hist-btn{background:none;border:none;color:var(--muted);cursor:pointer;display:grid;place-items:center;padding:4px;border-radius:8px;flex-shrink:0;transition:color .15s,background .15s}
  .hist-btn:hover{color:var(--primary);background:var(--bg-2)}
  .hist-btn svg{width:21px;height:21px}

  /* desktop: panel pushes the chat (chat shrinks); width animates open/closed */
  @media(min-width:768px){
    .sessions{width:0;border-right:1px solid var(--line);transition:width .26s ease}
    .chat-shell.sidebar-open .sessions{width:256px}
    .sessions-backdrop{display:none}
  }
  /* mobile / small: panel slides OVER the chat with a backdrop */
  @media(max-width:767px){
    .sessions{position:absolute;top:0;left:0;bottom:0;z-index:30;width:min(82%,300px);border-right:1px solid var(--line);transform:translateX(-100%);transition:transform .26s ease;box-shadow:0 0 60px rgba(24,46,34,.35)}
    .chat-shell.sidebar-open .sessions{transform:translateX(0)}
    .chat-shell.sidebar-open .sessions-backdrop{opacity:1;pointer-events:auto}
  }

  .feed{flex:1;overflow-y:auto;padding:22px 20px;display:flex;flex-direction:column;gap:12px;scrollbar-width:thin}
  .feed::-webkit-scrollbar{width:7px}.feed::-webkit-scrollbar-thumb{background:var(--line-2);border-radius:7px}
  .feed-welcome{margin:auto;max-width:380px;text-align:center;color:var(--muted);display:flex;flex-direction:column;align-items:center;gap:16px;padding:24px 10px}
  .feed-welcome .fw-orb{width:54px;height:54px;border-radius:15px;background:linear-gradient(140deg,var(--primary),var(--primary-2));display:grid;place-items:center;color:#fff}
  .feed-welcome .fw-orb svg{width:28px;height:28px}
  .feed-welcome p{font-size:1.08rem;font-weight:500;line-height:1.5;color:var(--ink-soft)}
  .msg{max-width:90%;padding:11px 15px;border-radius:14px;font-size:.93rem;line-height:1.55;animation:rise .35s ease both;white-space:pre-wrap;word-wrap:break-word}
  @keyframes rise{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
  .msg.bot{align-self:flex-start;background:var(--bg-2);color:var(--ink-soft);border-bottom-left-radius:5px}
  .msg.user{align-self:flex-end;background:linear-gradient(135deg,var(--primary),var(--primary-2));color:#fff;border-bottom-right-radius:5px}
  .msg.bot strong{color:var(--primary-2)}
  .msg.bot a{color:var(--primary);font-weight:600;text-decoration:none}
  .msg.bot a:hover{text-decoration:underline}
  .msg.bot p{margin:0 0 .5em}
  .msg.bot p:last-child{margin-bottom:0}
  .msg.bot .mdh{font-weight:700;color:var(--ink)}
  .msg.bot ul,.msg.bot ol{margin:.3em 0 .5em;padding-left:1.2em}
  .msg.bot li{margin:.15em 0}
  .msg.bot code{background:var(--bg-3);padding:1px 5px;border-radius:5px;font-size:.86em;font-family:ui-monospace,Menlo,Consolas,monospace}
  .chips{display:flex;flex-wrap:wrap;gap:8px;padding:0 20px 12px}
  .ai-input{display:flex;align-items:flex-end;gap:8px;padding:13px 16px;border-top:1px solid var(--line);background:var(--bg-2)}
  /* Auto-growing textarea: starts at one line, grows to 3 rows, then scrolls. */
  .ai-input textarea{flex:1;min-width:0;box-sizing:border-box;background:#fff;border:1px solid var(--line-2);border-radius:12px;padding:12px 14px;color:var(--ink);font-family:inherit;font-size:.94rem;line-height:1.45;outline:none;resize:none;max-height:calc(1.45em * 3 + 26px);overflow-y:hidden;transition:border-color .2s}
  /* One line for the placeholder here too: this field is rows=1 with its
     overflow hidden, so a longer placeholder wrapped into a row the box cut. */
  .ai-input textarea::placeholder{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .ai-input textarea:focus{border-color:var(--primary-2)}
  .ai-foot{padding:9px 20px 13px;font-size:.72rem;color:var(--muted-2);text-align:center}
  .typing{display:inline-flex;gap:4px;align-items:center}
  .typing span{width:6px;height:6px;border-radius:50%;background:var(--muted);animation:blink 1.3s infinite}
  .typing span:nth-child(2){animation-delay:.2s}.typing span:nth-child(3){animation-delay:.4s}
  @keyframes blink{0%,60%,100%{opacity:.25}30%{opacity:1}}

  /* STATS */
  .stats{border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:var(--bg-2)}
  .stats-grid{display:grid;grid-template-columns:repeat(4,1fr)}
  .stat{padding:34px 22px;text-align:center;border-right:1px solid var(--line)}
  .stat:last-child{border-right:none}
  .stat .num{font-family:'Inter',system-ui,sans-serif;font-size:2.4rem;font-weight:600;color:var(--ink);line-height:1}
  .stat .num span{color:var(--primary-2)}
  .stat .lbl{font-size:.82rem;color:var(--muted);margin-top:8px}

  section.block{padding:88px 0}
  .sec-head{max-width:680px;margin-bottom:46px}
  .sec-head.center{margin-inline:auto;text-align:center}
  .kicker{font-size:.78rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--primary-2)}
  .sec-head h2{font-size:clamp(2rem,4vw,2.9rem);margin:13px 0 14px}
  .sec-head p{color:var(--muted);font-size:1.06rem}

  .cards{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
  .card{position:relative;background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:30px 26px;transition:transform .25s,border-color .25s,box-shadow .25s}
  .card:hover{transform:translateY(-6px);border-color:var(--line-2);box-shadow:var(--shadow)}
  .card.feat{border-color:rgba(10,159,90,.32);box-shadow:0 18px 44px -28px rgba(10,159,90,.5)}
  .badge{position:absolute;top:-12px;left:26px;font-size:.72rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:#fff;background:linear-gradient(135deg,var(--primary),var(--primary-2));padding:5px 13px;border-radius:100px}
  .card .ico{width:50px;height:50px;border-radius:13px;background:rgba(10,159,90,.07);border:1px solid rgba(10,159,90,.16);display:grid;place-items:center;margin-bottom:18px;color:var(--primary)}
  .card .ico svg{width:24px;height:24px}
  .card h3{font-size:1.4rem;margin-bottom:9px}
  .card p{color:var(--muted);font-size:.96rem;margin-bottom:16px}
  .card ul{list-style:none;display:flex;flex-direction:column;gap:9px}
  .card li{display:flex;gap:10px;font-size:.92rem;color:var(--ink-soft)}
  .card li svg{width:17px;height:17px;color:var(--primary-2);flex-shrink:0;margin-top:4px}

  .split{display:grid;grid-template-columns:1fr 1fr;gap:54px;align-items:center}
  .hero-ctas{display:flex;gap:13px;margin:24px 0 0;flex-wrap:wrap}
  .why-list{display:flex;flex-direction:column;gap:18px}
  .why-item{display:flex;gap:15px}
  .why-item .wi-ico{width:44px;height:44px;flex-shrink:0;border-radius:12px;background:rgba(10,159,90,.1);border:1px solid rgba(10,159,90,.2);display:grid;place-items:center;color:var(--primary-2)}
  .why-item .wi-ico svg{width:21px;height:21px}
  .why-item h4{font-family:'Inter',system-ui,sans-serif;font-weight:700;font-size:1.05rem;margin-bottom:3px;color:var(--ink)}
  .why-item p{color:var(--muted);font-size:.93rem}

  .steps{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;counter-reset:s}
  .step{padding:30px 26px;background:var(--card);border:1px solid var(--line);border-radius:var(--radius)}
  .step::before{counter-increment:s;content:"0" counter(s);font-family:'Inter',system-ui,sans-serif;font-size:2.4rem;color:rgba(10,159,90,.28);font-weight:600;display:block;margin-bottom:10px}
  .step h4{font-family:'Inter',system-ui,sans-serif;font-weight:700;font-size:1.15rem;margin-bottom:7px;color:var(--ink)}
  .step p{color:var(--muted);font-size:.94rem}

  /* COVERAGE */
  .cov{display:grid;grid-template-columns:1fr 1fr;gap:54px;align-items:center}
  .cov-pills{display:flex;flex-wrap:wrap;gap:10px;margin-top:22px}
  .pill{font-size:.85rem;font-weight:600;color:var(--ink-soft);background:#fff;border:1px solid var(--line-2);padding:9px 15px;border-radius:100px}
  .pill.lit{border-color:var(--primary-2);color:var(--primary);background:rgba(10,159,90,.06)}
  .cov-visual{position:relative;border-radius:22px;padding:46px 38px;color:#fff;background:linear-gradient(140deg,var(--primary-deep),var(--primary) 70%,var(--primary-2));box-shadow:var(--shadow);overflow:hidden}
  .cov-visual::before{content:"";position:absolute;inset:0;background:radial-gradient(420px 260px at 85% 10%,rgba(255,255,255,.14),transparent 60%);pointer-events:none}
  .cov-big{font-family:'Inter',system-ui,sans-serif;font-size:4.6rem;font-weight:600;line-height:.9;color:#fff}
  .cov-big span{display:block;font-size:1.05rem;font-weight:600;font-family:'Inter',system-ui,sans-serif;letter-spacing:.04em;color:rgba(255,255,255,.78);margin-top:8px}
  .cov-rows{margin-top:26px;display:flex;flex-direction:column;gap:14px;position:relative}
  .cov-rows div{display:flex;gap:11px;align-items:flex-start;font-size:.95rem;color:rgba(255,255,255,.92)}
  .cov-rows svg{width:18px;height:18px;color:#fff;flex-shrink:0;margin-top:3px;opacity:.9}

  .team{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
  .tcard{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:26px;transition:transform .25s,border-color .25s}
  .tcard:hover{transform:translateY(-5px);border-color:var(--line-2)}
  .tinit{width:54px;height:54px;border-radius:14px;background:linear-gradient(140deg,rgba(10,159,90,.13),rgba(10,159,90,.13));border:1px solid var(--line-2);display:grid;place-items:center;font-family:'Inter',system-ui,sans-serif;font-size:1.25rem;color:var(--primary);margin-bottom:16px}
  .tcard h4{font-family:'Inter',system-ui,sans-serif;font-weight:700;font-size:1.1rem;color:var(--ink)}
  .tcard .role{color:var(--primary-2);font-size:.84rem;font-weight:600;margin:2px 0 11px}
  .tcard p{color:var(--muted);font-size:.9rem}

  .tests{display:grid;grid-template-columns:repeat(2,1fr);gap:22px}
  .quote{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:30px}
  .quote .stars{color:var(--primary);letter-spacing:3px;font-size:.95rem;margin-bottom:13px}
  .quote p{font-size:1.02rem;color:var(--ink-soft);line-height:1.65;margin-bottom:16px}
  .quote .who{font-family:'Inter',system-ui,sans-serif;font-weight:700;font-size:.95rem;color:var(--ink)}
  .quote .who span{display:block;color:var(--muted);font-weight:400;font-size:.84rem}

  /* CTA BAND + LEAD FORM */
  .cta-band{position:relative;border-radius:26px;padding:56px 40px;text-align:center;overflow:hidden;background:linear-gradient(135deg,var(--charcoal),var(--primary-deep));border:1px solid var(--primary-deep)}
  .cta-band::before{content:"";position:absolute;inset:0;background:radial-gradient(620px 320px at 50% -30%,rgba(10,159,90,.5),transparent 60%);pointer-events:none}
  .cta-band h2{font-size:clamp(2.1rem,4vw,3rem);color:#fff;position:relative}
  .cta-band p{color:rgba(255,255,255,.82);font-size:1.1rem;max-width:48ch;margin:14px auto 0;position:relative}
  .cta-form{position:relative;max-width:460px;margin:26px auto 0;text-align:left}
  .op-fields{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-bottom:11px}
  .op-fields input{background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.3);border-radius:11px;padding:13px 14px;font-family:inherit;font-size:.94rem;color:#fff;outline:none;transition:border-color .2s,background .2s}
  .op-fields input::placeholder{color:rgba(255,255,255,.72)}
  .op-fields input:focus{border-color:#fff;background:rgba(255,255,255,.18)}
  .op-fields input.full{grid-column:1 / -1}
  .op-submit{width:100%;justify-content:center;background:#fff;color:var(--primary-deep);box-shadow:0 14px 28px -12px rgba(0,0,0,.35)}
  .op-submit:hover{background:#f0fff6;transform:translateY(-2px)}
  .op-alt{display:block;width:100%;text-align:center;background:none;border:none;cursor:pointer;color:rgba(255,255,255,.85);font-family:inherit;font-weight:600;font-size:.86rem;margin-top:12px;padding:4px}
  .op-alt:hover{color:#fff;text-decoration:underline}
  .op-err{color:#ffd7d7;font-size:.82rem;margin-top:10px;text-align:center;display:none}
  .op-note{font-size:.74rem;color:rgba(255,255,255,.7);text-align:center;margin-top:11px}
  .cta-alt-ai{position:relative;margin-top:16px;font-size:.86rem;color:rgba(255,255,255,.78)}
  .cta-alt-ai button{background:none;border:none;color:#fff;font-family:inherit;font-weight:700;font-size:.86rem;cursor:pointer;text-decoration:underline;padding:0}

  footer{border-top:1px solid var(--line);background:var(--bg-2);padding:60px 0 28px;margin-top:20px}
  .foot-grid{display:grid;grid-template-columns:1.6fr 1fr 1fr 1fr;gap:40px;margin-bottom:42px}
  .foot-grid h5{font-family:'Inter',system-ui,sans-serif;font-weight:700;font-size:.82rem;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin-bottom:16px}
  .foot-grid ul{list-style:none;display:flex;flex-direction:column;gap:11px}
  .foot-grid a,.foot-grid li{color:var(--ink-soft);font-size:.92rem;transition:color .2s;cursor:pointer}
  .foot-grid a:hover{color:var(--primary-2)}
  .foot-blurb{color:var(--muted);font-size:.93rem;max-width:32ch;margin:14px 0 18px}
  .underwriter{font-size:.85rem;color:var(--ink-soft);border:1px solid var(--line-2);background:#fff;border-radius:12px;padding:12px 14px;display:inline-block}
  .underwriter b{color:var(--muted);display:block;font-size:.72rem;letter-spacing:.06em;text-transform:uppercase;margin-bottom:3px;font-weight:700}
  .foot-bottom{border-top:1px solid var(--line);padding-top:24px;display:flex;justify-content:space-between;flex-wrap:wrap;gap:14px;color:var(--muted-2);font-size:.82rem}


  .reveal{opacity:0;transform:translateY(26px);transition:opacity .7s cubic-bezier(.2,.7,.2,1),transform .7s cubic-bezier(.2,.7,.2,1)}
  .reveal.in{opacity:1;transform:none}

  @media(max-width:960px){
    .split,.cov{grid-template-columns:1fr;gap:36px}
    .stats-grid{grid-template-columns:repeat(2,1fr)}
    .stat:nth-child(2){border-right:none}.stat{border-bottom:1px solid var(--line)}
    .cards,.steps,.team,.tests{grid-template-columns:1fr}
    .foot-grid{grid-template-columns:1fr 1fr;gap:30px}
    .navlinks{display:none}
  }
  @media(max-width:600px){
    .brand{font-size:1.02rem;gap:8px}
    .nav-cta .btn-ghost{display:none}
    .nav-cta .btn{padding:10px 15px;font-size:.9rem}
    .stats-grid{grid-template-columns:1fr}.stat{border-right:none;border-bottom:1px solid var(--line)}
    .foot-grid{grid-template-columns:1fr}
    .op-fields{grid-template-columns:1fr}
    .cov-big{font-size:3.6rem}
  }

  /* ==== The mobile standard: full width, one 16px gutter, no dead space ====
     A phone gets ONE side margin and nothing else: the page runs edge to edge
     inside it, so no column is narrowed twice over. The hero also loses the
     desktop's 64px of air above the eyebrow pill, which on a phone pushed the
     headline most of the way down the first screen for no reason. */
  @media(max-width:640px){
    .wrap{padding:0 16px}
    .hero{padding:20px 0 36px}
    .hero-inner{max-width:none}
    .hero h1{margin:14px 0 12px}
    .hero p.lead{max-width:none}
    .hero-chips{margin-top:14px;max-width:none}
    .attach-row.hero-attach{max-width:none}
  }

  /* ==== Platform refresh: the network look (close module). Presentation only. ==== */
  h1,h2,h3,h4{font-weight:900;letter-spacing:-.04em}
  .card h3,.tcard h4,.why-item h4,.step h4,.ai-title{font-weight:800}
  .hero h1{letter-spacing:-.045em;line-height:1.03}
  .brand{font-weight:900;letter-spacing:-.035em}
  .brand b{color:var(--primary);font-weight:500}
  .btn{border-radius:10px}
  .btn-primary{background:var(--primary);box-shadow:0 8px 18px rgba(10,159,90,.26)}
  .btn-primary:hover{background:var(--primary-deep);box-shadow:0 10px 22px rgba(10,159,90,.34)}
  .send,.new-session,.ai-avatar,.mark,.msg.user,.badge,.feed-welcome .fw-orb{background:var(--primary)}
  .cta-band{background:var(--charcoal);border-color:var(--charcoal)}
  .cov-visual{background:var(--primary-deep)}
  .cta-band::before{background:radial-gradient(620px 320px at 50% -30%,rgba(10,159,90,.45),transparent 60%)}
  .hero h1 em{background:none;-webkit-background-clip:initial;background-clip:initial;color:var(--primary)}
  .plat{background:#0B1220;color:#fff;font-size:12px;position:relative;z-index:60}
  .plat-in{display:flex;align-items:center;gap:10px;min-height:44px;}
  /* The logo is its own block, outside the scroller, so no name can pass behind
   it; the names scroll in .plat-track, the only scrolling element. */
.plat-lbl{flex:none;display:inline-flex;align-items:center;gap:8px;font-weight:800;font-size:13px;letter-spacing:-.025em;white-space:nowrap}
.plat-lbl .pmark{width:26px;height:26px;border-radius:8px;background:#2C55F5;display:grid;place-items:center;flex:none}
.plat-lbl .pmark svg{width:15px;height:15px;display:block;fill:none}
.plat-track{flex:1;min-width:0;display:flex;align-items:center;gap:8px;overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch;overscroll-behavior-x:contain;cursor:grab;-webkit-mask-image:linear-gradient(90deg,transparent 0,#000 14px,#000 calc(100% - 14px),transparent 100%);mask-image:linear-gradient(90deg,transparent 0,#000 14px,#000 calc(100% - 14px),transparent 100%)}
.plat-track::-webkit-scrollbar{display:none}
.plat-track.is-dragging{cursor:grabbing}
.plat-track.is-dragging a{pointer-events:none}
    .plat-in a{display:inline-flex;align-items:center;gap:5px;padding:5px 8px;border-radius:999px;color:#C3CBDC;white-space:nowrap;font-weight:600;flex:none}
  .plat-in a:hover{background:#1A2334;color:#fff}
  .plat-in a i{width:7px;height:7px;border-radius:50%;flex:none}
  .plat-in a[aria-current="page"]{background:#fff;color:#0B1220;font-weight:800}
  .plat-sp{flex:none;min-width:8px}
  .plat-in .plat-tel{color:#fff;font-weight:700;padding-left:8px}
  @media(max-width:760px){.plat-in .plat-tel{display:none}}
  .nw-steps{display:grid;grid-template-columns:repeat(5,1fr);gap:12px;margin-top:8px}
  .nw-step{display:block;background:#fff;border:1px solid var(--line);border-top:3px solid var(--c);border-radius:12px;padding:18px;color:var(--ink);transition:transform .15s,border-color .15s}
  .nw-step:hover{transform:translateY(-2px);border-color:var(--c)}
  .nw-step b{display:block;font-size:17px;font-weight:900;letter-spacing:-.03em}
  .nw-step p{font-size:13.5px;color:var(--ink-soft);margin:4px 0 10px;line-height:1.45}
  .nw-step small{font-size:12px;font-weight:700;color:var(--c)}
  .nw-step.here{background:var(--bg-3)}
  .nw-doors{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:16px}
  .nw-door{display:block;background:#fff;border:1px solid var(--line);border-left:4px solid var(--c);border-radius:12px;padding:24px;color:var(--ink)}
  .nw-door:hover{box-shadow:var(--shadow)}
  .nw-door .dl{display:inline-block;font-size:11px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--c);margin-bottom:8px}
  .nw-door b{display:block;font-size:19px;font-weight:900;letter-spacing:-.03em}
  .nw-door p{font-size:14.5px;color:var(--ink-soft);margin:6px 0 12px}
  .nw-door small{font-size:13px;font-weight:700;color:var(--c)}
  @media(max-width:960px){.nw-steps{grid-template-columns:1fr 1fr}}
  @media(max-width:640px){.nw-steps,.nw-doors{grid-template-columns:1fr}}
  .foot-plat{display:grid;grid-template-columns:repeat(4,1fr);gap:26px;padding:6px 0 30px;margin-bottom:6px;border-bottom:1px solid var(--line)}
  .foot-plat h5{font-weight:800;font-size:.82rem;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin-bottom:12px}
  .foot-plat a{display:block;font-size:.92rem;color:var(--ink-soft);padding:3px 0}
  .foot-plat a:hover{color:var(--primary)}
  @media(max-width:760px){.foot-plat{grid-template-columns:1fr 1fr}}
  .foot-plat>div{min-width:0}.foot-plat a{overflow-wrap:anywhere}
  @media(max-width:420px){.foot-plat{grid-template-columns:1fr;gap:18px}.foot-plat>div:nth-child(2){margin-top:-18px}.foot-plat>div:nth-child(2) h5{display:none}}

/* iOS ZOOMS THE PAGE IN when a form control smaller than 16px takes focus, and
   does not zoom back out: the field ends up magnified and the layout shifted
   under it. Every control goes to at least 16px on a phone. The desktop sizes
   above stand — this only applies where the zoom happens.

   !important because it has to beat whatever each component sets locally, and
   those rules carry a class so they outrank any plain element selector. It is
   deliberately narrow: one property, on form controls, below 640px only. */
@media (max-width:640px){
  input,textarea,select{font-size:16px!important}
}

/* ==========================================================================
   /ask-ai — the Ask AI splash.

   One screen, nothing scrolling: the headline, the prompt, four one-word chips
   and the Claire line, in the shape every site on the platform now opens on.

   100dvh, not 100vh. On a phone 100vh is the viewport with the address bar
   scrolled away, which is TALLER than what you can see, so a screen built to it
   hides its own last row — here the Claire number and "See details", the two
   things on the page that are not the box. 100dvh is the visible height. The vh
   line above it is the fallback for anything that does not know dvh yet; the
   later declaration wins where it is understood.

   It deliberately does NOT clip. Nothing should scroll because nothing should
   overflow — but the moment the keyboard opens the usable height halves, and a
   clipped screen cannot bring the field being typed in back into view. So a
   short screen, or a screen with a keyboard on it, degrades into an ordinary
   scroll instead of hiding the prompt.

   NO MAGIC NUMBER FOR THE CHROME. This started as calc(100dvh - 116px), the
   platform bar plus the nav added up by hand, and that is wrong twice over: the
   nav is 72px on a desk but shorter on a phone, and on a very narrow screen the
   brand wraps and it grows. Each of those is a scrollbar on a page whose whole
   claim is that it does not scroll.

   So the BODY of this page is the fixed-height column, the bar and the nav are
   its fixed rows, and the splash takes whatever is left, measured rather than
   guessed. The body class lives in ask-ai/index.html and nowhere else, so the
   home page is untouched. It is safe for the chat too: the overlay is
   position:fixed, so it is out of this flow entirely.
   ========================================================================== */
body.askai{min-height:100vh;min-height:100dvh;display:flex;flex-direction:column}
body.askai>.plat,body.askai>header{flex:none}
.splash{flex:1;min-height:0;display:grid;place-items:center;padding:16px}
.splash-in{width:100%;max-width:680px;text-align:center;display:grid;gap:16px;justify-items:center}
.splash-in h1{font-size:clamp(34px,9vw,52px);font-weight:900;letter-spacing:-.045em;line-height:1.03;color:var(--ink);margin:0}
.splash-in h1 span{color:var(--primary);display:block}
/* The ask bar is the home page's, so its hero margin has to come off: there it
   sits under a paragraph, here it is one cell of a grid that owns the spacing. */
.splash-in .ask-wrap{margin:0;width:100%}
.splash-chips{display:flex;flex-wrap:wrap;gap:9px;justify-content:center}
/* min-height 38px plus the 9px row gap clears the 44px tap target the spec asks
   for, without five pills reading as five buttons. */
.splash-chips .chip{display:inline-flex;align-items:center;gap:7px;min-height:38px;padding:0 15px;font-size:.84rem;font-weight:700;color:var(--ink-soft)}
.splash-chips .chip::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--primary);flex:none}
.splash-call{font-size:.84rem;color:var(--muted);margin:0}
.splash-call a{color:var(--primary);font-weight:700;text-decoration:none}
.splash-more{font-size:.84rem;font-weight:700;color:var(--muted);text-decoration:none}
.splash-more:hover{color:var(--ink);text-decoration:underline;text-underline-offset:4px}
/* Tighter on a phone, where the budget is real: the platform bar and the site
   nav are already spent before this screen starts. */
@media (max-width:640px){
  .splash{padding:12px 16px}
  .splash-in{gap:14px}
}
