/* ============================================================
   Blueprint — design system
   Warm editorial paper + saturated category inks.
   Fonts: Fraunces (display) · Instrument Sans (body) · Spline Sans Mono (labels)
   Every colour lives in :root. Never hardcode a hex below the token block.
   ============================================================ */

:root{
  --bg:#FBF7F0;
  --surface:#FFFFFF;
  --surface-2:#F4EEE3;
  --ink:#211B12;
  --ink-2:#4E463A;
  --muted:#877C6C;
  --line:#E6DCCB;
  --line-strong:#D5C8B2;

  /* category inks */
  --violet:#6D3AE0; --violet-bg:#EFE9FC; --violet-line:#D8CBF6;
  --pink:#D63384;   --pink-bg:#FBE8F1;   --pink-line:#F3CCDF;
  --coral:#D9482B;  --coral-bg:#FBEAE4;  --coral-line:#F3CFC3;
  --teal:#0E7C6B;   --teal-bg:#E4F2EE;   --teal-line:#C4E2DA;
  --green:#3E7C1F;  --green-bg:#EBF2E2;  --green-line:#D2E3BE;
  --blue:#1F5FD6;   --blue-bg:#E7EEFB;   --blue-line:#C9D9F4;
  --amber:#A96A00;  --amber-bg:#F9EFDC;  --amber-line:#EDDCB8;

  /* failure / warning — reserved, never a category */
  --red:#C22B20; --red-bg:#FAE7E3;

  --radius:14px;
  --radius-sm:9px;
  --shadow:0 1px 2px rgba(33,27,18,.05), 0 8px 28px -12px rgba(33,27,18,.14);
  --shadow-lift:0 2px 4px rgba(33,27,18,.06), 0 18px 44px -16px rgba(33,27,18,.22);
  --font-display:"Fraunces",Georgia,serif;
  --font-body:"Instrument Sans",-apple-system,"Segoe UI",sans-serif;
  --font-mono:"Spline Sans Mono",ui-monospace,SFMono-Regular,Menlo,monospace;
  --wrap:1120px;
  --col:56rem;
}

[data-theme="dark"]{
  --bg:#171310;
  --surface:#201B15;
  --surface-2:#2A241C;
  --ink:#F0E9DC;
  --ink-2:#C9BFAD;
  --muted:#95897A;
  --line:#332C21;
  --line-strong:#453C2E;

  --violet:#B79AF5; --violet-bg:#2A2140; --violet-line:#463663;
  --pink:#F286BC;   --pink-bg:#3B1F2E;   --pink-line:#5D3247;
  --coral:#F58E71;  --coral-bg:#3D2118;  --coral-line:#5F3527;
  --teal:#5FC4B0;   --teal-bg:#15302A;   --teal-line:#254D44;
  --green:#93C46A;  --green-bg:#22301A;  --green-line:#394D2B;
  --blue:#84ABF2;   --blue-bg:#1B2740;   --blue-line:#2D4165;
  --amber:#E3AE4E;  --amber-bg:#382B14;  --amber-line:#584422;

  --red:#F08578; --red-bg:#3D1E19;

  --shadow:0 1px 2px rgba(0,0,0,.4), 0 8px 28px -12px rgba(0,0,0,.5);
  --shadow-lift:0 2px 4px rgba(0,0,0,.4), 0 18px 44px -16px rgba(0,0,0,.6);
}

*{box-sizing:border-box;margin:0;padding:0;min-width:0}
html{scroll-behavior:smooth;overflow-x:hidden}
html:focus-within{scroll-behavior:smooth}
body{
  background:var(--bg);color:var(--ink);
  font-family:var(--font-body);font-size:16.5px;line-height:1.68;
  -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;
  overflow-x:hidden;
}
::selection{background:var(--amber-bg);color:var(--ink)}
img,svg{max-width:100%;display:block}
a{color:inherit}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}

h1,h2,h3{font-family:var(--font-display);font-weight:640;letter-spacing:-.01em;line-height:1.12;text-wrap:balance;overflow-wrap:anywhere;min-width:0;max-width:100%}
h1{font-size:clamp(2.5rem,5.4vw,3.9rem);font-variation-settings:"opsz" 60}
h2{font-size:clamp(1.6rem,2.8vw,2.15rem);font-variation-settings:"opsz" 40}
h3{font-size:1.22rem;font-weight:600}
h4{font-family:var(--font-body);font-weight:650;font-size:1.02rem}

.mono{font-family:var(--font-mono)}
.eyebrow{
  font-family:var(--font-mono);font-size:.74rem;letter-spacing:.14em;
  text-transform:uppercase;color:var(--muted);font-weight:500;
}
.wrap{max-width:var(--wrap);margin:0 auto;padding:0 clamp(1rem,4vw,2.2rem);width:100%}
@media(max-width:760px){
  .wrap{padding-left:1.15rem;padding-right:1.15rem}
  .qgrid{grid-template-columns:1fr;gap:.85rem}
  .cgrid{grid-template-columns:1fr;gap:.75rem}
  .banner{padding:1.4rem 0}
  .banner .banner-inner{padding:1.2rem 1.1rem;gap:1rem}
  .banner .banner-zeros{font-size:1.1rem;gap:.7rem}
  .page-head{padding:1.4rem 0 1rem}
  .page-head h1{max-width:100%;font-size:clamp(1.7rem,6.5vw,2.4rem);text-wrap:wrap;word-break:break-word;overflow-wrap:anywhere;letter-spacing:0}
  .page-head .tagline{font-size:1rem;word-break:break-word;overflow-wrap:anywhere}
  h1,h2,h3{overflow-wrap:anywhere;text-wrap:wrap}
  p,li{overflow-wrap:anywhere}
  code{word-break:break-all}
  pre{overflow-x:auto;max-width:100%}
  .qcard,.ccard{padding:1rem 1.05rem}
  .hero{padding:2rem 0 1.4rem}
  .hero .hero-stats{gap:1rem;flex-wrap:wrap}
  .section{padding:1.8rem 0}
  .article{padding:0;width:100%;min-width:0}
  .layout{padding-top:1.4rem;padding-bottom:2.4rem}
  .figure{margin:1rem 0}
  .phase-figure{margin:1rem 0}
  .step{margin-bottom:1.4rem}
  .dive{max-width:100%}
  .dive-head{gap:.5rem}
  .clogos{gap:.4rem}
  .clogo{width:20px;height:20px}
  .freq{font-size:.62rem;padding:.14rem .4rem}
  .api-row{flex-direction:column;align-items:flex-start;gap:.3rem}
  .tradeoff{flex-direction:column;align-items:flex-start;gap:.35rem}
  footer .wrap{flex-direction:column;gap:.9rem;align-items:flex-start;padding-top:1.4rem;padding-bottom:1.4rem}
}
@media(max-width:420px){
  .wrap{padding-left:1rem;padding-right:1rem}
  h1{font-size:clamp(1.8rem,8vw,2.4rem)}
  .qcard h3,.ccard h3{font-size:1.05rem}
}
.figure{max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}
.figure svg{max-width:100%;height:auto;display:block}
.phase-figure{overflow-x:auto}

/* ---------- category paint helpers ---------- */
.c-violet{--c:var(--violet);--c-bg:var(--violet-bg);--c-line:var(--violet-line)}
.c-pink  {--c:var(--pink);  --c-bg:var(--pink-bg);  --c-line:var(--pink-line)}
.c-coral {--c:var(--coral); --c-bg:var(--coral-bg); --c-line:var(--coral-line)}
.c-teal  {--c:var(--teal);  --c-bg:var(--teal-bg);  --c-line:var(--teal-line)}
.c-green {--c:var(--green); --c-bg:var(--green-bg); --c-line:var(--green-line)}
.c-blue  {--c:var(--blue);  --c-bg:var(--blue-bg);  --c-line:var(--blue-line)}
.c-amber {--c:var(--amber); --c-bg:var(--amber-bg); --c-line:var(--amber-line)}

.chip{
  display:inline-flex;align-items:center;gap:.4em;
  font-family:var(--font-mono);font-size:.72rem;letter-spacing:.06em;
  color:var(--c,var(--muted));background:var(--c-bg,var(--surface-2));
  border:1px solid var(--c-line,var(--line));
  padding:.24em .7em;border-radius:99px;white-space:nowrap;
}
.chip::before{content:"";width:.5em;height:.5em;border-radius:50%;background:var(--c,var(--muted))}
.chip.plain::before{display:none}

/* ---------- top nav ---------- */
.topnav{
  position:sticky;top:0;z-index:50;
  background:color-mix(in srgb,var(--bg) 92%,transparent);
  backdrop-filter:saturate(1.2) blur(10px);
  border-bottom:1px solid var(--line);
}
.topnav .wrap{display:flex;align-items:center;gap:1.4rem;height:62px}
.brand{display:flex;align-items:center;gap:.6rem;font-family:var(--font-display);font-weight:640;font-size:1.18rem;text-decoration:none}
.brand svg{width:26px;height:26px}
.navlinks{display:flex;gap:1.15rem;margin-left:auto;align-items:center}
.navlinks a{font-size:.92rem;color:var(--ink-2);text-decoration:none;padding:.3em 0;border-bottom:2px solid transparent}
.navlinks a:hover{color:var(--ink)}
.navlinks a[aria-current="page"]{color:var(--ink);border-bottom-color:var(--amber)}
.navbtn{
  display:inline-flex;align-items:center;gap:.45em;
  font-family:var(--font-mono);font-size:.78rem;color:var(--muted);
  border:1px solid var(--line-strong);border-radius:8px;padding:.35em .7em;
  background:var(--surface);
}
.navbtn:hover{color:var(--ink);border-color:var(--muted)}
.navbtn kbd{font-family:inherit;font-size:.9em;border:1px solid var(--line);border-radius:4px;padding:0 .35em;background:var(--surface-2)}
@media(max-width:760px){
  .topnav .wrap{height:auto;flex-wrap:wrap;gap:.4rem .9rem;padding-top:.6rem;padding-bottom:.6rem}
  .brand{font-size:1.06rem}
  .navlinks{gap:.75rem}
  .navlinks a{font-size:.86rem;white-space:nowrap}
  .navbtn kbd{display:none}
}

/* ---------- hero ---------- */
.hero{padding:clamp(3rem,7vw,5.5rem) 0 clamp(2.2rem,5vw,3.6rem)}
.hero .eyebrow{margin-bottom:1.1rem}
.hero h1 em{font-style:italic;font-variation-settings:"opsz" 60;color:var(--coral)}
.hero h1 .u{position:relative;white-space:nowrap}
.hero h1 .u svg{position:absolute;left:0;right:0;bottom:-.12em;width:100%;height:.32em;overflow:visible}
.hero h1 .u path{fill:none;stroke:var(--amber);stroke-width:5;stroke-linecap:round}
.hero p.lede{max-width:38rem;font-size:1.16rem;color:var(--ink-2);margin:1.4rem 0 2rem}
.cta-row{display:flex;gap:.9rem;flex-wrap:wrap;align-items:center}
.btn{
  display:inline-flex;align-items:center;gap:.5em;text-decoration:none;
  font-weight:600;font-size:.98rem;border-radius:11px;padding:.72em 1.25em;
  border:1px solid transparent;transition:transform .15s ease, box-shadow .15s ease;
}
.btn:hover{transform:translateY(-1px)}
.btn-primary{background:var(--ink);color:var(--bg)}
.btn-primary:hover{box-shadow:var(--shadow-lift)}
.btn-ghost{border-color:var(--line-strong);background:var(--surface);color:var(--ink)}
.btn-ghost:hover{border-color:var(--muted)}
.hero-stats{
  display:flex;gap:2.4rem;flex-wrap:wrap;margin-top:2.8rem;
  border-top:1px solid var(--line);padding-top:1.4rem;
}
.hero-stats .stat b{display:block;font-family:var(--font-display);font-size:1.7rem;font-weight:640}
.hero-stats .stat span{font-size:.85rem;color:var(--muted)}

/* ---------- sections ---------- */
.section{padding:clamp(2.4rem,5vw,4rem) 0}
.section-head{display:flex;align-items:baseline;gap:1rem;justify-content:space-between;flex-wrap:wrap;margin-bottom:1.8rem}
.section-head p{color:var(--muted);font-size:.95rem;max-width:34rem}

/* ---------- filter row ---------- */
.filters{display:flex;gap:.5rem;flex-wrap:wrap;margin-bottom:1.6rem}
.filters button{
  font-family:var(--font-mono);font-size:.76rem;letter-spacing:.04em;
  padding:.38em .85em;border-radius:99px;border:1px solid var(--line-strong);
  color:var(--ink-2);background:var(--surface);
}
.filters button:hover{border-color:var(--muted)}
.filters button[aria-pressed="true"]{background:var(--ink);color:var(--bg);border-color:var(--ink)}

/* ---------- question cards ---------- */
.qgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:1rem}
.qcard{
  position:relative;display:flex;flex-direction:column;gap:.55rem;
  background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);
  padding:1.15rem 1.25rem 1.05rem;text-decoration:none;
  box-shadow:var(--shadow);
  transition:transform .16s ease, box-shadow .16s ease, border-color .16s ease;
  overflow:hidden;
}
.qcard::before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:var(--c)}
.qcard:hover{transform:translateY(-3px);box-shadow:var(--shadow-lift);border-color:var(--c-line)}
.qcard .row{display:flex;align-items:center;gap:.6rem;flex-wrap:wrap}
.qcard .num{font-family:var(--font-mono);font-size:.74rem;color:var(--muted)}
.qcard h3{font-size:1.16rem;margin-top:.1rem}
.qcard p{font-size:.9rem;color:var(--ink-2);line-height:1.5}
.qcard .meta{display:flex;align-items:center;gap:.9rem;margin-top:auto;padding-top:.5rem;font-family:var(--font-mono);font-size:.72rem;color:var(--muted)}
.dots{display:inline-flex;gap:3px;align-items:center}
.dots i{width:7px;height:7px;border-radius:50%;background:var(--line-strong)}
.dots i.on{background:var(--c)}

/* ---------- concept cards ---------- */
.cgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:.85rem}
.ccard{
  display:flex;flex-direction:column;gap:.4rem;background:var(--surface);
  border:1px solid var(--line);border-radius:var(--radius-sm);
  padding:.95rem 1.05rem;text-decoration:none;box-shadow:var(--shadow);
  transition:transform .16s ease, box-shadow .16s ease, border-color .16s ease;
}
.ccard:hover{transform:translateY(-2px);box-shadow:var(--shadow-lift);border-color:var(--c-line)}
.ccard h3{font-family:var(--font-body);font-weight:650;font-size:1rem}
.ccard p{font-size:.85rem;color:var(--ink-2);line-height:1.5}
.ccard .tag{font-family:var(--font-mono);font-size:.68rem;color:var(--c);letter-spacing:.06em}

/* ---------- article (question / concept pages) ---------- */
.page-head{padding:clamp(2.2rem,5vw,3.4rem) 0 1.6rem;border-bottom:1px solid var(--line)}
.page-head .crumbs{font-family:var(--font-mono);font-size:.76rem;color:var(--muted);margin-bottom:1rem}
.page-head .crumbs a{color:inherit;text-decoration:none}
.page-head .crumbs a:hover{color:var(--ink)}
.page-head h1{max-width:20ch}
.page-head .tagline{margin-top:.9rem;font-size:1.12rem;color:var(--ink-2);max-width:36rem}
.page-head .meta-row{display:flex;gap:.6rem;flex-wrap:wrap;align-items:center;margin-top:1.2rem}
.page-head .meta-row .m{font-family:var(--font-mono);font-size:.74rem;color:var(--muted)}

.layout{display:grid;grid-template-columns:minmax(0,1fr) 240px;gap:clamp(1.6rem,4vw,4rem);padding-top:2.4rem;padding-bottom:4rem}
@media(max-width:900px){.layout{grid-template-columns:1fr}.rail{display:none}}
.article{min-width:0;max-width:min(var(--col),100%);width:100%}
.article > *{min-width:0;max-width:100%}
.article table{max-width:100%;table-layout:auto}
.article pre{overflow-x:auto;max-width:100%}
.wrap.layout{width:100%;overflow-x:clip}

.rail{position:relative}
.rail-inner{position:sticky;top:86px;display:flex;flex-direction:column;gap:1.6rem}
.toc{display:flex;flex-direction:column;gap:.1rem}
.toc a{
  font-size:.84rem;color:var(--muted);text-decoration:none;
  padding:.3em .8em;border-left:2px solid var(--line);line-height:1.4;
}
.toc a:hover{color:var(--ink)}
.toc a.active{color:var(--ink);border-left-color:var(--c,var(--amber));font-weight:550}
.rail .eyebrow{margin-bottom:.5rem}
.rail-note{
  border:1px solid var(--c-line,var(--line));background:var(--c-bg,var(--surface));
  border-radius:var(--radius-sm);padding:.8rem .95rem;font-size:.84rem;line-height:1.55;color:var(--ink-2);
}
.rail-note b{color:var(--c,var(--ink));font-family:var(--font-mono);font-size:.7rem;letter-spacing:.1em;text-transform:uppercase;display:block;margin-bottom:.3rem;font-weight:600}

/* article step sections */
.step{padding:2.2rem 0;border-bottom:1px solid var(--line);scroll-margin-top:74px}
section[id],h2[id]{scroll-margin-top:74px}
.step:last-of-type{border-bottom:0}
.step-head{display:flex;align-items:baseline;gap:.9rem;margin-bottom:1.1rem}
.step-head .n{
  font-family:var(--font-mono);font-size:.8rem;color:var(--c,var(--amber));
  border:1px solid var(--c-line,var(--line));background:var(--c-bg,var(--surface));
  border-radius:7px;padding:.15em .5em;font-weight:600;
}
.step p{margin-bottom:.9rem;max-width:44rem}
.step p:last-child{margin-bottom:0}
.step ul,.step ol{padding-left:1.3rem;margin-bottom:1rem;max-width:44rem}
.step li{margin-bottom:.45rem}
.step li::marker{color:var(--c,var(--muted))}
code{
  font-family:var(--font-mono);font-size:.86em;background:var(--surface-2);
  border:1px solid var(--line);border-radius:5px;padding:.08em .34em;
}

/* say-this-out-loud block */
.say{
  border-left:3px solid var(--c,var(--amber));background:var(--c-bg,var(--surface-2));
  border-radius:0 var(--radius-sm) var(--radius-sm) 0;
  padding:1rem 1.2rem;margin:1.2rem 0;max-width:44rem;
}
.say .who{font-family:var(--font-mono);font-size:.7rem;letter-spacing:.1em;text-transform:uppercase;color:var(--c,var(--muted));margin-bottom:.35rem;font-weight:600}
.say p{font-size:1.02rem;color:var(--ink);font-style:italic;margin:0}
.say p + p{margin-top:.5rem}

/* estimates table */
table{border-collapse:collapse;width:100%;max-width:44rem;margin:1rem 0;font-size:.92rem}
th{font-family:var(--font-mono);font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);text-align:left;font-weight:500}
th,td{padding:.55em .9em;border-bottom:1px solid var(--line)}
td:first-child,th:first-child{padding-left:0}
td .why{display:block;font-size:.82rem;color:var(--muted)}
td b{font-family:var(--font-mono);font-weight:600;font-size:.95em}
.tbl-scroll{overflow-x:auto}

/* api rows */
.api{display:flex;flex-direction:column;gap:.5rem;margin:1rem 0;max-width:44rem}
.api-row{
  display:flex;gap:.8rem;align-items:baseline;flex-wrap:wrap;
  background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-sm);
  padding:.6rem .9rem;
}
.api-row .verb{font-family:var(--font-mono);font-size:.72rem;font-weight:600;letter-spacing:.05em;color:var(--c,var(--amber))}
.api-row .path{font-family:var(--font-mono);font-size:.85rem}
.api-row .desc{font-size:.84rem;color:var(--muted);flex-basis:100%;line-height:1.45}
@media(min-width:640px){.api-row .desc{flex-basis:auto;margin-left:auto;text-align:right;max-width:45%}}

/* entities */
.entities{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:.7rem;margin:1rem 0;max-width:44rem}
.entity{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-sm);padding:.75rem .9rem}
.entity .name{font-family:var(--font-mono);font-size:.8rem;font-weight:600;color:var(--c,var(--ink));margin-bottom:.3rem}
.entity .fields{font-family:var(--font-mono);font-size:.76rem;color:var(--ink-2);line-height:1.7;word-break:break-word}
.entity .note{font-size:.78rem;color:var(--muted);margin-top:.4rem;line-height:1.45}

/* diagram panel */
.figure{
  background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);
  padding:clamp(.8rem,2.5vw,1.6rem);margin:1.3rem 0;box-shadow:var(--shadow);
}
.figure svg{width:100%;height:auto}
.figure figcaption{
  font-family:var(--font-mono);font-size:.76rem;color:var(--muted);
  margin-top:.9rem;padding-top:.8rem;border-top:1px dashed var(--line);
}
.flow-steps{counter-reset:fs;margin:1.1rem 0;max-width:44rem;padding:0;list-style:none}
.flow-steps li{
  counter-increment:fs;position:relative;padding-left:2.3rem;margin-bottom:.6rem;
}
.flow-steps li::before{
  content:counter(fs);position:absolute;left:0;top:.1rem;
  width:1.55rem;height:1.55rem;border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  font-family:var(--font-mono);font-size:.72rem;font-weight:600;
  color:var(--c,var(--ink));background:var(--c-bg,var(--surface-2));
  border:1px solid var(--c-line,var(--line));
}

/* diagram svg text + shapes (inline styles use vars) */
.dg-lbl{font-family:var(--font-body);font-size:12.5px;fill:var(--ink)}
.dg-sub{font-family:var(--font-mono);font-size:9.5px;fill:var(--muted)}
.dg-lane{font-family:var(--font-mono);font-size:9.5px;fill:var(--muted);letter-spacing:.12em;text-transform:uppercase}
.dg-edge-lbl{font-family:var(--font-mono);font-size:9.5px;fill:var(--muted)}
.dg-box{fill:var(--surface);stroke:var(--line-strong)}
.dg-edge{fill:none}
.dg-edge.async{stroke-dasharray:5 5;animation:dash 1.2s linear infinite}
@keyframes dash{to{stroke-dashoffset:-10}}
/* house-style motion: requests in flight, live processes, cells landing, things assembling */
@keyframes dgflow{0%{offset-distance:0%;opacity:0}10%{opacity:1}88%{opacity:1}100%{offset-distance:100%;opacity:0}}
.dg-flow{offset-rotate:0deg;animation:dgflow 3.8s ease-in-out infinite}
@keyframes dgblink{0%,100%{opacity:1}50%{opacity:.25}}
.dg-live{animation:dgblink 2.6s infinite}
@keyframes dgrise{0%,8%{opacity:0;transform:translateY(6px)}20%,100%{opacity:1;transform:none}}
.dg-rise{animation:dgrise 4.5s ease infinite}
@keyframes dgspawn{0%,45%{opacity:.15}60%,100%{opacity:1}}
.dg-spawn{animation:dgspawn 4.5s ease infinite}
@keyframes dgappend{0%,70%{opacity:.25}80%,100%{opacity:1}}
.dg-append{animation:dgappend 4s ease infinite}

/* deep dives */
.dive{margin-bottom:2.4rem;max-width:44rem}
.dive h3{margin-bottom:.6rem}
.dive-head{display:flex;align-items:baseline;gap:.9rem;margin-bottom:.4rem;flex-wrap:wrap}
.dive-head h3{margin:0}
.dive-head .phase{
  font-family:var(--font-mono);font-size:.68rem;letter-spacing:.1em;text-transform:uppercase;
  color:var(--c,var(--amber));font-weight:600;
  padding:.22rem .55rem;background:var(--surface-2);border:1px solid var(--line);border-radius:999px;
}
.phase-figure{margin:1rem 0 .4rem;max-width:44rem}
.phase-figure svg{width:100%;height:auto}
.phase-figure figcaption{color:var(--muted);font-size:.82rem;margin-top:.5rem}

/* frequency + company logos */
.freq{
  font-family:var(--font-mono);font-size:.68rem;letter-spacing:.06em;font-weight:600;
  padding:.18rem .5rem;border-radius:999px;border:1px solid var(--line);color:var(--muted);
  display:inline-flex;align-items:center;gap:.35rem;
}
.freq-high{color:var(--coral);border-color:color-mix(in srgb,var(--coral) 35%,var(--line))}
.freq-medium{color:var(--amber);border-color:color-mix(in srgb,var(--amber) 35%,var(--line))}
.freq-low{color:var(--muted)}
.clogos{display:flex;gap:.35rem;align-items:center;margin:.5rem 0 .1rem;flex-wrap:wrap}
.clogo{
  position:relative;
  display:inline-flex;align-items:center;justify-content:center;
  width:22px;height:22px;border-radius:5px;background:var(--surface-2);border:1px solid var(--line);
  padding:3px;overflow:visible;transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease;
}
.clogo img{width:100%;height:100%;object-fit:contain}
.clogo.mono{
  font-family:var(--font-display);font-size:.75rem;font-weight:640;color:var(--ink-2);
  padding:0;
}
.clogo:hover{transform:translateY(-2px) scale(1.08);border-color:var(--c-line,var(--line-strong));box-shadow:0 4px 10px -4px rgba(0,0,0,.35);z-index:5}
.clogo[data-tip]:hover::after{
  content:attr(data-tip);position:absolute;bottom:calc(100% + 6px);left:50%;transform:translateX(-50%);
  background:var(--ink);color:var(--bg);font-family:var(--font-mono);font-size:.68rem;
  padding:.24rem .5rem;border-radius:4px;white-space:nowrap;pointer-events:none;z-index:20;
  box-shadow:0 4px 12px -4px rgba(0,0,0,.5);
}
.clogo.broken img{display:none}
.clogo.broken::before{content:attr(data-tip);font-family:var(--font-display);font-size:.7rem;font-weight:640;color:var(--muted)}
[data-theme="dark"] .clogo img{filter:invert(.85) hue-rotate(180deg) saturate(1.1)}
.hdr-logos{gap:.5rem}
.hdr-logos .asked-at{color:var(--muted);font-size:.85rem;margin-left:.4rem}

/* feedback */
.feedback-section{padding:clamp(2.2rem,5vw,3.6rem) 0;border-top:1px solid var(--line);background:var(--surface-2)}
.feedback-form{max-width:38rem;display:flex;flex-direction:column;gap:.85rem}
.feedback-form .hp{position:absolute;left:-9999px;opacity:0;pointer-events:none;height:0;width:0}
.feedback-form textarea,.feedback-form input[type=email]{
  width:100%;padding:.75rem .95rem;border-radius:var(--radius-sm);border:1px solid var(--line);
  background:var(--surface);color:var(--ink);font:inherit;resize:vertical;
}
.feedback-form textarea:focus,.feedback-form input[type=email]:focus{outline:none;border-color:var(--amber);box-shadow:0 0 0 3px var(--amber-bg)}
.fb-rating{display:flex;gap:.5rem;flex-wrap:wrap}
.fb-rating button{
  border:1px solid var(--line);border-radius:999px;padding:.42rem .85rem;
  background:var(--surface);color:var(--ink-2);font-size:.85rem;transition:all .15s;
}
.fb-rating button:hover{border-color:var(--amber);color:var(--ink)}
.fb-rating button.active{background:var(--amber);color:#fff;border-color:var(--amber)}
.fb-actions{display:flex;gap:1rem;align-items:center;flex-wrap:wrap}
.fb-status{font-family:var(--font-mono);font-size:.82rem;color:var(--muted)}
.fb-status.ok{color:var(--teal)}
.fb-status.err{color:var(--coral)}

/* banner */
.banner{padding:2.4rem 0}
.banner .banner-inner{
  border:1px solid var(--line);border-radius:var(--radius);
  background:linear-gradient(135deg,var(--surface-2) 0%,var(--surface) 100%);
  padding:1.8rem 2rem;display:flex;align-items:center;gap:1.6rem;flex-wrap:wrap;justify-content:space-between;
}
.banner .banner-zeros{display:flex;gap:1.1rem;flex-wrap:wrap;font-family:var(--font-display);font-size:1.35rem;font-weight:640}
.banner .banner-zeros span:nth-child(1){color:var(--coral)}
.banner .banner-zeros span:nth-child(2){color:var(--teal)}
.banner .banner-zeros span:nth-child(3){color:var(--amber)}
.banner p{color:var(--ink-2);font-size:1rem;max-width:32rem;margin:0;flex:1 1 18rem}
@media (max-width:640px){.banner .banner-inner{flex-direction:column;align-items:flex-start}}

.dive .tradeoff{
  display:flex;gap:.7rem;align-items:baseline;
  background:var(--surface-2);border:1px solid var(--line);border-radius:var(--radius-sm);
  padding:.75rem 1rem;font-size:.9rem;color:var(--ink-2);margin-top:.8rem;
}
.dive .tradeoff b{font-family:var(--font-mono);font-size:.68rem;letter-spacing:.1em;text-transform:uppercase;color:var(--c,var(--amber));white-space:nowrap;font-weight:600}

/* follow-ups */
.qa{max-width:44rem}
.qa details{border-bottom:1px solid var(--line)}
.qa summary{
  cursor:pointer;padding:.9rem .2rem;font-weight:600;font-size:.98rem;
  list-style:none;display:flex;gap:.7rem;align-items:baseline;
}
.qa summary::before{content:"+";font-family:var(--font-mono);color:var(--c,var(--amber));font-weight:600;transition:transform .2s}
.qa details[open] summary::before{content:"–"}
.qa summary::-webkit-details-marker{display:none}
.qa .a{padding:0 .2rem 1rem 1.5rem;color:var(--ink-2);font-size:.94rem;max-width:42rem}

/* mistakes */
.mistakes{max-width:44rem;padding:0;list-style:none;margin:1rem 0}
.mistakes li{
  position:relative;padding:.55rem 0 .55rem 1.9rem;border-bottom:1px dashed var(--line);
  font-size:.94rem;color:var(--ink-2);
}
.mistakes li::before{
  content:"×";position:absolute;left:.2rem;top:.45rem;
  font-family:var(--font-mono);font-weight:600;color:var(--red);
}

/* related strip */
.related{display:flex;gap:.6rem;flex-wrap:wrap;margin-top:1rem}
.related a{
  font-family:var(--font-mono);font-size:.76rem;text-decoration:none;
  color:var(--c,var(--ink-2));background:var(--c-bg,var(--surface));
  border:1px solid var(--c-line,var(--line));border-radius:99px;padding:.35em .85em;
}
.related a:hover{border-color:var(--c,var(--muted))}

/* prev / next pager */
.pager{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin:2.5rem 0 0}
.pager a{
  display:flex;flex-direction:column;gap:.25rem;text-decoration:none;
  border:1px solid var(--line);border-radius:var(--radius-sm);padding:.9rem 1.1rem;
  background:var(--surface);transition:border-color .15s ease, transform .15s ease;
}
.pager a:hover{border-color:var(--c-line);transform:translateY(-2px)}
.pager a span{font-family:var(--font-mono);font-size:.7rem;color:var(--muted);letter-spacing:.08em;text-transform:uppercase}
.pager a b{font-weight:650;font-size:.95rem}
.pager a.next{text-align:right;align-items:flex-end}
.pager a:only-child{grid-column:auto}

/* ---------- playbook page bits ---------- */
.timeline{max-width:44rem;margin:1.4rem 0;padding:0;list-style:none}
.timeline li{position:relative;padding:0 0 1.6rem 2.6rem;border-left:2px solid var(--line);margin-left:.7rem}
.timeline li:last-child{padding-bottom:.2rem}
.timeline li::before{
  content:"";position:absolute;left:-8px;top:.35rem;width:14px;height:14px;border-radius:50%;
  background:var(--c,var(--amber));border:3px solid var(--bg);
}
.timeline .t{font-family:var(--font-mono);font-size:.72rem;color:var(--c,var(--amber));letter-spacing:.08em;font-weight:600}
.timeline h3{margin:.15rem 0 .35rem}
.timeline p{color:var(--ink-2);font-size:.94rem;max-width:40rem}

/* ---------- footer ---------- */
footer{border-top:1px solid var(--line);margin-top:3rem}
footer .wrap{
  display:flex;gap:1.5rem;align-items:center;justify-content:space-between;flex-wrap:wrap;
  padding-top:2rem;padding-bottom:2.4rem;
}
footer p{font-size:.84rem;color:var(--muted)}
footer nav{display:flex;gap:1.1rem}
footer nav a{font-size:.84rem;color:var(--muted);text-decoration:none}
footer nav a:hover{color:var(--ink)}
.footer-love{
  width:100%;text-align:center;padding-top:1.2rem;margin-top:.6rem;
  border-top:1px dashed var(--line);
  font-size:.82rem;color:var(--muted);font-family:var(--font-mono);letter-spacing:.02em;
}
.footer-love a{color:var(--ink);text-decoration:none;border-bottom:1px solid var(--amber)}
.footer-love a:hover{color:var(--amber)}
.footer-love .heart{color:var(--coral);display:inline-block;animation:heartbeat 1.6s ease-in-out infinite}
@keyframes heartbeat{0%,100%{transform:scale(1)}20%{transform:scale(1.25)}40%{transform:scale(1)}60%{transform:scale(1.15)}}

/* ---------- search palette ---------- */
.palette{position:fixed;inset:0;z-index:100;display:none}
.palette.open{display:block}
.palette .veil{position:absolute;inset:0;background:rgba(20,16,10,.45)}
.palette .box{
  position:relative;max-width:560px;margin:12vh auto 0;
  background:var(--surface);border:1px solid var(--line-strong);border-radius:var(--radius);
  box-shadow:var(--shadow-lift);overflow:hidden;
}
.palette input{
  width:100%;border:0;outline:0;background:transparent;color:var(--ink);
  font:inherit;font-size:1.05rem;padding:1rem 1.2rem;border-bottom:1px solid var(--line);
}
.palette .results{max-height:46vh;overflow-y:auto;padding:.4rem}
.palette .results a{
  display:flex;align-items:center;gap:.7rem;padding:.55rem .8rem;border-radius:8px;
  text-decoration:none;font-size:.94rem;
}
.palette .results a .k{font-family:var(--font-mono);font-size:.68rem;color:var(--c,var(--muted))}
.palette .results a:hover,.palette .results a.sel{background:var(--surface-2)}
.palette .empty{padding:1.2rem;color:var(--muted);font-size:.9rem;text-align:center}

/* ---------- reveal ---------- */
.reveal{opacity:0;transform:translateY(14px);transition:opacity .6s ease,transform .6s ease}
.reveal.in{opacity:1;transform:none}

/* focus */
:focus-visible{outline:2px solid var(--blue);outline-offset:2px;border-radius:4px}

@media (prefers-reduced-motion:reduce){
  *{animation:none!important;transition:none!important}
  html{scroll-behavior:auto}
  .reveal{opacity:1;transform:none}
}
