
*,*::before,*::after{box-sizing:border-box}
:root{
  --bg:#08080a; --panel:#0e0e12; --fg:#f2f2f4; --dim:#a3a3ad; --faint:#6e6e79;
  --line:#1e1e25; --line2:#2a2a33; --accent:#7dd3a0; --accent-dim:#3f7d5c;
  --code:#101015; --radius:14px; --on-accent:#08080a;
}
:root[data-theme=light],
html:not([data-theme]) body.light{
  /* the page is a neutral cream and panels stay white, so a card, a button and a
     code block each read as sitting on top of the page rather than merging into it.
     At #fcfcfb against #fff that separation was 1.03:1 — invisible. */
  --bg:#f1f0ef; --panel:#fff; --fg:#15151a; --dim:#55555e; --faint:#6f6f78;
  --line:#dcdad5; --line2:#c6c4be; --accent:#0f7b52; --accent-dim:#8fcfae;
  --code:#e6e4e1; --on-accent:#fff;
}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{
  margin:0;background:var(--bg);color:var(--fg);
  font:16px/1.7 ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
  -webkit-font-smoothing:antialiased;
}
.wrap{max-width:920px;margin:0 auto;padding:0 22px}
.narrow{max-width:720px}
a{color:var(--fg);text-decoration:none;border-bottom:1px solid var(--line2)}
a:hover{border-color:var(--accent);color:var(--accent)}
a.plain,a.btn,nav a{border:0}
code,pre,kbd,.mono{font-family:ui-monospace,SFMono-Regular,"SF Mono",Menlo,Consolas,monospace}
code{background:var(--code);padding:.14em .42em;border-radius:5px;font-size:.88em;
     border:1px solid var(--line)}
pre{background:var(--code);padding:15px 17px;border-radius:11px;overflow-x:auto;
    font-size:13px;line-height:1.65;margin:0;border:1px solid var(--line);color:var(--fg)}
pre code{background:none;padding:0;border:0;font-size:inherit}
hr{border:0;border-top:1px solid var(--line);margin:0}
h1,h2,h3{line-height:1.22;letter-spacing:-.024em;font-weight:620}
h2{font-size:1.5rem;margin:0 0 10px}
h3{font-size:1rem;margin:0 0 6px;letter-spacing:-.01em}
p{margin:0 0 15px}
.dim{color:var(--dim)}.faint{color:var(--faint)}
.small{font-size:.875rem}.tiny{font-size:.8rem}
.center{text-align:center}

header.top{position:sticky;top:0;z-index:20;backdrop-filter:blur(12px);
  background:color-mix(in srgb,var(--bg) 86%,transparent);border-bottom:1px solid var(--line)}
header.top .wrap{display:flex;align-items:center;gap:20px;height:56px}
header.top .brand{display:flex;align-items:center;gap:9px;font-weight:620;
  letter-spacing:-.028em;font-size:1rem}
header.top .brand .mark{width:23px;height:23px;flex:none;color:var(--accent)}
header.top .brand b{color:var(--accent);font-weight:620}
/* Both logotypes visible at once is a duplicate. The header one is revealed only
   once the hero lockup has scrolled away. JS adds .js-reveal, so with scripting
   disabled the brand is simply always visible. */
header.top .brand.js-reveal{opacity:0;transform:translateY(-6px);pointer-events:none;
  transition:opacity .22s ease,transform .22s ease}
header.top.scrolled .brand.js-reveal{opacity:1;transform:none;pointer-events:auto}
@media(prefers-reduced-motion:reduce){header.top .brand.js-reveal{transition:none}}
header.top nav{margin-left:auto;display:flex;gap:20px;font-size:.875rem}
header.top nav a{color:var(--dim)}
header.top nav a:hover{color:var(--fg)}
@media(max-width:560px){header.top nav{gap:14px;font-size:.8rem}}

/* ---- hero: same composition as the OG image ---- */
.hero{position:relative;overflow:hidden;border-bottom:1px solid var(--line);
      padding:74px 0 0}
.hero::before{content:"";position:absolute;inset:-220px -10% auto;height:680px;
  background:radial-gradient(ellipse 52% 50% at 42% 4%,
    color-mix(in srgb,var(--accent) 26%,transparent) 0%,
    color-mix(in srgb,var(--accent) 7%,transparent) 44%, transparent 72%);
  pointer-events:none}
.hero::after{content:"";position:absolute;inset:0;pointer-events:none;
  background-image:linear-gradient(var(--line) 1px,transparent 1px),
                   linear-gradient(90deg,var(--line) 1px,transparent 1px);
  background-size:52px 52px;
  mask-image:linear-gradient(#000 8%,rgba(0,0,0,.35) 55%,transparent 92%);
  -webkit-mask-image:linear-gradient(#000 8%,rgba(0,0,0,.35) 55%,transparent 92%);
  opacity:.7}
.hero .wrap{position:relative;z-index:1}

.lockup{display:flex;align-items:center;gap:14px;margin:0 0 34px}
.lockup .mark{width:44px;height:44px;flex:none;color:var(--accent);
  filter:drop-shadow(0 0 18px color-mix(in srgb,var(--accent) 45%,transparent))}
.lockup .word{font-size:1.42rem;font-weight:620;letter-spacing:-.03em}
.lockup .word b{color:var(--accent);font-weight:620}
.lockup .badge{margin:0 0 0 auto}

.hero h1{font-size:clamp(1.95rem,5.1vw,3.05rem);margin:0 0 20px;letter-spacing:-.036em;
         font-weight:640;max-width:19ch}
.hero .lede{font-size:1.04rem;color:var(--dim);max-width:60ch;margin:0 0 8px}
.hero .lede b{color:var(--fg);font-weight:600}
.badge{display:inline-block;font-size:.7rem;letter-spacing:.11em;text-transform:uppercase;
  color:var(--accent);border:1px solid var(--accent-dim);border-radius:999px;
  padding:4px 12px;font-weight:600;white-space:nowrap}

/* the two commands, in the hero, above the fold */
.quick{display:grid;gap:12px;grid-template-columns:1fr 1fr;margin:30px 0 0}
.quick3{grid-template-columns:repeat(3,1fr)}
@media(max-width:1000px){.quick3{grid-template-columns:1fr 1fr}}
@media(max-width:760px){.quick,.quick3{grid-template-columns:1fr}}
.quick .q{background:color-mix(in srgb,var(--panel) 88%,transparent);
  border:1px solid var(--line);border-radius:12px;padding:14px 15px;
  min-width:0}   /* grid items default to min-width:auto; a long <pre> then widens the column */
.quick .q h4{margin:0 0 3px;font-size:.82rem;font-weight:600;letter-spacing:-.005em}
.quick .q .sub{font-size:.74rem;color:var(--faint);margin:0 0 10px}
.quick .q pre{font-size:12.2px;padding:11px 13px;background:var(--bg);
  overflow-x:visible;white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.55;
  padding-right:74px}   /* clear the copy button so it never sits on the command */
.quick .q .more{font-size:.74rem;margin:9px 0 0}
.quick .q .more a{color:var(--dim);border:0}
.quick .q .more a:hover{color:var(--accent)}

.statrow{display:flex;flex-wrap:wrap;gap:0;margin:40px 0 0;
  border-top:1px solid var(--line);padding:22px 0 30px}
.statrow div{flex:1 1 0;min-width:96px}
.statrow b{display:block;font-size:1.34rem;font-variant-numeric:tabular-nums;
  letter-spacing:-.025em;line-height:1.2}
.statrow b.accent{color:var(--accent)}
.statrow span{font-size:.7rem;color:var(--faint);letter-spacing:.11em}
@media(max-width:620px){.statrow div{flex:1 1 33%;padding-bottom:16px;min-width:0}}
@media(max-width:420px){.statrow div{flex:1 1 50%}}
.ghbtns{display:flex;flex-wrap:wrap;gap:10px;margin:28px 0 0}
.hero .ghbtns{margin-top:26px}
.btn{display:inline-flex;align-items:center;gap:8px;border:1px solid var(--line2);
  background:var(--panel);color:var(--fg);border-radius:10px;padding:9px 16px;
  font-size:.885rem;font-weight:500;transition:border-color .15s,transform .15s}
.btn:hover{border-color:var(--accent);color:var(--fg);transform:translateY(-1px)}
.btn.primary{background:var(--accent);border-color:var(--accent);
  color:var(--on-accent);font-weight:600}
.btn.primary:hover{color:var(--on-accent);opacity:.92}
.btn svg{width:15px;height:15px;fill:currentColor;flex:none}

section.band{padding:72px 0;border-bottom:1px solid var(--line)}
section.band.alt{background:color-mix(in srgb,var(--panel) 55%,transparent)}
.eyebrow{font-size:.73rem;letter-spacing:.13em;text-transform:uppercase;color:var(--faint);
  margin:0 0 12px;font-weight:600}

/* ---- the one starting point, for people who cannot pick between four ---- */
section.band.start{background:
  linear-gradient(180deg,color-mix(in srgb,var(--accent) 7%,transparent),transparent 260px)}
section.band.start h2{max-width:19ch}
.steps{list-style:none;counter-reset:s;margin:22px 0 16px;padding:0;display:grid;gap:9px}
.steps li{counter-increment:s;position:relative;padding-left:33px;font-size:.93rem;
  color:var(--dim)}
.steps li b{color:var(--fg);font-weight:600}
.steps li::before{content:counter(s);position:absolute;left:0;top:-1px;width:22px;
  height:22px;border-radius:50%;background:var(--accent);color:var(--on-accent);font-size:.72rem;
  font-weight:700;display:grid;place-items:center}
section.band.start .copy pre{max-height:290px;overflow:auto;
  border-color:color-mix(in srgb,var(--accent) 26%,var(--line))}
@media (prefers-reduced-motion:no-preference){
  section.band.start .copy button[data-done]{transition:color .15s,border-color .15s}}

.cards{display:grid;gap:14px;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));margin:22px 0 0}
.cards>*{min-width:0}
.card{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);
      padding:20px;transition:border-color .15s}
.card:hover{border-color:var(--line2)}
.card .n{font-size:.72rem;color:var(--accent);font-weight:700;letter-spacing:.08em;
         display:block;margin:0 0 8px}
.card p{font-size:.87rem;color:var(--dim);margin:0 0 13px}
.card .who{font-size:.75rem;color:var(--faint);margin:0 0 10px}

.copy{position:relative}
.copy pre{padding-top:15px;padding-right:78px;
  /* wrap rather than scroll: a command you have to scroll to read is a command you
     cannot check before running, and horizontally scrolled text slides under the button */
  white-space:pre-wrap;overflow-wrap:anywhere;overflow-x:visible}
.copy button{position:absolute;top:7px;right:7px;font:inherit;font-size:11px;
  display:inline-flex;align-items:center;gap:5px;
  background:var(--panel);color:var(--dim);border:1px solid var(--line2);
  border-radius:7px;padding:4px 9px;cursor:pointer;
  transition:color .15s,border-color .15s,background .15s}
.copy button:hover{color:var(--fg);border-color:var(--accent);background:var(--bg)}
.copy button:focus-visible{outline:2px solid var(--accent);outline-offset:1px}
.copy button svg{width:12px;height:12px;fill:none;stroke:currentColor;stroke-width:1.7;
  stroke-linecap:round;stroke-linejoin:round;flex:none}
.copy button[data-done]{color:var(--accent);border-color:var(--accent)}
.quick .q .copy button{top:6px;right:6px}

.tools{display:grid;gap:10px;grid-template-columns:repeat(auto-fill,minmax(178px,1fr));margin:14px 0 0}
.tools>*{min-width:0}
.tool span:first-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tool{display:flex;align-items:center;gap:9px;border:1px solid var(--line);
  border-radius:10px;padding:10px 12px;background:var(--panel);font-size:.85rem}
.tool:hover{border-color:var(--accent)}
.tool .tag{margin-left:auto;font-size:.66rem;letter-spacing:.06em;text-transform:uppercase;
  color:var(--faint);border:1px solid var(--line2);border-radius:5px;padding:1px 6px;flex:none}
.tool .tag.mcp{color:var(--accent);border-color:var(--accent-dim)}
.grp{margin:0 0 30px}
.grp h3{margin:0 0 3px}
.grp p{font-size:.86rem;color:var(--dim);margin:0}

table{border-collapse:collapse;width:100%;font-size:.89rem;margin:0}
th,td{text-align:left;padding:11px 12px;border-bottom:1px solid var(--line);vertical-align:top}
tr:last-child td{border-bottom:0}
th{font-weight:600;color:var(--faint);font-size:.73rem;text-transform:uppercase;letter-spacing:.09em}
td.n,th.n{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap;color:var(--dim)}
.tbl{border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;background:var(--panel)}

.items{margin:0;padding:0;list-style:none}
.items li{padding:9px 0 9px 27px;border-bottom:1px solid var(--line);position:relative;font-size:.91rem}
.items li::before{content:"";position:absolute;left:1px;top:14px;width:11px;height:11px;
  border:1px solid var(--line2);border-radius:3px}
.items li:last-child{border-bottom:0}
.lead-in{margin:16px 0 6px;color:var(--dim);font-size:.92rem}
.sec{margin:32px 0 4px;font-size:.73rem;text-transform:uppercase;letter-spacing:.12em;
     color:var(--accent);font-weight:600}

.filter{width:100%;padding:11px 14px;border:1px solid var(--line);border-radius:11px;
  background:var(--panel);color:var(--fg);font:inherit;font-size:.9rem;margin:0}
.filter::placeholder{color:var(--faint)}
.filter:focus{outline:0;border-color:var(--accent)}

footer{padding:44px 0 72px;font-size:.85rem;color:var(--faint)}
footer a{color:var(--dim)}
.skip{position:absolute;left:-9999px}
.skip:focus{left:10px;top:10px;background:var(--panel);padding:9px 14px;border-radius:9px;z-index:99}
