/* =====================================================================
   Data Academy — wiki-style knowledge base
   Builds on main.css tokens + data-hub.css (hb-* hero/cards/steps).
   Everything here is theme-aware via inherited custom properties.
   ===================================================================== */

/* Defensive: these inline icons carry no width/height attributes, so if a
   specific rule is ever missing (or a stale cached stylesheet lags behind),
   they must NOT fall back to the 300x150 SVG default. Specific px rules below
   still win on specificity/order. */
.ac-body svg, .ac-scikiq svg, .ac-usecases svg, .ac-firms svg, .ac-quiz svg,
.ah-track svg, .ah-val svg, .ah-audc svg, .ac-meta svg{width:1.05em;height:1.05em}

/* ---------- hero meta chips (level / time / personas) ---------- */
.ac-meta{display:flex;flex-wrap:wrap;gap:10px;margin:6px 0 34px}
.ac-chip{display:inline-flex;align-items:center;gap:7px;padding:7px 13px;border:1px solid var(--line);
  border-radius:999px;background:var(--bg);font-family:var(--f-body);font-size:12.5px;font-weight:600;
  letter-spacing:.01em;color:var(--fg-dim)}
.ac-chip svg{width:14px;height:14px;color:var(--accent)}
.ac-chip b{color:var(--fg);font-weight:700}

/* ---------- two-column wiki layout: sticky TOC + content ---------- */
.ac-layout{display:grid;grid-template-columns:minmax(0,232px) minmax(0,1fr);
  gap:clamp(28px,5vw,64px);align-items:start}
@media (max-width:940px){ .ac-layout{grid-template-columns:minmax(0,1fr)} }

.ac-toc{position:sticky;top:84px;align-self:start}
@media (max-width:940px){ .ac-toc{position:static;top:auto;margin-bottom:8px;
  border:1px solid var(--line);background:var(--paper);padding:18px 20px} }
.ac-toc-h{font-family:var(--f-body);font-size:11px;font-weight:700;letter-spacing:.12em;
  text-transform:uppercase;color:var(--fg-faint);margin:0 0 14px;padding-bottom:12px;
  border-bottom:1px solid var(--line)}
.ac-toc ol{list-style:none;margin:0;padding:0;counter-reset:toc}
.ac-toc li{counter-increment:toc}
.ac-toc a{display:flex;gap:10px;align-items:baseline;padding:6px 0;text-decoration:none;
  font-family:var(--f-body);font-size:13.5px;line-height:1.4;color:var(--fg-dim);
  border-left:2px solid transparent;padding-left:12px;margin-left:-12px;transition:color .15s,border-color .15s}
.ac-toc a::before{content:counter(toc,decimal-leading-zero);font-family:var(--f-mono);font-size:10.5px;
  color:var(--fg-faint);flex:none;font-variant-numeric:tabular-nums}
.ac-toc a:hover{color:var(--fg)}
.ac-toc a.on{color:var(--accent);border-color:var(--accent);font-weight:600}
.ac-toc a.on::before{color:var(--accent)}

/* ---------- content column rhythm ---------- */
.ac-body{min-width:0}
.ac-block{padding:0 0 clamp(48px,6vw,72px);scroll-margin-top:84px}
.ac-block:last-child{padding-bottom:8px}
.ac-kicker{display:flex;align-items:baseline;gap:12px;font-family:var(--f-body);font-size:13px;
  font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--fg-dim);
  border-top:1px solid var(--fg);padding-top:18px;margin:0 0 18px}
.ac-kicker .idx{color:var(--accent);font-variant-numeric:tabular-nums;font-family:var(--f-mono)}
.ac-h2{font-family:var(--f-display);font-weight:700;font-size:clamp(1.6rem,2.6vw,2.25rem);
  line-height:1.14;letter-spacing:-.025em;margin:0 0 16px;max-width:22ch;text-wrap:balance}
.ac-p{font-family:var(--f-body);font-size:1.0625rem;line-height:1.7;color:var(--fg-dim);
  margin:0 0 18px;max-width:70ch}
.ac-p strong{color:var(--fg);font-weight:600}
.ac-p a,.ac-li a,.ac-def a{color:var(--accent);text-decoration:underline;text-underline-offset:2px;
  text-decoration-thickness:1px;text-decoration-color:color-mix(in srgb,var(--accent) 40%,transparent)}
.ac-p a:hover,.ac-li a:hover{text-decoration-color:var(--accent)}

/* ---------- definition callout ("What it is") ---------- */
.ac-def{border:1px solid var(--line);border-left:3px solid var(--accent);background:var(--paper);
  padding:22px 24px;margin:0 0 24px;max-width:74ch}
.ac-def .lbl{display:block;font-family:var(--f-mono);font-size:11px;font-weight:600;letter-spacing:.1em;
  text-transform:uppercase;color:var(--accent);margin-bottom:9px}
.ac-def p{font-family:var(--f-display);font-weight:500;font-size:1.1875rem;line-height:1.55;
  color:var(--fg);margin:0}

/* ---------- learning outcomes ---------- */
.ac-outcomes{border:1px solid var(--line);background:var(--accent-wash);padding:26px 28px;margin:0}
.ac-outcomes h3{font-family:var(--f-display);font-weight:700;font-size:1.25rem;letter-spacing:-.02em;
  margin:0 0 4px;color:var(--fg)}
.ac-outcomes .sub{font-family:var(--f-body);font-size:13.5px;color:var(--fg-dim);margin:0 0 18px}
.ac-outcomes ul{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));
  gap:12px 28px}
@media (max-width:680px){ .ac-outcomes ul{grid-template-columns:minmax(0,1fr)} }
.ac-outcomes li{display:flex;gap:11px;align-items:flex-start;font-family:var(--f-body);font-size:.9375rem;
  line-height:1.5;color:var(--fg)}
.ac-outcomes li svg{flex:none;width:18px;height:18px;color:var(--signal);margin-top:1px}

/* ---------- generic bullet lists ---------- */
.ac-ul{list-style:none;margin:0 0 20px;padding:0;max-width:74ch}
.ac-li{display:flex;gap:12px;align-items:flex-start;padding:11px 0;border-bottom:1px solid var(--line-soft);
  font-family:var(--f-body);font-size:.9375rem;line-height:1.55;color:var(--fg)}
.ac-li:last-child{border-bottom:0}
.ac-li .dot{flex:none;width:7px;height:7px;border-radius:50%;background:var(--accent);margin-top:7px}
.ac-li b{color:var(--fg);font-weight:700}
.ac-li em{font-style:normal;color:var(--fg-dim)}

/* ---------- persona cards ---------- */
.ac-personas{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;background:var(--line);
  border:1px solid var(--line)}
@media (max-width:820px){ .ac-personas{grid-template-columns:repeat(2,minmax(0,1fr))} }
@media (max-width:520px){ .ac-personas{grid-template-columns:minmax(0,1fr)} }
.ac-persona{background:var(--bg);padding:22px 20px;transition:background .18s}
.ac-persona:hover{background:var(--paper)}
.ac-persona .ini{width:40px;height:40px;border-radius:9px;display:grid;place-items:center;margin-bottom:14px;
  background:color-mix(in srgb,var(--h,var(--accent)) 15%,transparent);color:var(--h,var(--accent));
  font-family:var(--f-display);font-weight:700;font-size:.95rem;letter-spacing:-.02em}
.ac-persona h4{font-family:var(--f-display);font-weight:700;font-size:1.0625rem;letter-spacing:-.02em;
  margin:0 0 6px;color:var(--fg)}
.ac-persona p{font-family:var(--f-body);font-size:.8125rem;line-height:1.5;color:var(--fg-dim);margin:0}
.ac-persona .tags{margin-top:11px;display:flex;flex-wrap:wrap;gap:5px}
.ac-persona .tags span{font-family:var(--f-mono);font-size:10px;letter-spacing:.02em;color:var(--fg-faint);
  border:1px solid var(--line);padding:2px 6px;border-radius:4px}

/* ---------- best-practice callouts (do / avoid) ---------- */
.ac-practices{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;background:var(--line);
  border:1px solid var(--line)}
@media (max-width:720px){ .ac-practices{grid-template-columns:minmax(0,1fr)} }
.ac-practice{background:var(--bg);padding:18px 20px;display:flex;gap:13px;align-items:flex-start}
.ac-practice svg{flex:none;width:19px;height:19px;margin-top:1px}
.ac-practice.do svg{color:var(--signal)}
.ac-practice .t{font-family:var(--f-body);font-size:.9375rem;line-height:1.5;color:var(--fg)}
.ac-practice .t b{font-weight:700}
.ac-practice .t em{display:block;font-style:normal;color:var(--fg-dim);font-size:.8125rem;margin-top:3px}

/* ---------- trend cards ---------- */
.ac-trends{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;background:var(--line);
  border:1px solid var(--line)}
@media (max-width:900px){ .ac-trends{grid-template-columns:repeat(2,minmax(0,1fr))} }
@media (max-width:560px){ .ac-trends{grid-template-columns:minmax(0,1fr)} }
.ac-trend{background:var(--bg);padding:22px 20px;position:relative;transition:background .18s}
.ac-trend:hover{background:var(--paper)}
.ac-trend::before{content:"";position:absolute;inset:0 0 auto 0;height:3px;
  background:var(--h,var(--accent));opacity:0;transition:opacity .18s}
.ac-trend:hover::before{opacity:1}
.ac-trend .yr{font-family:var(--f-mono);font-size:10.5px;font-weight:600;letter-spacing:.06em;
  color:var(--accent);display:inline-block;margin-bottom:9px;padding:2px 7px;border:1px solid var(--line);
  border-radius:4px}
.ac-trend h4{font-family:var(--f-display);font-weight:700;font-size:1.0625rem;line-height:1.25;
  letter-spacing:-.02em;margin:0 0 8px;color:var(--fg)}
.ac-trend p{font-family:var(--f-body);font-size:.84rem;line-height:1.55;color:var(--fg-dim);margin:0}

/* ---------- hands-on lab (dev / BA) ---------- */
.ac-labs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px}
@media (max-width:820px){ .ac-labs{grid-template-columns:minmax(0,1fr)} }
.ac-lab{border:1px solid var(--line);background:var(--bg);display:flex;flex-direction:column}
.ac-lab-top{display:flex;align-items:center;gap:10px;padding:15px 20px;border-bottom:1px solid var(--line);
  background:var(--paper)}
.ac-lab-top .ic{width:32px;height:32px;border-radius:8px;display:grid;place-items:center;flex:none;
  background:color-mix(in srgb,var(--accent) 14%,transparent);color:var(--accent)}
.ac-lab-top .ic svg{width:17px;height:17px}
.ac-lab-top h4{font-family:var(--f-display);font-weight:700;font-size:1.0625rem;letter-spacing:-.02em;
  margin:0;color:var(--fg)}
.ac-lab-top .rl{font-family:var(--f-mono);font-size:10.5px;letter-spacing:.04em;text-transform:uppercase;
  color:var(--fg-faint);margin-left:auto}
.ac-lab-body{padding:18px 20px 20px}
.ac-lab ol{margin:0;padding:0;list-style:none;counter-reset:lab}
.ac-lab ol li{counter-increment:lab;position:relative;padding:0 0 14px 34px;
  font-family:var(--f-body);font-size:.875rem;line-height:1.55;color:var(--fg)}
.ac-lab ol li:last-child{padding-bottom:0}
.ac-lab ol li::before{content:counter(lab);position:absolute;left:0;top:-1px;width:22px;height:22px;
  border-radius:50%;display:grid;place-items:center;background:var(--paper-2);color:var(--accent);
  font-family:var(--f-mono);font-size:11px;font-weight:600;border:1px solid var(--line)}
.ac-lab ol li b{color:var(--fg);font-weight:700}
.ac-lab code{font-family:var(--f-mono);font-size:.78rem;background:var(--paper-2);color:var(--fg);
  padding:1px 5px;border-radius:4px;word-break:break-word}
.ac-lab .snippet{margin-top:14px;background:#0D0F13;border:1px solid var(--line);border-radius:8px;
  padding:14px 16px;overflow-x:auto}
.ac-lab .snippet pre{margin:0;font-family:var(--f-mono);font-size:.76rem;line-height:1.65;color:#E4E7EC;
  white-space:pre}
.ac-lab .snippet .c{color:#7B8494}
.ac-lab .snippet .k{color:#7B74FF}
.ac-lab .snippet .s{color:#2FD9C3}

/* ===== INTERACTIVITY ================================================= */

/* reading progress bar (top of viewport) */
.ac-progress{position:fixed;top:0;left:0;height:3px;width:0;z-index:100;
  background:linear-gradient(90deg,var(--accent),var(--signal));transition:width .12s ease-out}

/* TOC read-progress + per-section done ticks */
.ac-toc-prog{display:flex;align-items:center;gap:10px;margin:0 0 14px}
.ac-toc-ring{--p:0;width:34px;height:34px;flex:none;border-radius:50%;
  background:conic-gradient(var(--accent) calc(var(--p)*1%),var(--paper-2) 0);
  display:grid;place-items:center}
.ac-toc-ring::after{content:"";width:26px;height:26px;border-radius:50%;background:var(--bg)}
.ac-toc-ring b{position:absolute;font-family:var(--f-mono);font-size:9.5px;font-weight:600;color:var(--fg)}
.ac-toc-prog .lbl{font-family:var(--f-body);font-size:11.5px;line-height:1.3;color:var(--fg-dim)}
.ac-toc-prog .lbl b{display:block;font-family:var(--f-display);font-size:13px;color:var(--fg)}
.ac-toc a.done{color:var(--signal)}
.ac-toc a.done::after{content:"";width:13px;height:13px;margin-left:auto;flex:none;background:var(--signal);
  -webkit-mask:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='3.5' stroke-linecap='round' stroke-linejoin='round'><path d='m5 12 5 5L20 7'/></svg>") center/contain no-repeat;
  mask:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='3.5' stroke-linecap='round' stroke-linejoin='round'><path d='m5 12 5 5L20 7'/></svg>") center/contain no-repeat}
.ac-toc a{align-items:center}

/* copy button on code decks */
.ac-code{position:relative}
.ac-copy{position:absolute;top:8px;right:10px;z-index:2;display:inline-flex;align-items:center;gap:5px;
  padding:4px 9px;border:1px solid rgba(255,255,255,.16);border-radius:6px;background:rgba(255,255,255,.06);
  color:#C4C9D4;font-family:var(--f-mono);font-size:10.5px;letter-spacing:.03em;cursor:pointer;
  transition:background .15s,color .15s}
.ac-copy:hover{background:rgba(255,255,255,.14);color:#fff}
.ac-copy svg{width:12px;height:12px}
.ac-copy.ok{color:var(--signal);border-color:color-mix(in srgb,var(--signal) 50%,transparent)}

/* interactive skill matrix */
.ac-skill-summary{display:flex;flex-wrap:wrap;align-items:center;gap:10px 16px;margin:0 0 14px;
  padding:14px 18px;border:1px solid var(--line);background:var(--paper)}
.ac-skill-summary .txt{font-family:var(--f-body);font-size:.84rem;color:var(--fg-dim)}
.ac-skill-summary .txt b{color:var(--fg);font-weight:700}
.ac-skill-summary .mini{display:flex;gap:6px;margin-left:auto}
.ac-skill-summary .mini span{font-family:var(--f-mono);font-size:11px;padding:3px 9px;border-radius:5px;
  border:1px solid var(--line);color:var(--fg-dim)}
.ac-skill-summary .rs{color:var(--accent);text-decoration:underline;cursor:pointer;font-family:var(--f-body);
  font-size:12px;background:none;border:0;padding:0}
.ac-matrix.rate tbody td{cursor:pointer;position:relative;transition:background .12s}
.ac-matrix.rate tbody td:hover{background:color-mix(in srgb,var(--accent) 9%,transparent)}
.ac-matrix.rate tbody td.sel{background:color-mix(in srgb,var(--accent) 15%,transparent);
  box-shadow:inset 3px 0 0 var(--accent)}
.ac-matrix.rate tbody td.sel::after{content:"you";position:absolute;top:6px;right:8px;font-family:var(--f-mono);
  font-size:8.5px;letter-spacing:.06em;text-transform:uppercase;color:var(--accent)}

/* glossary live filter */
.ac-gloss-search{position:relative;margin:0 0 16px;max-width:340px}
.ac-gloss-search input{width:100%;padding:10px 14px 10px 38px;border:1px solid var(--line);background:var(--bg);
  font-family:var(--f-body);font-size:.875rem;color:var(--fg);border-radius:8px}
.ac-gloss-search input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-wash)}
.ac-gloss-search svg{position:absolute;left:13px;top:50%;transform:translateY(-50%);width:16px;height:16px;
  color:var(--fg-faint)}
.ac-gloss dl.hide{display:none}
.ac-gloss .nomatch{grid-column:1/-1;background:var(--bg);padding:18px 20px;font-family:var(--f-body);
  font-size:.875rem;color:var(--fg-dim)}

/* knowledge-check quiz */
.ac-quiz{border:1px solid var(--line);background:var(--paper);padding:26px 28px}
.ac-quiz .qh{display:flex;align-items:center;gap:11px;margin-bottom:4px}
.ac-quiz .qh svg{width:22px;height:22px;color:var(--accent);flex:none}
.ac-quiz .qh h3{font-family:var(--f-display);font-weight:700;font-size:1.25rem;letter-spacing:-.02em;margin:0;color:var(--fg)}
.ac-quiz .qsub{font-family:var(--f-body);font-size:13px;color:var(--fg-dim);margin:0 0 20px}
.ac-q{border-top:1px solid var(--line);padding:18px 0}
.ac-q:first-of-type{border-top:0;padding-top:4px}
.ac-q .q{font-family:var(--f-display);font-weight:600;font-size:1.0625rem;line-height:1.4;color:var(--fg);
  margin:0 0 14px}
.ac-q .q .n{font-family:var(--f-mono);font-size:12px;color:var(--accent);margin-right:8px}
.ac-opts{display:flex;flex-direction:column;gap:8px}
.ac-opt{display:flex;align-items:center;gap:11px;text-align:left;width:100%;padding:12px 15px;
  border:1px solid var(--line);background:var(--bg);border-radius:8px;cursor:pointer;
  font-family:var(--f-body);font-size:.9375rem;color:var(--fg);transition:border-color .15s,background .15s}
.ac-opt:hover:not(:disabled){border-color:var(--accent);background:var(--accent-wash)}
.ac-opt .mk{width:20px;height:20px;flex:none;border-radius:50%;border:1.5px solid var(--line-strong);
  display:grid;place-items:center}
.ac-opt .mk svg{width:12px;height:12px;opacity:0}
.ac-opt:disabled{cursor:default}
.ac-opt.correct{border-color:var(--signal);background:color-mix(in srgb,var(--signal) 12%,transparent)}
.ac-opt.correct .mk{border-color:var(--signal);background:var(--signal);color:#fff}
.ac-opt.correct .mk svg{opacity:1}
.ac-opt.wrong{border-color:var(--critical);background:color-mix(in srgb,var(--critical) 12%,transparent)}
.ac-opt.wrong .mk{border-color:var(--critical);background:var(--critical);color:#fff}
.ac-opt.wrong .mk svg{opacity:1}
.ac-exp{margin:12px 0 0;padding:12px 15px;border-left:3px solid var(--accent);background:var(--bg);
  font-family:var(--f-body);font-size:.86rem;line-height:1.55;color:var(--fg-dim);display:none}
.ac-exp.show{display:block}
.ac-exp b{color:var(--fg)}
.ac-quiz-score{margin-top:20px;padding-top:18px;border-top:1px solid var(--line);display:none;
  align-items:center;gap:14px}
.ac-quiz-score.show{display:flex;flex-wrap:wrap}
.ac-quiz-score .pct{font-family:var(--f-display);font-weight:700;font-size:1.75rem;letter-spacing:-.03em;color:var(--accent)}
.ac-quiz-score .msg{font-family:var(--f-body);font-size:.9375rem;color:var(--fg)}
.ac-quiz-score .rs{margin-left:auto;font-family:var(--f-body);font-size:13px;color:var(--accent);
  background:none;border:0;cursor:pointer;text-decoration:underline}

/* ---------- full-width code deck (reference implementations) ---------- */
.ac-codehead{display:flex;align-items:baseline;gap:12px;margin:26px 0 14px}
.ac-codehead h3{font-family:var(--f-display);font-weight:700;font-size:1.125rem;letter-spacing:-.02em;
  margin:0;color:var(--fg)}
.ac-codehead span{font-family:var(--f-mono);font-size:11px;color:var(--fg-faint)}
.ac-code{border:1px solid var(--line);background:#0D0F13;border-radius:10px;overflow:hidden;margin:0 0 16px}
.ac-code-h{display:flex;align-items:center;gap:9px;padding:10px 15px;background:#15181E;
  border-bottom:1px solid rgba(255,255,255,.08)}
.ac-code-h .dots{display:flex;gap:6px}
.ac-code-h .dots i{width:10px;height:10px;border-radius:50%;background:#3A3F4B;display:block}
.ac-code-h .fn{font-family:var(--f-mono);font-size:12px;color:#C4C9D4;letter-spacing:.01em}
.ac-code-h .lang{margin-left:auto;font-family:var(--f-mono);font-size:10px;letter-spacing:.06em;
  text-transform:uppercase;color:#6B7280;border:1px solid rgba(255,255,255,.12);padding:2px 7px;border-radius:4px}
.ac-code pre{margin:0;padding:16px 18px;overflow-x:auto;font-family:var(--f-mono);font-size:.8rem;
  line-height:1.7;color:#E4E7EC;white-space:pre;tab-size:2}
.ac-code .c{color:#7B8494}       /* comment  */
.ac-code .k{color:#7B74FF}       /* keyword  */
.ac-code .s{color:#2FD9C3}       /* string   */
.ac-code .f{color:#E9A144}       /* function/type */
.ac-code .n{color:#F2837B}       /* number/const */
.ac-code-note{font-family:var(--f-body);font-size:.82rem;line-height:1.5;color:var(--fg-dim);
  margin:-4px 0 0;padding-left:2px}

/* ---------- career ladder ---------- */
.ac-ladder{display:grid;gap:1px;background:var(--line);border:1px solid var(--line)}
.ac-rung{background:var(--bg);padding:20px 22px;display:grid;
  grid-template-columns:44px minmax(0,1fr) minmax(0,1.4fr) auto;gap:20px;align-items:center;
  transition:background .18s}
@media (max-width:760px){ .ac-rung{grid-template-columns:36px minmax(0,1fr);gap:6px 16px}
  .ac-rung .rung-skills{grid-column:2}.ac-rung .rung-band{grid-column:2} }
.ac-rung:hover{background:var(--paper)}
.ac-rung .rung-lvl{font-family:var(--f-display);font-weight:700;font-size:1.5rem;color:var(--accent);
  opacity:.4;font-variant-numeric:tabular-nums;line-height:1}
.ac-rung:hover .rung-lvl{opacity:1}
.ac-rung .rung-role b{display:block;font-family:var(--f-display);font-weight:700;font-size:1.0625rem;
  letter-spacing:-.02em;color:var(--fg)}
.ac-rung .rung-role span{font-family:var(--f-mono);font-size:10.5px;letter-spacing:.03em;color:var(--fg-faint);
  text-transform:uppercase}
.ac-rung .rung-skills{font-family:var(--f-body);font-size:.84rem;line-height:1.5;color:var(--fg-dim)}
.ac-rung .rung-band{font-family:var(--f-mono);font-size:.8rem;font-weight:600;color:var(--signal);
  white-space:nowrap;text-align:right}
@media (max-width:760px){ .ac-rung .rung-band{text-align:left} }

/* ---------- skill matrix table ---------- */
.ac-matrix-w{overflow-x:auto;border:1px solid var(--line)}
.ac-matrix{width:100%;border-collapse:collapse;min-width:640px;background:var(--bg)}
.ac-matrix th,.ac-matrix td{text-align:left;padding:14px 16px;border-bottom:1px solid var(--line-soft);
  vertical-align:top}
.ac-matrix thead th{font-family:var(--f-body);font-size:11px;font-weight:700;letter-spacing:.08em;
  text-transform:uppercase;color:var(--fg-faint);background:var(--paper);border-bottom:1px solid var(--line)}
.ac-matrix tbody th{font-family:var(--f-display);font-weight:700;font-size:.9375rem;color:var(--fg);
  white-space:nowrap}
.ac-matrix td{font-family:var(--f-body);font-size:.82rem;line-height:1.5;color:var(--fg-dim)}
.ac-matrix tbody tr:hover{background:var(--paper)}
.ac-matrix .lvl{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:7px;vertical-align:1px}
.ac-matrix .l1{background:var(--gv3)}.ac-matrix .l2{background:var(--gv5)}.ac-matrix .l3{background:var(--gv1)}

/* ---------- business application: use-case grid ---------- */
.ac-usecases{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;background:var(--line);
  border:1px solid var(--line)}
@media (max-width:900px){ .ac-usecases{grid-template-columns:repeat(2,minmax(0,1fr))} }
@media (max-width:560px){ .ac-usecases{grid-template-columns:minmax(0,1fr)} }
.ac-uc{background:var(--bg);padding:22px 20px;transition:background .18s}
.ac-uc:hover{background:var(--paper)}
.ac-uc .ico{width:34px;height:34px;border-radius:9px;display:grid;place-items:center;margin-bottom:13px;
  background:color-mix(in srgb,var(--accent) 13%,transparent);color:var(--accent)}
.ac-uc .ico svg{width:18px;height:18px}
.ac-uc h4{font-family:var(--f-display);font-weight:700;font-size:1.0625rem;letter-spacing:-.02em;
  margin:0 0 6px;color:var(--fg)}
.ac-uc p{font-family:var(--f-body);font-size:.84rem;line-height:1.55;color:var(--fg-dim);margin:0}

/* ---------- DMBOK knowledge-area grid (the DAMA Wheel) ---------- */
.ac-ka{display:grid;grid-template-columns:repeat(auto-fit,minmax(186px,1fr));gap:10px;margin:0 0 6px}
.ac-kac{border:1px solid var(--line);background:var(--bg);padding:15px 16px;display:flex;flex-direction:column;
  gap:5px;position:relative;transition:background .18s,border-color .18s}
.ac-kac:hover{background:var(--paper)}
.ac-kac .kn{font-family:var(--f-mono);font-size:10.5px;color:var(--fg-faint)}
.ac-kac h4{font-family:var(--f-display);font-weight:700;font-size:.9375rem;line-height:1.2;letter-spacing:-.01em;
  margin:0;color:var(--fg)}
.ac-kac p{font-family:var(--f-body);font-size:.76rem;line-height:1.45;color:var(--fg-dim);margin:0}
.ac-kac.hub{background:var(--accent-wash);border-color:color-mix(in srgb,var(--accent) 45%,transparent)}
.ac-kac.hub .kn{color:var(--accent)}
.ac-kac.hub h4{color:var(--accent)}
.ac-kac.hub::after{content:"hub";position:absolute;top:13px;right:14px;font-family:var(--f-mono);font-size:9px;
  letter-spacing:.08em;text-transform:uppercase;color:var(--accent)}

/* ---------- governance building-block concept cards ---------- */
.ac-concepts{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:12px}
.ac-concept{border:1px solid var(--line);background:var(--bg);padding:18px 20px;position:relative;
  transition:background .18s}
.ac-concept::before{content:"";position:absolute;inset:0 0 auto 0;height:3px;background:var(--h,var(--accent));
  opacity:0;transition:opacity .18s}
.ac-concept:hover{background:var(--paper)}
.ac-concept:hover::before{opacity:1}
.ac-concept .ab{font-family:var(--f-mono);font-size:10px;font-weight:600;letter-spacing:.05em;color:var(--accent);
  text-transform:uppercase}
.ac-concept h4{font-family:var(--f-display);font-weight:700;font-size:1.0625rem;letter-spacing:-.02em;
  margin:5px 0 7px;color:var(--fg)}
.ac-concept p{font-family:var(--f-body);font-size:.84rem;line-height:1.5;color:var(--fg-dim);margin:0 0 10px}
.ac-concept .eg{font-family:var(--f-mono);font-size:11px;line-height:1.45;color:var(--fg);
  padding:8px 10px;background:var(--paper-2);border-radius:6px;display:block}
.ac-concept .eg b{color:var(--accent);font-weight:600}

/* ---------- authoritative-data flow ---------- */
.ac-flow{display:flex;flex-wrap:wrap;align-items:stretch;gap:0;border:1px solid var(--line);margin:0 0 6px}
.ac-flow-n{flex:1;min-width:150px;background:var(--bg);padding:18px 18px;display:flex;flex-direction:column;gap:5px;
  border-right:1px solid var(--line);position:relative}
.ac-flow-n:last-child{border-right:0}
@media (max-width:760px){ .ac-flow-n{border-right:0;border-bottom:1px solid var(--line);min-width:100%}
  .ac-flow-n:last-child{border-bottom:0} }
.ac-flow-n .step{font-family:var(--f-mono);font-size:10px;letter-spacing:.06em;text-transform:uppercase;
  color:var(--accent)}
.ac-flow-n b{font-family:var(--f-display);font-weight:700;font-size:1rem;letter-spacing:-.02em;color:var(--fg)}
.ac-flow-n span{font-family:var(--f-body);font-size:.8rem;line-height:1.45;color:var(--fg-dim)}
.ac-flow-n::after{content:"";position:absolute;right:-7px;top:50%;transform:translateY(-50%) rotate(45deg);
  width:12px;height:12px;background:var(--bg);border-right:1px solid var(--line);border-bottom:1px solid var(--line);z-index:2}
.ac-flow-n:last-child::after{display:none}
@media (max-width:760px){ .ac-flow-n::after{right:50%;top:auto;bottom:-7px;transform:translateX(50%) rotate(45deg)} }

/* ---------- worked-example data tables (normal forms, star, vault) ---------- */
.ac-eg-row{display:grid;grid-template-columns:1fr 1fr;gap:16px;align-items:start;margin:0 0 10px}
.ac-eg-row.one{grid-template-columns:1fr}
@media (max-width:760px){ .ac-eg-row{grid-template-columns:1fr} }
.ac-eg{border:1px solid var(--line);background:var(--bg);min-width:0}
.ac-eg-h{display:flex;align-items:center;gap:9px;flex-wrap:wrap;padding:10px 14px;
  border-bottom:1px solid var(--line);background:var(--paper)}
.ac-tag{font-family:var(--f-mono);font-size:10px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;
  padding:3px 8px;border-radius:5px;flex:none}
.ac-tag.bad{color:var(--critical);background:color-mix(in srgb,var(--critical) 12%,transparent);
  border:1px solid color-mix(in srgb,var(--critical) 40%,transparent)}
.ac-tag.good{color:var(--signal);background:color-mix(in srgb,var(--signal) 12%,transparent);
  border:1px solid color-mix(in srgb,var(--signal) 40%,transparent)}
.ac-tag.info{color:var(--accent);background:var(--accent-wash);border:1px solid color-mix(in srgb,var(--accent) 35%,transparent)}
.ac-eg-h .cap{font-family:var(--f-body);font-size:12px;line-height:1.4;color:var(--fg-dim)}
.ac-eg .tname{display:block;font-family:var(--f-mono);font-size:11px;color:var(--fg-dim);padding:9px 14px 0}
.ac-tbl-w{overflow-x:auto;padding:8px 6px 10px}
.ac-tbl{width:100%;border-collapse:collapse;font-family:var(--f-mono);font-size:11.5px}
.ac-tbl th,.ac-tbl td{text-align:left;padding:5px 10px;white-space:nowrap}
.ac-tbl thead th{color:var(--fg-faint);font-weight:600;border-bottom:1px solid var(--line)}
.ac-tbl tbody td{color:var(--fg);border-bottom:1px solid var(--line-soft)}
.ac-tbl tbody tr:last-child td{border-bottom:0}
.ac-tbl .pk{color:var(--accent);font-weight:600}
.ac-tbl .fk{color:var(--signal)}
.ac-tbl .bad{color:var(--critical)}
.ac-eg-note{font-family:var(--f-body);font-size:.82rem;line-height:1.5;color:var(--fg-dim);
  margin:0;padding:0 14px 12px}
.ac-eg-note b{color:var(--fg)}
.ac-arrow{display:flex;align-items:center;justify-content:center;gap:8px;margin:2px 0 12px;
  font-family:var(--f-mono);font-size:11px;letter-spacing:.04em;text-transform:uppercase;color:var(--accent)}
.ac-arrow svg{width:16px;height:16px}

/* ---------- in-section sub-heading ---------- */
.ac-subhead{font-family:var(--f-display);font-weight:700;font-size:1.25rem;letter-spacing:-.02em;
  margin:34px 0 6px;color:var(--fg)}
.ac-subhead + .ac-p{margin-top:0}

/* ---------- industry signal: what the leaders are doing ---------- */
.ac-firms{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;background:var(--line);
  border:1px solid var(--line)}
@media (max-width:820px){ .ac-firms{grid-template-columns:repeat(2,minmax(0,1fr))} }
@media (max-width:520px){ .ac-firms{grid-template-columns:minmax(0,1fr)} }
.ac-firm{background:var(--bg);padding:20px 18px;display:flex;flex-direction:column;gap:9px}
.ac-firm .nm{display:flex;align-items:center;gap:9px}
.ac-firm .badge{width:30px;height:30px;border-radius:7px;display:grid;place-items:center;flex:none;
  font-family:var(--f-display);font-weight:700;font-size:.8rem;letter-spacing:-.02em;
  background:color-mix(in srgb,var(--h,var(--accent)) 16%,transparent);color:var(--h,var(--accent))}
.ac-firm .who{font-family:var(--f-display);font-weight:700;font-size:.9375rem;letter-spacing:-.02em;color:var(--fg)}
.ac-firm .role{font-family:var(--f-mono);font-size:9.5px;letter-spacing:.04em;text-transform:uppercase;
  color:var(--fg-faint);display:block;margin-top:1px}
.ac-firm p{font-family:var(--f-body);font-size:.8rem;line-height:1.5;color:var(--fg-dim);margin:0}
.ac-firm p b{color:var(--fg);font-weight:600}

/* ---------- how SCIKIQ helps ---------- */
.ac-scikiq{border:1px solid var(--line);border-left:3px solid var(--accent);background:var(--paper);
  padding:26px 28px;margin-top:22px}
.ac-scikiq .hd{display:flex;align-items:center;gap:11px;margin-bottom:6px}
.ac-scikiq .hd .mk{width:30px;height:30px;flex:none}
.ac-scikiq .hd h3{font-family:var(--f-display);font-weight:700;font-size:1.25rem;letter-spacing:-.02em;
  margin:0;color:var(--fg)}
.ac-scikiq .lead{font-family:var(--f-body);font-size:.9375rem;line-height:1.6;color:var(--fg-dim);
  margin:0 0 18px;max-width:72ch}
.ac-scikiq ul{list-style:none;margin:0 0 20px;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));
  gap:11px 26px}
@media (max-width:680px){ .ac-scikiq ul{grid-template-columns:minmax(0,1fr)} }
.ac-scikiq li{display:flex;gap:10px;align-items:flex-start;font-family:var(--f-body);font-size:.875rem;
  line-height:1.5;color:var(--fg)}
.ac-scikiq li svg{flex:none;width:17px;height:17px;color:var(--signal);margin-top:2px}
.ac-scikiq li b{font-weight:700}
.ac-scikiq .act{display:flex;flex-wrap:wrap;gap:12px}
.ac-scikiq .act .btn{display:inline-flex;align-items:center;gap:8px}
.ac-scikiq .act .btn svg{width:13px;height:13px}

/* ---------- glossary ---------- */
.ac-gloss{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;background:var(--line);
  border:1px solid var(--line)}
@media (max-width:680px){ .ac-gloss{grid-template-columns:minmax(0,1fr)} }
.ac-gloss dl{margin:0;background:var(--bg);padding:16px 20px}
.ac-gloss dt{font-family:var(--f-display);font-weight:700;font-size:.9375rem;letter-spacing:-.01em;
  color:var(--fg);margin:0 0 4px}
.ac-gloss dd{font-family:var(--f-body);font-size:.82rem;line-height:1.5;color:var(--fg-dim);margin:0}

/* ---------- related / cross-links ---------- */
.ac-related{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1px;background:var(--line);
  border:1px solid var(--line)}
@media (max-width:820px){ .ac-related{grid-template-columns:repeat(2,minmax(0,1fr))} }
@media (max-width:460px){ .ac-related{grid-template-columns:minmax(0,1fr)} }
.ac-related a{background:var(--bg);padding:20px;text-decoration:none;display:flex;flex-direction:column;
  gap:6px;transition:background .18s}
.ac-related a:hover{background:var(--paper)}
.ac-related .n{font-family:var(--f-mono);font-size:10.5px;color:var(--fg-faint)}
.ac-related b{font-family:var(--f-display);font-weight:700;font-size:1rem;letter-spacing:-.02em;color:var(--fg)}
.ac-related span{font-family:var(--f-body);font-size:.8rem;line-height:1.45;color:var(--fg-dim)}
.ac-related a:hover b{color:var(--accent)}

/* ---------- ghost button + CTA band (self-contained) ---------- */
.btn.ghost{border-color:var(--line-strong);color:var(--fg);background:transparent}
.btn.ghost:hover{border-color:var(--fg);background:var(--accent-wash)}
.ac-cta{display:flex;flex-wrap:wrap;align-items:center;gap:20px;padding:30px 32px;
  border:1px solid var(--line);border-left:3px solid var(--accent);background:var(--paper)}
.ac-cta .ct{flex:1;min-width:260px}
.ac-cta .dl-t{font-family:var(--f-display);font-weight:700;font-size:1.25rem;letter-spacing:-.02em;
  margin:0 0 6px;color:var(--fg)}
.ac-cta .dl-s{font-family:var(--f-body);font-size:.9375rem;line-height:1.5;color:var(--fg-dim);margin:0}
.ac-cta .btn{display:inline-flex;align-items:center;gap:9px;white-space:nowrap}
.ac-cta .btn svg{width:14px;height:14px}

/* =====================================================================
   HUB PAGE — Data Academy landing
   ===================================================================== */
.ah-tracks{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;background:var(--line);
  border:1px solid var(--line)}
@media (max-width:900px){ .ah-tracks{grid-template-columns:repeat(2,minmax(0,1fr))} }
@media (max-width:560px){ .ah-tracks{grid-template-columns:minmax(0,1fr)} }
.ah-track{background:var(--bg);padding:28px 24px 26px;text-decoration:none;position:relative;
  display:flex;flex-direction:column;transition:background .18s}
.ah-track::before{content:"";position:absolute;inset:0 0 auto 0;height:3px;background:var(--h,var(--accent));
  opacity:0;transition:opacity .18s}
.ah-track:hover{background:var(--paper)}
.ah-track:hover::before{opacity:1}
.ah-track .ic{width:46px;height:46px;border-radius:11px;display:grid;place-items:center;margin-bottom:18px;
  background:color-mix(in srgb,var(--h,var(--accent)) 14%,transparent);color:var(--h,var(--accent))}
.ah-track .ic svg{width:24px;height:24px}
.ah-track .no{position:absolute;top:26px;right:24px;font-family:var(--f-mono);font-size:11px;color:var(--fg-faint)}
.ah-track h3{font-family:var(--f-display);font-weight:700;font-size:1.3rem;letter-spacing:-.025em;
  margin:0 0 9px;color:var(--fg)}
.ah-track p{font-family:var(--f-body);font-size:.875rem;line-height:1.55;color:var(--fg-dim);margin:0 0 18px;flex:1}
.ah-track .go{display:inline-flex;align-items:center;gap:7px;font-family:var(--f-body);font-size:.8125rem;
  font-weight:600;color:var(--accent)}
.ah-track .go svg{width:14px;height:14px;transition:transform .18s}
.ah-track:hover .go svg{transform:translateX(4px)}
.ah-track .topics{margin-top:16px;padding-top:14px;border-top:1px solid var(--line-soft);display:flex;
  flex-wrap:wrap;gap:5px}
.ah-track .topics span{font-family:var(--f-mono);font-size:10px;color:var(--fg-faint);border:1px solid var(--line);
  padding:2px 6px;border-radius:4px}

/* value props strip on hub */
.ah-vals{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1px;background:var(--line);
  border:1px solid var(--line)}
@media (max-width:820px){ .ah-vals{grid-template-columns:repeat(2,minmax(0,1fr))} }
@media (max-width:460px){ .ah-vals{grid-template-columns:minmax(0,1fr)} }
.ah-val{background:var(--bg);padding:24px 22px}
.ah-val .ic{width:34px;height:34px;color:var(--accent);margin-bottom:14px}
.ah-val .ic svg{width:24px;height:24px}
.ah-val h4{font-family:var(--f-display);font-weight:700;font-size:1.0625rem;letter-spacing:-.02em;
  margin:0 0 7px;color:var(--fg)}
.ah-val p{font-family:var(--f-body);font-size:.84rem;line-height:1.55;color:var(--fg-dim);margin:0}

/* audience row */
.ah-aud{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;background:var(--line);
  border:1px solid var(--line)}
@media (max-width:760px){ .ah-aud{grid-template-columns:minmax(0,1fr)} }
.ah-audc{background:var(--bg);padding:26px 24px}
.ah-audc .rl{font-family:var(--f-mono);font-size:11px;font-weight:600;letter-spacing:.06em;
  text-transform:uppercase;color:var(--accent);margin-bottom:12px;display:block}
.ah-audc h4{font-family:var(--f-display);font-weight:700;font-size:1.1875rem;letter-spacing:-.02em;
  margin:0 0 10px;color:var(--fg)}
.ah-audc ul{list-style:none;margin:0;padding:0}
.ah-audc li{display:flex;gap:10px;align-items:flex-start;padding:8px 0;font-family:var(--f-body);
  font-size:.875rem;line-height:1.5;color:var(--fg-dim);border-bottom:1px solid var(--line-soft)}
.ah-audc li:last-child{border-bottom:0}
.ah-audc li svg{flex:none;width:16px;height:16px;color:var(--signal);margin-top:2px}
