/* Homepage (src/site.js homePage). Everything is scoped under .bh so the shared site styles are untouched. */
.bh{--paper:#F3F1EC;--paper2:#ECE9E2;--card:#FAF9F6;--rule:#DAD6CE;--ink:#141414;--stone:#57534E;--stone2:#78716C;
  --ocean:#0369A1;--sky:#38BDF8;--ok:#15803D;--okbg:#E7F2EA;--warn:#B45309;
  --serif:'Instrument Serif',Georgia,serif;--sans:Geist,system-ui,-apple-system,Segoe UI,sans-serif;--mono:'Geist Mono',ui-monospace,monospace;
  --ease:cubic-bezier(.2,.7,.1,1);--shadow:0 1px 0 rgba(20,20,20,.04),0 24px 48px -28px rgba(20,20,20,.28);}
.bh *{box-sizing:border-box;margin:0}
.bh{background:var(--paper);color:var(--ink);font:400 16px/1.55 var(--sans);-webkit-font-smoothing:antialiased;overflow-x:hidden}
.bh a{color:inherit}
.bh img{max-width:100%;display:block}
.bh .wrap{max-width:1200px;margin:0 auto;padding:0 24px}
.bh .k{font:500 12px/1.4 var(--mono);letter-spacing:.06em;text-transform:uppercase;color:var(--stone2)}
.bh h1,.bh h2{font-family:var(--serif);font-weight:400;letter-spacing:-.01em;line-height:1.02}
.bh h1 i,.bh h2 i{color:var(--ocean)}
.bh h2{font-size:clamp(38px,5vw,60px)}
.bh h3{font-size:18px;font-weight:600;letter-spacing:-.01em}
.bh p.lede{color:var(--stone);font-size:18px;max-width:560px}
.bh .btn{display:inline-flex;align-items:center;gap:8px;font:600 15px var(--sans);text-decoration:none;padding:13px 20px;border-radius:4px;border:1px solid var(--ink);transition:background .2s,color .2s,transform .2s}
.bh .btn:active{transform:translateY(1px)}
.bh .btn-ink{background:var(--ink);color:var(--paper)}
.bh .btn-ink:hover{background:var(--ocean);border-color:var(--ocean);color:#fff}
.bh .btn-line{background:none;color:var(--ink)}
.bh .btn-line:hover{background:var(--ink);color:var(--paper)}
.bh .btn svg{width:16px;height:16px}
.bh .reveal{opacity:0;transform:translateY(14px);transition:opacity .7s var(--ease),transform .7s var(--ease)}
.bh .reveal.in{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){.bh .reveal{opacity:1;transform:none;transition:none}
.bh *{animation:none!important}}
.bh .hero{padding:72px 0 40px}
.bh .hero .wrap{display:grid;grid-template-columns:1.05fr .95fr;gap:56px;align-items:center}
.bh .hero h1{font-size:clamp(52px,7.4vw,96px)}
.bh .hero p.lede{margin:24px 0 32px;font-size:19px}
.bh .hero .ctas{display:flex;gap:10px;flex-wrap:wrap}
.bh .counter{margin-top:36px;display:flex;align-items:center;gap:14px;padding:14px 16px;border:1px solid var(--rule);border-radius:6px;background:var(--card);max-width:480px}
.bh .counter .dot{width:8px;height:8px;border-radius:50%;background:var(--ok);box-shadow:0 0 0 4px var(--okbg);flex:none;animation:bh-pulse 2s infinite}
@keyframes bh-pulse{50%{box-shadow:0 0 0 7px transparent}}
.bh .counter b{font:500 22px var(--mono);letter-spacing:-.02em;min-width:5.2ch;display:inline-block}
.bh .counter span{color:var(--stone);font-size:14px;line-height:1.35}
.bh .art{position:relative;height:560px}
.bh .art .win{position:absolute;right:0;top:20px;width:92%;background:var(--card);border:1px solid var(--rule);border-radius:10px;box-shadow:var(--shadow);overflow:hidden}
.bh .bar{display:flex;align-items:center;gap:6px;padding:10px 12px;border-bottom:1px solid var(--rule);background:var(--paper2)}
.bh .bar i{width:9px;height:9px;border-radius:50%;background:var(--rule)}
.bh .bar span{margin-left:10px;font:500 11.5px var(--mono);color:var(--stone2);background:var(--card);border:1px solid var(--rule);border-radius:4px;padding:3px 10px;flex:1;max-width:260px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.bh .slides{position:relative;aspect-ratio:16/10}
.bh .slides img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:top;opacity:0;transition:opacity .9s var(--ease)}
.bh .slides img.on{opacity:1}
.bh .art .phone{position:absolute;left:0;bottom:0;width:232px;background:var(--ink);border-radius:34px;padding:10px;box-shadow:0 40px 60px -30px rgba(0,0,0,.5)}
.bh .phone .scr{background:var(--card);border-radius:26px;overflow:hidden;height:410px;display:flex;flex-direction:column}
.bh .phone .top{padding:14px 16px 10px;border-bottom:1px solid var(--rule);font-size:12px;color:var(--stone)}
.bh .phone .top b{display:block;color:var(--ink);font-size:14px}
.bh .thread{flex:1;padding:12px;display:flex;flex-direction:column;gap:8px;justify-content:flex-end;overflow:hidden}
.bh .msg{max-width:84%;padding:9px 12px;border-radius:14px;font-size:12.5px;line-height:1.4;opacity:0;transform:translateY(8px);transition:.45s var(--ease)}
.bh .msg.in{opacity:1;transform:none}
.bh .msg.sys{align-self:center;background:none;color:var(--stone2);font:500 10.5px var(--mono);text-transform:uppercase;letter-spacing:.05em;padding:2px}
.bh .msg.out{align-self:flex-end;background:var(--ocean);color:#fff;border-bottom-right-radius:4px}
.bh .msg.inb{align-self:flex-start;background:var(--paper2);border-bottom-left-radius:4px}
.bh .art .tag{position:absolute;right:18px;bottom:40px;background:var(--card);border:1px solid var(--rule);border-radius:6px;padding:10px 14px;box-shadow:var(--shadow);font-size:13px;display:flex;gap:10px;align-items:center}
.bh .tag .ok{width:22px;height:22px;border-radius:50%;background:var(--okbg);color:var(--ok);display:grid;place-items:center}
@media (max-width:960px){.bh .hero .wrap{grid-template-columns:1fr}
.bh .art{height:500px;max-width:560px}}
@media (max-width:520px){.bh .art{height:470px}
.bh .art .phone{width:210px}
.bh .phone .scr{height:380px}
.bh .art .tag{display:none}}
.bh .strip{padding:36px 0 8px}
.bh .strip .k{text-align:center;margin-bottom:18px}
.bh .marq{overflow:hidden;mask-image:linear-gradient(90deg,transparent,#000 10%,#000 90%,transparent);border-block:1px solid var(--rule)}
.bh .marq ul{display:flex;gap:56px;padding:22px 0;list-style:none;width:max-content;animation:bh-slide 40s linear infinite}
.bh .marq li{font:400 30px var(--serif);color:var(--stone);white-space:nowrap}
.bh .marq li em{color:var(--ocean);font-style:normal;margin-right:56px}
@keyframes bh-slide{to{transform:translateX(-50%)}}
.bh .sec{padding:120px 0}
.bh .sec-h{display:grid;grid-template-columns:1fr 1fr;gap:40px;align-items:end;margin-bottom:48px}
.bh .sec-h .k{display:block;margin-bottom:16px}
@media (max-width:860px){.bh .sec-h{grid-template-columns:1fr;gap:16px}
.bh .sec{padding:84px 0}}
.bh .tabs{display:flex;gap:4px;padding:4px;background:var(--card);border:1px solid var(--rule);border-radius:6px;width:max-content;max-width:100%;overflow-x:auto;scrollbar-width:none}
.bh .tabs button{border:0;background:none;font:500 14px var(--sans);color:var(--stone);padding:10px 16px;border-radius:4px;cursor:pointer;white-space:nowrap}
.bh .tabs button[aria-selected=true]{background:var(--ink);color:var(--paper)}
.bh .flow{margin-top:20px;display:grid;grid-template-columns:1fr 1.1fr;border:1px solid var(--rule);border-radius:10px;background:var(--card);overflow:hidden;min-height:440px}
.bh .flow-l{padding:28px;border-right:1px solid var(--rule);display:flex;flex-direction:column;gap:12px}
.bh .flow-l .k{margin-bottom:6px}
.bh .line{display:flex;gap:12px;align-items:flex-start;opacity:.28;transition:opacity .4s}
.bh .line.in{opacity:1}
.bh .line .st{flex:none;width:22px;height:22px;border-radius:50%;border:1.5px solid var(--rule);display:grid;place-items:center;margin-top:1px;transition:.3s}
.bh .line.in .st{background:var(--ink);border-color:var(--ink);color:var(--paper)}
.bh .line.in.done .st{background:var(--ok);border-color:var(--ok);color:#fff}
.bh .line .st svg{width:12px;height:12px}
.bh .line b{display:block;font-size:15px}
.bh .line small{color:var(--stone);font-size:13.5px}
.bh .line .t{margin-left:auto;white-space:nowrap;padding-left:8px;font:500 12px var(--mono);color:var(--stone2)}
.bh .flow-r{padding:28px;background:var(--paper2);display:flex;align-items:center;justify-content:center}
.bh .flow-r .card{width:100%;max-width:460px;background:var(--card);border:1px solid var(--rule);border-radius:8px;box-shadow:var(--shadow);overflow:hidden;transition:opacity .35s}
.bh .card .ch{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;border-bottom:1px solid var(--rule);font-size:13px;color:var(--stone)}
.bh .pill{font:500 11px var(--mono);text-transform:uppercase;letter-spacing:.05em;padding:4px 8px;border-radius:99px;background:var(--paper2);color:var(--stone)}
.bh .pill.ok{background:var(--okbg);color:var(--ok)}
.bh .card .cb{padding:16px}
.bh .card img{display:block;width:100%;height:auto;aspect-ratio:16/10;object-fit:cover;object-position:top;border-radius:6px;border:1px solid var(--rule)}
.bh .code{font:400 13px/1.7 var(--mono);color:var(--stone)}
.bh .code b{color:var(--ink);font-weight:500}
.bh .doc{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.bh .doc div{aspect-ratio:.77;background:var(--paper);border:1px solid var(--rule);border-radius:3px;padding:8px;display:flex;flex-direction:column;gap:4px}
.bh .doc div i{height:4px;border-radius:2px;background:var(--rule)}
.bh .doc div i:first-child{width:60%;background:var(--ink);height:5px}
.bh .doc div i:nth-child(3){width:80%}
.bh .doc div i:nth-child(5){width:70%}
.bh .files{display:flex;gap:8px;margin-top:12px}
.bh .files span{font:500 12px var(--mono);border:1px solid var(--rule);border-radius:4px;padding:6px 10px}
.bh .stars{color:#CA8A04;letter-spacing:2px}
@media (max-width:860px){.bh .flow{grid-template-columns:1fr}
.bh .flow-l{border-right:0;border-bottom:1px solid var(--rule)}
.bh .flow-l,.bh .flow-r{padding:20px 16px}}
.bh .bf{display:grid;grid-template-columns:1fr 1.15fr;gap:64px;align-items:center;padding:56px 0;border-top:1px solid var(--rule)}
.bh .bf.flip .ft{order:2}
.bh .ft h3{font:400 40px/1.05 var(--serif);letter-spacing:-.01em;margin:14px 0 14px}
.bh .ft p{color:var(--stone)}
.bh .links{margin-top:24px;display:grid;grid-template-columns:1fr 1fr;gap:0 24px}
.bh .links a{display:flex;justify-content:space-between;align-items:center;padding:12px 0;border-bottom:1px solid var(--rule);text-decoration:none;font-weight:500;font-size:15px}
.bh .links a:hover{color:var(--ocean)}
.bh .mock{background:var(--card);border:1px solid var(--rule);border-radius:10px;box-shadow:var(--shadow);overflow:hidden}
.bh .mock .mb{padding:20px}
@media (max-width:860px){.bh .bf{grid-template-columns:1fr;gap:32px}
.bh .bf.flip .ft{order:0}
.bh .links{grid-template-columns:1fr}}
.bh .rv{display:flex;flex-direction:column;gap:12px}
.bh .rv .r{border:1px solid var(--rule);border-radius:6px;padding:14px;background:var(--paper)}
.bh .rv .who{display:flex;justify-content:space-between;font-size:13.5px;margin-bottom:6px}
.bh .rv .rep{margin:10px 0 0 16px;border-left:2px solid var(--ocean);padding-left:12px;font-size:13.5px;color:var(--stone)}
.bh .rv .rep b{color:var(--ink);font-size:12px;display:block}
.bh .rv p{font-size:14px}
.bh .cmpv{position:relative;aspect-ratio:16/10;overflow:hidden;user-select:none;-webkit-user-select:none;touch-action:pan-y;cursor:ew-resize;container-type:inline-size;background:#0B0B0B}
.bh .cmpv .old,.bh .cmpv .new{position:absolute;inset:0}
.bh .cmpv .new img{display:block;width:100%;height:100%;object-fit:cover;object-position:top left}
/* The "before" is drawn as a full-width 2011 site and scaled with the frame (cqw), so it reads like a screenshot at any size */
.bh .cmpv .old{clip-path:inset(0 calc(100% - var(--x,50%)) 0 0);z-index:2;background:#C9D6E3;font-family:'Times New Roman',Times,serif;color:#222;font-size:2.1cqw;line-height:1.35;display:flex;flex-direction:column;overflow:hidden}
.bh .cmpv .old .ohd{background:linear-gradient(#2B5797,#16386E);color:#FFE45C;padding:2.2cqw 3cqw;display:flex;align-items:center;gap:2cqw;border-bottom:.4cqw solid #0B2350}
.bh .cmpv .old .ohd b{font:700 4.2cqw/1 Impact,'Arial Black',sans-serif;letter-spacing:.05em;text-shadow:.3cqw .3cqw 0 #000}
.bh .cmpv .old .ohd span{font:italic 1.9cqw/1.2 'Comic Sans MS','Comic Neue',cursive;color:#fff}
.bh .cmpv .old .onav{display:flex;gap:.6cqw;padding:.8cqw 3cqw;background:#E4E4E4;border-bottom:1px solid #999}
.bh .cmpv .old .onav span{font:1.7cqw Verdana,Arial,sans-serif;background:linear-gradient(#FFF,#C8C8C8);border:1px solid #888;padding:.4cqw 1.4cqw;color:#00C;text-decoration:underline}
.bh .cmpv .old .obody{flex:1;display:grid;grid-template-columns:22cqw 1fr;gap:2.4cqw;padding:2.4cqw 3cqw;background:#F4F1E4}
.bh .cmpv .old aside{background:#FFF;border:1px solid #AAA;padding:1.4cqw;font:1.6cqw/1.5 Verdana,Arial,sans-serif}
.bh .cmpv .old aside u{color:#00C;display:block}
.bh .cmpv .old aside .ctr{margin-top:1.4cqw;background:#000;color:#3F3;font:1.8cqw monospace;text-align:center;padding:.5cqw;letter-spacing:.2em}
.bh .cmpv .old h4{font:700 3.6cqw/1.15 'Times New Roman',serif;color:#00C;text-decoration:underline;margin:0 0 1.2cqw}
.bh .cmpv .old p{margin:0 0 1.1cqw;max-width:none}
.bh .cmpv .old .blink{color:#C00;font-weight:700}
.bh .cmpv .old .uc{display:inline-block;margin-top:.6cqw;background:repeating-linear-gradient(45deg,#FC0 0 1.2cqw,#111 1.2cqw 2.4cqw);padding:.5cqw}
.bh .cmpv .old .uc i{display:block;font:700 1.7cqw Verdana,sans-serif;font-style:normal;background:#FC0;color:#111;padding:.4cqw 1.2cqw}
.bh .cmpv .old .tiny{font-size:1.5cqw;color:#666;margin-top:1cqw}
.bh .cmpv .h{position:absolute;top:0;bottom:0;left:var(--x,50%);width:2px;background:#fff;z-index:3;transform:translateX(-1px);box-shadow:0 0 0 1px rgba(15,23,42,.18),0 0 18px rgba(0,0,0,.35);pointer-events:none}
.bh .cmpv .h span{position:absolute;top:50%;left:50%;width:44px;height:44px;border-radius:50%;background:#fff;color:var(--ink);transform:translate(-50%,-50%);display:grid;place-items:center;box-shadow:0 6px 18px -4px rgba(2,6,23,.45),0 0 0 1px rgba(15,23,42,.08);transition:transform .2s}
.bh .cmpv .h svg{width:22px;height:22px}
.bh .cmpv:hover .h span,.bh .cmpv:focus-visible .h span{transform:translate(-50%,-50%) scale(1.08)}
.bh .cmpv:focus-visible{outline:2px solid var(--ocean);outline-offset:-2px}
.bh .cmpv .lbl{position:absolute;bottom:12px;z-index:4;font:500 10.5px/1 var(--mono);letter-spacing:.08em;text-transform:uppercase;padding:6px 9px;border-radius:999px;pointer-events:none;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}
.bh .cmpv .lbl.l{left:12px;background:rgba(255,255,255,.88);color:#334155;box-shadow:0 1px 0 rgba(15,23,42,.08)}
.bh .cmpv .lbl.r{right:12px;background:rgba(15,23,42,.72);color:#fff}
@media (max-width:520px){.bh .cmpv{aspect-ratio:4/3}.bh .cmpv .old{font-size:2.6cqw}.bh .cmpv .old .obody{grid-template-columns:1fr}.bh .cmpv .old aside,.bh .cmpv .old .ohd span{display:none}.bh .cmpv .old .ohd b{font-size:6cqw}.bh .cmpv .h span{width:40px;height:40px}}
.bh .band{padding:110px 0;text-align:center;background:var(--paper2);border-block:1px solid var(--rule)}
.bh .band h2{max-width:820px;margin:0 auto 28px}
.bh .band .ctas{display:flex;gap:10px;justify-content:center;flex-wrap:wrap}
.bh .dash{display:grid;grid-template-columns:220px 1fr;min-height:420px}
.bh .dash nav{border-right:1px solid var(--rule);padding:18px;display:flex;flex-direction:column;gap:2px;background:var(--paper)}
.bh .dash nav button{all:unset;cursor:pointer;padding:9px 10px;border-radius:4px;font-size:14px;color:var(--stone);display:flex;justify-content:space-between}
.bh .dash nav button[aria-selected=true]{background:var(--card);color:var(--ink);font-weight:600;box-shadow:inset 0 0 0 1px var(--rule)}
.bh .dash .main{padding:22px}
.bh .kpis{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:18px}
.bh .kpi{border:1px solid var(--rule);border-radius:6px;padding:14px;background:var(--paper)}
.bh .kpi small{display:block;color:var(--stone);font-size:12.5px}
.bh .kpi b{font:400 34px/1.1 var(--serif)}
.bh .kpi em{font:500 12px var(--mono);color:var(--ok);font-style:normal}
.bh .chart{height:170px;display:flex;align-items:flex-end;gap:18px;padding-inline:8px;padding-top:10px;border-bottom:1px solid var(--rule)}
.bh .chart i{flex:1;background:var(--ink);border-radius:2px 2px 0 0;height:0;transition:height .8s var(--ease)}
.bh .chart i:nth-child(even){background:var(--ocean)}
.bh .legend{display:flex;justify-content:space-between;font:500 11px var(--mono);color:var(--stone2);margin-top:8px}
.bh .sample{font:500 11px var(--mono);color:var(--warn);text-transform:uppercase;letter-spacing:.05em}
@media (max-width:760px){.bh .dash{grid-template-columns:1fr}
.bh .dash nav{flex-direction:row;overflow-x:auto;border-right:0;border-bottom:1px solid var(--rule)}
.bh .kpis{grid-template-columns:1fr 1fr}
.bh .kpis .kpi:last-child{display:none}}
.bh .two{display:grid;grid-template-columns:1fr 1fr;gap:40px;margin-top:40px}
.bh .two p{color:var(--stone)}
@media (max-width:760px){.bh .two{grid-template-columns:1fr}}
.bh .grid{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--rule);border-left:1px solid var(--rule)}
.bh .grid a{display:flex;flex-direction:column;gap:10px;padding:24px;border-right:1px solid var(--rule);border-bottom:1px solid var(--rule);text-decoration:none;min-height:220px;transition:background .2s}
.bh .grid a:hover{background:var(--card)}
.bh .grid .gi{width:36px;height:36px;border-radius:6px;background:var(--card);border:1px solid var(--rule);display:grid;place-items:center;color:var(--ocean)}
.bh .grid .gi svg{width:18px;height:18px}
.bh .grid h3{margin-top:8px}
.bh .grid p{color:var(--stone);font-size:14.5px;flex:1}
.bh .grid .pr{font:400 28px var(--serif)}
.bh .grid .pr small{font:500 12px var(--mono);color:var(--stone2);margin-left:6px}
@media (max-width:1000px){.bh .grid{grid-template-columns:repeat(2,1fr)}}
@media (max-width:540px){.bh .grid{grid-template-columns:1fr}
.bh .grid a{min-height:0}}
.bh .own{display:flex;flex-direction:column}
.bh .own .row{display:flex;align-items:center;justify-content:space-between;padding:14px 0;border-bottom:1px solid var(--rule);font-size:14.5px;gap:12px}
.bh .own .row:last-child{border-bottom:0}
.bh .own .row small{display:block;color:var(--stone);font-size:12.5px}
.bh .sw{flex:none;width:38px;height:22px;border-radius:99px;background:var(--ok);position:relative}
.bh .sw::after{content:'';position:absolute;right:3px;top:3px;width:16px;height:16px;border-radius:50%;background:#fff}
.bh .log{font:400 12.5px/1.9 var(--mono);color:var(--stone);border-top:1px solid var(--rule);padding:14px 20px;background:var(--paper)}
.bh .log b{color:var(--ink);font-weight:500}
.bh .final{padding:140px 0;text-align:center}
.bh .final h2{font-size:clamp(48px,7vw,92px);margin-bottom:24px}
.bh .final p{color:var(--stone);margin:0 auto 32px;max-width:520px;font-size:18px}
.bh .final .ctas{display:flex;gap:10px;justify-content:center;flex-wrap:wrap}
/* Fit inside the shared site shell: fixed paper header above, shared footer below. */
.bh .hero{padding-top:137px}
.bh .btn{box-shadow:none}
.bh .bh-final{background:none;overflow:visible}
.bh .bh-final h2{font-weight:400;letter-spacing:-.01em;line-height:1.02;font-size:clamp(48px,7vw,92px);margin:16px 0 24px}
.bh .bh-final p{color:var(--stone)}
.bh .grid .pr{white-space:nowrap}
@media (max-width:700px){.bh .hero{padding-top:110px}}
