:root{
    --blue:#2f80c4; --teal:#37a6cf; --green:#74b53f;
    --hero:#0a0e14; --hero-fg:#e9eef5; --hero-muted:#8b98a8; --hero-line:#1e2733;
    --accent:#3f9ed4;
    --bg:#fff; --fg:#101720; --muted:#5b6673; --card:#f7fafc; --border:#e3eaf2;
    --code-bg:#0d141c; --code-fg:#dbe6f0; --shadow:0 1px 2px rgba(16,23,32,.05),0 12px 32px -12px rgba(16,23,32,.16);
    --radius:14px; --maxw:1060px;
  }
  @media (prefers-color-scheme:dark){
    :root{
      --bg:#0d1117; --fg:#e6edf3; --muted:#98a4b3; --card:#151b23; --border:#232c37;
      --accent:#54b3e0; --shadow:0 1px 2px rgba(0,0,0,.4),0 12px 32px -12px rgba(0,0,0,.6);
    }
  }
  *,*::before,*::after{box-sizing:border-box}
  html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
  @media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{animation:none!important;transition:none!important}}
  body{
    margin:0;background:var(--bg);color:var(--fg);
    font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
    line-height:1.65;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;
  }
  .wrap{max-width:var(--maxw);margin-inline:auto;padding-inline:22px}
  a{color:var(--accent)}
  code,kbd{font-family:ui-monospace,SFMono-Regular,"SF Mono",Menlo,Consolas,"Liberation Mono",monospace}
  .skip{position:absolute;left:-9999px;top:0;background:var(--accent);color:#fff;padding:10px 16px;z-index:100;border-radius:0 0 8px 0}
  .skip:focus{left:0}
  :focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:6px}

  /* ---------- header ---------- */
  .nav{background:var(--hero);border-bottom:1px solid var(--hero-line)}
  .nav .wrap{display:flex;align-items:center;gap:14px;min-height:62px}
  .brand{display:flex;align-items:center;gap:10px;text-decoration:none;color:var(--hero-fg);font-weight:700;letter-spacing:-.01em;margin-right:auto}
  .brand img{width:28px;height:30px;display:block}
  .nav nav{display:flex;gap:6px;flex-wrap:wrap}
  .nav nav a{color:var(--hero-muted);text-decoration:none;font-size:.9rem;font-weight:600;padding:7px 11px;border-radius:8px;transition:color .15s,background .15s}
  .nav nav a:hover{color:var(--hero-fg);background:#151d28}

  /* ---------- hero ---------- */
  .hero{
    background:var(--hero);color:var(--hero-fg);position:relative;overflow:hidden;
    padding:clamp(46px,7vw,76px) 0 clamp(50px,7vw,74px);
  }
  .hero::before{
    content:"";position:absolute;inset:-40% 0 auto;height:120%;pointer-events:none;
    background:radial-gradient(ellipse 62% 52% at 50% 0,rgba(55,166,207,.16),transparent 68%);
  }
  .hero .wrap{position:relative}
  .hero-top{display:flex;flex-direction:column;align-items:center;text-align:center}
  .hero img.mark{width:clamp(74px,11vw,96px);height:auto;filter:drop-shadow(0 8px 22px rgba(0,0,0,.5))}
  h1{
    font-size:clamp(2rem,5.4vw,3.15rem);line-height:1.1;letter-spacing:-.032em;font-weight:800;
    margin:20px 0 0;max-width:16ch;
  }
  .grad{background:linear-gradient(96deg,var(--blue),var(--teal) 46%,var(--green));-webkit-background-clip:text;background-clip:text;color:transparent}
  .lede{color:var(--hero-muted);font-size:clamp(1rem,1.9vw,1.14rem);max-width:52ch;margin:16px auto 0}

  /* ---------- installer ---------- */
  .installer{max-width:760px;margin:34px auto 0;text-align:left}
  .tabs{display:flex;gap:4px;background:#111926;border:1px solid var(--hero-line);border-radius:11px;padding:4px;overflow-x:auto;scrollbar-width:none}
  .tabs::-webkit-scrollbar{display:none}
  .tabs button{
    flex:1 0 auto;appearance:none;border:0;background:transparent;color:var(--hero-muted);
    font:inherit;font-size:.855rem;font-weight:650;padding:9px 15px;border-radius:8px;cursor:pointer;white-space:nowrap;
    transition:background .15s,color .15s;
  }
  .tabs button:hover{color:var(--hero-fg)}
  .tabs button[aria-selected=true]{background:#20293a;color:#fff;box-shadow:0 1px 2px rgba(0,0,0,.35)}
  .term{
    position:relative;margin-top:10px;background:#080c12;border:1px solid var(--hero-line);
    border-radius:12px;overflow:hidden;
  }
  .term-bar{
    display:flex;align-items:center;gap:8px;padding:9px 12px;border-bottom:1px solid var(--hero-line);
    background:#0c121a;
  }
  .term-bar .dots{display:flex;gap:6px}
  .term-bar .dots i{width:10px;height:10px;border-radius:50%;background:#222d3d;display:block}
  .term-bar .label{font-size:.74rem;color:#63707f;font-weight:600;letter-spacing:.04em;text-transform:uppercase;margin-right:auto;font-family:ui-monospace,monospace}
  .copy{
    appearance:none;border:1px solid var(--hero-line);background:#141c27;color:#a9b7c6;
    font:inherit;font-size:.76rem;font-weight:650;padding:4px 11px;border-radius:7px;cursor:pointer;
    transition:background .15s,color .15s,border-color .15s;
  }
  .copy:hover{background:#1c2634;color:#fff}
  .copy.done{color:var(--green);border-color:#2e4526}
  .term pre{
    margin:0;padding:16px 18px;overflow-x:auto;font-size:.845rem;line-height:1.75;
    color:var(--code-fg);font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
  }
  .term pre .p{color:#4d5c6b;user-select:none}
  .term pre .c{color:#5f6f7e}
  .term [hidden]{display:none}
  .note-line{margin:11px 2px 0;font-size:.82rem;color:var(--hero-muted)}
  .note-line a{color:var(--teal)}

  /* ---------- facts ---------- */
  .facts{
    display:flex;flex-wrap:wrap;justify-content:center;gap:10px;
    margin:30px auto 0;max-width:760px;
  }
  .fact{
    display:inline-flex;align-items:baseline;gap:7px;background:#111926;border:1px solid var(--hero-line);
    border-radius:999px;padding:6px 15px;font-size:.8rem;color:var(--hero-muted);
  }
  .fact b{color:var(--hero-fg);font-weight:700;font-size:.86rem}

  /* ---------- sections ---------- */
  section{padding:clamp(52px,7vw,80px) 0}
  .eyebrow{
    font-size:.76rem;font-weight:700;letter-spacing:.13em;text-transform:uppercase;
    color:var(--accent);margin:0 0 8px;
  }
  h2{font-size:clamp(1.5rem,3.2vw,2rem);letter-spacing:-.025em;margin:0;font-weight:750;line-height:1.2}
  .sec-lede{color:var(--muted);margin:12px 0 0;max-width:56ch}

  .cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(290px,1fr));gap:18px;margin-top:30px}
  .proj{
    display:flex;flex-direction:column;background:var(--card);border:1px solid var(--border);
    border-radius:var(--radius);padding:24px;transition:transform .16s ease,box-shadow .16s ease,border-color .16s;
  }
  .proj:hover{transform:translateY(-3px);box-shadow:var(--shadow);border-color:color-mix(in srgb,var(--accent) 40%,var(--border))}
  .proj-head{display:flex;align-items:center;gap:11px}
  .proj-ico{
    width:38px;height:38px;flex:none;border-radius:10px;display:grid;place-items:center;font-size:1.15rem;
    background:linear-gradient(140deg,rgba(47,128,196,.16),rgba(116,181,63,.16));border:1px solid var(--border);
  }
  .proj h3{margin:0;font-size:1.1rem;letter-spacing:-.015em}
  .proj p{color:var(--muted);font-size:.94rem;margin:13px 0 0;flex:1}
  .meta{display:flex;flex-wrap:wrap;gap:6px;margin-top:15px}
  .meta span{
    font-size:.71rem;font-weight:650;color:var(--muted);background:var(--bg);
    border:1px solid var(--border);border-radius:6px;padding:3px 8px;font-family:ui-monospace,monospace;
  }
  .links{display:flex;gap:16px;flex-wrap:wrap;margin-top:18px;font-size:.9rem;font-weight:650}
  .links a{text-decoration:none}
  .links a:hover{text-decoration:underline}
  .proj.soon{border-style:dashed;background:transparent;justify-content:center;align-items:flex-start}
  .proj.soon:hover{transform:none;box-shadow:none;border-color:var(--border)}

  .trust{background:var(--card);border-block:1px solid var(--border)}
  .tgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:26px;margin-top:30px}
  .tgrid h3{margin:0 0 6px;font-size:1rem;letter-spacing:-.01em}
  .tgrid p{margin:0;color:var(--muted);font-size:.92rem}
  .tgrid .ico{font-size:1.3rem;line-height:1;margin-bottom:11px;display:block}
  .fp{font-family:ui-monospace,monospace;font-size:.78rem;word-break:break-all;color:var(--muted)}

  footer{border-top:1px solid var(--border);padding:34px 0 56px;color:var(--muted);font-size:.88rem}
  footer .wrap{display:flex;flex-wrap:wrap;gap:12px 26px;align-items:center}
  footer nav{display:flex;gap:18px;flex-wrap:wrap;margin-left:auto}
  footer a{text-decoration:none}
  footer a:hover{text-decoration:underline}
  .fine{width:100%;margin:0;font-size:.82rem;opacity:.8}

/* ---------- article / install guide ---------- */
.doc{max-width:820px;margin-inline:auto}
.doc h2{margin:52px 0 0}
.doc h2:first-of-type{margin-top:0}
.doc h3{font-size:1.06rem;letter-spacing:-.012em;margin:30px 0 0}
.doc p{margin:13px 0 0;color:var(--fg)}
.doc p.muted{color:var(--muted);font-size:.92rem}
.doc ul{margin:13px 0 0;padding-left:1.15em;color:var(--muted)}
.doc li{margin:5px 0}
.doc :is(h2,h3)+p{margin-top:9px}
.doc code:not(pre code){
  background:var(--card);border:1px solid var(--border);border-radius:5px;
  padding:1px 5px;font-size:.87em;
}
.block{
  margin-top:14px;background:var(--code-bg);border:1px solid #1d2732;border-radius:12px;
  position:relative;overflow:hidden;
}
.block pre{
  margin:0;padding:15px 17px;overflow-x:auto;color:var(--code-fg);font-size:.845rem;line-height:1.7;
  font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
}
.block pre .p{color:#4d5c6b;user-select:none}
.block pre .c{color:#5f6f7e}
.callout{
  margin-top:18px;background:var(--card);border:1px solid var(--border);
  border-left:3px solid var(--accent);border-radius:0 10px 10px 0;padding:15px 18px;
}
.callout p{margin:0;font-size:.92rem;color:var(--muted)}
.callout strong{color:var(--fg)}
.dl{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px;margin-top:16px}
.dl a{
  display:block;background:var(--card);border:1px solid var(--border);border-radius:11px;
  padding:15px 17px;text-decoration:none;color:var(--fg);transition:border-color .16s,transform .16s;
}
.dl a:hover{border-color:color-mix(in srgb,var(--accent) 45%,var(--border));transform:translateY(-2px)}
.dl b{display:block;font-size:.96rem;letter-spacing:-.01em}
.dl span{display:block;color:var(--muted);font-size:.8rem;margin-top:3px;font-family:ui-monospace,monospace}
.toc{
  display:flex;flex-wrap:wrap;gap:8px;margin:0 0 34px;padding:0;list-style:none;
}
.toc a{
  display:inline-block;font-size:.82rem;font-weight:650;text-decoration:none;color:var(--muted);
  background:var(--card);border:1px solid var(--border);border-radius:999px;padding:5px 13px;
  transition:color .15s,border-color .15s;
}
.toc a:hover{color:var(--accent);border-color:color-mix(in srgb,var(--accent) 45%,var(--border))}
.hero.compact{padding:clamp(38px,5.5vw,58px) 0 clamp(34px,5vw,48px)}
.hero.compact h1{max-width:20ch}
