:root{
  /* navy + magenta — matched to the bobs-wiki logo. --teal/--teal-bright are
     aliased to magenta so every existing accent rule recolours automatically. */
  --ink:#16264f; --ink-900:#0c1430; --magenta:#c81e63; --accent:#c81e63; --accent-bright:#ec4f9b;
  --teal:#c81e63; --teal-bright:#ec4f9b;
  --body:#34404f; --muted:#6a7488; --paper:#eef0f5; --card:#fff; --line:#e4e6ef;
  --code-bg:#121a3a; --shadow:0 8px 30px rgba(20,20,50,.08); --shadow-sm:0 2px 10px rgba(20,20,50,.05);
  --r:14px; --sb:266px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--paper);color:var(--body);
  font:400 16.5px/1.68 "Inter",system-ui,sans-serif;-webkit-font-smoothing:antialiased}
a{color:var(--teal);text-decoration:none}
a:hover{text-decoration:underline}
.layout{display:flex;align-items:flex-start;min-height:100vh}

/* sidebar */
.sidebar{width:var(--sb);flex:none;position:sticky;top:0;align-self:stretch;height:100vh;overflow:auto;
  background:linear-gradient(175deg,#0c1430 0%,#1c1740 55%,#3a1542 100%);color:#cdd0e0;padding:22px 18px 40px}
.brand{display:block;margin:2px 0 16px}
.brand img{width:100%;max-width:184px;height:auto;border-radius:16px;display:block;margin:0 auto;
  box-shadow:0 6px 20px rgba(0,0,0,.30)}
.nav{margin-top:8px}
.nav a{display:block;color:#b6c8d4;padding:5px 9px;border-radius:8px;font-size:14px;text-decoration:none}
.nav a:hover{background:rgba(255,255,255,.06);color:#fff}
.nav a.active{background:var(--teal);color:#fff;font-weight:600}
.nav details{margin:1px 0}
.nav summary{list-style:none;cursor:pointer;display:flex;align-items:center;gap:7px;
  padding:5px 9px;border-radius:8px;color:#c4d3dd;font:600 13.5px/1.3 "Inter"}
.nav summary::-webkit-details-marker{display:none}
.nav summary::before{content:"▸";font-size:9px;color:#5f7b8c;transition:transform .15s ease;flex:none}
.nav details[open] > summary::before{transform:rotate(90deg)}
.nav summary:hover{background:rgba(255,255,255,.05);color:#fff}
.nav .children{margin-left:11px;border-left:1px solid #234055;padding-left:7px}

/* main + hero */
.main{flex:1;min-width:0;display:block;padding:0 0 80px}
.eyebrow{font:600 12px/1 "Inter";letter-spacing:.16em;text-transform:uppercase;display:inline-block}
.page-hero{position:relative;overflow:hidden;color:#eef1f5;padding:56px 48px 50px;
  background:radial-gradient(120% 150% at 88% -10%,rgba(236,79,155,.34) 0%,transparent 52%),
             linear-gradient(150deg,#101d40 0%,#2a1c46 52%,#6e1d50 100%)}
.page-hero .inner{max-width:780px;margin:0 auto;position:relative;z-index:1}
.page-hero .eyebrow{color:#f178b0;margin-bottom:13px}
.page-hero h1{font-family:"Poppins";color:#fff;font-weight:800;letter-spacing:-.015em;
  font-size:clamp(2rem,4.4vw,3rem);line-height:1.04;margin:0}
.page-hero .lede{max-width:62ch;margin:.8em 0 0;color:#b9cad6;font-size:1.12rem;line-height:1.55}
.page-hero .meta{display:flex;flex-wrap:wrap;gap:8px 20px;margin-top:18px;
  font:500 13px/1 "JetBrains Mono",monospace;color:#8aa1b0}
.page-hero .meta b{color:#cfe0ea;font-weight:600}
.page-hero .meta .tag{color:#9fd8d4}
.page-hero .chev{position:absolute;right:-46px;bottom:-60px;width:320px;opacity:.10;z-index:0}
.content{max-width:780px;margin:0 auto;padding:40px 48px 0}
.content > :first-child{margin-top:0}
.content h1,.content h2,.content h3{font-family:"Poppins";color:var(--ink);letter-spacing:-.01em;line-height:1.2}
.content h1{font-size:clamp(2rem,4vw,2.6rem);font-weight:800;margin:0 0 .5em}
.content h2{font-size:1.5rem;font-weight:700;margin:1.9em 0 .55em;position:relative;padding-left:15px}
.content h2::before{content:"";position:absolute;left:0;top:.2em;bottom:.2em;width:4px;border-radius:3px;
  background:linear-gradient(180deg,var(--ink),var(--magenta))}
.content h3{font-size:1.16rem;font-weight:700;margin:1.5em 0 .4em}
.content p{margin:0 0 1.05em}
.content ul,.content ol{margin:0 0 1.1em;padding-left:1.3em}
.content li{margin:.3em 0}
.content hr{border:0;border-top:1px solid var(--line);margin:2em 0}
.content strong{color:var(--ink);font-weight:600}
.content blockquote{margin:1.2em 0;padding:14px 18px;background:#fff;border:1px solid var(--line);
  border-left:4px solid var(--teal);border-radius:12px;color:#3c4d5b;box-shadow:var(--shadow-sm)}
.content blockquote p:last-child{margin:0}
.content code{font-family:"JetBrains Mono",monospace;font-size:.86em;background:#e9eef1;color:#0e3a5c;
  padding:.12em .4em;border-radius:6px}
.content pre{background:var(--code-bg);color:#dce8f1;border-radius:var(--r);padding:18px 20px;overflow:auto;
  box-shadow:var(--shadow);margin:1.2em 0;font-size:13.5px;line-height:1.55}
.content pre code{background:none;color:inherit;padding:0;font-size:13.5px}
.content table{width:100%;border-collapse:collapse;background:#fff;border:1px solid var(--line);
  border-radius:var(--r);overflow:hidden;box-shadow:var(--shadow-sm);margin:1.2em 0;font-size:.95rem}
.content th{background:var(--ink);color:#dfeaf1;text-align:left;font:600 12px/1.3 "Inter";
  letter-spacing:.05em;text-transform:uppercase;padding:12px 16px}
.content td{padding:11px 16px;border-top:1px solid var(--line);vertical-align:top}
.content tr:nth-child(even) td{background:#fafbfc}

/* related chips */
.content .chips{display:flex;flex-wrap:wrap;gap:10px;margin:.3em 0 1.3em;padding:0}
.content .chips .chip{font-family:"JetBrains Mono",monospace;font-size:13px;background:#fff;
  border:1px solid var(--line);border-radius:999px;padding:7px 13px;box-shadow:var(--shadow-sm);color:var(--ink)}
.content .chips .chip a{color:var(--ink)}
.content .chips .chip a:hover{color:var(--teal);text-decoration:none}

/* mermaid */
.mermaid-card{background:#fff;border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow);
  padding:16px;margin:1.4em 0;overflow:auto}
.mermaid-card .mermaid{min-width:520px;text-align:center}

.kicker{display:inline-block;color:var(--magenta);font:600 12px/1 "Inter";letter-spacing:.16em;
  text-transform:uppercase;margin-bottom:12px}
.pagefoot{margin-top:54px;padding-top:20px;border-top:1px solid var(--line);color:var(--muted);
  font:500 13px/1.5 "JetBrains Mono",monospace}

:focus-visible{outline:3px solid var(--teal);outline-offset:3px;border-radius:4px}
@media (max-width:900px){
  .layout{flex-direction:column}
  .sidebar{position:static;width:100%;height:auto}
  .main{padding:0 0 60px}
  .page-hero{padding:34px 22px 30px}
  .content{padding:28px 22px 0}
}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
