  /* A copy of the crew site's stylesheet (johantor/crew, docs/style.css): keep the two in step. */
  :root{
    --bg:#f6f4ef;
    --surface:#ffffff;
    --soft:#efece4;
    --line:#e2ded4;
    --ink:#0c0c1d;
    --text:#2a2b3a;
    --muted:#5d6070;
    --accent:#2f3bff;
    --accent-ink:#ffffff;
    --accent-soft:#e3e4ff;
    --go:#0e6b55;
    --go-soft:#ddf1ea;
    --warm:#b4541f;
    --warm-soft:#fbe6d9;
    /* System fonts only: no third-party font request, so the site sends visitors nowhere. */
    --display:"Inter Tight","Inter",system-ui,-apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
    --sans:"Inter",system-ui,-apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
    --mono:"JetBrains Mono",ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
    --wrap:1120px;
    /* Terminal panels stay dark in both schemes: their text colour is fixed. */
    --term:#0c0c1d;
  }
  @media (prefers-color-scheme:dark){
    :root{
      --bg:#0e0f1a; --surface:#161827; --soft:#1c1e30; --line:#2a2d44;
      --ink:#f4f3ff; --text:#d9d9e8; --muted:#9b9db2;
      --accent:#8c93ff; --accent-ink:#0e0f1a; --accent-soft:#23264a;
      --go:#5fd3b0; --go-soft:#163a31; --warm:#f2a06e; --warm-soft:#3a2418;
      --term:#05060c;
    }
  }
  *{box-sizing:border-box}
  html{scroll-behavior:smooth}
  /* Anchor targets clear the sticky nav. */
  [id]{scroll-margin-top:88px}
  body{margin:0;background:var(--bg);color:var(--text);font:17px/1.6 var(--sans);
       -webkit-font-smoothing:antialiased}
  .wrap{max-width:var(--wrap);margin:0 auto;padding:0 24px}
  h1,h2,h3{color:var(--ink);font-family:var(--display);margin:0}
  a{color:var(--accent);text-decoration:none}
  a:hover{text-decoration:underline;text-underline-offset:3px}
  code{font-family:var(--mono);font-size:.86em}

  /* nav */
  nav{position:sticky;top:0;z-index:20;background:color-mix(in srgb,var(--bg) 88%,transparent);
      backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}
  nav .wrap{display:flex;align-items:center;gap:28px;height:64px}
  .brand{font-family:var(--display);font-weight:900;font-size:24px;letter-spacing:-.04em;color:var(--ink)}
  .brand i{font-style:normal;color:var(--accent)}
  nav ul{display:flex;gap:24px;list-style:none;margin:0 0 0 auto;padding:0;flex-wrap:wrap}
  nav a{color:var(--text);font-size:15px;font-weight:500}

  /* hero */
  header.hero{padding:96px 0 72px}
  .eyebrow{font-family:var(--sans);font-weight:700;font-size:13px;letter-spacing:.14em;
           text-transform:uppercase;color:var(--accent);margin-bottom:22px}
  h1{font-weight:900;font-size:clamp(2.8rem,8.4vw,6.2rem);line-height:.95;letter-spacing:-.045em;max-width:14ch}
  h1 em{font-style:normal;color:var(--accent)}
  .lede{max-width:40rem;margin:30px 0 0;font-size:clamp(1.08rem,2.1vw,1.3rem);color:var(--muted)}
  .lede strong{color:var(--ink);font-weight:700}

  .install{max-width:620px;margin:40px 0 0;background:var(--term);border:1px solid var(--line);border-radius:18px;overflow:hidden}
  .install pre{margin:0;padding:22px 24px 8px;font-family:var(--mono);font-size:14px;line-height:2;
               color:#e8e8f4;overflow-x:auto;white-space:pre}
  .install .p{color:#8c93ff;user-select:none}
  button.copy{margin:0 24px 18px;padding:8px 14px;border:1px solid #3a3c55;border-radius:999px;
              background:transparent;color:#e8e8f4;font:600 13px/1 var(--sans);cursor:pointer}
  button.copy:hover{background:#262840}

  .cta{margin-top:30px;display:flex;gap:12px;flex-wrap:wrap}
  .btn{display:inline-block;padding:14px 24px;border-radius:999px;font-weight:700;font-size:15px;
       border:2px solid var(--ink);color:var(--ink)}
  .btn:hover{text-decoration:none;background:var(--soft)}
  .btn.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}
  .btn.primary:hover{filter:brightness(1.08);background:var(--accent)}

  /* sections */
  section{padding:88px 0;border-top:1px solid var(--line)}
  .kicker{font-weight:700;font-size:13px;letter-spacing:.14em;text-transform:uppercase;color:var(--accent);margin-bottom:14px}
  h2{font-weight:900;font-size:clamp(2rem,5vw,3.4rem);line-height:1;letter-spacing:-.04em;max-width:18ch}
  .sec-head{margin-bottom:44px}
  .sec-head p{max-width:42rem;color:var(--muted);margin:18px 0 0;font-size:1.08rem}
  h3{font-weight:800;font-size:1.2rem;letter-spacing:-.02em}

  figure{margin:0}
  figure img{width:100%;height:auto;display:block;border-radius:20px;border:1px solid var(--line)}
  figcaption{margin-top:14px;font-size:14px;color:var(--muted)}

  /* tags */
  .tag{padding:4px 11px;border-radius:999px;font:700 11.5px/1.4 var(--sans);
       letter-spacing:.06em;text-transform:uppercase}
  .tag.beta{background:var(--warm-soft);color:var(--warm)}

  .stacks{display:flex;gap:10px;flex-wrap:wrap;margin-top:28px}
  .stacks span{padding:9px 16px;border-radius:999px;background:var(--accent-soft);color:var(--ink);
               font-weight:700;font-size:14px}

  /* lists */
  .cmds{list-style:none;padding:0;margin:0;border-top:2px solid var(--ink)}
  .cmds li{display:flex;gap:24px;flex-wrap:wrap;align-items:baseline;padding:16px 0;border-bottom:1px solid var(--line)}
  .cmds code{min-width:12rem;font-weight:700;font-size:14.5px;color:var(--ink)}
  .cmds li > span{flex:1;min-width:15rem;color:var(--muted);font-size:15.5px}
  .cmds .tag{margin-left:8px;vertical-align:2px}

  .hint{margin:14px 0 0;font-size:15px;color:var(--muted)}
  .sec-head p strong{color:var(--ink)}
  .note{margin-top:28px;padding:18px 22px;border-radius:16px;background:var(--soft);color:var(--muted);font-size:15px}

  /* layouts beyond cards: numbered steps, text beside a terminal, a checklist, a closing band */
  .steps{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(3,1fr);
         counter-reset:step;border-top:2px solid var(--ink)}
  .steps li{counter-increment:step;padding:24px 28px 8px 0}
  .steps li + li{padding-left:28px;border-left:1px solid var(--line)}
  .steps li::before{content:counter(step,decimal-leading-zero);display:block;font-family:var(--display);
                    font-weight:900;font-size:3rem;line-height:1;letter-spacing:-.04em;color:var(--accent);margin-bottom:14px}
  .steps b{display:block;color:var(--ink);font-family:var(--display);font-weight:800;font-size:1.15rem;margin-bottom:6px}
  .steps span{color:var(--muted);font-size:15.5px}

  .split{display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:center}
  .split .sec-head{margin-bottom:0}
  .checks{list-style:none;padding:0;margin:24px 0 0}
  .checks li{padding:10px 0 10px 32px;position:relative;border-bottom:1px solid var(--line);font-size:15.5px}
  .checks li::before{content:"✓";position:absolute;left:4px;color:var(--go);font-weight:900}
  .checks b{color:var(--ink)}
  .logline{margin:0;background:var(--term);border:1px solid var(--line);border-radius:18px;padding:22px 24px;
           font:13px/1.8 var(--mono);color:#e8e8f4;overflow-x:auto;white-space:pre-wrap}
  .logline .k{color:#8c93ff}
  .logline .c{color:#8b8ea6}
  .logline .x{color:#f2a06e}

  .band{display:flex;gap:24px;align-items:center;justify-content:space-between;flex-wrap:wrap;
        background:var(--accent-soft);border-radius:24px;padding:32px 36px}
  .band h2{font-size:clamp(1.6rem,3.6vw,2.4rem)}
  .band p{margin:10px 0 0;color:var(--text);max-width:36rem}

  /* a two-column spec sheet, and grouped lists */
  .spec{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:48px;border-top:2px solid var(--ink)}
  .spec div{display:flex;gap:16px;align-items:baseline;padding:14px 0;border-bottom:1px solid var(--line)}
  .spec b{min-width:10rem;color:var(--ink);font-family:var(--display);font-weight:800}
  .spec span{color:var(--muted);font-size:15px}
  .groups{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:28px;margin-top:36px}
  .groups h3{font-family:var(--sans);font-size:12.5px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;
             color:var(--muted);padding-bottom:10px;border-bottom:2px solid var(--ink)}
  .groups ul{list-style:none;padding:0;margin:0}
  .groups li{padding:10px 0;border-bottom:1px solid var(--line);font-size:14.5px;color:var(--muted)}
  .groups code{display:block;color:var(--accent);font-weight:700;font-size:14px}

  footer{border-top:1px solid var(--line);padding:56px 0 64px;color:var(--muted);font-size:14.5px}
  .flinks{display:flex;gap:24px;flex-wrap:wrap;margin-bottom:22px}
  .flinks a{color:var(--ink);font-weight:600}
  .fine{margin:0;font-size:13.5px}
  .fine + .fine{margin-top:6px}

  @media (max-width:900px){
    .split{grid-template-columns:1fr;gap:28px}
    .groups{grid-template-columns:1fr 1fr}
    .spec{grid-template-columns:1fr}
  }
  @media (max-width:640px){
    header.hero{padding:60px 0 48px}
    section{padding:60px 0}
    nav .wrap{height:auto;padding-top:12px;padding-bottom:12px;flex-wrap:wrap;gap:12px}
    nav ul{gap:16px;margin-left:0}
    .cmds code{min-width:auto}
    [id]{scroll-margin-top:160px}
    .steps{grid-template-columns:1fr}
    .steps li + li{padding-left:0;border-left:0;border-top:1px solid var(--line)}
    .groups{grid-template-columns:1fr}
    .spec b{min-width:7rem}
    .band{padding:24px}
  }
  @media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
