/* Learning centre — extends the landing page's design language */

.learn-body{background:var(--paper)}
.learn-main{max-width:52rem;margin-inline:auto;padding:clamp(2rem,5vw,3.5rem) var(--pad) 4rem}

.crumb{
  font:400 .78rem/1 var(--mono);color:var(--muted);
  margin-bottom:2.5rem;display:flex;gap:.5rem;flex-wrap:wrap;align-items:center;
}
.crumb a{color:var(--teal);text-decoration:none}
.crumb a:hover{text-decoration:underline}
.crumb span{opacity:.5}

/* ── index ─────────────────────────────────────────────────────────── */
.learn-hero{margin-bottom:clamp(2.5rem,5vw,3.5rem)}
.learn-hero h1{
  font:400 clamp(2.1rem,5vw,3.2rem)/1.1 var(--display);
  letter-spacing:-.015em;margin:0 0 1.2rem;
}
.learn-note{
  font-size:.95rem;color:var(--muted);border-left:2px solid var(--teal);
  padding-left:1rem;max-width:38rem;
}

.toc{list-style:none;padding:0;margin:0;display:grid;gap:.85rem;counter-reset:none}
.toc-part a{
  display:flex;gap:1.15rem;align-items:flex-start;text-decoration:none;
  background:var(--card);border:1px solid var(--line-soft);border-radius:4px;
  padding:1.35rem 1.5rem;box-shadow:var(--shadow);
  transition:transform .25s cubic-bezier(.2,.7,.3,1),box-shadow .25s,border-color .25s;
}
.toc-part a:hover{transform:translateY(-2px);box-shadow:var(--shadow-lift);border-color:var(--teal)}
.toc-n{
  font:400 1.5rem/1 var(--display);color:var(--teal);flex:none;
  min-width:2ch;padding-top:.1em;
}
.toc-body{display:block}
.toc-body strong{
  display:block;font:500 1.1rem/1.35 var(--sans);color:var(--ink);margin-bottom:.4rem;
}
.toc-mods{
  display:block;font:400 .84rem/1.55 var(--sans);color:var(--muted);
}

/* ── article ───────────────────────────────────────────────────────── */
.prose{color:var(--ink-dim)}
.prose h2{
  font:400 clamp(1.7rem,3.4vw,2.4rem)/1.15 var(--display);
  color:var(--ink);letter-spacing:-.012em;margin:0 0 2rem;
  padding-bottom:.6rem;border-bottom:2px solid var(--teal);
}
.prose h3{
  font:500 1.28rem/1.35 var(--sans);color:var(--ink);
  margin:3rem 0 .9rem;scroll-margin-top:5rem;
}
.prose h4{font:500 1.05rem/1.4 var(--sans);color:var(--ink);margin:2rem 0 .7rem}
.prose p{margin:0 0 1.1rem;max-width:38rem}
.prose strong{color:var(--ink);font-weight:500}
.prose em{font-style:italic}
.prose a{color:var(--teal);text-decoration:none;border-bottom:1px solid rgba(13,143,119,.3)}
.prose a:hover{border-bottom-color:var(--teal)}
.prose ul,.prose ol{max-width:38rem;padding-left:1.3rem;margin:0 0 1.2rem}
.prose li{margin:.4em 0}
.prose hr{border:0;border-top:1px solid var(--line-soft);margin:2.5rem 0}
.prose blockquote{
  margin:1.4rem 0;padding:1.1rem 1.3rem;background:var(--teal-wash);
  border-left:3px solid var(--teal);border-radius:0 4px 4px 0;max-width:40rem;
}
.prose blockquote p{margin:.35rem 0;color:var(--ink-dim)}
.prose code{
  background:#f1efe9;padding:.12em .35em;border-radius:3px;
  font:400 .88em var(--mono);color:var(--ink);
}
.prose pre{overflow-x:auto;background:#f6f4ef;border:1px solid var(--line-soft);
  border-radius:4px;padding:1rem;margin:1.2rem 0}
.prose pre code{background:none;padding:0;font-size:.84rem;line-height:1.6}

/* tables must never break the page */
.prose table{
  border-collapse:collapse;width:100%;margin:1.4rem 0;font-size:.9rem;
  display:block;overflow-x:auto;white-space:normal;
}
.prose th,.prose td{border:1px solid var(--line);padding:.55rem .7rem;text-align:left;vertical-align:top}
.prose th{background:var(--teal-wash);font-weight:500;color:var(--ink)}

.prose svg{max-width:100%;height:auto;display:block;margin:1.5rem auto}
.mermaid{margin:1.8rem 0;text-align:center;overflow-x:auto}
.mermaid svg{max-width:100%;height:auto}

/* ── pagers ────────────────────────────────────────────────────────── */
.pagers{
  display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap;
  margin-top:3.5rem;padding-top:1.8rem;border-top:1px solid var(--line-soft);
}
.pager{
  font:500 .9rem/1.4 var(--sans);color:var(--teal);text-decoration:none;
  max-width:46%;transition:color .25s;
}
.pager:hover{color:var(--teal-bright)}
.pager.next{text-align:right;margin-left:auto}

@media (max-width:34rem){
  .toc-part a{padding:1.1rem 1.15rem;gap:.85rem}
  .pager{max-width:100%}
}

.mermaid-fig{margin:1.8rem 0;text-align:center;overflow-x:auto}
.mermaid-fig svg{max-width:100%;height:auto}
.mermaid-fallback{text-align:left;font-size:.78rem;opacity:.75}
