:root{--orange:#FF4906;--orange-dk:#E03D02;--ink:#171810;--w:1240px;--ftr:#171810;--ftr-2:#20221A;--ftr-text:#F4F5F1;--ftr-text-2:#A7AA9D;--ftr-rule:#33362B}
html[data-theme="light"]{
  --bg:#F4F5F1;--surface:#FFFFFF;--surface-2:#EAEBE5;
  --text:#171810;--text-2:#54574C;--text-3:#82867A;
  --rule:#CFD1C8;--rule-2:#E1E3DB;
  --band:#FFFFFF;--band-2:#F4F5F1;--band-text:#171810;--band-text-2:#5B5F54;--band-rule:#D6D8D0}
html[data-theme="dark"]{
  --bg:#12130E;--surface:#1B1D15;--surface-2:#22241B;
  --text:#EDEEE7;--text-2:#A9AC9F;--text-3:#7E8175;
  --rule:#33362B;--rule-2:#2A2C22;
  --band:#1B1D15;--band-2:#22241B;--band-text:#EDEEE7;--band-text-2:#A9AC9F;--band-rule:#33362B}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{background:var(--bg);color:var(--text);font-family:"IBM Plex Sans",system-ui,sans-serif;font-size:16px;line-height:1.6;-webkit-font-smoothing:antialiased}
h1,h2,h3{font-family:Archivo,system-ui,sans-serif;font-weight:800;letter-spacing:-0.03em;line-height:1.04}
h1{font-size:clamp(2.4rem,5.6vw,4.3rem)}
h2{font-size:clamp(1.8rem,3.3vw,2.7rem);letter-spacing:-0.028em}
h3{font-size:1.05rem;font-weight:700;letter-spacing:-0.012em;line-height:1.28}
p{max-width:66ch}
a{color:inherit}
.wrap{max-width:var(--w);margin:0 auto;padding:0 28px}
section{padding:88px 0}
:focus-visible{outline:3px solid var(--orange);outline-offset:3px}
.o{color:var(--orange)}
.skip{position:absolute;left:-9999px;background:var(--orange);color:#fff;padding:10px 16px;z-index:200}
.skip:focus{left:12px;top:12px}

/* ============ NAV ============ */
.navwrap{position:sticky;top:0;z-index:80}
.nav{background:var(--band);border-bottom:1px solid var(--band-rule)}
html[data-theme="light"] .nav{box-shadow:0 1px 0 rgba(0,0,0,.05)}
.nav .wrap{display:flex;align-items:center;gap:30px;height:96px;flex-wrap:nowrap;max-width:1420px}
.logo{height:54px;width:auto;display:block}
html[data-theme="light"] .lg-dark{display:none}
html[data-theme="dark"] .lg-light{display:none}
.mainnav{display:flex;gap:4px}
.mi{background:none;border:none;color:var(--band-text-2);font:inherit;font-size:0.93rem;white-space:nowrap;padding:10px 13px;cursor:pointer;border-radius:3px;text-decoration:none;display:flex;align-items:center;gap:6px;position:relative}
.mi:hover,.mi[aria-expanded="true"]{color:var(--band-text)}
.mi[aria-expanded="true"]::after{content:"";position:absolute;left:13px;right:13px;bottom:-1px;height:3px;background:var(--orange)}
.chev{width:8px;height:8px;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:rotate(45deg) translate(-2px,-2px);opacity:.6}
.navr{margin-left:auto;display:flex;align-items:center;gap:12px}
.tog{background:none;border:1px solid var(--band-rule);color:var(--band-text-2);border-radius:3px;width:36px;height:36px;cursor:pointer;font-size:0.95rem;line-height:1}
.tog:hover{color:var(--orange);border-color:var(--orange)}
.ncta{background:var(--orange);color:#fff !important;text-decoration:none;font-weight:600;font-size:0.9rem;padding:11px 20px;border-radius:3px;white-space:nowrap}
.ncta:hover{background:var(--orange-dk)}
.burger{display:none;background:none;border:1px solid var(--band-rule);color:var(--band-text);border-radius:3px;padding:9px 13px;font:inherit;font-size:0.88rem;cursor:pointer}

/* mega */
.mega{position:absolute;left:0;right:0;top:100%;background:var(--band-2);border-bottom:1px solid var(--band-rule);box-shadow:0 18px 40px rgba(0,0,0,.13);display:none}
html[data-theme="dark"] .mega{box-shadow:0 18px 40px rgba(0,0,0,.42)}
.mega[data-open="true"]{display:block}
.mega .wrap{padding-top:34px;padding-bottom:36px}
.mgrid{display:grid;gap:34px}
.mgrid.c3{grid-template-columns:repeat(3,1fr)}
.mgrid.c4{grid-template-columns:repeat(4,1fr)}
.mgrid.split{grid-template-columns:2.1fr 1fr}
.mcol h4{font-family:Archivo;font-weight:700;font-size:0.86rem;color:var(--band-text-2);margin-bottom:12px;padding-bottom:10px;border-bottom:1px solid var(--band-rule)}
.mcol ul{list-style:none}
.ml{display:block;padding:8px 0;text-decoration:none;color:var(--band-text);font-size:0.94rem}
.ml:hover{color:var(--orange)}
.ml span{display:block;font-size:0.83rem;color:var(--band-text-2);margin-top:1px}
.ml:hover span{color:var(--band-text-2)}
.mfeat{border:1px solid var(--band-rule);padding:22px 20px;background:var(--band-2)}
.mfeat .bar{width:38px;height:4px;background:var(--orange);margin-bottom:15px}
.mfeat h3{color:var(--band-text);font-size:1.15rem;margin-bottom:7px}
.mfeat p{color:var(--band-text-2);font-size:0.9rem}
.mfeat a{display:inline-block;margin-top:13px;font-size:0.89rem;font-weight:600;color:var(--band-text);text-decoration:none;border-bottom:2px solid var(--orange);padding-bottom:2px}
.mbot{margin-top:26px;padding-top:18px;border-top:1px solid var(--band-rule);display:flex;gap:26px;flex-wrap:wrap;font-size:0.89rem}
.mbot a{color:var(--band-text-2);text-decoration:none}
.mbot a:hover{color:var(--orange)}

/* mobile drawer */
.drawer{display:none;position:fixed;inset:96px 0 0;background:var(--band);z-index:70;overflow-y:auto;padding:22px 0 40px}
.drawer[data-open="true"]{display:block}
.dsec{border-bottom:1px solid var(--band-rule)}
.dsum{width:100%;background:none;border:none;color:var(--band-text);font:inherit;font-size:1.05rem;font-weight:600;padding:17px 0;text-align:left;cursor:pointer;display:flex;justify-content:space-between}
.dbody{padding:0 0 16px}
.dbody a{display:block;padding:9px 0 9px 14px;color:var(--band-text-2);text-decoration:none;font-size:0.95rem;border-left:2px solid var(--band-rule)}
.dbody a:hover{color:var(--orange);border-left-color:var(--orange)}

/* ============ HERO ============ */
.hero{background:var(--band);color:var(--band-text);padding:78px 0 0}
.hero h1{max-width:16ch}
.lede{color:var(--band-text-2);font-size:1.15rem;max-width:58ch;margin-top:22px}
.lede b{color:var(--band-text);font-weight:600}
.cfg{margin-top:54px;border-top:1px solid var(--band-rule);padding:34px 0 76px}
.cfgtop{display:flex;align-items:baseline;justify-content:space-between;gap:20px;flex-wrap:wrap;margin-bottom:26px}
.cfgtop h2{font-size:1.5rem;color:var(--band-text)}
.reset{background:none;border:none;color:var(--band-text-2);font:inherit;font-size:0.88rem;cursor:pointer;text-decoration:underline;text-underline-offset:3px}
.reset:hover{color:var(--orange)}
.step{margin-bottom:30px}
.qrow{display:flex;align-items:baseline;gap:13px;margin-bottom:13px}
.qn{width:25px;height:25px;flex:none;border-radius:50%;background:var(--band-rule);color:var(--band-text-2);font-size:0.8rem;font-weight:600;display:flex;align-items:center;justify-content:center;transform:translateY(3px)}
.qn.done{background:var(--orange);color:#fff}
.qt{font-family:Archivo;font-weight:600;font-size:1.16rem;letter-spacing:-0.02em}
.qh{font-size:0.87rem;color:var(--band-text-2);margin:0 0 12px 38px}
.opts{display:grid;grid-template-columns:repeat(auto-fit,minmax(215px,1fr));gap:9px;margin-left:38px}
.opt{background:transparent;border:1px solid var(--band-rule);color:var(--band-text);border-radius:3px;padding:14px 15px;font:inherit;font-size:0.94rem;text-align:left;cursor:pointer;display:flex;align-items:center;gap:10px}
.opt:hover{border-color:var(--band-text-2)}
.opt .bx{width:15px;height:15px;flex:none;border:1px solid var(--band-rule);border-radius:2px}
.opt[aria-pressed="true"]{border-color:var(--orange)}
.opt[aria-pressed="true"] .bx{background:var(--orange);border-color:var(--orange);position:relative}
.opt[aria-pressed="true"] .bx::after{content:"";position:absolute;left:4px;top:1px;width:4px;height:8px;border:solid #fff;border-width:0 2px 2px 0;transform:rotate(43deg)}
.opt.rad .bx{border-radius:50%}
.opt.rad[aria-pressed="true"] .bx::after{left:3px;top:3px;width:7px;height:7px;border:none;background:#fff;border-radius:50%;transform:none}
.res{margin-left:38px;border-top:1px solid var(--band-rule);padding-top:26px}
.resh{font-size:0.88rem;color:var(--band-text-2);margin-bottom:16px}
.rgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(266px,1fr));gap:1px;background:var(--band-rule);border:1px solid var(--band-rule)}
.rcard{background:var(--band);padding:23px 21px 25px;border-top:3px solid var(--orange)}
html[data-theme="light"] .rcard{background:var(--band-2)}
.rcard h3{color:var(--band-text);margin-bottom:4px}
.rrole{font-size:0.82rem;font-weight:600;color:var(--orange);margin-bottom:10px}
.rcard p{color:var(--band-text-2);font-size:0.92rem}
.rcard a{display:inline-block;margin-top:13px;color:var(--band-text);font-size:0.89rem;font-weight:600;border-bottom:2px solid var(--orange);text-decoration:none;padding-bottom:2px}
.rnote{margin-top:16px;padding:14px 16px;border-left:3px solid var(--orange);background:rgba(255,73,6,.07);font-size:0.9rem;color:var(--band-text-2)}
.rnote b{color:var(--band-text);font-weight:600}
@media(prefers-reduced-motion:no-preference){.res{animation:rise .3s cubic-bezier(.2,.7,.3,1)}}
@keyframes rise{from{opacity:0;transform:translateY(9px)}to{opacity:1;transform:none}}

/* ============ SECTIONS ============ */
.head{display:flex;justify-content:space-between;align-items:flex-end;gap:40px;flex-wrap:wrap;margin-bottom:38px}
.head p{color:var(--text-2);max-width:44ch}
.cgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(258px,1fr));gap:1px;background:var(--rule);border:1px solid var(--rule)}
.cap{background:var(--bg);padding:25px 23px 27px;text-decoration:none;display:block}
.cap:hover{background:var(--surface)}
.cap:hover h3{text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:3px}
.cap h3{margin-bottom:8px}
.sym{color:var(--text-2);font-size:0.92rem;font-style:italic}
.to{margin-top:14px;font-size:0.81rem;font-weight:600;display:inline-block;border-bottom:2px solid var(--orange);padding-bottom:1px}

.models{background:var(--surface-2)}
.mmgrid{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--rule);border:1px solid var(--rule);margin-top:36px}
.model{background:var(--surface-2);padding:36px 32px}
.model h3{font-size:1.5rem;font-weight:800;letter-spacing:-.026em;margin-bottom:11px}
.model p{color:var(--text-2);font-size:.97rem}
.model ul{list-style:none;margin-top:20px;border-top:1px solid var(--rule);padding-top:16px}
.model li{font-size:.92rem;padding:7px 0 7px 19px;position:relative;color:var(--text-2)}
.model li::before{content:"";position:absolute;left:0;top:15px;width:9px;height:2px;background:var(--orange)}

.progs{background:var(--ftr);color:var(--ftr-text)}
.progs h2{color:var(--ftr-text)}
.progs .sub{color:var(--ftr-text-2);margin-top:13px}
.pgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(268px,1fr));gap:1px;background:var(--ftr-rule);border:1px solid var(--ftr-rule);margin-top:38px}
.prog{background:var(--ftr);padding:30px 26px 32px;text-decoration:none;display:block}
.prog:hover{background:var(--ftr-2)}
.prog .bar{width:42px;height:4px;background:var(--orange);margin-bottom:19px}
.prog h3{font-size:1.36rem;font-weight:800;letter-spacing:-.03em;margin-bottom:5px;color:var(--ftr-text)}
.prog .layer{font-size:.84rem;font-weight:600;color:var(--orange);margin-bottom:13px}
.prog p{color:var(--ftr-text-2);font-size:.93rem}
.prog .tiers{margin-top:17px;padding-top:15px;border-top:1px solid var(--ftr-rule);font-size:.85rem;color:#7F857E}

.tabs{display:flex;flex-wrap:wrap;gap:7px;margin:32px 0 0}
.tab{background:transparent;border:1px solid var(--rule);border-radius:3px;padding:10px 15px;font:inherit;font-size:.91rem;cursor:pointer;color:var(--text-2)}
.tab:hover{border-color:var(--text-3);color:var(--text)}
.tab[aria-selected="true"]{background:var(--text);border-color:var(--text);color:var(--bg);font-weight:600}
.ipanel{border:1px solid var(--rule);border-top:4px solid var(--orange);margin-top:14px;padding:32px;display:grid;grid-template-columns:1.15fr 1fr;gap:42px;background:var(--surface)}
.ipanel h3{font-size:1.45rem;font-weight:800;letter-spacing:-.028em;margin-bottom:12px}
.ipanel p{color:var(--text-2)}
.pains{list-style:none;margin-top:19px}
.pains li{font-size:.93rem;color:var(--text-2);padding:9px 0 9px 19px;position:relative;border-bottom:1px solid var(--rule-2)}
.pains li::before{content:"";position:absolute;left:0;top:17px;width:9px;height:2px;background:var(--orange)}
.slbl{font-size:.84rem;color:var(--text-3);margin-bottom:9px}
.who{border:1px solid var(--rule);padding:14px 16px;margin-bottom:8px}
.who b{display:block;font-family:Archivo;font-weight:700;font-size:.98rem}
.who span{font-size:.87rem;color:var(--text-2)}

.proof{background:var(--surface-2)}
.pf{display:grid;grid-template-columns:repeat(auto-fit,minmax(188px,1fr));gap:1px;background:var(--rule);border:1px solid var(--rule)}
.pf>div{background:var(--surface-2);padding:28px 24px}
.pf .n{font-family:Archivo;font-weight:800;font-size:2.9rem;letter-spacing:-.045em;line-height:1}
.pf .k{font-size:.92rem;color:var(--text-2);margin-top:7px}
.pf .m{font-size:.79rem;color:var(--text-3);margin-top:6px}

.wgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(278px,1fr));gap:1px;background:var(--rule);border:1px solid var(--rule);margin-top:36px}
.brief{background:var(--bg);padding:27px 24px 29px;text-decoration:none;display:block}
.brief:hover{background:var(--surface)}
.meta{font-size:.84rem;color:var(--text-3);margin-bottom:13px;padding-bottom:11px;border-bottom:1px solid var(--rule-2)}
.brief h3{margin-bottom:9px}
.brief p{font-size:.92rem;color:var(--text-2)}
.out{margin-top:15px;font-family:Archivo;font-weight:700;font-size:1.42rem;letter-spacing:-.03em;color:var(--orange)}

.ctab{background:var(--orange);color:#fff;padding:76px 0}
.ctab h2{max-width:22ch}
.ctab p{margin-top:16px;font-size:1.08rem;max-width:54ch;color:rgba(255,255,255,.92)}
.ctab a{display:inline-block;margin-top:28px;background:var(--ink);color:#fff;text-decoration:none;font-weight:600;padding:15px 30px;border-radius:3px}

/* ============ FOOTER ============ */
footer{background:var(--ftr);color:var(--ftr-text-2);font-size:.92rem}
.ftop{padding:56px 0 44px;border-bottom:1px solid var(--ftr-rule)}
.ftop .wrap{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:44px;align-items:start}
.flogo{height:66px;width:auto;display:block;margin-bottom:20px}
.fdesc{font-size:1rem;color:var(--ftr-text-2);max-width:44ch;line-height:1.7}
.fcontact h3,.fprog h3{font-family:Archivo;font-weight:700;color:var(--ftr-text);font-size:.92rem;margin-bottom:14px}
.fcontact div{padding:5px 0}
.fcontact a{color:var(--ftr-text);text-decoration:none}
.fcontact a:hover{color:var(--orange)}
.fprog .p{display:block;padding:9px 0;text-decoration:none;border-bottom:1px solid var(--ftr-rule)}
.fprog .p b{color:var(--ftr-text);font-family:Archivo;font-weight:700;font-size:1rem;display:block}
.fprog .p span{font-size:.85rem}
.fprog .p:hover b{color:var(--orange)}

.fmid{padding:46px 0 40px;border-bottom:1px solid var(--ftr-rule)}
.fmid .wrap{display:grid;grid-template-columns:repeat(5,1fr);gap:34px}
footer h3{font-family:Archivo;font-weight:700;color:var(--ftr-text);font-size:.92rem;margin-bottom:13px}
footer ul{list-style:none}
footer li{padding:4px 0}
footer a{text-decoration:none}
footer li a:hover{color:var(--orange)}

.fend{padding:30px 0;border-top:1px solid var(--ftr-rule)}
.fend .wrap{display:flex;gap:40px;flex-wrap:wrap;justify-content:space-between;align-items:flex-start}
.fend .note{font-size:.88rem;line-height:1.7;max-width:58ch}
.fend .note b{color:var(--ftr-text)}
.fbot{border-top:1px solid var(--ftr-rule);padding:20px 0 30px}
.fbot .wrap{display:flex;justify-content:space-between;gap:18px;flex-wrap:wrap;font-size:.85rem}
.fbot a{color:var(--band-text-2)}

@media(max-width:1080px){.fmid .wrap{grid-template-columns:repeat(3,1fr)}}
@media(max-width:1060px){
  .mainnav,.ncta,.mega{display:none}
  .burger{display:block}
  .nav .wrap{height:76px}
  .drawer{top:76px}
  .logo{height:42px}
  .mmgrid,.ipanel{grid-template-columns:1fr}
  .ftop .wrap,.fmid .wrap{grid-template-columns:1fr}
  .ipanel{gap:26px}
  .opts,.res,.qh{margin-left:0}
  section{padding:62px 0}
}

/* footer: ecosystem block */
.fprog .p span{display:block}
.fend .wrap{gap:48px;align-items:flex-start}
.fend .note{max-width:58ch}
.fend .note a{color:var(--ftr-text);border-bottom:2px solid var(--orange);text-decoration:none;padding-bottom:1px}
.ecosys{flex:0 0 auto;max-width:250px}
.ecosys h3{font-family:Archivo;font-weight:700;color:var(--ftr-text);font-size:.84rem;margin-bottom:18px}
.ecosys .logos{display:flex;flex-direction:column;gap:16px;align-items:flex-start}
.ecosys a{display:block;line-height:0;opacity:.9;transition:opacity .15s}
.ecosys a:hover{opacity:1}
.ecosys img{width:auto;max-width:100%;display:block}
.viewall{display:inline-block;margin-top:14px;font-size:.85rem;font-weight:600;color:var(--ftr-text);text-decoration:none;border-bottom:2px solid var(--orange);padding-bottom:1px}
.viewall:hover{color:var(--orange)}
.fbot .wrap{align-items:flex-start;gap:14px 40px}
.fbot .wrap span:first-child{flex:1 1 520px;max-width:76ch;line-height:1.65}
.fbot .wrap span:last-child{flex:0 0 auto;white-space:nowrap}
@media(max-width:900px){
  .ecosys{max-width:none}
  .ecosys .logos{display:flex;flex-direction:column;gap:16px;align-items:flex-start}
  .fbot .wrap span:last-child{white-space:normal}
}

/* notched devices: keep fixed bars clear of the system UI */
@supports (padding: env(safe-area-inset-left)) {
  .wrap{padding-left:max(28px, env(safe-area-inset-left));padding-right:max(28px, env(safe-area-inset-right))}
  .navwrap{padding-top:env(safe-area-inset-top, 0px)}
  footer{padding-bottom:env(safe-area-inset-bottom, 0px)}
}

/* client logo wall */
.logowall{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--rule);border:1px solid var(--rule);margin-top:28px}
.lw{background:var(--bg);height:104px;display:flex;align-items:center;justify-content:center;padding:12px}
.lw img{opacity:.62;filter:none;transition:opacity .18s;max-width:100%;height:auto}
.lw:hover img{opacity:.9}
[data-theme="dark"] .lw img{opacity:.55;filter:invert(1)}
[data-theme="dark"] .lw:hover img{opacity:.85}
@media(max-width:860px){.logowall{grid-template-columns:repeat(2,1fr)}.lw{height:88px}}

/* nav: tighten before it would wrap */
@media(min-width:1061px) and (max-width:1420px){
  .nav .wrap{gap:18px}
  .mainnav{gap:0}
  .mi{font-size:.875rem;padding:10px 9px;gap:5px}
  .navr{gap:9px}
  .ncta{font-size:.875rem;padding:11px 16px}
  .logo{height:46px}
}
.ncta{white-space:nowrap}
