:root{
  --bg:#0a0e17; --bg2:#0d1320; --panel:#121a2b; --panel2:#16203450;
  --line-solid:#223150; --txt:#e8eef9; --muted:#94a6c4; --muted2:#64759a;
  --teal:#2dd4bf; --indigo:#818cf8; --violet:#c084fc; --amber:#ff9900; --rose:#fb7185;
  --grad:linear-gradient(120deg,#2dd4bf 0%,#818cf8 45%,#c084fc 100%);
  --grad-warm:linear-gradient(120deg,#818cf8,#c084fc 50%,#ff9900);
  --radius:18px; --radius-sm:12px;
  --shadow:0 18px 50px -20px rgba(0,0,0,.7);
  --maxw:1180px;
  --mono:'JetBrains Mono',ui-monospace,monospace;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{
  font-family:'Inter',system-ui,sans-serif;background:var(--bg);color:var(--txt);
  -webkit-font-smoothing:antialiased;line-height:1.6;overflow-x:hidden;
}
body::before{ /* ambient gradient field */
  content:"";position:fixed;inset:0;z-index:0;pointer-events:none;
  background:
    radial-gradient(60vw 60vw at 78% -8%,rgba(129,140,248,.16),transparent 60%),
    radial-gradient(50vw 50vw at 10% 4%,rgba(45,212,191,.12),transparent 55%),
    radial-gradient(48vw 48vw at 92% 88%,rgba(192,132,252,.12),transparent 60%);
}
a{color:var(--teal);text-decoration:none}
h1,h2,h3{line-height:1.12;letter-spacing:-.02em;font-weight:800}
.grad{background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent}
.muted{color:var(--muted)}
small{color:var(--muted)}

/* ───── buttons ───── */
.btn{font:inherit;font-weight:600;border:1px solid transparent;border-radius:999px;padding:.7rem 1.3rem;
  cursor:pointer;transition:.18s transform,.18s box-shadow,.18s background,.18s border-color;
  display:inline-flex;align-items:center;gap:.5rem}
.btn:active{transform:translateY(1px)}
.btn-primary{background:var(--grad);color:#06121f;box-shadow:0 10px 30px -10px rgba(129,140,248,.6)}
.btn-primary:hover{transform:translateY(-2px);box-shadow:0 16px 40px -12px rgba(129,140,248,.75)}
.btn-ghost{background:#ffffff08;color:var(--txt);border-color:var(--line-solid)}
.btn-ghost:hover{background:#ffffff12;border-color:#33456b}
.btn-sm{padding:.4rem .85rem;font-size:.85rem}

/* ───── auth gate ───── */
.auth-gate{position:fixed;inset:0;z-index:100;display:grid;place-items:center;
  background:radial-gradient(70vw 70vw at 50% 0%,#13203a,#070b12 70%)}
.auth-card{background:linear-gradient(180deg,#121b2e,#0e1626);border:1px solid var(--line-solid);
  border-radius:24px;padding:3rem 2.6rem;width:min(420px,90vw);text-align:center;box-shadow:var(--shadow)}
.auth-logo{display:flex;justify-content:center;margin-bottom:1.2rem}
.auth-card h1{font-size:1.7rem}
.auth-sub{color:var(--muted);margin:.3rem 0 1.6rem}
.auth-msg{font-size:.92rem;color:var(--muted);min-height:1.4em;margin-bottom:1.2rem}
.auth-foot{margin-top:1.6rem;font-size:.72rem;color:var(--muted2,#64759a);letter-spacing:.04em}
.logo-glyph{width:30px;height:30px;border-radius:9px;display:inline-block;flex:none;
  background:var(--grad);box-shadow:0 0 22px -2px rgba(45,212,191,.6);position:relative}
.logo-glyph::after{content:"";position:absolute;inset:7px;border-radius:4px;
  background:#0a0e17;box-shadow:inset 0 0 0 2px #ffffff22}

/* ───── top bar ───── */
.app{position:relative;z-index:1}
.topbar{position:sticky;top:0;z-index:40;display:flex;align-items:center;gap:1.5rem;
  padding:.8rem clamp(1rem,4vw,2.2rem);background:#0a0e17cc;backdrop-filter:blur(14px);
  border-bottom:1px solid var(--line-solid)}
.brand{display:flex;align-items:center;gap:.6rem;font-weight:800}
.brand-name{font-size:1.05rem}
.brand-tag{color:var(--muted);font-weight:500;font-size:.8rem;border-left:1px solid var(--line-solid);
  padding-left:.6rem;margin-left:.1rem}
.tabs{display:flex;gap:.2rem;margin-left:auto}
.tab{background:none;border:0;color:var(--muted);font:inherit;font-weight:600;font-size:.92rem;
  padding:.55rem .95rem;border-radius:10px;cursor:pointer;transition:.15s;position:relative}
.tab:hover{color:var(--txt);background:#ffffff08}
.tab.active{color:var(--txt)}
.tab.active::after{content:"";position:absolute;left:.95rem;right:.95rem;bottom:.2rem;height:2px;
  border-radius:2px;background:var(--grad)}
.topbar-right{display:flex;align-items:center;gap:.7rem;margin-left:.5rem}
.user-chip{font-size:.8rem;color:var(--muted);font-family:var(--mono);max-width:180px;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.menu-toggle{display:none;background:none;border:0;color:var(--txt);font-size:1.4rem;cursor:pointer;margin-left:auto}

/* ───── views ───── */
.view{display:none;animation:fade .4s ease}
.view.active{display:block}
@keyframes fade{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
.section{max-width:var(--maxw);margin:0 auto;padding:clamp(2.5rem,6vw,5rem) clamp(1rem,4vw,2rem)}
.section-head{margin-bottom:2.2rem}
.section-head h2{font-size:clamp(1.6rem,3.5vw,2.3rem)}
.section-sub{color:var(--muted);font-size:1.05rem;max-width:60ch;margin-top:.5rem}

/* ───── hero ───── */
.hero{position:relative;min-height:clamp(560px,86vh,820px);display:grid;align-items:center;overflow:hidden;
  border-bottom:1px solid var(--line-solid)}
.hero-canvas{position:absolute;inset:0;width:100%;height:100%;z-index:0}
.hero-content{position:relative;z-index:2;max-width:var(--maxw);margin:0 auto;
  padding:0 clamp(1rem,4vw,2rem);width:100%}
.eyebrow{font-family:var(--mono);font-size:.74rem;letter-spacing:.22em;color:var(--teal);margin-bottom:1.1rem}
.hero-title{font-size:clamp(2.3rem,6vw,4.4rem);font-weight:900;letter-spacing:-.03em}
.hero-lede{color:#c4d2ea;font-size:clamp(1rem,1.6vw,1.22rem);max-width:60ch;margin:1.4rem 0 2rem}
.hero-lede strong{color:var(--txt)}
.hero-cta{display:flex;gap:.8rem;flex-wrap:wrap}

/* ───── stats ───── */
.stat-row{max-width:var(--maxw);margin:-2.5rem auto 0;display:grid;grid-template-columns:repeat(4,1fr);
  gap:1rem;position:relative;z-index:5}
.stat{background:linear-gradient(180deg,#131d30,#0f1726);
  border:1px solid var(--line-solid);border-radius:var(--radius);padding:1.3rem 1.4rem;box-shadow:var(--shadow)}
.stat-num{font-size:2rem;font-weight:800;font-family:var(--mono);
  background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent}
.stat-lbl{color:var(--muted);font-size:.82rem;margin-top:.25rem}

/* ───── exec grid ───── */
.exec-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1.1rem}
.exec-card{background:var(--panel);border:1px solid var(--line-solid);border-radius:var(--radius);
  padding:1.6rem;transition:.2s;position:relative;overflow:hidden}
.exec-card:hover{transform:translateY(-3px);border-color:#2c3e63}
.exec-card::before{content:"";position:absolute;top:0;left:0;right:0;height:2px;background:var(--grad);opacity:.5}
.exec-ic{font-size:1.7rem;margin-bottom:.7rem}
.exec-card h3{font-size:1.12rem;margin-bottom:.5rem}
.exec-card h3 em{font-style:italic;color:var(--teal)}
.exec-card p{color:var(--muted);font-size:.95rem}
.exec-card b{color:#d8e2f3;font-weight:600}

/* ───── architecture diagram ───── */
.arch{display:flex;flex-direction:column;gap:.4rem;align-items:stretch}
.arch-band{border:1px solid var(--line-solid);border-radius:var(--radius);padding:1.1rem 1.2rem;position:relative;
  background:var(--panel2)}
.band-label{position:absolute;top:-.62rem;left:1rem;font-family:var(--mono);font-size:.64rem;letter-spacing:.18em;
  background:var(--bg);padding:0 .5rem;color:var(--muted)}
.arch-nodes{display:flex;flex-wrap:wrap;gap:.6rem;margin-top:.3rem}
.arch-node{flex:1 1 auto;min-width:130px;text-align:center;padding:.7rem .8rem;border-radius:10px;font-size:.86rem;
  font-weight:600;background:#0e1626;border:1px solid var(--line-solid)}
.arch-node small{display:block;font-weight:400;color:var(--muted);font-size:.72rem;margin-top:.15rem}
.arch-band.consumers .arch-node{border-color:#2b3a5c}
.arch-band.tools{background:linear-gradient(180deg,#101a2e,#0e1626);border-color:#2c3e63}
.t-struct{box-shadow:inset 0 0 0 1px #2dd4bf44}.t-doc{box-shadow:inset 0 0 0 1px #818cf844}
.t-disc{box-shadow:inset 0 0 0 1px #c084fc44}.t-contrib{box-shadow:inset 0 0 0 1px #ff990044}
.arch-band.managed .arch-node.m{background:#0d1830;border-color:#24355c}
.arch-band.context{background:linear-gradient(120deg,#161226,#1a1330);border-color:#3a2c5e}
.arch-node.ctx{background:linear-gradient(120deg,#1d1636,#231a3f);border-color:#4a3a72;font-size:.92rem;display:flex;
  align-items:center;justify-content:center;gap:.6rem;flex-wrap:wrap}
.arch-arrow{text-align:center;color:var(--muted);font-size:.74rem;font-family:var(--mono);letter-spacing:.1em;padding:.15rem 0}
.ctx-arrow{color:var(--violet)}
.pill{font-family:var(--mono);font-size:.62rem;letter-spacing:.12em;padding:.22rem .55rem;border-radius:999px;
  text-transform:uppercase;font-weight:600}
.pill-soon{background:#c084fc22;color:#d8b4fe;border:1px solid #c084fc55}
.pill-ga{background:#2dd4bf22;color:#5eead4;border:1px solid #2dd4bf55}
.pill-prev{background:#ff990022;color:#fbbf24;border:1px solid #ff990055}

/* ───── campus CTA ───── */
.campus-cta{background:linear-gradient(120deg,#101a2e,#130f24);
  border:1px solid var(--line-solid);border-radius:var(--radius);padding:2.4rem;display:flex;gap:2rem;
  align-items:center;justify-content:space-between;flex-wrap:wrap}
.campus-cta h2{font-size:1.6rem;margin-bottom:.5rem}
.campus-cta p{color:var(--muted);max-width:58ch}

/* ───── graph view ───── */
.graph-wrap{display:grid;grid-template-columns:360px 1fr;height:calc(100vh - 58px)}
.graph-side{padding:1.6rem;overflow-y:auto;border-right:1px solid var(--line-solid);background:#0c1320}
.graph-side h2{font-size:1.3rem;margin-bottom:.5rem}
.graph-side .muted{font-size:.9rem}
.graph-filters{display:flex;flex-wrap:wrap;gap:.4rem;margin:1.2rem 0}
.gfilter{font:inherit;font-size:.78rem;font-weight:600;padding:.35rem .7rem;border-radius:999px;cursor:pointer;
  background:#ffffff08;border:1px solid var(--line-solid);color:var(--muted);transition:.15s;display:flex;align-items:center;gap:.4rem}
.gfilter .dot{width:9px;height:9px;border-radius:50%}
.gfilter.on{color:var(--txt);background:#ffffff14}
.graph-detail{background:#0e1626;border:1px solid var(--line-solid);border-radius:var(--radius-sm);
  padding:1.1rem;margin:1rem 0;min-height:120px}
.gd-empty{color:var(--muted2,#64759a);font-size:.9rem;text-align:center;padding:1.5rem 0}
.gd-type{font-family:var(--mono);font-size:.68rem;letter-spacing:.12em;text-transform:uppercase;margin-bottom:.4rem}
.gd-title{font-size:1.1rem;font-weight:700;margin-bottom:.5rem}
.gd-desc{font-size:.9rem;color:var(--muted);margin-bottom:.7rem}
.gd-props{display:flex;flex-direction:column;gap:.3rem}
.gd-prop{display:flex;justify-content:space-between;gap:1rem;font-size:.82rem;border-top:1px solid var(--line-solid);padding-top:.3rem}
.gd-prop span:first-child{color:var(--muted2,#64759a)}
.gd-prop span:last-child{font-family:var(--mono);text-align:right}
.gd-rel{font-size:.8rem;color:var(--muted);margin-top:.6rem}
.graph-legend{display:flex;flex-direction:column;gap:.35rem;margin-top:1rem;font-size:.8rem;color:var(--muted)}
.graph-legend .lg{display:flex;align-items:center;gap:.5rem}
.graph-legend .dot{width:10px;height:10px;border-radius:50%}
.graph-source{margin-top:1rem;font-family:var(--mono);font-size:.68rem;color:var(--muted2,#64759a)}
.graph-canvas-wrap{position:relative;overflow:hidden}
#graph-canvas{width:100%;height:100%;display:block;cursor:grab}
#graph-canvas:active{cursor:grabbing}
.graph-hint{position:absolute;bottom:1rem;left:50%;transform:translateX(-50%);font-size:.74rem;color:var(--muted2,#64759a);
  font-family:var(--mono);background:#0a0e17aa;padding:.3rem .8rem;border-radius:999px;border:1px solid var(--line-solid)}

/* ───── tech grid ───── */
.tech-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1.1rem}
.tech-card{background:var(--panel);border:1px solid var(--line-solid);border-radius:var(--radius);padding:1.6rem;
  transition:.2s}
.tech-card:hover{transform:translateY(-3px);border-color:#2c3e63}
.tech-card .th{display:flex;align-items:center;gap:.7rem;margin-bottom:.7rem}
.tech-ic{width:40px;height:40px;border-radius:11px;display:grid;place-items:center;font-size:1.2rem;flex:none;
  background:#0e1626;border:1px solid var(--line-solid)}
.tech-card h3{font-size:1.08rem}
.tech-card .role{font-size:.78rem;color:var(--muted);font-family:var(--mono)}
.tech-card p{color:var(--muted);font-size:.92rem;margin-bottom:.6rem}
.tech-card .use{font-size:.88rem;color:#c9d6ec;border-left:2px solid var(--teal);padding-left:.7rem;margin-bottom:.5rem}
.tech-card .scale{font-size:.82rem;color:var(--muted)}
.tech-card .scale b{color:#d8e2f3}
.badges{display:flex;gap:.4rem;margin-top:.8rem;flex-wrap:wrap}

/* ───── timeline ───── */
.timeline{position:relative;padding-left:2rem;margin-bottom:3rem}
.timeline::before{content:"";position:absolute;left:7px;top:6px;bottom:6px;width:2px;background:var(--grad)}
.tl-item{position:relative;padding:0 0 2rem 1.5rem}
.tl-item::before{content:"";position:absolute;left:-1.62rem;top:.35rem;width:16px;height:16px;border-radius:50%;
  background:var(--bg);border:3px solid var(--teal)}
.tl-item.prev::before{border-color:var(--amber)}
.tl-item.soon::before{border-color:var(--violet);box-shadow:0 0 14px 1px #c084fc88}
.tl-phase{font-family:var(--mono);font-size:.72rem;letter-spacing:.12em;color:var(--muted);margin-bottom:.2rem}
.tl-item h3{font-size:1.15rem;margin-bottom:.4rem;display:flex;align-items:center;gap:.6rem;flex-wrap:wrap}
.tl-item p{color:var(--muted);font-size:.93rem;max-width:64ch}
.tl-tags{display:flex;gap:.4rem;flex-wrap:wrap;margin-top:.5rem}
.tl-tag{font-size:.74rem;font-family:var(--mono);color:var(--muted);background:#ffffff08;border:1px solid var(--line-solid);
  padding:.15rem .55rem;border-radius:6px}

/* ───── onboard ───── */
.onb-wrap{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:1.4rem}
.onb-form,.onb-result{background:var(--panel);border:1px solid var(--line-solid);border-radius:var(--radius);padding:1.5rem}
.onb-types{display:flex;flex-direction:column;gap:.6rem;margin-bottom:1.2rem}
.onb-type{text-align:left;background:#0e1626;border:1px solid var(--line-solid);border-radius:12px;padding:.8rem 1rem;
  cursor:pointer;color:var(--muted);transition:.15s;display:grid;grid-template-columns:auto 1fr;gap:.3rem .7rem;align-items:center}
.onb-type b{color:var(--txt);font-size:.95rem}
.onb-type small{grid-column:2;color:var(--muted);font-size:.8rem}
.onb-ic{grid-row:1/3;font-size:1.4rem}
.onb-type:hover{border-color:#33456b}
.onb-type.on{border-color:var(--teal);background:#0f1c24;box-shadow:inset 0 0 0 1px #2dd4bf55}
.onb-field{display:flex;flex-direction:column;gap:.3rem;margin-bottom:.8rem}
.onb-field span{font-size:.82rem;color:var(--muted);font-weight:600}
.onb-field input{background:#0a0e17;border:1px solid var(--line-solid);border-radius:9px;padding:.6rem .8rem;
  color:var(--txt);font:inherit;font-size:.9rem}
.onb-field input:focus{outline:none;border-color:var(--teal)}
.onb-field small{color:var(--muted2);font-size:.74rem}
.onb-actions{display:flex;align-items:center;gap:1rem;margin-top:.5rem}
.onb-safe{font-size:.76rem;color:var(--muted2);font-family:var(--mono)}
.onb-empty{color:var(--muted2);text-align:center;padding:3rem 1rem;font-size:.9rem}
.onb-err{color:#fda4af;background:#fb718512;border:1px solid #fb718533;border-radius:10px;padding:1rem;font-size:.9rem}
.onb-badge{display:inline-block;font-family:var(--mono);font-size:.66rem;letter-spacing:.12em;color:#5eead4;
  background:#2dd4bf18;border:1px solid #2dd4bf44;border-radius:999px;padding:.25rem .7rem;margin-bottom:1rem}
.onb-metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:.7rem;margin-bottom:1rem}
.onb-metric{background:#0e1626;border:1px solid var(--line-solid);border-radius:10px;padding:.8rem;text-align:center;font-size:.74rem;color:var(--muted)}
.onb-mnum{font-family:var(--mono);font-size:1.5rem;font-weight:700;background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent}
.onb-sample{margin-bottom:1rem;font-size:.78rem}
.onb-sample b,.onb-attrs b,.onb-plan b,.onb-graph b{display:block;font-size:.78rem;color:var(--muted);margin-bottom:.4rem;text-transform:uppercase;letter-spacing:.06em}
.onb-sample code{display:block;font-family:var(--mono);font-size:.74rem;color:#9fb0cc;background:#0a0e17;border:1px solid var(--line-solid);
  border-radius:6px;padding:.3rem .5rem;margin-bottom:.25rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.onb-attrs{margin-bottom:1rem}
.onb-attr{display:flex;justify-content:space-between;gap:1rem;font-size:.82rem;border-top:1px solid var(--line-solid);padding:.3rem 0}
.onb-attr span:first-child{color:var(--muted2);font-family:var(--mono)}
.onb-attr span:last-child{color:#cdd9ef;font-family:var(--mono);font-size:.78rem}
.onb-plan ol{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:.5rem}
.onb-plan li{display:flex;gap:.6rem;font-size:.88rem;color:#cdd9ef;align-items:flex-start}
.onb-step{flex:none;width:20px;height:20px;border-radius:50%;background:var(--grad);color:#06121f;font-weight:700;
  font-size:.72rem;display:grid;place-items:center;margin-top:.1rem}
.onb-graph{margin-top:1.1rem}
.onb-mini{background:#0a0e17;border:1px solid var(--line-solid);border-radius:10px;margin-top:.3rem}
.onb-note{margin-top:1rem;font-size:.8rem;color:var(--muted);font-style:italic;border-top:1px solid var(--line-solid);padding-top:.7rem}
@media(max-width:880px){ .onb-wrap{grid-template-columns:1fr} }

/* ───── glossary ───── */
.gl-status{max-width:var(--maxw);margin:0 auto 1rem}
.gl-ss{display:flex;align-items:center;gap:.5rem;font-size:.86rem;color:#c4d2ea;background:#0e1626;
  border:1px solid var(--line-solid);border-radius:10px;padding:.7rem 1rem;flex-wrap:wrap}
.gl-ss .gl-dot{width:9px;height:9px;border-radius:50%;flex:none}
.gl-ss.ok .gl-dot{background:var(--teal);box-shadow:0 0 8px var(--teal)}
.gl-ss.warn .gl-dot{background:var(--amber)}
.gl-ss em{color:var(--muted)}
.gl-wrap{display:grid;grid-template-columns:1fr 1fr;gap:1.4rem;align-items:start}
.gl-list-col,.gl-form-col{background:var(--panel);border:1px solid var(--line-solid);border-radius:var(--radius);padding:1.4rem}
.gl-colhead{display:flex;align-items:center;justify-content:space-between;margin-bottom:.8rem}
.gl-colhead h3,.gl-form-col h3{font-size:1.1rem}
.gl-badge{font-family:var(--mono);font-size:.74rem;background:#2dd4bf22;color:#5eead4;border:1px solid #2dd4bf44;
  border-radius:999px;padding:.1rem .5rem;margin-left:.3rem}
.gl-badge-amber{background:#ff990022;color:#fbbf24;border-color:#ff990055}
.gl-terms,.gl-drafts{display:flex;flex-direction:column;gap:.5rem;max-height:460px;overflow-y:auto}
.gl-term,.gl-draft{background:#0e1626;border:1px solid var(--line-solid);border-radius:10px;padding:.7rem .9rem}
.gl-draft{display:flex;align-items:center;justify-content:space-between;gap:.8rem;border-color:#ff990044}
.gl-tname{font-weight:600;color:#eaf1fb;font-size:.95rem}
.gl-tdef{color:var(--muted);font-size:.84rem;margin-top:.15rem}
.gl-drafts-wrap{margin-top:1.3rem;border-top:1px solid var(--line-solid);padding-top:1rem}
.gl-form-col .onb-field textarea{background:#0a0e17;border:1px solid var(--line-solid);border-radius:9px;
  padding:.6rem .8rem;color:var(--txt);font:inherit;font-size:.9rem;resize:vertical}
.gl-form-col .onb-field textarea:focus{outline:none;border-color:var(--teal)}
.gl-result{margin-top:1rem}
.gl-ok{background:#2dd4bf12;border:1px solid #2dd4bf44;color:#a7f3e0;border-radius:10px;padding:.8rem 1rem;font-size:.9rem}
@media(max-width:880px){ .gl-wrap{grid-template-columns:1fr} }

/* ───── guide ───── */
.guide-layout{max-width:1100px;margin:0 auto;padding:clamp(1.5rem,4vw,3rem) clamp(1rem,4vw,2rem);
  display:grid;grid-template-columns:230px 1fr;gap:2.5rem;align-items:start}
.guide-toc{position:sticky;top:80px;font-size:.84rem;display:flex;flex-direction:column;gap:.1rem;
  max-height:calc(100vh - 100px);overflow-y:auto}
.toc-title{font-family:var(--mono);font-size:.66rem;letter-spacing:.16em;color:var(--muted2);
  text-transform:uppercase;margin-bottom:.6rem}
.guide-toc a{color:var(--muted);padding:.35rem .5rem;border-radius:7px;border-left:2px solid transparent;
  display:flex;gap:.5rem;line-height:1.3;transition:.15s}
.guide-toc a:hover{color:var(--txt);background:#ffffff08}
.guide-toc a span{color:var(--muted2);font-family:var(--mono);font-size:.78rem}
.guide-toc a.active{color:var(--txt);border-left-color:var(--teal);background:#ffffff0a}
.guide-body{min-width:0;max-width:760px}
.guide-head{border-bottom:1px solid var(--line-solid);padding-bottom:1.6rem;margin-bottom:1rem}
.guide-head h1{font-size:clamp(1.8rem,4vw,2.6rem);margin:.6rem 0}
.guide-sub{color:var(--muted);font-size:1.05rem;font-style:italic;max-width:62ch}
.guide-meta{margin-top:.8rem;font-family:var(--mono);font-size:.72rem;color:var(--muted2)}
.guide-sec{padding:1.8rem 0;border-bottom:1px solid #15203510}
.guide-sec h2{font-size:1.5rem;margin-bottom:1rem;letter-spacing:-.02em}
.guide-sec h3{font-size:1.12rem;margin:1.4rem 0 .5rem;color:#dbe5f5}
.guide-body p{color:#c4d2ea;margin-bottom:.9rem;font-size:1rem;line-height:1.7}
.guide-lead{font-size:1.12rem !important;color:#dbe5f5 !important}
.guide-body strong,.guide-body b{color:#eaf1fb;font-weight:600}
.guide-body em{color:#aebed8}
.guide-body ul,.guide-body ol{margin:0 0 1rem 1.2rem;color:#c4d2ea}
.guide-body li{margin-bottom:.45rem;line-height:1.6}
.guide-body blockquote{border-left:3px solid var(--teal);background:#0e1626;padding:.9rem 1.2rem;
  border-radius:0 10px 10px 0;margin:1rem 0;color:#dbe5f5;font-size:1.02rem}
.guide-pre{background:#0a0e17;border:1px solid var(--line-solid);border-radius:10px;padding:1rem 1.2rem;
  overflow-x:auto;margin:1rem 0;font-family:var(--mono);font-size:.8rem;line-height:1.5;color:#9fb0cc}
.guide-note{background:linear-gradient(120deg,#161127,#101a2e);border:1px solid #3a2c5e;border-radius:10px;
  padding:.9rem 1.2rem;margin:1rem 0;font-size:.93rem;color:#d8c8f0}
.guide-tablewrap{overflow-x:auto;margin:1.1rem 0}
.guide-table{width:100%;border-collapse:collapse;font-size:.88rem}
.guide-table th{text-align:left;padding:.6rem .8rem;background:#0e1626;color:var(--muted);font-weight:600;
  border-bottom:1px solid var(--line-solid);font-size:.78rem;text-transform:uppercase;letter-spacing:.04em}
.guide-table td{padding:.6rem .8rem;border-bottom:1px solid #15203520;color:#c4d2ea;vertical-align:top}
.guide-table tr:hover td{background:#ffffff05}
@media(max-width:880px){ .guide-layout{grid-template-columns:1fr} .guide-toc{display:none} }

/* ───── context callout ───── */
.context-callout{position:relative;border:1px solid #3a2c5e;border-radius:24px;padding:2.6rem;overflow:hidden;
  background:linear-gradient(120deg,#161127,#1a1432)}
.ctx-glow{position:absolute;inset:0;background:radial-gradient(50% 80% at 85% 10%,rgba(192,132,252,.22),transparent 70%);pointer-events:none}
.context-callout h2{font-size:1.8rem;margin:.6rem 0 .7rem}
.context-callout p{color:#c8d3ea;max-width:70ch;margin-bottom:.7rem}
.ctx-why{color:var(--muted);font-size:.95rem}
.ctx-why em{color:var(--violet);font-style:normal;font-weight:600}

/* ───── footer ───── */
.footer{border-top:1px solid var(--line-solid);margin-top:2rem}
.footer-inner{max-width:var(--maxw);margin:0 auto;padding:1.6rem clamp(1rem,4vw,2rem);display:flex;align-items:center;gap:.8rem;
  color:var(--muted);font-size:.82rem;flex-wrap:wrap}
.footer-meta{margin-left:auto;font-family:var(--mono);font-size:.72rem;color:var(--muted2,#64759a)}

/* ───── Bedrock University (Redshift PoC) ───── */
.bu-arch{background:var(--panel);border:1px solid var(--line-solid);border-radius:var(--radius);
  padding:1.3rem 1.4rem;margin-bottom:1.6rem}
.bu-flow{display:flex;align-items:center;gap:.7rem;flex-wrap:wrap;justify-content:center}
.bu-node{background:#0e1626;border:1px solid var(--line-solid);border-radius:var(--radius-sm);
  padding:.7rem .9rem;text-align:center;min-width:120px}
.bu-node b{display:block;font-size:.9rem}
.bu-node small{display:block;color:var(--muted);font-size:.7rem;margin-top:.15rem}
.bu-ic{font-size:1.4rem;display:block;margin-bottom:.25rem}
.bu-hub{border-color:var(--teal);box-shadow:0 0 0 1px var(--teal) inset,0 0 22px #2dd4bf22}
.bu-ar{color:var(--muted2,#64759a);font-size:1.2rem;font-weight:700}
.bu-consumers{display:flex;flex-direction:column;gap:.5rem}
.bu-consumer{border-color:var(--indigo)}
.bu-wrap{display:grid;grid-template-columns:1.5fr 1fr;gap:1.3rem;align-items:start}
.bu-chat-col{background:var(--panel);border:1px solid var(--line-solid);border-radius:var(--radius);
  padding:1.2rem 1.3rem;display:flex;flex-direction:column}
.bu-colhead{display:flex;justify-content:space-between;align-items:center;margin-bottom:.7rem}
.bu-colhead h3{font-size:1.05rem}
.bu-engine{font-size:.74rem;color:var(--muted);font-family:var(--mono);display:flex;align-items:center;gap:.4rem}
.bu-engine.warn{color:var(--amber)}
.bu-dot{width:8px;height:8px;border-radius:50%;background:var(--teal);box-shadow:0 0 8px var(--teal);display:inline-block}
.bu-suggest{display:flex;flex-wrap:wrap;gap:.4rem;margin-bottom:.8rem}
.bu-chip{background:#ffffff08;border:1px solid var(--line-solid);color:var(--muted);border-radius:999px;
  padding:.32rem .7rem;font:inherit;font-size:.76rem;cursor:pointer;transition:.15s}
.bu-chip:hover{color:var(--txt);border-color:var(--teal)}
.bu-chat{flex:1;min-height:240px;max-height:440px;overflow-y:auto;display:flex;flex-direction:column;gap:.7rem;
  padding:.4rem;background:#0c1320;border:1px solid var(--line-solid);border-radius:var(--radius-sm)}
.bu-hello{color:var(--muted);font-size:.9rem;padding:1rem;line-height:1.55}
.bu-msg{padding:.7rem .9rem;border-radius:var(--radius-sm);font-size:.9rem;max-width:92%}
.bu-user{align-self:flex-end;background:linear-gradient(180deg,#1b2745,#16203a);border:1px solid var(--line-solid);font-weight:500}
.bu-agent{align-self:flex-start;background:#0e1626;border:1px solid var(--line-solid);width:92%}
.bu-think{color:var(--muted);font-style:italic;display:flex;align-items:center;gap:.5rem}
.bu-answer{line-height:1.55;margin-bottom:.5rem}
.bu-answer b{color:var(--teal)}
.bu-spin{width:13px;height:13px;border:2px solid #ffffff30;border-top-color:var(--teal);border-radius:50%;
  display:inline-block;animation:buspin .7s linear infinite}
@keyframes buspin{to{transform:rotate(360deg)}}
.bu-tablewrap{overflow-x:auto;margin:.5rem 0}
.bu-rtable{width:100%;border-collapse:collapse;font-size:.8rem}
.bu-rtable th{text-align:left;color:var(--muted);font-weight:600;border-bottom:1px solid var(--line-solid);
  padding:.3rem .5rem;text-transform:capitalize}
.bu-rtable td{padding:.3rem .5rem;border-bottom:1px solid #1a2740}
.bu-more{color:var(--muted2,#64759a);font-size:.74rem;padding:.3rem .5rem}
.bu-sql{margin:.5rem 0 .3rem}
.bu-sql summary{cursor:pointer;color:var(--muted);font-size:.78rem;font-family:var(--mono)}
.bu-sql pre{background:#070b13;border:1px solid var(--line-solid);border-radius:8px;padding:.7rem;
  overflow-x:auto;margin-top:.4rem}
.bu-sql code{font-family:var(--mono);font-size:.76rem;color:#bcd0f0;white-space:pre}
.bu-prov{color:var(--muted2,#64759a);font-size:.72rem;font-family:var(--mono);margin-top:.3rem}
.bu-ask-row{display:flex;gap:.6rem;margin-top:.8rem}
.bu-ask-row input{flex:1;background:#0c1320;border:1px solid var(--line-solid);border-radius:var(--radius-sm);
  color:var(--txt);font:inherit;padding:.7rem .9rem}
.bu-ask-row input:focus{outline:none;border-color:var(--teal)}
.bu-foot{color:var(--muted2,#64759a);font-size:.72rem;margin-top:.6rem;font-family:var(--mono)}
.bu-side-col{display:flex;flex-direction:column;gap:1.3rem}
.bu-card{background:var(--panel);border:1px solid var(--line-solid);border-radius:var(--radius);padding:1.2rem 1.3rem}
.bu-card h3{font-size:1.02rem;margin-bottom:.3rem}
.bu-terms{display:flex;flex-direction:column;gap:.5rem;margin-top:.7rem;max-height:300px;overflow-y:auto}
.bu-term{border-left:2px solid var(--teal);padding:.1rem 0 .1rem .7rem}
.bu-term b{display:block;font-size:.86rem}
.bu-term span{color:var(--muted);font-size:.78rem}
.bu-parity{border-color:#2dd4bf55}
.bu-ptable{width:100%;border-collapse:collapse;margin:.7rem 0;font-size:.84rem}
.bu-ptable th{text-align:left;color:var(--muted);font-weight:600;padding:.35rem .4rem;border-bottom:1px solid var(--line-solid)}
.bu-ptable td{padding:.4rem .4rem;border-bottom:1px solid #1a2740}
.bu-num{font-family:var(--mono);color:var(--teal);font-weight:600}
.bu-parity-note{color:var(--muted);font-size:.76rem;line-height:1.5;margin-top:.4rem}
.bu-parity-note code{font-family:var(--mono);font-size:.72rem;color:#bcd0f0;background:#070b13;padding:.05rem .3rem;border-radius:4px}

/* ───── reveal on scroll ───── */
.reveal{opacity:0;transform:translateY(22px);transition:.7s cubic-bezier(.2,.7,.2,1)}
.reveal.in{opacity:1;transform:none}

/* ───── responsive ───── */
@media(max-width:880px){
  .tabs{display:none;position:absolute;top:100%;left:0;right:0;flex-direction:column;background:#0c1320;
    border-bottom:1px solid var(--line-solid);padding:.5rem}
  .tabs.open{display:flex}
  .tab{text-align:left;width:100%}
  .menu-toggle{display:block}
  .topbar-right{display:none}
  .exec-grid,.tech-grid{grid-template-columns:1fr}
  .stat-row{grid-template-columns:repeat(2,1fr)}
  .graph-wrap{grid-template-columns:1fr;height:auto}
  .graph-side{border-right:0;border-bottom:1px solid var(--line-solid)}
  .graph-canvas-wrap{height:62vh}
  .bu-wrap{grid-template-columns:1fr}
  .bu-flow{flex-direction:column}
  .bu-ar{transform:rotate(90deg)}
}
