
  :root{--paper:#E7EAE9;--ink:#101413;--ink-2:#535D59;--rule:#C9CFCD;--hair:#D9DEDC;--seal:#1F3D33;--lime:#BCED62;--white:#fff}
  *,*::before,*::after{box-sizing:border-box}
  html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
  body{margin:0;background:var(--paper);color:var(--ink);font-family:"IBM Plex Sans",sans-serif;font-size:17px;line-height:1.65;-webkit-font-smoothing:antialiased}
  .wrap{max-width:1120px;margin:0 auto;padding:0 40px}
  a{color:inherit}
  :focus-visible{outline:2px solid var(--seal);outline-offset:4px}
  h1,h2,h3{font-family:"Newsreader",serif;font-weight:300;letter-spacing:-.025em;margin:0;line-height:1.05}
  .eyebrow{font:500 11px/1 "IBM Plex Mono",monospace;letter-spacing:.18em;text-transform:uppercase;color:var(--ink-2)}
  .btn{display:inline-block;font:500 15px/1 "IBM Plex Sans",sans-serif;padding:15px 24px;border-radius:2px;text-decoration:none;border:1px solid var(--ink);color:var(--paper);background:var(--ink);transition:background .2s,border-color .2s}
  .btn:hover{background:var(--seal);border-color:var(--seal)}
  .btn.ghost{background:transparent;color:var(--ink)}
  .btn.ghost:hover{background:var(--seal);color:var(--paper)}
  .sec{padding:110px 0}

  /* header */
  header{position:sticky;top:0;z-index:60;background:rgba(231,234,233,.92);backdrop-filter:blur(10px)}
  header{border-bottom:1px solid transparent;transition:border-color .25s ease}
  header.scrolled{border-bottom-color:var(--rule)}
  .nav{display:flex;align-items:center;gap:34px;padding:14px 40px}
  .brand{margin-right:auto;display:flex;align-items:center}
  .brand img{height:15px;width:auto;display:block}
  .nav a.lk{font-size:15px;color:var(--ink-2);text-decoration:none}
  .nav a.lk:hover{color:var(--ink)}
  .nav .btn{padding:11px 18px;font-size:14px}
  .dd{position:relative}
  .dd-t{display:inline-flex;align-items:center;gap:7px}
  .dd-t svg{transition:transform .2s;opacity:.7}
  .dd:hover .dd-t{color:var(--ink)}
  .dd:hover .dd-t svg{transform:rotate(180deg)}
  .dd-p{position:absolute;top:100%;left:-18px;margin-top:12px;width:352px;background:var(--white);border:1px solid var(--rule);border-radius:4px;box-shadow:0 24px 54px -26px rgba(16,20,19,.42);padding:8px;opacity:0;visibility:hidden;transform:translateY(-6px);transition:opacity .18s,transform .18s,visibility .18s}
  .dd::after{content:"";position:absolute;top:100%;left:0;right:0;height:16px}
  .dd:hover .dd-p,.dd:focus-within .dd-p{opacity:1;visibility:visible;transform:none}
  .dd-shut .dd-p{opacity:0!important;visibility:hidden!important}
  /* resources dropdown — 3-column grid, icon animations */
  .dd-p.dd-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:6px;width:480px;left:auto;right:-40px;padding:10px}
  .dd-grid .dd-i{align-items:center;gap:12px;padding:14px;position:relative}
  .dd-grid .dd-g{margin:0}
  .dd-grid .dd-a{position:absolute;top:12px;right:12px}
  .dd-grid .dd-x em{font-size:12px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
  /* documentation — bookmark outline draws in */
  .dd-i.dd-doc:hover .dd-g svg path{stroke-dasharray:100;stroke-dashoffset:100;animation:dd-draw 1.3s cubic-bezier(.4,0,.2,1) forwards}
  @keyframes dd-draw{to{stroke-dashoffset:0}}
  /* research — page folds, then the text lines draw */
  .dd-i.dd-res:hover .dd-g svg path{stroke-dasharray:100;stroke-dashoffset:100;animation:dd-draw 1.1s cubic-bezier(.4,0,.2,1) forwards}
  .dd-i.dd-res:hover .dd-g svg path:nth-child(3){animation-delay:.5s}
  /* agentic alpha — the chart line draws upward and the peak dot pops */
  .dd-i.dd-alpha:hover .dd-g svg path{stroke-dasharray:100;stroke-dashoffset:100;animation:dd-draw 1.2s cubic-bezier(.4,0,.2,1) forwards}
  .dd-i.dd-alpha:hover .dd-g svg circle{transform-box:fill-box;transform-origin:center;animation:dd-pop .8s cubic-bezier(.34,1.56,.64,1) .8s both}
  @keyframes dd-pop{0%{transform:scale(0)}100%{transform:scale(1)}}
  /* team — hard hat drops in with a bounce */
  @keyframes dd-hat{0%{transform:translateY(-7px);opacity:0}55%{transform:translateY(1.5px);opacity:1}100%{transform:translateY(0)}}
  .dd-i.dd-team:hover .dd-g svg{animation:dd-hat 2.4s cubic-bezier(.34,1.56,.64,1)}
  /* partners — the two figures lean together */
  @keyframes dd-lean{50%{transform:translateX(var(--lean,3.2px))}}
  .dd-i.dd-partners:hover .dd-g svg circle:first-of-type{transform-box:fill-box;animation:dd-lean 1.6s ease;--lean:3.2px}
  .dd-i.dd-partners:hover .dd-g svg circle:last-of-type{transform-box:fill-box;animation:dd-lean 1.6s ease;--lean:-3.2px}

  .dd-i{display:grid;grid-template-columns:38px 1fr 16px;align-items:center;gap:14px;padding:15px 14px;border-radius:3px;text-decoration:none;transition:background .16s}
  .dd-i:hover{background:var(--paper)}
  .dd-g{width:38px;height:38px;border-radius:3px;border:1px solid var(--rule);display:flex;align-items:center;justify-content:center;color:var(--seal);transition:background .25s,border-color .25s,color .25s}
  .dd-g svg{transition:transform 1s cubic-bezier(.34,1.56,.64,1)}
  .dd-g .chk{stroke-dasharray:17}
  .dd-i:hover .dd-g{background:var(--seal);border-color:var(--seal);color:var(--lime)}
  .dd-i:nth-child(1):hover .dd-g svg{transform:rotateY(360deg)}
  .dd-i:nth-child(2):hover .dd-g svg{animation:shield-pop 1s cubic-bezier(.34,1.56,.64,1)}
  .dd-i:nth-child(2):hover .dd-g .chk{animation:chk-draw .9s ease .18s both}
  @keyframes shield-pop{35%{transform:scale(1.16) rotate(-7deg)}}
  @keyframes chk-draw{from{stroke-dashoffset:17}to{stroke-dashoffset:0}}
  .dd-x b{display:block;font:500 15px/1.2 "IBM Plex Sans",sans-serif;color:var(--ink)}
  .dd-x em{display:block;font-style:normal;font-size:13px;color:var(--ink-2);margin-top:4px;line-height:1.45}
  .dd-s{font-style:normal;font:500 9px/1 "IBM Plex Mono",monospace;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-2);border:1px solid var(--rule);border-radius:2px;padding:3px 5px;margin-left:8px;vertical-align:2px}
  .dd-a{color:var(--ink-2);font-size:15px;opacity:0;transform:translateX(-4px);transition:opacity .16s,transform .16s}
  .dd-a.dd-ext{font-weight:700}
  .dd-i:hover .dd-a{opacity:1;transform:none;color:var(--seal)}

  /* hero */
  .hero{padding:56px 0 0}
  .hero-eyebrow{display:flex;gap:14px;align-items:center;flex-wrap:wrap}
  .hero-eyebrow em{font-style:normal;color:var(--seal);border:1px solid var(--seal);border-radius:2px;padding:4px 8px;font:500 11px/1 "IBM Plex Mono",monospace;letter-spacing:.14em}
  .hero-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:64px;align-items:start;margin-top:44px}
  .hero-art{position:relative;color:var(--ink)}
  .hero-art svg{width:100%;height:auto;display:block;max-height:485px;margin-top:-300px}
  .hero-copy{margin-top:-14px}
  .hero-art .field circle{fill:currentColor}
  .hero-art .field{animation:drift 46s linear infinite;transform-origin:280px 280px}
  @keyframes drift{to{transform:rotate(360deg)}}
  .hero-art .spokes line{stroke-dasharray:260;stroke-dashoffset:260;animation:draw 2.7s cubic-bezier(.2,.7,.3,1) forwards}
  .hero-art .spokes line:nth-child(2n){animation-delay:.28s}
  .hero-art .spokes line:nth-child(3n){animation-delay:.56s}
  .hero-art .spokes line:nth-child(5n){animation-delay:.84s}
  @keyframes draw{to{stroke-dashoffset:0}}
  .hero-art .nd{fill:var(--ink);animation:breathe 5.4s ease-in-out infinite}
  @keyframes breathe{0%,100%{opacity:.85;transform:scale(1)}50%{opacity:1;transform:scale(1.14)}}
  .hero-art .nodes{transform-box:fill-box}
  .hero-art .nd{transform-box:fill-box;transform-origin:center}
  h1{font-size:clamp(40px,6.4vw,82px);line-height:1.02;max-width:15ch;margin:26px 0 0}
  h1 i{font-style:italic;color:var(--seal)}
  .hero .lede{font-size:18px;line-height:1.65;color:var(--ink-2);max-width:46ch;margin:0}
  .stats{display:flex;flex-wrap:nowrap;gap:0 30px;margin-top:30px}
  .stat{display:flex;flex-direction:column;gap:8px;font:500 10px/1.3 "IBM Plex Mono",monospace;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-2);white-space:nowrap}
  .stat b{font-family:"Newsreader",serif;font-weight:400;font-size:28px;line-height:1;letter-spacing:-.02em;color:var(--ink)}
  .cta-row{display:flex;gap:14px;margin-top:28px;flex-wrap:wrap}
  .note{margin-top:18px;font:400 12px/1.5 "IBM Plex Mono",monospace;color:var(--ink-2)}

  /* partner marquee */
  .trust{margin-top:28px;border-top:1px solid var(--rule);border-bottom:1px solid var(--rule);padding:16px 0;overflow:hidden}
  .trust .lbl{font:500 10px/1 "IBM Plex Mono",monospace;letter-spacing:.18em;text-transform:uppercase;color:var(--ink-2);margin-bottom:12px}
  .marquee{display:flex;width:max-content;animation:slide 38s linear infinite}
  .marquee:hover{animation-play-state:paused}
  .marquee .mk{display:inline-flex;align-items:center;gap:10px;padding:0 22px;white-space:nowrap}
  .marquee .mk img{height:26px;width:auto;max-width:110px;object-fit:contain;border-radius:6px;filter:grayscale(1);opacity:.66;transition:opacity .2s,filter .2s}
  .marquee .mk em{font-family:"Newsreader",serif;font-style:normal;font-size:18px;color:var(--ink-2);transition:color .2s}
  .marquee .mk:hover img{filter:none;opacity:1}
  .marquee .mk:hover em{color:var(--ink)}
  @keyframes slide{from{transform:translateX(0)}to{transform:translateX(-50%)}}

  /* section head */
  .head h2{font-size:clamp(34px,4.6vw,56px);max-width:16ch}
  .head p{margin-top:20px;max-width:44ch;color:var(--ink-2)}

  /* products */
  .products{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-top:52px}
  .product{background:var(--white);border:1px solid var(--rule);border-radius:3px;padding:44px 40px;position:relative}
  .product h3{font-size:40px;margin-top:20px}
  .product .sub{font:500 11px/1 "IBM Plex Mono",monospace;letter-spacing:.14em;text-transform:uppercase;color:var(--seal);margin-top:14px}
  .p-top{display:flex;align-items:center;gap:14px}
  .p-top .sub,.p-top .tag{margin-top:0;position:relative;top:-1px}
  .product .tag{font:400 13px/1 "IBM Plex Mono",monospace;color:var(--ink-2);margin-top:12px}
  .product p{color:var(--ink-2);margin-top:20px;font-size:16px;max-width:34ch}
  .product a.go{display:inline-block;margin-top:24px;font-size:15px;color:var(--seal);text-decoration:none;border-bottom:1px solid var(--seal);padding-bottom:3px}
  .product.halo{border-color:#1F3D33;box-shadow:0 0 0 2px rgba(31,61,51,.22)}
  .soon{position:absolute;top:24px;right:24px;font:500 10px/1 "IBM Plex Mono",monospace;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-2);border:1px solid var(--rule);border-radius:2px;padding:6px 9px}
  .glyph{color:var(--seal)}

  /* how it works */
  .flow{margin-top:56px;background:var(--white);border:1px solid var(--rule);border-radius:3px;padding:48px 40px 44px}
  .steps{display:grid;grid-template-columns:repeat(3,1fr);gap:0}
  .step{padding-right:36px;text-align:center}
  .track{position:absolute;left:calc(50% + 30px);right:calc(-50% + 30px);top:50%;height:1.5px;background:repeating-linear-gradient(90deg,var(--rule) 0 5px,transparent 5px 12px);background-size:12px 1.5px;animation:march 1.6s linear infinite}
  @keyframes march{to{background-position:12px 0}}
  .dot{width:8px;height:8px;border-radius:50%;background:var(--lime);opacity:0;animation:blip 5.4s ease-in-out infinite}
  .ring.solid .dot{background:var(--lime)}
  .d2{animation-delay:1.8s}
  .d3{animation-delay:3.6s}
  @keyframes blip{0%{opacity:0;transform:scale(.4)}6%{opacity:1;transform:scale(1)}28%{opacity:1;transform:scale(1)}36%{opacity:0;transform:scale(.4)}100%{opacity:0}}
  .steps{position:relative}
  .rail{position:absolute;top:42px;left:16.6%;right:16.6%;height:1.5px;background:repeating-linear-gradient(90deg,var(--rule) 0 5px,transparent 5px 12px);overflow:visible}
  .rail-pulse{position:absolute;top:-1.5px;left:0;width:64px;height:4.5px;border-radius:3px;background:linear-gradient(90deg,transparent,var(--seal),transparent);opacity:0}
  .flow.in .rail-pulse{animation:rail-run 6s cubic-bezier(.5,0,.5,1) infinite}
  @keyframes rail-run{0%{left:0;opacity:0}8%{opacity:1}42%{left:calc(50% - 32px);opacity:1}58%{left:calc(50% - 32px);opacity:1}88%{left:calc(100% - 64px);opacity:1}96%,100%{left:calc(100% - 64px);opacity:0}}
  .node{height:84px;display:flex;align-items:center;justify-content:center}
  .orb{width:84px;height:84px;overflow:visible}
  .o-bg{fill:var(--white);stroke:var(--hair);stroke-width:1.5}
  .o-arc{fill:none;stroke:var(--seal);stroke-width:2.5;stroke-linecap:round;stroke-dasharray:214;stroke-dashoffset:214;transform:rotate(-90deg);transform-origin:42px 42px}
  .o-core{fill:var(--rule)}
  .flow.in .s1 .o-arc{animation:fill-arc 6s cubic-bezier(.4,0,.3,1) infinite}
  .flow.in .s2 .o-arc{animation:fill-arc 6s cubic-bezier(.4,0,.3,1) 1.7s infinite}
  .flow.in .s3 .o-arc{animation:fill-arc 6s cubic-bezier(.4,0,.3,1) 3.4s infinite}
  @keyframes fill-arc{0%{stroke-dashoffset:214}22%,72%{stroke-dashoffset:0}92%,100%{stroke-dashoffset:214}}
  .flow.in .s1 .o-core{animation:lit-core 6s ease infinite}
  .flow.in .s2 .o-core{animation:lit-core 6s ease 1.7s infinite}
  .flow.in .s3 .o-core{animation:lit-core 6s ease 3.4s infinite}
  @keyframes lit-core{0%,4%{fill:var(--rule);r:9}20%,72%{fill:var(--seal);r:11}90%,100%{fill:var(--rule);r:9}}
  .step .n{font:500 11px/1 "IBM Plex Mono",monospace;letter-spacing:.16em;color:var(--seal);margin-top:26px}
  .step h3{font-size:26px;margin-top:14px}
  .step p{color:var(--ink-2);font-size:16px;margin-top:8px;max-width:24ch;margin-left:auto;margin-right:auto}

  /* assurances */
  .tiles{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-top:52px}
  .tile{background:var(--white);border:1px solid var(--rule);border-radius:3px;padding:34px 28px;position:relative;overflow:hidden;transition:border-color .45s,transform .45s,box-shadow .45s}
  .tile::after{content:"";position:absolute;left:0;bottom:0;height:4px;width:0;background:linear-gradient(90deg,var(--seal),var(--lime));z-index:2}
  .tile>*{position:relative;z-index:1}
  .tiles.in .tile{animation:tile-dim 13s ease infinite}
  .tiles.in .tile::after{animation:tile-sweep 13s linear infinite}
  .tiles.in .tile:nth-child(1),.tiles.in .tile:nth-child(1)::after{animation-delay:0s}
  .tiles.in .tile:nth-child(2),.tiles.in .tile:nth-child(2)::after{animation-delay:3.25s}
  .tiles.in .tile:nth-child(3),.tiles.in .tile:nth-child(3)::after{animation-delay:6.5s}
  .tiles.in .tile:nth-child(4),.tiles.in .tile:nth-child(4)::after{animation-delay:9.75s}
  @keyframes tile-dim{0%{border-color:var(--seal);transform:translateY(-3px);box-shadow:0 14px 30px -22px rgba(31,61,51,.6)}
    22%{border-color:var(--seal);transform:translateY(-3px);box-shadow:0 14px 30px -22px rgba(31,61,51,.6)}
    32%,100%{border-color:var(--rule);transform:none;box-shadow:none}}
  @keyframes tile-sweep{0%{width:0}25%{width:100%}30%{width:100%;opacity:1}34%,100%{width:100%;opacity:0}}
  .tile h3{font-size:22px;margin-top:16px}
  .tile p{color:var(--ink-2);font-size:15px;margin-top:10px}

  /* ratings table */
  .agents{width:100%;border-collapse:collapse;margin-top:52px;background:var(--white);border:1px solid var(--rule);border-radius:3px;overflow:hidden}
  .agents th{text-align:left;font:500 11px/1 "IBM Plex Mono",monospace;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-2);padding:15px 20px;border-bottom:1px solid var(--rule);font-weight:500}
  .agents td{padding:16px 20px;border-bottom:1px solid var(--hair);font-size:16px}
  .agents tr:last-child td{border-bottom:0}
  .agents td.n{font-family:"IBM Plex Mono",monospace;font-weight:500}
  .agents td.m{font-family:"IBM Plex Mono",monospace;color:var(--ink-2);font-size:14px}
  .dot-c{display:inline-block;width:7px;height:7px;border-radius:2px;margin-right:11px;vertical-align:1px}
  .agents td.n em{font-style:normal;color:var(--ink-2);font-size:12px;margin-left:2px}
  .chains{white-space:nowrap;font-size:0}
  .cx{display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;border-radius:50%;font:600 11px/1 "IBM Plex Sans",sans-serif;color:#fff;font-style:normal;vertical-align:middle;box-shadow:0 0 0 2px var(--white);margin-left:-8px;position:relative}
  .cx:first-child{margin-left:0}
  .cx:nth-child(1){z-index:5}
  .cx:nth-child(2){z-index:4}
  .cx:nth-child(3){z-index:3}
  .cx:nth-child(4){z-index:2}
  .cx:nth-child(5){z-index:1}
  .cx>span{position:relative;z-index:1}
  .cx>img{position:absolute;inset:0;width:100%;height:100%;border-radius:50%;object-fit:cover;background:#fff;z-index:2}
  .agents .ag{width:22px;height:22px;border-radius:50%;object-fit:cover;margin-right:10px;vertical-align:-6px}
  .cx.pol{background:#8247E5}
  .cx.op{background:#FF0420}
  .cx.meg{background:#E8E8E8;color:#101413}
  .cx.rbh{background:#C1FF00;color:#101413}
  .cx.base{background:#0052FF}
  .cx.arb{background:#12AAFF}
  .cx.eth{background:#627EEA}
  .cx.son{background:#FE9A4D}
  .cx.pla{background:#1F3D33}

  /* partners */
  .partners{display:grid;grid-template-columns:repeat(6,1fr);gap:16px;margin-top:52px}
  .p-card{grid-column:span 2;background:var(--white);border:1px solid var(--rule);border-radius:3px;padding:30px 28px;display:flex;flex-direction:column;justify-content:flex-end;min-height:158px;transition:border-color .2s,transform .2s}
  .p-card:hover{border-color:var(--seal);transform:translateY(-2px)}
  .p-card h3{font-size:25px;margin-top:12px}
  .p-card p{color:var(--ink-2);font-size:15px;margin-top:8px}
  .p-wide{grid-column:span 3}
  .p-accent{background:var(--seal);border-color:var(--seal)}
  .p-accent .eyebrow{color:#A9BEB4}
  .p-accent h3{color:var(--paper)}

  /* rank swap animation */
  .agents tbody tr{transition:background .3s}
  .agents.in .r-ys{animation:swap-down 9s cubic-bezier(.5,0,.2,1) 1.2s infinite}
  .agents.in .r-zyfi{animation:swap-up 9s cubic-bezier(.5,0,.2,1) 1.2s infinite}
  .agents.in .r-surf{animation:swap-down2 9s cubic-bezier(.5,0,.2,1) 3.4s infinite}
  .agents.in .r-sail{animation:swap-up2 9s cubic-bezier(.5,0,.2,1) 3.4s infinite}
  @keyframes swap-up2{
    0%,6%{transform:translateY(0);background:transparent}
    14%{background:rgba(168,85,247,.10)}
    26%,58%{transform:translateY(-100%);background:rgba(168,85,247,.10)}
    72%{transform:translateY(-100%);background:transparent}
    88%,100%{transform:translateY(0);background:transparent}
  }
  @keyframes swap-down2{
    0%,6%{transform:translateY(0)}
    26%,58%{transform:translateY(100%)}
    88%,100%{transform:translateY(0)}
  }
  @keyframes swap-up{
    0%,8%{transform:translateY(0);background:transparent}
    16%{background:rgba(0,209,128,.10)}
    30%,64%{transform:translateY(-100%);background:rgba(0,209,128,.10)}
    78%{transform:translateY(-100%);background:transparent}
    92%,100%{transform:translateY(0);background:transparent}
  }
  @keyframes swap-down{
    0%,8%{transform:translateY(0)}
    30%,64%{transform:translateY(100%)}
    92%,100%{transform:translateY(0)}
  }

  /* numbers */
  .record{display:grid;grid-template-columns:repeat(4,1fr);gap:40px;margin-top:52px;border-top:1px solid var(--rule);padding-top:34px}
  .record .v{font-family:"Newsreader",serif;font-size:clamp(36px,4.4vw,54px);line-height:1;letter-spacing:-.035em}
  .record .l{font:400 12px/1.6 "IBM Plex Mono",monospace;color:var(--ink-2);margin-top:12px}
  .more{margin-top:34px;display:inline-block;font-size:15px;color:var(--seal);text-decoration:none;border-bottom:1px solid var(--seal);padding-bottom:3px}

  /* research */
  .posts{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:52px}
  .post{background:var(--white);border:1px solid var(--rule);border-radius:3px;padding:0 0 28px;text-decoration:none;display:block;overflow:hidden;transition:border-color .2s,transform .2s}
  .post .cov{display:block;width:100%;height:150px;border-bottom:1px solid var(--rule);margin-bottom:26px}
  .post .eyebrow,.post h3,.post p,.post .d{padding:0 26px}
  .post:hover{border-color:var(--seal);transform:translateY(-2px)}
  .post h3{font-size:23px;margin-top:14px;line-height:1.22}
  .post p{color:var(--ink-2);font-size:15px;margin-top:12px}
  .post .d{font:400 11px/1 "IBM Plex Mono",monospace;color:var(--ink-2);margin-top:22px}

  /* faq */
  .faq{margin-top:44px;border-top:1px solid var(--rule)}
  details{border-bottom:1px solid var(--hair)}
  summary{cursor:pointer;padding:22px 0;font-family:"Newsreader",serif;font-size:23px;font-weight:400;letter-spacing:-.015em;list-style:none;display:flex;justify-content:space-between;gap:20px}
  summary::-webkit-details-marker{display:none}
  summary::after{content:"+";font-family:"IBM Plex Mono",monospace;font-size:19px;color:var(--ink-2)}
  details[open] summary::after{content:"\2013"}
  details p{margin:0 0 24px;color:var(--ink-2);font-size:16px;max-width:62ch}

  /* close */
  .close{background:var(--seal);color:var(--paper);padding:84px 0}
  .close-grid{display:grid;grid-template-columns:1fr 1.06fr;gap:64px;align-items:center}
  .close .show{margin-top:0;width:100%;justify-self:end}
  .show{background:rgba(255,255,255,.045);border:1px solid #365B4D;border-radius:4px;padding:22px 24px 18px}
  .show-hd{display:flex;justify-content:space-between;font:500 10px/1 "IBM Plex Mono",monospace;letter-spacing:.16em;text-transform:uppercase;color:#A9BEB4}
  .show-live{display:flex;align-items:center;gap:7px;color:var(--lime)}
  .show-live i{width:5px;height:5px;border-radius:50%;background:var(--lime);animation:pulse 2.6s ease-in-out infinite}
  .show-sub{font:400 12px/1 "IBM Plex Mono",monospace;color:#8FA79B;margin:16px 0 4px;padding-bottom:14px;border-bottom:1px solid #2E4E42}
  .sr{display:grid;grid-template-columns:78px 1fr 52px 34px;align-items:center;gap:12px;padding:11px 0}
  .sr .nm{font-size:13px;color:var(--paper)}
  .sr .bw{height:7px;background:#2E4E42;border-radius:4px;overflow:hidden}
  .sr .bw i{display:block;height:100%;width:0;border-radius:4px;background:var(--lime);opacity:.92}
  .close.in .sr .bw i{animation:grow-b 1.2s cubic-bezier(.2,.7,.3,1) forwards}
  .close.in .sr:nth-child(2) .bw i{animation-delay:.08s}
  .close.in .sr:nth-child(3) .bw i{animation-delay:.16s}
  .close.in .sr:nth-child(4) .bw i{animation-delay:.24s}
  .close.in .sr:nth-child(5) .bw i{animation-delay:.32s}
  .sr .pc{font:500 12px/1 "IBM Plex Mono",monospace;text-align:right;color:var(--paper)}
  .sr .bs{font:400 11px/1 "IBM Plex Mono",monospace;text-align:right;color:#8FA79B}
  .show-ft{display:flex;justify-content:space-between;margin-top:14px;padding-top:13px;border-top:1px solid #2E4E42;font:400 10px/1 "IBM Plex Mono",monospace;letter-spacing:.12em;text-transform:uppercase;color:#8FA79B}
  .eyebrow.light{color:#A9BEB4}
  .crecord{display:grid;grid-template-columns:repeat(2,1fr);gap:26px 32px;margin-top:36px;border-top:1px solid #365B4D;padding-top:26px}
  .crecord .v{font-family:"Newsreader",serif;font-weight:300;font-size:clamp(26px,2.4vw,32px);line-height:1;letter-spacing:-.03em;color:var(--paper)}
  .crecord .l{font:400 11px/1.5 "IBM Plex Mono",monospace;color:#A9BEB4;margin-top:10px}
  .close h2{color:var(--paper);font-size:clamp(30px,3.1vw,40px);margin-top:16px;letter-spacing:-.01em;line-height:1.12}
  .close h2 em{font-style:italic;color:var(--lime)}
  .close-sub{color:#A9BEB4;font-size:15px;line-height:1.6;max-width:34ch;margin-top:20px}
  .close .cta-row{margin-top:26px}
  .show-ft a{color:var(--lime);text-decoration:none;letter-spacing:.12em;text-transform:uppercase}
  .show-ft a:hover{text-decoration:underline}
  .btn.ghost.light{background:transparent;color:var(--paper);border-color:#4C6A5E}
  .btn.ghost.light:hover{background:var(--paper);color:var(--seal);border-color:var(--paper)}
  .close .btn{background:var(--lime);border-color:var(--lime);color:#25320E;margin-top:14px}
  .close .btn:hover{background:var(--paper);border-color:var(--paper);color:var(--ink)}

  /* footer */
  footer{background:var(--ink);color:#98A29E;padding:68px 0 34px}
  .f-top{display:grid;grid-template-columns:1.6fr repeat(4,1fr);gap:44px}
  .f-brand img{height:22px;width:auto;display:block;margin-bottom:16px}
  .f-brand p{font-size:15px;max-width:30ch;margin:0}
  .f-col h5{font:500 11px/1 "IBM Plex Mono",monospace;letter-spacing:.16em;text-transform:uppercase;color:var(--paper);margin:0 0 18px}
  .f-col a{display:block;font-size:15px;color:#98A29E;text-decoration:none;padding:6px 0}
  .f-col a:hover{color:var(--paper)}
  .f-legal{max-width:74ch;font-size:10.5px;line-height:1.7;margin:40px 0 0;color:#6E7773}
  .f-bot{margin-top:24px;border-top:1px solid #2A302E;padding-top:24px;display:flex;justify-content:space-between;gap:24px;flex-wrap:wrap;font:400 12px/1.7 "IBM Plex Mono",monospace}
  .f-soc{display:inline-flex;gap:14px;align-items:center}
  .f-soc a{display:inline-flex;align-items:center;color:var(--ink-2);transition:color .2s;line-height:1}
  .f-soc a:hover{color:var(--ink)}
  .f-bot a{color:inherit;text-decoration:none}
  .f-bot a:hover{color:var(--paper)}

  @keyframes pulse{0%,100%{opacity:1}50%{opacity:.3}}
  @keyframes grow-b{to{width:var(--w)}}
  .rise{opacity:0;transform:translateY(14px);transition:opacity .7s ease,transform .7s cubic-bezier(.2,.7,.3,1)}
  .rise.in{opacity:1;transform:none}


  /* mobile nav */
  .burger{display:none;width:38px;height:38px;background:var(--white);border:1px solid var(--rule);border-radius:3px;position:relative;flex-shrink:0;padding:0}
  .burger i{position:absolute;left:10px;right:10px;height:1.6px;background:var(--ink);transition:transform .25s,opacity .2s,top .25s}
  .burger i:nth-child(1){top:13px}
  .burger i:nth-child(2){top:18.2px}
  .burger i:nth-child(3){top:23.4px}
  .burger.x i:nth-child(1){top:18.2px;transform:rotate(45deg)}
  .burger.x i:nth-child(2){opacity:0}
  .burger.x i:nth-child(3){top:18.2px;transform:rotate(-45deg)}
  .mnav{display:none}
  html,body{overflow-x:clip}

  @media (max-width:960px){
    .burger{display:block}
    .mnav{position:absolute;top:100%;left:0;right:0;background:var(--paper);border-bottom:1px solid var(--rule);box-shadow:0 34px 44px -34px rgba(16,20,19,.35);padding:6px 22px 14px;flex-direction:column}
    .mnav.open{display:flex}
    .mnav a{display:block;padding:14px 0;font-size:16px;color:var(--ink);text-decoration:none;border-bottom:1px solid var(--hair)}
    .mnav a:last-child{border-bottom:none}
    .mnav a:active{color:var(--seal)}
  }

  @media (max-width:960px){
    .wrap{padding:0 22px}
    .nav{padding:12px 22px}
      .sec{padding:72px 0}
    .nav a.lk{display:none}
    .dd{display:none}
    .products,.tiles,.steps,.record,.f-top{grid-template-columns:1fr}
    .partners,.posts{grid-template-columns:1fr}
    .p-card,.p-wide{grid-column:span 1;min-height:0}
    .step{padding-right:0}
    .rail{display:none}
    .agents{display:block;overflow-x:auto}
    .tiles,.record{gap:1px}
    .record{grid-template-columns:1fr 1fr;gap:30px}
    .f-top{grid-template-columns:1fr 1fr;gap:30px}
    .crecord{grid-template-columns:1fr 1fr;gap:26px}
    .stats{flex-wrap:wrap;gap:18px 30px}
    .hero-grid{grid-template-columns:1fr;gap:36px;margin-top:36px}
    .close-grid{grid-template-columns:1fr;gap:40px}
    .hero-art{order:-1;max-width:300px;margin:0 auto}
  }
  @media (prefers-reduced-motion:reduce){
    .marquee,.dash,.pip{animation:none}
    .close.in .sr .bw i{animation:none}
    .sr .bw i{width:var(--w)}
    .tiles.in .tile,.tiles.in .tile::after{animation:none}
    .flow.in .rail-pulse,.flow.in .o-arc,.flow.in .o-core{animation:none}
    .o-arc{stroke-dashoffset:0}
    .hero-art .field,.hero-art .nd{animation:none}
    .hero-art .spokes line{animation:none;stroke-dashoffset:0}
    .agents.in .r-ys,.agents.in .r-zyfi,.agents.in .r-surf,.agents.in .r-sail{animation:none}
    .rise{opacity:1;transform:none;transition:none}
  }

  /* modal */
  .ov{position:fixed;inset:0;z-index:200;background:rgba(16,20,19,.55);backdrop-filter:blur(3px);display:flex;align-items:center;justify-content:center;padding:24px;opacity:0;transition:opacity .2s}
  .ov.open{opacity:1}
  .ov[hidden]{display:none}
  .md{position:relative;background:var(--paper);border:1px solid var(--ink);border-radius:4px;width:100%;max-width:520px;max-height:90vh;overflow:auto;padding:40px 40px 34px;transform:translateY(10px) scale(.99);transition:transform .22s cubic-bezier(.2,.7,.3,1)}
  .ov.open .md{transform:none}
  .ov.done .md{overflow:visible;max-height:none}
  .ov.done .md-x{top:31px}
  .md h3{font-family:"Newsreader",serif;font-weight:300;font-size:36px;letter-spacing:-.025em;margin:14px 0 0}
  .md-s{color:var(--ink-2);font-size:16px;margin:14px 0 0}
  .md-x{position:absolute;top:31px;right:26px;background:none;border:0;font-size:26px;line-height:1;color:var(--ink-2);cursor:pointer;padding:6px}
  .md-x:hover{color:var(--ink)}
  .md-f{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:28px}
  .md-f label{display:flex;flex-direction:column;gap:8px;font:500 11px/1 "IBM Plex Mono",monospace;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-2)}
  .md-f .full,.md-f .md-e,.md-f .md-go,.md-f .md-p{grid-column:1/-1}
  .md-f input,.md-f select,.md-f textarea{font:400 15px/1.4 "IBM Plex Sans",sans-serif;color:var(--ink);background:var(--white);border:1px solid var(--rule);border-radius:2px;padding:12px 13px;width:100%;resize:vertical}
  .md-f input:focus,.md-f select:focus,.md-f textarea:focus{outline:none;border-color:var(--seal);box-shadow:0 0 0 2px rgba(31,61,51,.14)}
  .md-f input.bad{border-color:#B4483F}
  .md-e{font:400 13px/1.4 "IBM Plex Sans",sans-serif;color:#B4483F;text-transform:none;letter-spacing:0}
  .md-go{width:100%;cursor:pointer;margin-top:2px}
  .md-p{font:400 12px/1.5 "IBM Plex Mono",monospace;color:var(--ink-2);margin:0}
  .md-ok{text-align:center;padding:18px 0 6px}
  .md-tick{width:56px;height:56px;border-radius:50%;background:var(--seal);color:var(--lime);display:flex;align-items:center;justify-content:center;margin:0 auto 6px}
  .md-ok .btn{margin-top:26px}
  @media (max-width:600px){.md{padding:32px 24px 26px}.md-f{grid-template-columns:1fr}}

  .nav a.lk.on{color:var(--ink);position:relative}
  .nav a.lk.on::after{content:"";position:absolute;left:0;right:0;bottom:-7px;height:2px;background:var(--seal);border-radius:1px}
  .r-hero{padding:72px 0 0}
  .r-hero h1{font-size:clamp(40px,5.6vw,72px);line-height:1.04;max-width:16ch;margin:24px 0 0;letter-spacing:-.02em}
  .r-hero .lede{font-size:18px;line-height:1.65;max-width:52ch;color:var(--ink-2);margin:22px 0 0}

  .feature{display:grid;grid-template-columns:1.05fr .95fr;background:var(--white);border:1px solid var(--rule);border-radius:3px;overflow:hidden;text-decoration:none;margin-top:56px;transition:border-color .2s,transform .2s}
  .feature:hover{border-color:var(--seal);transform:translateY(-2px)}
  .feature .f-cov{width:100%;height:100%;display:block;border-right:1px solid var(--rule);min-height:280px}
  .feature .f-body{padding:46px 44px;display:flex;flex-direction:column;justify-content:center}
  .feature h2{font-size:clamp(25px,2.5vw,34px);margin-top:16px;line-height:1.14;letter-spacing:-.01em}
  .feature p{color:var(--ink-2);font-size:16px;margin-top:16px;line-height:1.6}
  .feature .d{font:400 11px/1 "IBM Plex Mono",monospace;color:var(--ink-2);margin-top:28px}
  .alist{margin-top:64px;border-top:1px solid var(--rule)}
  .a-row{display:grid;grid-template-columns:36px 176px 1fr 130px 26px;gap:28px;align-items:center;padding:32px 18px;border-bottom:1px solid var(--rule);text-decoration:none;margin:0 -18px;transition:background .2s}
  .a-row:hover{background:var(--white)}
  .a-cov{width:176px;height:100px;display:block;border:1px solid var(--rule);border-radius:3px;background:#EEF1F0}
  .a-ix{font:400 12px/1 "IBM Plex Mono",monospace;color:var(--ink-2)}
  .a-main h3{font-size:clamp(21px,2.1vw,28px);margin-top:12px;line-height:1.18;max-width:30ch;letter-spacing:-.01em}
  .a-main p{color:var(--ink-2);font-size:15px;margin-top:12px;max-width:62ch;line-height:1.55}
  .a-meta{font:400 11px/2 "IBM Plex Mono",monospace;color:var(--ink-2);text-align:right}
  .a-meta em{display:block;font-style:normal}
  .a-ar{font-size:18px;color:var(--ink-2);opacity:0;transform:translateX(-6px);transition:opacity .2s,transform .2s,color .2s}
  .a-row:hover .a-ar{opacity:1;transform:none;color:var(--seal)}
  @media(max-width:960px){
    .feature{grid-template-columns:1fr}
    .feature .f-cov{border-right:0;border-bottom:1px solid var(--rule);min-height:0}
    .feature .f-body{padding:32px 26px}
    .a-row{grid-template-columns:110px 1fr 24px;padding:26px 14px;margin:0 -14px;gap:16px}
    .a-cov{width:110px;height:66px}
    .a-ix,.a-meta{display:none}
  }

  /* ── article pages ── */
  .a-hero{padding:28px 0 24px}
  .a-hero .wrap{max-width:780px}
  .a-back{display:flex;width:max-content;align-items:center;gap:7px;font:500 10.5px/1 "IBM Plex Mono",monospace;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-2);text-decoration:none;margin-bottom:30px;transition:color .2s}
  .a-back:hover{color:var(--seal)}
  .a-hero h1{font:300 clamp(34px,4.6vw,52px)/1.12 "Newsreader",serif;letter-spacing:-.02em;max-width:820px;margin:16px 0 20px}
  .a-hero h1 em{font-style:italic;color:var(--seal)}
  .a-hero .lede{max-width:56ch}
  .a-meta{display:flex;align-items:center;gap:10px;margin-top:26px;font:400 10.5px/1.7 "IBM Plex Mono",monospace;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-2)}
  .a-meta i{font-style:normal;width:3px;height:3px;border-radius:50%;background:var(--rule)}
  .a-cover{padding:6px 0 0}
  .a-cover .cov-fr{border:1px solid var(--rule);background:#EEF1F0;overflow:hidden;max-width:700px;margin:0 auto}
  .a-cover svg{width:100%;height:auto;display:block}
  .a-body{max-width:700px;margin:0 auto;padding:52px 0 30px}
  .a-body p{font:400 16.5px/1.78 "IBM Plex Sans",sans-serif;color:#2C3330;margin:0 0 22px}
  .a-body p:first-of-type{font-size:19px;color:var(--ink)}
  .a-body h2{font:300 27px/1.25 "Newsreader",serif;letter-spacing:-.015em;margin:46px 0 16px}
  .a-body h2 em{font-style:italic;color:var(--seal)}
  .a-body blockquote{margin:34px 0;padding:6px 0 6px 24px;border-left:2px solid var(--seal);font:italic 400 21px/1.5 "Newsreader",serif;color:var(--seal)}
  .a-body ul{margin:0 0 22px;padding-left:20px}
  .a-body li{font:400 15.5px/1.7 "IBM Plex Sans",sans-serif;color:#2C3330;margin-bottom:10px}
  .a-body li b{color:var(--ink)}
  .a-kicker{font:500 10.5px/1 "IBM Plex Mono",monospace;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-2);margin:40px 0 12px}
  .a-table{width:100%;border-collapse:collapse;margin:8px 0 30px;font:400 12px/1.5 "IBM Plex Mono",monospace}
  .a-table th{text-align:left;font-weight:500;font-size:9.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-2);padding:9px 10px;border-bottom:1px solid var(--ink)}
  .a-table td{padding:10px;border-bottom:1px solid var(--hair);color:var(--ink)}
  .a-table td.dim{color:var(--ink-2)}
  .a-table td.pos{color:var(--seal);font-weight:500}
  .a-note{border:1px solid var(--rule);background:rgba(31,61,51,.04);padding:18px 22px;margin:28px 0;font:400 13px/1.65 "IBM Plex Sans",sans-serif;color:var(--ink-2)}
  .a-note b{color:var(--seal);font-weight:600}
  .a-more{padding:26px 0 90px}
  .a-more h2{font:300 30px/1.2 "Newsreader",serif;margin-bottom:22px}
  .a-more-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}
  .a-more-card{display:block;border:1px solid var(--rule);background:#fff;padding:22px 24px;text-decoration:none;color:var(--ink);transition:border-color .25s,transform .25s}
  .a-more-card:hover{border-color:var(--seal);transform:translateY(-3px)}
  .a-more-card .eyebrow{display:block;margin-bottom:10px}
  .a-more-card h3{font:400 19px/1.35 "Newsreader",serif;margin:0 0 8px}
  .a-more-card span.d{font:400 10px/1 "IBM Plex Mono",monospace;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-2)}
  @media (max-width:700px){.a-more-grid{grid-template-columns:1fr}.a-body{padding:40px 0 20px}}
