@import url('https://fonts.googleapis.com/css2?family=Fraunces:ital,opsz,wght@0,9..144,300..700;1,9..144,300..600&family=Lora:ital,wght@0,400..600;1,400..600&family=IBM+Plex+Mono:wght@300;400;500&display=swap');
/* ═══ Knowledge Pages — light editorial theme ═══ */
:root{
  --bg:#ffffff;--bg-alt:#f7f6f2;--card:#ffffff;--card-edge:#e8e4da;
  --ink:#25221c;--ink-soft:#4b463c;--muted:#7d766a;--faint:#a89f8f;
  --indigo:#4855d4;--teal:#0d9488;--coral:#e05d3d;--amber:#c07f10;--violet:#7c3aed;--rose:#d34a78;--green:#3d9a4e;--blue:#2f6fd0;
  --r-sm:8px;--r-md:14px;--r-lg:20px;--r-pill:100px;
  --f-display:'Fraunces',Georgia,serif;--f-body:'Lora',Georgia,serif;--f-mono:'IBM Plex Mono',monospace;
  --ease:cubic-bezier(0.16,1,0.3,1);
  --shadow:0 1px 2px rgba(60,50,30,.05),0 8px 28px -12px rgba(60,50,30,.12);
  --acc:var(--indigo);--acc-soft:rgba(72,85,212,.09);
}
[data-acc="books"]{--acc:#c07f10;--acc-soft:rgba(192,127,16,.10)}
[data-acc="philosophy"]{--acc:#2f6fd0;--acc-soft:rgba(47,111,208,.09)}
[data-acc="psychology"]{--acc:#d34a78;--acc-soft:rgba(211,74,120,.09)}
[data-acc="spirituality"]{--acc:#7c3aed;--acc-soft:rgba(124,58,237,.08)}
[data-acc="ai-ml"]{--acc:#0d9488;--acc-soft:rgba(13,148,136,.09)}
[data-acc="tooling"]{--acc:#3d9a4e;--acc-soft:rgba(61,154,78,.10)}
[data-acc="enterprise-ai"]{--acc:#e05d3d;--acc-soft:rgba(224,93,61,.09)}
[data-acc="misc"]{--acc:#8a7a12;--acc-soft:rgba(138,122,18,.10)}
[data-acc="architecture"]{--acc:#c07f10;--acc-soft:rgba(192,127,16,.10)}
[data-acc="deployment"]{--acc:#3d9a4e;--acc-soft:rgba(61,154,78,.10)}
[data-acc="gcp"]{--acc:#2f6fd0;--acc-soft:rgba(47,111,208,.09)}
[data-acc="aws"]{--acc:#e05d3d;--acc-soft:rgba(224,93,61,.09)}
[data-acc="design"]{--acc:#d34a78;--acc-soft:rgba(211,74,120,.09)}
[data-acc="research"]{--acc:#0d9488;--acc-soft:rgba(13,148,136,.09)}
[data-acc="consciousness"]{--acc:#7c3aed;--acc-soft:rgba(124,58,237,.08)}
[data-acc="ai-tech"]{--acc:#0d9488;--acc-soft:rgba(13,148,136,.09)}
[data-acc="banking-finance"]{--acc:#c07f10;--acc-soft:rgba(192,127,16,.10)}
[data-acc="business"]{--acc:#e05d3d;--acc-soft:rgba(224,93,61,.09)}
[data-acc="health"]{--acc:#3d9a4e;--acc-soft:rgba(61,154,78,.10)}
[data-acc="magick"]{--acc:#7c3aed;--acc-soft:rgba(124,58,237,.08)}
[data-acc="operator"]{--acc:#c2453f;--acc-soft:rgba(194,69,63,.09)}
[data-acc="tantra"]{--acc:#d34a78;--acc-soft:rgba(211,74,120,.09)}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{background:var(--bg);color:var(--ink-soft);font-family:var(--f-body);line-height:1.75;font-size:16.5px;-webkit-font-smoothing:antialiased;overflow-x:hidden}
::selection{background:rgba(72,85,212,.15)}
a{color:var(--acc);text-decoration:none}
#kprog{position:fixed;top:0;left:0;height:2px;width:0;background:linear-gradient(90deg,var(--indigo),var(--teal),var(--coral));z-index:99}
/* nav */
.knav::after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:2px;background:linear-gradient(90deg,#4855d4,#0d9488,#3d9a4e,#c07f10,#e05d3d,#d34a78,#7c3aed)}
.knav{position:fixed;top:0;left:0;right:0;z-index:50;display:flex;align-items:center;justify-content:space-between;padding:.85rem 2rem;background:rgba(255,255,255,.88);backdrop-filter:blur(14px);border-bottom:1px solid var(--card-edge)}
.knav .brand{font-family:var(--f-display);font-size:1.22rem;color:var(--ink)}
.knav .brand em{color:var(--coral);font-style:normal}
.knav .links{display:flex;gap:1.4rem;font-family:var(--f-mono);font-size:.7rem;letter-spacing:.1em;text-transform:uppercase}
.knav .links a{color:var(--muted);transition:color .25s;padding-bottom:2px;border-bottom:2px solid transparent}
.knav .links a:hover{color:var(--ink)}
.knav .links a.on{color:var(--ink);border-bottom-color:var(--coral)}
/* hero */
.khero{position:relative;padding:8.5rem 2rem 3.2rem;overflow:hidden;border-bottom:1px solid var(--card-edge);background:
 radial-gradient(46% 60% at 12% 0%,var(--acc-soft),transparent 70%),
 radial-gradient(40% 55% at 90% 10%,rgba(13,148,136,.06),transparent 70%),var(--bg)}
.khero .mesh{display:none}
.khero .geo{position:absolute;right:-130px;top:-130px;width:440px;height:440px;opacity:.35;pointer-events:none}
.kwrap{max-width:1060px;margin:0 auto;position:relative}
.kcrumb{font-family:var(--f-mono);font-size:.68rem;letter-spacing:.14em;text-transform:uppercase;color:var(--faint);margin-bottom:1.1rem;display:flex;gap:.6rem;align-items:center;flex-wrap:wrap}
.kcrumb a{color:var(--muted)} .kcrumb a:hover{color:var(--ink)}
.kchip{display:inline-flex;align-items:center;gap:.45rem;padding:.3rem .9rem;border-radius:var(--r-pill);border:1px solid var(--acc);color:var(--acc);font-family:var(--f-mono);font-size:.66rem;letter-spacing:.12em;text-transform:uppercase;background:var(--acc-soft)}
.kchip::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--acc)}
h1.ktitle{font-family:var(--f-display);font-weight:450;font-size:clamp(2rem,4.2vw,3.2rem);line-height:1.14;color:var(--ink);margin:1rem 0 .9rem;text-wrap:balance}
h1.ktitle em{color:var(--acc);font-style:italic}
.kmeta{display:flex;gap:1.5rem;flex-wrap:wrap;font-family:var(--f-mono);font-size:.7rem;color:var(--muted);letter-spacing:.06em}
.kmeta b{color:var(--acc);font-weight:500}
/* layout */
.kbody{display:grid;grid-template-columns:minmax(0,760px) 220px;gap:4rem;max-width:1060px;margin:0 auto;padding:2rem 2rem 6rem}
@media(max-width:960px){.kbody{grid-template-columns:1fr}.ktoc{display:none}}
/* toc */
.ktoc{position:sticky;top:90px;align-self:start;max-height:calc(100vh - 120px);overflow:auto;font-size:.78rem;padding-left:1rem;border-left:1px solid var(--card-edge)}
.ktoc .tt{font-family:var(--f-mono);font-size:.64rem;letter-spacing:.16em;text-transform:uppercase;color:var(--faint);margin-bottom:.8rem}
.ktoc a{display:block;color:var(--muted);padding:.26rem 0;line-height:1.4;transition:color .2s}
.ktoc a:hover{color:var(--ink)} .ktoc a.on{color:var(--acc)}
/* prose */
.kprose{min-width:0}
.kprose>p:first-of-type::first-letter{font-family:var(--f-display);font-size:3.3em;line-height:.8;float:left;padding:.08em .12em 0 0;color:var(--acc)}
.kprose h1,.kprose h2,.kprose h3,.kprose h4{font-family:var(--f-display);font-weight:400;color:var(--ink);line-height:1.25;margin:2.5em 0 .7em;scroll-margin-top:90px}
.kprose h1{font-size:1.9rem}
.kprose h2{font-size:1.6rem;padding-bottom:.4rem;border-bottom:1px solid var(--card-edge)}
.kprose h2::before{content:"§ ";color:var(--acc);font-size:.8em}
.kprose h3{font-size:1.22rem}
.kprose h4{font-size:1.02rem;color:var(--ink-soft)}
.kprose p{margin:1.05em 0}
.kprose strong{color:var(--ink)}
.kprose em{color:inherit}
.kprose a{border-bottom:1px dotted var(--acc)}
.kprose ul,.kprose ol{padding-left:1.4rem;margin:1em 0}
.kprose li{margin:.45em 0}
.kprose li::marker{color:var(--acc)}
.kprose blockquote{margin:1.6em 0;padding:.9rem 1.3rem;border-left:3px solid var(--acc);background:var(--acc-soft);border-radius:0 var(--r-md) var(--r-md) 0;font-family:var(--f-display);font-size:1.08em;color:var(--ink)}
.kprose hr{border:none;height:1px;margin:2.6em auto;width:60%;background:var(--card-edge)}
.kprose code{font-family:var(--f-mono);font-size:.84em;background:var(--bg-alt);border:1px solid var(--card-edge);border-radius:6px;padding:.1em .38em;color:#8a3324}
.kprose pre{margin:1.6em 0;padding:1.15rem 1.35rem;background:#22272e;border:1px solid #22272e;border-radius:var(--r-md);overflow-x:auto}
.kprose pre code{background:none;border:none;padding:0;color:#cdd9c5;font-size:.82rem;line-height:1.6}
.kprose pre.ascii-art{background:#fdfcf9;border:1px solid var(--card-edge)}
.kprose pre.ascii-art code{color:#7a6a3a;text-shadow:none;font-size:.72rem}
.kprose table{width:100%;border-collapse:collapse;margin:1.8em 0;font-size:.88rem;display:block;overflow-x:auto}
.kprose th{font-family:var(--f-mono);font-size:.66rem;letter-spacing:.08em;text-transform:uppercase;color:var(--acc);text-align:left;padding:.7rem .9rem;border-bottom:2px solid var(--acc);background:var(--acc-soft);white-space:nowrap}
.kprose td{padding:.62rem .9rem;border-bottom:1px solid var(--card-edge);vertical-align:top}
.kprose tr:hover td{background:var(--bg-alt)}
/* mermaid */
.mermaid-wrap{margin:2em 0;padding:1.4rem 1rem;background:#fcfbf8;border:1px solid var(--card-edge);border-radius:var(--r-lg);overflow-x:auto;text-align:center;box-shadow:var(--shadow)}
.mermaid-wrap .mermaid{display:inline-block;min-width:280px}
.mermaid-wrap svg{max-width:100%;height:auto}
/* cards & hubs */
.kgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:1.1rem;max-width:1180px;margin:0 auto;padding:0 2rem 5rem}
.kcard{position:relative;display:flex;flex-direction:column;gap:.5rem;padding:1.35rem 1.45rem;background:var(--card);border:1px solid var(--card-edge);border-radius:var(--r-lg);transition:transform .35s var(--ease),box-shadow .35s,border-color .35s;overflow:hidden;box-shadow:var(--shadow)}
.kcard::before{content:"";position:absolute;inset:0 0 auto 0;height:3px;background:var(--acc);opacity:.85}
.kcard:hover{transform:translateY(-4px);border-color:var(--acc);box-shadow:0 14px 40px -12px rgba(60,50,30,.22)}
.kcard .cchip{font-family:var(--f-mono);font-size:.6rem;letter-spacing:.13em;text-transform:uppercase;color:var(--acc)}
.kcard .ctitle{font-family:var(--f-display);font-size:1.2rem;line-height:1.3;color:var(--ink)}
.kcard .cex{font-size:.84rem;color:var(--muted);line-height:1.6;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.kcard .cmeta{margin-top:auto;padding-top:.55rem;font-family:var(--f-mono);font-size:.64rem;color:var(--faint);letter-spacing:.06em}
/* filter pills + search */
.kbar{max-width:1180px;margin:0 auto 2rem;padding:0 2rem;display:flex;flex-wrap:wrap;gap:.55rem;align-items:center}
.kpill{padding:.4rem 1rem;border-radius:var(--r-pill);border:1px solid var(--card-edge);background:var(--card);color:var(--muted);font-family:var(--f-mono);font-size:.66rem;letter-spacing:.08em;text-transform:uppercase;cursor:pointer;transition:all .25s}
.kpill:hover{border-color:var(--acc);color:var(--acc)}
.kpill.on{background:var(--acc);border-color:var(--acc);color:#fff}
.kpill b{font-weight:500;opacity:.75}
.ksearch{flex:1;min-width:220px;position:relative}
.ksearch input{width:100%;padding:.7rem 1.1rem .7rem 2.6rem;background:var(--card);border:1px solid var(--card-edge);border-radius:var(--r-pill);color:var(--ink);font-family:var(--f-body);font-size:.9rem;outline:none;transition:border-color .25s,box-shadow .25s;box-shadow:var(--shadow)}
.ksearch input:focus{border-color:var(--acc);box-shadow:0 0 0 3px var(--acc-soft)}
.ksearch::before{content:"⌕";position:absolute;left:1rem;top:50%;transform:translateY(-52%);color:var(--faint);font-size:1.05rem}
.kstats{display:flex;gap:2.4rem;flex-wrap:wrap;margin:1.5rem 0 .3rem}
.kstat .n{font-family:var(--f-display);font-size:1.6rem;color:var(--acc);line-height:1}
.kstat .l{font-family:var(--f-mono);font-size:.6rem;letter-spacing:.14em;text-transform:uppercase;color:var(--faint);margin-top:.3rem}
/* footer */
.kfoot{border-top:1px solid var(--card-edge);padding:2.4rem 2rem;text-align:center;font-family:var(--f-mono);font-size:.68rem;color:var(--faint);letter-spacing:.08em;background:var(--bg-alt)}
.kfoot a{color:var(--muted)} .kfoot a:hover{color:var(--ink)}
/* reveal */
.rv{opacity:0;transform:translateY(14px);transition:opacity .7s var(--ease),transform .7s var(--ease)}
.rv.in{opacity:1;transform:none}
/* papers page */
.psec{max-width:1060px;margin:0 auto .8rem;border:1px solid var(--card-edge);border-radius:var(--r-md);background:var(--card);overflow:hidden;box-shadow:var(--shadow)}
.psec>button{width:100%;display:flex;align-items:center;gap:1rem;padding:.95rem 1.3rem;background:none;border:none;color:var(--ink);font-family:var(--f-display);font-size:1.06rem;cursor:pointer;text-align:left}
.psec>button:hover{background:var(--bg-alt)}
.psec .cnt{margin-left:auto;font-family:var(--f-mono);font-size:.66rem;color:var(--acc);letter-spacing:.08em}
.psec .arrow{color:var(--faint);transition:transform .25s}
.psec.open .arrow{transform:rotate(90deg)}
.psec .plist{display:none;border-top:1px solid var(--card-edge)}
.psec.open .plist{display:block}
.prow{display:grid;grid-template-columns:3.2rem 1fr auto;gap:1rem;padding:.62rem 1.3rem;border-bottom:1px solid var(--bg-alt);font-size:.86rem;align-items:baseline}
.prow:hover{background:var(--bg-alt)}
.prow .pn{font-family:var(--f-mono);font-size:.66rem;color:var(--faint)}
.prow .pt{color:var(--ink-soft)} .prow .pt b{color:var(--ink);font-weight:500}
.prow .pt .note{color:var(--muted);font-size:.79rem}
.prow .py{font-family:var(--f-mono);font-size:.68rem;color:var(--acc)}
@media(max-width:640px){.prow{grid-template-columns:1fr auto}.prow .pn{display:none}}
.kprose pre.mermaid,.mermaid-wrap pre.mermaid{background:transparent;border:none;box-shadow:none;padding:.2rem;overflow:visible}

/* stubs inside papers list */
.prow{cursor:default}
.prow .stub{display:none;grid-column:1/-1;margin:.5rem 0 .4rem;padding:.9rem 1.1rem;background:var(--bg-alt);border-left:3px solid var(--acc);border-radius:0 var(--r-md) var(--r-md) 0}
.prow.open .stub{display:block}
.prow .stub ol{padding-left:1.2rem;font-size:.84rem;color:var(--ink-soft)}
.prow .stub li{margin:.3em 0}
.prow.has-stub{cursor:pointer}
.prow.has-stub .pt b::after{content:" ▸";color:var(--acc);font-size:.8em}
.prow.has-stub.open .pt b::after{content:" ▾"}
/* colourful category pills on hubs */
.kpill[data-c]:not([data-c=all]).on{background:var(--acc)}
.kprose figure.fig{margin:2.2em 0;padding:1.4rem 1rem 1rem;background:#fcfbf8;border:1px solid var(--card-edge);border-radius:var(--r-lg);text-align:center;box-shadow:var(--shadow)}
.kprose figure.fig svg{max-width:100%;height:auto}
.kprose figure.fig figcaption{margin-top:.8rem;font-family:var(--f-mono);font-size:.68rem;letter-spacing:.08em;color:var(--muted)}
.kprose figure.fig figcaption b{color:var(--acc)}
