*,*::before,*::after{box-sizing:border-box}
html,body{margin:0;padding:0}
:root{
  --accent:#03543f;
  --accent-ink:#fff;
  --accent-2:#0a6b4d;
  --accent-soft:#dcefe7;
  --bg:#f0eee9;
  --bg-2:#e9e6df;
  --bg-warm:#06231b;
  --surface:#ffffff;
  --surface-2:#fafaf7;
  --line:#e3dfd6;
  --line-2:#eeece4;
  --ink:#0f1011;
  --ink-2:#2a2b2c;
  --ink-3:#5d5e62;
  --ink-4:#93949a;
  --ink-5:#c4c5c9;
  --ok:#16a34a;
  --warn:#d97706;
  --err:#dc2626;
  --radius-sm:6px;
  --radius:10px;
  --radius-lg:14px;
  --radius-xl:22px;
  --shadow-sm:0 1px 0 rgba(15,16,17,.04);
  --shadow-md:0 1px 2px rgba(15,16,17,.04), 0 8px 18px rgba(15,16,17,.05);
  --shadow-lg:0 1px 2px rgba(15,16,17,.04), 0 24px 56px -16px rgba(15,16,17,.15), 0 8px 18px rgba(15,16,17,.05);
  --mono:'Geist Mono', ui-monospace, SFMono-Regular, Menlo, monospace;
  --sans:'Geist', ui-sans-serif, system-ui, -apple-system, sans-serif;
  /* provider tints */
  --anthropic:#d97757;
  --openai:#10a37f;
  --google:#4285f4;
  --meta:#4267b2;
  --mistral:#ff7000;
  --cohere:#7d5fff;
}
html,body{background:var(--bg); color:var(--ink); font-family:var(--sans); -webkit-font-smoothing:antialiased; -moz-osx-font-smoothing:grayscale; letter-spacing:-0.005em}
body{overflow-x:hidden}
a{color:inherit; text-decoration:none}
button{font:inherit; color:inherit}

/* ── Layout helpers ────────────────────────────────────────────── */
.wrap{max-width:1240px; margin:0 auto; padding:0 32px}
.row{display:flex; align-items:center; gap:14px}
.stack{display:flex; flex-direction:column}

/* ── Buttons ───────────────────────────────────────────────────── */
.btn{display:inline-flex; align-items:center; gap:8px; height:38px; padding:0 16px; border-radius:8px; font-size:13.5px; font-weight:500; cursor:pointer; border:1px solid transparent; transition:filter .15s, background .15s, border-color .15s, color .15s, box-shadow .15s; white-space:nowrap; line-height:1; letter-spacing:-0.005em}
.btn--primary{background:var(--ink); color:#fff; box-shadow:0 1px 0 rgba(0,0,0,.06), inset 0 1px 0 rgba(255,255,255,.08)}
.btn--primary:hover{filter:brightness(1.15)}
.btn--accent{background:var(--accent); color:#fff; box-shadow:0 1px 0 rgba(0,0,0,.06), inset 0 1px 0 rgba(255,255,255,.18)}
.btn--accent:hover{filter:brightness(.96)}
.btn--ghost{background:transparent; color:var(--ink-2)}
.btn--ghost:hover{background:var(--bg-2)}
.btn--secondary{background:var(--surface); color:var(--ink); border-color:var(--line); box-shadow:var(--shadow-sm)}
.btn--secondary:hover{border-color:var(--ink-5)}
.btn--sm{height:30px; padding:0 11px; font-size:12.5px; border-radius:6px}
.btn--lg{height:46px; padding:0 22px; font-size:14.5px; border-radius:10px; gap:10px}

/* ── Brand mark ────────────────────────────────────────────────── */
.jmbl{display:inline-flex; align-items:center; gap:9px; color:var(--ink); font-weight:600; letter-spacing:-0.025em; font-size:17px}
.jmbl .wm{display:inline-flex; gap:1px}
.jmbl .wm > span{font-family:var(--mono); font-weight:600; letter-spacing:-0.04em}
.jmbl .dot{color:var(--accent)}
.jmbl-mark{width:24px; height:24px; position:relative; flex:0 0 24px}
.jmbl-mark > i{position:absolute; width:10px; height:10px; border-radius:2px; background:var(--ink); display:block}
.jmbl-mark > i:nth-child(1){top:0; left:0}
.jmbl-mark > i:nth-child(2){top:0; left:13px; background:var(--accent); transform:rotate(12deg)}
.jmbl-mark > i:nth-child(3){top:13px; left:1px; background:var(--ink); transform:rotate(-8deg)}
.jmbl-mark > i:nth-child(4){top:14px; left:14px; background:var(--ink)}
.jmbl-img{width:26px; height:26px; border-radius:7px; display:block; object-fit:cover; flex:0 0 26px}

/* ── Nav ───────────────────────────────────────────────────────── */
.nav{position:sticky; top:0; z-index:50; backdrop-filter:saturate(160%) blur(8px); background:color-mix(in oklab, var(--bg) 78%, transparent); border-bottom:1px solid transparent; transition:border-color .15s}
.nav.scrolled{border-color:var(--line)}
.nav-row{display:flex; align-items:center; justify-content:space-between; padding:14px 0}
.nav-links{display:flex; align-items:center; gap:4px}
.nav-links a{padding:6px 12px; border-radius:6px; color:var(--ink-3); font-size:13.5px; font-weight:450; transition:color .12s, background .12s}
.nav-links a:hover{color:var(--ink); background:var(--bg-2)}
.nav-cta{display:flex; align-items:center; gap:8px}

/* ── Hero ──────────────────────────────────────────────────────── */
.hero{position:relative; padding:88px 0 24px; overflow:hidden}
.hero-grid{display:grid; grid-template-columns:1.02fr 1fr; gap:60px; align-items:center}
.eyebrow{display:inline-flex; align-items:center; gap:8px; padding:5px 11px 5px 6px; border:1px solid var(--line); background:var(--surface); border-radius:999px; font-size:12px; color:var(--ink-3); font-weight:500; box-shadow:var(--shadow-sm); margin-bottom:24px}
.eyebrow .tag{font-family:var(--mono); font-size:10.5px; padding:2px 7px; background:var(--accent-soft); color:var(--accent-2); border-radius:999px; font-weight:600; letter-spacing:.02em; text-transform:uppercase}
.eyebrow .live{position:relative; width:7px; height:7px; flex:0 0 7px; border-radius:50%; background:var(--accent); margin-left:3px}
.eyebrow .live::after{content:""; position:absolute; inset:0; border-radius:50%; background:var(--accent); animation:livepulse 1.8s ease-out infinite}
.eyebrow strong{color:var(--ink); font-weight:600}
@keyframes livepulse{0%{transform:scale(1); opacity:.55} 70%{transform:scale(2.8); opacity:0} 100%{opacity:0}}
@media (prefers-reduced-motion: reduce){.eyebrow .live::after{animation:none}}
h1.headline{font-size:clamp(40px, 5.2vw, 70px); line-height:1.02; font-weight:550; letter-spacing:-0.035em; margin:0 0 22px; color:var(--ink)}
h1.headline em{font-style:normal; font-family:'Geist Mono', monospace; font-weight:500; color:var(--accent); letter-spacing:-0.04em; font-size:0.9em; padding:0 .02em}
.lede{font-size:18px; line-height:1.5; color:var(--ink-3); margin:0 0 32px; max-width:560px; letter-spacing:-0.005em}
.lede strong{color:var(--ink-2); font-weight:500}
.hero-cta{display:flex; align-items:center; gap:12px; flex-wrap:wrap}
.hero-meta{display:flex; align-items:center; gap:18px; margin-top:28px; font-size:12.5px; color:var(--ink-4)}
.hero-meta .dotsep{width:3px; height:3px; border-radius:50%; background:var(--ink-5)}

.hero-glow{position:absolute; right:-12%; top:8%; width:60%; height:80%; pointer-events:none; background:radial-gradient(60% 50% at 50% 50%, rgba(20,140,104,.16), rgba(20,140,104,0) 70%); filter:blur(20px); z-index:0}

/* hero product mock */
.hero-product{position:relative; z-index:1; border-radius:16px; background:var(--surface); border:1px solid var(--line); box-shadow:var(--shadow-lg); overflow:hidden}
.hp-bar{display:flex; align-items:center; gap:8px; padding:12px 14px; border-bottom:1px solid var(--line-2); background:var(--surface-2)}
.hp-bar .dots{display:flex; gap:6px}
.hp-bar .dots i{width:10px; height:10px; border-radius:50%; background:var(--bg-2); display:block}
.hp-bar .url{flex:1; height:24px; border-radius:6px; background:var(--bg); border:1px solid var(--line-2); padding:0 10px; display:flex; align-items:center; gap:7px; font-family:var(--mono); font-size:11.5px; color:var(--ink-4)}
.hp-bar .url::before{content:""; width:9px; height:9px; border-radius:50%; background:var(--ok); box-shadow:0 0 0 3px color-mix(in oklab, var(--ok) 25%, transparent)}
.hp-body{display:grid; grid-template-columns:154px 1fr; min-height:430px}
.hp-side{background:var(--surface-2); border-right:1px solid var(--line-2); padding:12px 10px; display:flex; flex-direction:column; gap:1px}
.hp-side .brandline{display:flex; align-items:center; gap:8px; padding:6px 6px 14px; font-size:13.5px; font-weight:600; letter-spacing:-0.02em}
.hp-side .navitem{display:flex; align-items:center; gap:8px; padding:6px 8px; font-size:12px; color:var(--ink-3); border-radius:5px; cursor:default}
.hp-side .navitem.active{background:var(--surface); border:1px solid var(--line); color:var(--ink); font-weight:500; box-shadow:var(--shadow-sm)}
.hp-side .navitem svg{width:14px; height:14px}
.hp-main{padding:16px 18px; display:flex; flex-direction:column; gap:11px; min-width:0}
.hp-header{display:flex; justify-content:space-between; align-items:flex-start; gap:12px}
.hp-title{font-size:16px; font-weight:600; letter-spacing:-0.02em; display:flex; align-items:center; gap:8px}
.hp-subtitle{font-size:11px; color:var(--ink-3); margin-top:3px; display:flex; align-items:center; gap:6px}
.hp-shot{background:var(--surface); max-height:482px; overflow:hidden}
.hp-shot img{display:block; width:100%; height:auto; object-fit:cover; object-position:top center}
.hp-trigchip{display:inline-flex; align-items:center; gap:5px; height:18px; padding:0 7px; border-radius:5px; background:#eef1ff; color:#5161d8; font-family:var(--mono); font-size:10px; font-weight:500}

/* hero product — workflows list (matches real app UI) */
.hp-side .navitem .ent{margin-left:auto; font-family:var(--mono); font-size:7.5px; font-weight:600; letter-spacing:.04em; text-transform:uppercase; color:var(--accent-2); background:var(--accent-soft); border-radius:999px; padding:2px 5px; line-height:1}
.hp-side .navitem.muted{color:var(--ink-4)}
.hp-side .navitem.up{color:var(--accent); font-weight:500}
.hp-proj{display:flex; align-items:center; gap:9px}
.hp-proj .pav{width:28px; height:28px; flex:0 0 28px; border-radius:8px; background:linear-gradient(140deg,#b9935a,#876a39); color:#fff; display:flex; align-items:center; justify-content:center; font-weight:600; font-size:13px}
.hp-proj .pname{font-size:17px; font-weight:600; letter-spacing:-0.025em}
.hp-tabs{display:flex; align-items:center; gap:18px; border-bottom:1px solid var(--line-2); margin-top:2px}
.hp-tab{display:inline-flex; align-items:center; gap:6px; padding:7px 1px 9px; font-size:12px; color:var(--ink-3); border-bottom:2px solid transparent; margin-bottom:-1px; white-space:nowrap}
.hp-tab .ct{font-family:var(--mono); font-size:10.5px; color:var(--ink-4)}
.hp-tab.active{color:var(--ink); font-weight:500; border-bottom-color:var(--accent)}
.hp-tab.active .ct{color:var(--ink-3)}
.wfhead{display:flex; align-items:center; justify-content:space-between; gap:10px}
.wfhead .lhs{display:flex; align-items:center; gap:8px}
.wfhead .ttl{font-size:14px; font-weight:600; letter-spacing:-0.01em}
.wfhead .cnt{font-family:var(--mono); font-size:10px; color:var(--ink-3); background:var(--bg-2); border-radius:5px; padding:1px 6px}
.wfhead .newbtn{display:inline-flex; align-items:center; gap:5px; height:27px; padding:0 11px; border-radius:7px; background:var(--accent); color:#fff; font-size:11.5px; font-weight:500; border:0; box-shadow:var(--shadow-sm)}
.wfsub{font-size:11px; color:var(--ink-4); margin-top:-3px}
.wfcard{border:1px solid var(--line-2); border-radius:11px; background:var(--surface); padding:12px 13px; box-shadow:var(--shadow-sm)}
.wftop{display:flex; align-items:center; gap:8px}
.wftop .nm{font-size:12.5px; font-weight:600; letter-spacing:-0.01em}
.wftop .stat{display:inline-flex; align-items:center; gap:5px; font-size:10.5px; color:var(--ink-4)}
.wftop .stat .d{width:5px; height:5px; border-radius:50%; background:var(--ink-5)}
.wftop .stat.on{color:var(--ok)}
.wftop .stat.on .d{background:var(--ok)}
.wftop .tag{font-family:var(--mono); font-size:10px; color:var(--ink-4); background:var(--bg-2); border-radius:5px; padding:1px 6px}
.wftop .lastrun{margin-left:auto; font-size:8px; letter-spacing:.1em; color:var(--ink-4); text-transform:uppercase; font-weight:600}
.wfbody{display:flex; align-items:flex-start; gap:11px; margin-top:9px}
.wfic{width:34px; height:34px; flex:0 0 34px; border-radius:9px; display:flex; align-items:center; justify-content:center}
.wfmid{flex:1; min-width:0; display:flex; flex-direction:column; gap:8px}
.wfmid .desc{font-size:11px; color:var(--ink-3); line-height:1.45}
.wfchips{display:flex; align-items:center; gap:5px; flex-wrap:wrap}
.wfchip{display:inline-flex; align-items:center; gap:5px; height:21px; padding:0 7px 0 5px; border-radius:6px; border:1px solid var(--line); background:var(--surface-2); font-size:10px; color:var(--ink-2); font-weight:500; white-space:nowrap}
.wfchip .tb{width:14px; height:14px; flex:0 0 14px; border-radius:4px; display:flex; align-items:center; justify-content:center}
.wfchip.step{padding-left:6px}
.wfarrow{color:var(--ink-5); display:flex; align-items:center}
.wfrun{display:flex; flex-direction:column; align-items:flex-end; gap:7px; flex:0 0 auto}
.wfrun .nr{font-family:var(--mono); font-size:9.5px; color:var(--ink-4)}
.runbtn{display:inline-flex; align-items:center; gap:5px; height:26px; padding:0 10px; border-radius:7px; background:var(--accent); color:#fff; font-size:11px; font-weight:500; border:0}

/* mini workflow steps in hero */
.mwf{display:flex; flex-direction:column; gap:7px}
.mstep{display:flex; align-items:center; gap:10px; padding:9px 11px; background:var(--surface-2); border:1px solid var(--line-2); border-radius:9px}
.mstep.run{background:var(--accent-soft); border-color:color-mix(in oklab, var(--accent) 40%, transparent)}
.mstep.gate{background:#fff; border-style:dashed; border-color:var(--ink-5)}
.mstep .sn{width:20px; height:20px; border-radius:50%; background:var(--surface); border:1px solid var(--line); font-family:var(--mono); font-size:10px; color:var(--ink-3); display:flex; align-items:center; justify-content:center; font-weight:600; flex:0 0 20px}
.mstep.done .sn{background:var(--ok); color:#fff; border-color:var(--ok)}
.mstep.run .sn{background:var(--accent); color:#fff; border-color:var(--accent)}
.mstep .tx{flex:1; min-width:0}
.mstep .tx .l{font-size:12px; font-weight:500; letter-spacing:-0.005em; white-space:nowrap; overflow:hidden; text-overflow:ellipsis}
.mstep .tx .s{margin-top:3px; display:flex; align-items:center; gap:6px}
.mstep .cost{font-family:var(--mono); font-size:10.5px; color:var(--ink-4); white-space:nowrap}
.mstep.run .cost{color:var(--accent-2)}

.mbadge{display:inline-flex; align-items:center; gap:5px; height:17px; padding:0 7px; border-radius:5px; background:var(--bg-2); font-family:var(--mono); font-size:9.5px; color:var(--ink-2); font-weight:500; white-space:nowrap}
.mbadge .pv{width:6px; height:6px; border-radius:50%; flex:0 0 6px}

.hp-foot{margin-top:auto; display:flex; align-items:center; justify-content:space-between; padding-top:10px; border-top:1px solid var(--line-2); font-size:11px; color:var(--ink-3)}
.hp-foot .tot{font-family:var(--mono); color:var(--ink); font-weight:600}

/* ── Logos strip ───────────────────────────────────────────────── */
.logos{padding:48px 0 32px}
.logos-label{font-size:11.5px; text-transform:uppercase; letter-spacing:.12em; color:var(--ink-4); font-weight:500; text-align:center; margin-bottom:22px}
.logos-row{display:grid; grid-template-columns:repeat(6, 1fr); gap:24px; align-items:center; opacity:.7}
.logos-row .logo{display:flex; align-items:center; justify-content:center; height:34px; font-family:var(--mono); font-size:14px; font-weight:600; color:var(--ink-3); letter-spacing:-0.02em}

/* ── Section primitives ────────────────────────────────────────── */
section{padding:88px 0}
.sect-head{display:flex; flex-direction:column; gap:12px; max-width:700px; margin-bottom:48px}
.sect-head.center{margin-left:auto; margin-right:auto; align-items:center; text-align:center}
.sect-eyebrow{font-family:var(--mono); font-size:11.5px; font-weight:600; color:var(--accent); text-transform:uppercase; letter-spacing:.08em; display:inline-flex; align-items:center; gap:8px}
.sect-eyebrow::before{content:""; width:20px; height:1px; background:var(--accent)}
.sect-head.center .sect-eyebrow::before{display:none}
h2.sect-title{font-size:clamp(32px, 4vw, 48px); line-height:1.06; font-weight:550; letter-spacing:-0.03em; margin:0; color:var(--ink); text-wrap:balance}
.sect-lede{font-size:17px; line-height:1.5; color:var(--ink-3); margin:0; max-width:600px; text-wrap:pretty}
.sect-lede strong{color:var(--ink); font-weight:500}

/* ── Paradigm shift band ───────────────────────────────────────── */
.shift{display:grid; grid-template-columns:1fr auto 1fr; gap:0; align-items:stretch; border:1px solid var(--line); border-radius:18px; overflow:hidden; background:var(--surface)}
.shift-side{padding:36px 34px; display:flex; flex-direction:column; gap:14px}
.shift-side.before{background:var(--surface-2)}
.shift-side.after{background:linear-gradient(160deg, #06231b, #0c3528); color:#fff; position:relative; overflow:hidden}
.shift-side.after::before{content:""; position:absolute; inset:0; background:radial-gradient(60% 60% at 80% 20%, rgba(20,140,104,.22), transparent 60%); pointer-events:none}
.shift-side > *{position:relative}
.shift-tag{font-family:var(--mono); font-size:11px; text-transform:uppercase; letter-spacing:.08em; font-weight:600}
.shift-side.before .shift-tag{color:var(--ink-4)}
.shift-side.after .shift-tag{color:#19e69b}
.shift-side h3{margin:0; font-size:26px; font-weight:550; letter-spacing:-0.025em; line-height:1.1}
.shift-side.before h3{color:var(--ink-3)}
.shift-side p{margin:0; font-size:14px; line-height:1.55}
.shift-side.before p{color:var(--ink-4)}
.shift-side.after p{color:rgba(255,255,255,.72)}
.shift-side ul{list-style:none; padding:0; margin:6px 0 0; display:flex; flex-direction:column; gap:9px}
.shift-side ul li{display:flex; align-items:flex-start; gap:9px; font-size:13px; line-height:1.45}
.shift-side.before ul li{color:var(--ink-4)}
.shift-side.after ul li{color:rgba(255,255,255,.85)}
.shift-side ul li svg{flex:0 0 15px; margin-top:2px}
.shift-side.before ul li svg{color:var(--ink-5)}
.shift-side.after ul li svg{color:var(--accent)}
.shift-arrow{display:flex; align-items:center; justify-content:center; width:64px; background:var(--bg); border-left:1px solid var(--line); border-right:1px solid var(--line); color:var(--accent)}

/* ── Pillars (3-up) ────────────────────────────────────────────── */
.pillars{display:grid; grid-template-columns:repeat(3, 1fr); gap:14px}
.pillar{background:var(--surface); border:1px solid var(--line); border-radius:14px; padding:24px 22px 26px; box-shadow:var(--shadow-sm); display:flex; flex-direction:column; gap:14px; min-height:230px; position:relative; overflow:hidden}
.pillar .glyph{width:38px; height:38px; border-radius:9px; background:var(--bg-2); border:1px solid var(--line-2); display:flex; align-items:center; justify-content:center; color:var(--accent)}
.pillar h3{margin:0; font-size:18px; font-weight:600; letter-spacing:-0.02em}
.pillar p{margin:0; font-size:14px; line-height:1.55; color:var(--ink-3)}
.pillar .more{margin-top:auto; font-size:12.5px; color:var(--ink-4); font-family:var(--mono)}

/* ── Big feature row (alternating) ─────────────────────────────── */
.feature{display:grid; grid-template-columns:1fr 1.1fr; gap:64px; align-items:center; padding:48px 0}
.feature.reverse{grid-template-columns:1.1fr 1fr}
.feature.reverse .feature-copy{order:2}
.feature.reverse .feature-art{order:1}
.feature-copy{display:flex; flex-direction:column; gap:18px}
.feature-copy .kicker{font-family:var(--mono); font-size:11.5px; color:var(--accent); text-transform:uppercase; letter-spacing:.08em; font-weight:600}
.feature-copy h3{margin:0; font-size:34px; line-height:1.08; font-weight:550; letter-spacing:-0.028em; text-wrap:balance}
.feature-copy p{margin:0; font-size:16px; line-height:1.55; color:var(--ink-3); max-width:480px; text-wrap:pretty}
.feature-copy ul{list-style:none; padding:0; margin:8px 0 0; display:flex; flex-direction:column; gap:8px}
.feature-copy ul li{display:flex; align-items:flex-start; gap:10px; font-size:14px; color:var(--ink-2); line-height:1.5}
.feature-copy ul li svg{flex:0 0 16px; margin-top:3px; color:var(--accent)}

.feature-art{background:var(--surface); border:1px solid var(--line); border-radius:14px; box-shadow:var(--shadow-md); padding:18px; overflow:hidden; position:relative}

/* workflow builder art */
.wflow{display:flex; flex-direction:column; gap:8px}
.wflow .head{display:flex; align-items:center; gap:8px; padding:6px 4px 8px; border-bottom:1px solid var(--line-2)}
.wflow .head .nm{font-family:var(--mono); font-size:12px; font-weight:600}
.wflow .head .repo{font-family:var(--mono); font-size:11px; color:var(--ink-4); margin-left:auto}
.wstep{display:flex; align-items:center; gap:10px; padding:11px 12px; background:var(--surface-2); border:1px solid var(--line-2); border-radius:9px}
.wstep.run{background:var(--accent-soft); border-color:color-mix(in oklab, var(--accent) 40%, transparent)}
.wstep.gate{background:#fff; border-style:dashed; border-color:var(--ink-5)}
.wstep .stnum{width:22px; height:22px; border-radius:50%; background:var(--surface); border:1px solid var(--line); font-family:var(--mono); font-size:10.5px; color:var(--ink-3); display:flex; align-items:center; justify-content:center; font-weight:600; flex:0 0 22px}
.wstep.run .stnum{background:var(--accent); color:#fff; border-color:var(--accent)}
.wstep.done .stnum{background:var(--ok); color:#fff; border-color:var(--ok)}
.wstep.gate .stnum{background:var(--bg-2); color:var(--ink-3); border-color:var(--ink-5)}
.wstep .sttxt{flex:1; min-width:0}
.wstep .sttxt .lbl{font-size:13px; font-weight:500; letter-spacing:-0.005em}
.wstep .sttxt .sub{font-size:11px; color:var(--ink-4); margin-top:4px; display:flex; align-items:center; gap:6px; flex-wrap:wrap}
.wstep .time{font-family:var(--mono); font-size:11px; color:var(--ink-4); white-space:nowrap}
.wstep.run .time{color:var(--accent-2)}

/* cost panel art */
.cost{display:flex; flex-direction:column; gap:10px}
.cost .head{display:flex; align-items:baseline; gap:8px; padding:2px 2px 4px}
.cost .head .nm{font-size:13px; font-weight:600}
.cost .head .per{font-family:var(--mono); font-size:11px; color:var(--ink-4); margin-left:auto}
.crow{display:flex; align-items:center; gap:10px}
.crow .cl{font-size:12px; color:var(--ink-2); width:96px; flex:0 0 96px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis}
.crow .bar{flex:1; height:8px; border-radius:999px; background:var(--bg-2); overflow:hidden}
.crow .bar > i{display:block; height:100%; border-radius:999px; background:linear-gradient(90deg, var(--accent), #2e8e6b)}
.crow .cv{font-family:var(--mono); font-size:11px; color:var(--ink-3); width:58px; text-align:right; flex:0 0 58px}
.cost-sugg{display:flex; align-items:center; gap:11px; margin-top:4px; padding:12px 13px; border-radius:10px; background:color-mix(in oklab, var(--ok) 9%, transparent); border:1px solid color-mix(in oklab, var(--ok) 35%, transparent)}
.cost-sugg .ic{width:26px; height:26px; border-radius:7px; background:var(--ok); color:#fff; display:flex; align-items:center; justify-content:center; flex:0 0 26px}
.cost-sugg .tx{flex:1; min-width:0}
.cost-sugg .tx .l{font-size:12.5px; font-weight:600; color:#11823b}
.cost-sugg .tx .s{font-size:11px; color:var(--ink-3); margin-top:2px}
.cost-sugg .save{font-family:var(--mono); font-size:13px; font-weight:600; color:#11823b; white-space:nowrap}

/* ── Models band ───────────────────────────────────────────────── */
.models-band{background:var(--surface); border:1px solid var(--line); border-radius:18px; padding:40px 40px 36px; box-shadow:var(--shadow-sm)}
.models-band .mb-head{display:flex; align-items:flex-end; justify-content:space-between; gap:20px; margin-bottom:26px; flex-wrap:wrap}
.models-band .mb-head h3{margin:0; font-size:28px; font-weight:550; letter-spacing:-0.025em}
.models-band .mb-head p{margin:6px 0 0; font-size:14.5px; color:var(--ink-3); max-width:440px; line-height:1.5}
.models-band .mb-count{font-family:var(--mono); font-size:13px; color:var(--ink-4); display:flex; align-items:center; gap:8px}
.mgrid{display:grid; grid-template-columns:repeat(6,1fr); gap:10px}
.mcell{display:flex; align-items:center; gap:9px; padding:12px 13px; background:var(--surface-2); border:1px solid var(--line-2); border-radius:10px; transition:border-color .15s, transform .2s, box-shadow .15s}
.mcell:hover{border-color:var(--ink-5); box-shadow:var(--shadow-sm); transform:translateY(-2px)}
.mcell .pv{width:9px; height:9px; border-radius:50%; flex:0 0 9px}
.mcell .mn{font-size:12px; font-weight:500; letter-spacing:-0.01em; line-height:1.1}
.mcell .mp{font-family:var(--mono); font-size:10px; color:var(--ink-4); margin-top:2px}
.mcell .mtx{min-width:0}
.mcell.more{justify-content:center; color:var(--ink-3); font-family:var(--mono); font-size:12px; border-style:dashed; background:transparent}

/* ── Integrations ──────────────────────────────────────────────── */
.igrid{display:grid; grid-template-columns:repeat(4, 1fr); gap:12px}
.icard{background:var(--surface); border:1px solid var(--line); border-radius:12px; padding:18px; display:flex; flex-direction:column; gap:8px; min-height:128px; box-shadow:var(--shadow-sm); transition:box-shadow .15s, border-color .15s, transform .2s}
.icard:hover{box-shadow:var(--shadow-md); border-color:var(--ink-5); transform:translateY(-2px)}
.icard .top{display:flex; align-items:center; justify-content:space-between}
.icard .lg{width:32px; height:32px; border-radius:8px; background:var(--bg-2); display:flex; align-items:center; justify-content:center}
.icard .lg svg{width:22px; height:22px}
.icard .conn{font-size:10.5px; font-family:var(--mono); color:var(--ok); display:flex; align-items:center; gap:5px}
.icard .conn::before{content:""; width:6px; height:6px; border-radius:50%; background:var(--ok); box-shadow:0 0 0 3px color-mix(in oklab, var(--ok) 22%, transparent)}
.icard .nm{font-size:14px; font-weight:600; letter-spacing:-0.01em; margin-top:6px}
.icard .ds{font-size:12.5px; color:var(--ink-3); line-height:1.45}

/* trigger art (events) */
.trig{display:flex; flex-direction:column; gap:10px}
.trig .clock{display:flex; align-items:center; justify-content:space-between; padding:10px 12px; border-radius:10px; background:var(--bg-warm); color:#fff; position:relative; overflow:hidden}
.trig .clock::before{content:""; position:absolute; inset:0; background:radial-gradient(60% 80% at 90% 50%, rgba(20,140,104,.25), transparent 60%)}
.trig .clock > *{position:relative}
.trig .clock .tt{font-family:var(--mono); font-size:22px; font-weight:600; letter-spacing:-0.02em; display:flex; align-items:center; gap:9px}
.trig .clock .tl{font-size:11px; color:rgba(255,255,255,.6); text-align:right; line-height:1.35}
.tevent{display:flex; align-items:center; gap:11px; padding:11px 12px; background:var(--surface-2); border:1px solid var(--line-2); border-radius:9px}
.tevent .src{width:28px; height:28px; border-radius:7px; display:flex; align-items:center; justify-content:center; flex:0 0 28px; background:var(--bg-2)}
.tevent .src svg{width:17px; height:17px}
.tevent .te{flex:1; min-width:0}
.tevent .te .l{font-size:12.5px; font-weight:500}
.tevent .te .s{font-size:11px; color:var(--ink-4); font-family:var(--mono); margin-top:2px}
.tevent .arrow{color:var(--ink-5)}
.tevent .fires{font-family:var(--mono); font-size:10.5px; color:var(--accent-2); display:flex; align-items:center; gap:5px}
.tevent .fires::before{content:""; width:6px; height:6px; border-radius:50%; background:var(--accent); box-shadow:0 0 0 3px var(--accent-soft)}

/* ── Privacy / k8s feature ─────────────────────────────────────── */
.topo{aspect-ratio:5/4; position:relative; background:var(--surface-2); border-radius:10px; padding:16px; overflow:hidden}
.topo .ring{position:absolute; border:1px dashed var(--line); border-radius:50%}
.topo .ring.r1{width:54%; aspect-ratio:1; top:50%; left:50%; transform:translate(-50%,-50%)}
.topo .ring.r2{width:84%; aspect-ratio:1; top:50%; left:50%; transform:translate(-50%,-50%); border-color:var(--line-2)}
.topo .core{position:absolute; top:50%; left:50%; transform:translate(-50%,-50%); width:92px; height:92px; border-radius:16px; background:linear-gradient(160deg, var(--ink) 0%, #0c3528 100%); color:#fff; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:4px; box-shadow:0 12px 28px -8px rgba(15,16,17,.35), inset 0 1px 0 rgba(255,255,255,.05)}
.topo .core .nm{font-family:var(--mono); font-size:11px; color:var(--accent); font-weight:600; letter-spacing:-0.01em}
.topo .core .lb{font-size:10px; color:rgba(255,255,255,.55)}
.topo .node{position:absolute; background:var(--surface); border:1px solid var(--line); border-radius:9px; padding:8px 10px; display:flex; align-items:center; gap:7px; font-size:11px; font-family:var(--mono); color:var(--ink-2); box-shadow:var(--shadow-sm); min-width:104px}
.topo .node .led{width:7px; height:7px; border-radius:50%; background:var(--ok); box-shadow:0 0 0 3px color-mix(in oklab, var(--ok) 25%, transparent)}
.topo .node .meta{font-size:9.5px; color:var(--ink-4); margin-left:auto}
.topo .n1{top:8%; left:6%}
.topo .n2{top:8%; right:6%}
.topo .n3{bottom:8%; left:6%}
.topo .n4{bottom:8%; right:6%}
.topo .badge-self{position:absolute; left:50%; bottom:10px; transform:translateX(-50%); font-family:var(--mono); font-size:10px; color:var(--ink-3); background:var(--surface); border:1px solid var(--line); border-radius:999px; padding:3px 10px}

/* ── How it works (numbered steps) ─────────────────────────────── */
.steps{display:grid; grid-template-columns:repeat(3, 1fr); gap:1px; background:var(--line); border:1px solid var(--line); border-radius:14px; overflow:hidden}
.step{background:var(--surface); padding:32px 28px; display:flex; flex-direction:column; gap:14px; min-height:230px}
.step .num{font-family:var(--mono); font-size:11.5px; font-weight:600; color:var(--accent); display:inline-flex; align-items:center; gap:8px}
.step .num::before{content:""; width:18px; height:1px; background:var(--accent)}
.step h4{margin:0; font-size:20px; font-weight:600; letter-spacing:-0.02em}
.step p{margin:0; font-size:14px; line-height:1.55; color:var(--ink-3)}
.step .code{margin-top:auto; background:var(--bg); border:1px solid var(--line-2); border-radius:8px; padding:10px 12px; font-family:var(--mono); font-size:11.5px; color:var(--ink-2)}
.step .code .prompt{color:var(--ink-4); user-select:none}
.step .code .accent{color:var(--accent-2)}

/* ── Visual workflow builder ───────────────────────────────────── */
.builder-layout{display:grid; grid-template-columns:300px 1fr; gap:40px; align-items:start}
.builder-aside{display:flex; flex-direction:column; gap:6px; position:sticky; top:88px}
.bstep{display:flex; gap:14px; padding:16px 4px; border-bottom:1px solid var(--line)}
.bstep:last-child{border-bottom:none}
.bstep .bnum{font-family:var(--mono); font-size:12px; font-weight:600; color:var(--accent); flex:0 0 auto; padding-top:2px}
.bstep h4{margin:0 0 5px; font-size:15px; font-weight:600; letter-spacing:-0.015em}
.bstep p{margin:0; font-size:13px; line-height:1.5; color:var(--ink-3)}
.bstep p code{font-family:var(--mono); font-size:11.5px; color:var(--accent-2); background:var(--accent-soft); padding:1px 5px; border-radius:4px}

.builder{background:var(--surface-2); border:1px solid var(--line); border-radius:16px; box-shadow:var(--shadow-md); overflow:hidden}
.builder-bar{display:flex; align-items:center; gap:10px; padding:13px 16px; background:var(--surface); border-bottom:1px solid var(--line-2)}
.builder-bar .bb-name{display:flex; align-items:center; gap:8px; font-family:var(--mono); font-size:13px; font-weight:600; letter-spacing:-0.01em}
.builder-bar .bb-meta{font-family:var(--mono); font-size:11.5px; color:var(--ink-4); margin-left:auto}
.builder-bar .bb-save{display:inline-flex; align-items:center; gap:5px; font-family:var(--mono); font-size:11px; color:var(--ok); font-weight:500}
.builder-bar .bb-save::before{content:""; width:6px; height:6px; border-radius:50%; background:var(--ok); box-shadow:0 0 0 3px color-mix(in oklab, var(--ok) 22%, transparent)}

.canvas{padding:26px 28px 30px; position:relative}
.bnode{position:relative; display:grid; grid-template-columns:34px 1fr; gap:18px; align-items:start; padding-bottom:18px}
/* connector line down the dots column */
.bnode::before{content:""; position:absolute; left:16px; top:30px; bottom:-4px; width:2px; background:var(--line); z-index:0}
.bnode.last::before, .bnode.add::before{display:none}
.bdot{position:relative; z-index:1; width:34px; height:34px; border-radius:50%; background:var(--surface); border:1px solid var(--line); display:flex; align-items:center; justify-content:center; font-family:var(--mono); font-size:12px; font-weight:600; color:var(--ink-3); box-shadow:var(--shadow-sm)}
.bdot.trig{background:var(--ink); border-color:var(--ink); color:#fff}
.bdot.trig::after{content:""; width:8px; height:8px; border-radius:50%; background:var(--accent)}
.bdot.plus{border-style:dashed; color:var(--ink-4)}

.bcard{background:var(--surface); border:1px solid var(--line); border-radius:12px; padding:16px 18px; box-shadow:var(--shadow-sm); transition:border-color .15s, box-shadow .15s}
.bcard:hover{border-color:var(--ink-5); box-shadow:var(--shadow-md)}
.bcard.btrig{background:linear-gradient(180deg, #eef6f1, #fff); border-color:color-mix(in oklab, var(--accent) 35%, var(--line))}
.bcard-head{display:flex; align-items:center; justify-content:space-between; gap:10px; margin-bottom:10px}
.brole{font-family:var(--mono); font-size:11px; font-weight:600; color:var(--ink-4); text-transform:uppercase; letter-spacing:.06em}
.bcard.btrig .brole{color:var(--accent-2)}
.bcard-actions{display:flex; align-items:center; gap:6px}
.bbtn{display:inline-flex; align-items:center; gap:5px; height:26px; padding:0 10px; border-radius:6px; border:1px solid var(--line); background:var(--surface); color:var(--ink-2); font-size:12px; font-weight:500; cursor:pointer; transition:border-color .12s, background .12s}
.bbtn:hover{border-color:var(--ink-5)}
.bbtn.icon{padding:0 8px}
.bcard-title{font-size:18px; font-weight:600; letter-spacing:-0.02em; margin-bottom:12px}
.bpills{display:flex; flex-wrap:wrap; gap:7px; margin-bottom:12px}
.bpill{display:inline-flex; align-items:center; gap:6px; height:26px; padding:0 11px; border-radius:7px; background:var(--bg-2); color:var(--ink-2); font-size:12px; font-weight:500; white-space:nowrap}
.bpill.mono{font-family:var(--mono); font-size:11.5px; letter-spacing:-0.01em}
.bpill .pv{width:8px; height:8px; border-radius:50%; flex:0 0 8px}
.bprompt{background:var(--surface-2); border:1px solid var(--line-2); border-radius:9px; padding:13px 14px; font-size:13.5px; line-height:1.55; color:var(--ink-2)}
.btoken{font-family:var(--mono); font-size:12.5px; color:var(--accent-2); background:var(--accent-soft); padding:1px 6px; border-radius:5px; white-space:nowrap}
.badd{flex:1; height:42px; border:1.5px dashed var(--line); border-radius:10px; background:transparent; color:var(--ink-4); font-size:13px; font-weight:500; cursor:pointer; transition:border-color .12s, color .12s}
.badd:hover{border-color:var(--accent); color:var(--accent-2)}

/* ── Quote / proof ─────────────────────────────────────────────── */
.proof{background:var(--bg-warm); color:#fff; border-radius:24px; padding:64px 56px; position:relative; overflow:hidden; border:1px solid #0c3528}
.proof::before{content:""; position:absolute; inset:0; background:radial-gradient(60% 40% at 80% 20%, rgba(20,140,104,.20), transparent 60%), radial-gradient(40% 30% at 10% 90%, rgba(20,140,104,.12), transparent 60%); pointer-events:none}
.proof > *{position:relative}
.proof q{display:block; font-size:30px; line-height:1.25; font-weight:450; letter-spacing:-0.02em; text-wrap:balance; max-width:920px; quotes:"" ""}
.proof q::before, .proof q::after{content:""}
.proof .by{display:flex; align-items:center; gap:14px; margin-top:32px; font-size:13.5px; color:rgba(255,255,255,.6)}
.proof .by .avatar{width:36px; height:36px; border-radius:50%; background:linear-gradient(135deg, var(--accent), #2e8e6b); color:#fff; display:flex; align-items:center; justify-content:center; font-weight:600}
.proof .by .who{color:#fff; font-weight:500; letter-spacing:-0.01em}
.proof-stats{display:flex; gap:48px; margin-top:40px; flex-wrap:wrap}
.proof-stats .st .v{font-size:32px; font-weight:600; letter-spacing:-0.03em; font-family:var(--mono); color:#fff}
.proof-stats .st .v em{font-style:normal; color:var(--accent)}
.proof-stats .st .k{font-size:12.5px; color:rgba(255,255,255,.6); margin-top:4px}

/* ── Pricing teaser ────────────────────────────────────────────── */
.pricing{display:grid; grid-template-columns:repeat(3,1fr); gap:14px}
.plan{background:var(--surface); border:1px solid var(--line); border-radius:14px; padding:28px 26px; display:flex; flex-direction:column; gap:16px; box-shadow:var(--shadow-sm)}
.plan.featured{border-color:var(--accent); box-shadow:var(--shadow-lg); position:relative}
.plan.featured::before{content:"Most popular"; position:absolute; top:-10px; left:24px; background:var(--accent); color:#fff; font-size:10.5px; font-weight:600; padding:3px 10px; border-radius:999px; letter-spacing:.02em; font-family:var(--mono); text-transform:uppercase}
.plan .pname{font-size:14px; font-weight:600; letter-spacing:-0.01em}
.plan .price{display:flex; align-items:baseline; gap:4px}
.plan .price .amt{font-size:42px; font-weight:550; letter-spacing:-0.035em; line-height:1}
.plan .price .per{font-size:13px; color:var(--ink-4)}
.plan .pdesc{font-size:13.5px; color:var(--ink-3); line-height:1.5; min-height:38px}
.plan ul{list-style:none; padding:0; margin:0; display:flex; flex-direction:column; gap:9px}
.plan ul li{display:flex; align-items:flex-start; gap:9px; font-size:13.5px; color:var(--ink-2); line-height:1.45}
.plan ul li svg{flex:0 0 14px; margin-top:3px; color:var(--accent)}

/* ── Final CTA ─────────────────────────────────────────────────── */
.cta-final{position:relative; padding:120px 32px 100px; text-align:center}
.cta-final h2{font-size:clamp(40px, 5vw, 68px); line-height:1.04; font-weight:550; letter-spacing:-0.035em; margin:0 0 16px; text-wrap:balance}
.cta-final h2 em{font-style:normal; font-family:var(--mono); font-weight:500; color:var(--accent); letter-spacing:-0.04em; font-size:.92em}
.cta-final p{font-size:17px; color:var(--ink-3); max-width:560px; margin:0 auto 32px; line-height:1.5}
.cta-final .row-cta{display:inline-flex; gap:12px; align-items:center}
.cta-glow{position:absolute; left:50%; top:30%; transform:translateX(-50%); width:80%; height:60%; background:radial-gradient(50% 50% at 50% 50%, rgba(20,140,104,.18), transparent 70%); pointer-events:none; filter:blur(20px); z-index:0}

/* ── Footer ────────────────────────────────────────────────────── */
footer{border-top:1px solid var(--line); padding:48px 0 36px; background:var(--bg)}
.foot-grid{display:grid; grid-template-columns:1.4fr 1fr 1fr 1fr 1fr; gap:24px}
.foot-brand{display:flex; flex-direction:column; gap:14px; max-width:280px}
.foot-brand .tag{font-size:13px; color:var(--ink-3); line-height:1.5}
.foot-col h5{font-size:11px; text-transform:uppercase; letter-spacing:.1em; color:var(--ink-4); font-weight:600; margin:0 0 14px}
.foot-col ul{list-style:none; padding:0; margin:0; display:flex; flex-direction:column; gap:9px}
.foot-col ul a{font-size:13.5px; color:var(--ink-2); transition:color .12s}
.foot-col ul a:hover{color:var(--accent)}
.foot-bot{display:flex; align-items:center; justify-content:space-between; gap:14px; padding-top:36px; margin-top:36px; border-top:1px solid var(--line); font-size:12.5px; color:var(--ink-4)}
.foot-bot .meta{display:flex; gap:18px; align-items:center}
.foot-bot .meta .stat{display:flex; align-items:center; gap:7px}
.foot-bot .meta .stat::before{content:""; width:7px; height:7px; border-radius:50%; background:var(--ok); box-shadow:0 0 0 3px color-mix(in oklab, var(--ok) 22%, transparent)}

/* ── Responsiveness ────────────────────────────────────────────── */
@media (max-width: 980px){
  .hero{padding:64px 0 16px}
  .hero-grid{grid-template-columns:1fr; gap:48px}
  .nav-links{display:none}
  .pillars{grid-template-columns:1fr}
  .feature, .feature.reverse{grid-template-columns:1fr; gap:32px; padding:32px 0}
  .feature.reverse .feature-copy{order:1}
  .feature.reverse .feature-art{order:2}
  .igrid{grid-template-columns:repeat(2,1fr)}
  .mgrid{grid-template-columns:repeat(3,1fr)}
  .steps{grid-template-columns:1fr}
  .builder-layout{grid-template-columns:1fr; gap:28px}
  .builder-aside{position:static; flex-direction:column}
  .pricing{grid-template-columns:1fr}
  .foot-grid{grid-template-columns:1fr 1fr}
  .logos-row{grid-template-columns:repeat(3,1fr); gap:16px}
  section{padding:64px 0}
  .proof{padding:40px 28px}
  .proof q{font-size:22px}
  .shift{grid-template-columns:1fr}
  /* Stack: keep the divider as a short horizontal band and rotate only the
     icon. Rotating the full-width band itself made its visual footprint very
     tall, overlapping the cards above/below. */
  .shift-arrow{width:auto; height:48px; background:var(--bg); border:0; border-top:1px solid var(--line); border-bottom:1px solid var(--line); transform:none; margin:4px 0}
  .shift-arrow svg{width:20px; height:20px; transform:rotate(90deg); flex-shrink:0}
  .shift-side.after{border-radius:inherit}
  .models-band{padding:28px 22px}
}

/* small enter animations */
@keyframes rise{from{opacity:0; transform:translateY(8px)} to{opacity:1; transform:translateY(0)}}
.rise{animation:rise .6s cubic-bezier(.2,.7,.2,1) both}
.rise.d2{animation-delay:.12s}

/* ─── Sélecteur de langue ─────────────────────────────────────────────
   Contrôle segmenté EN/FR présent dans la nav et dans le pied de page.
   La langue courante reste un lien actif : c'est ce clic qui mémorise le
   choix (?lang=xx) pour un visiteur arrivé par la redirection automatique. */
.langsw{display:inline-flex; align-items:center; height:30px; border:1px solid var(--line); background:var(--surface); border-radius:6px; overflow:hidden}
.langsw a{display:inline-flex; align-items:center; height:100%; padding:0 9px; font-size:11.5px; font-weight:600; letter-spacing:.02em; color:var(--ink-4); transition:color .12s, background .12s}
.langsw a + a{border-left:1px solid var(--line)}
.langsw a:hover{color:var(--ink); background:var(--bg-2)}
.langsw a[aria-current="true"]{color:var(--ink); background:var(--bg-2)}
.foot-bot .langsw{height:26px}
.foot-bot .langsw a{font-size:11px; padding:0 8px}
/* Sous 560px la nav n'a plus la place pour trois contrôles à côté du logo :
   le sélecteur du pied de page prend le relais. */
@media (max-width:560px){.nav-cta .langsw{display:none}}
