/* ==========================================================================
   Elderian Wiki - page styles
   --------------------------------------------------------------------------
   Loaded AFTER ../styles.css and only overrides what the wiki needs: a two
   column shell, article typography, bestiary cards and the pager.

   Everything here is relative (`../styles.css`, `../img/...`) because every
   page sits exactly one level deep. That is what lets a page be opened
   straight off disk with no server, which is how this wiki is previewed.
   ========================================================================== */

.wiki { background: var(--ink); }

.wiki-shell {
  display: grid;
  grid-template-columns: 224px minmax(0, 1fr);
  gap: clamp(1.5rem, 4vw, 3.25rem);
  padding-block: clamp(1.75rem, 4vw, 2.75rem) 3rem;
  align-items: start;
}

/* ----------------------------------------------------------------- sidebar */

.wiki-side {
  position: sticky;
  top: 78px; /* clears the sticky header */
  max-height: calc(100vh - 100px);
  overflow-y: auto;
  padding-right: .5rem;
  scrollbar-width: thin;
  scrollbar-color: var(--line) transparent;
}
.wiki-side::-webkit-scrollbar { width: 6px; }
.wiki-side::-webkit-scrollbar-thumb { background: var(--line); border-radius: 3px; }

.side-head {
  margin: 1.5rem 0 .5rem;
  font-size: .68rem;
  font-weight: 700;
  letter-spacing: .16em;
  text-transform: uppercase;
  color: var(--gold);
  opacity: .85;
}
.side-head:first-child { margin-top: 0; }

.side-list {
  list-style: none;
  margin: 0 0 .25rem;
  padding: 0;
  display: grid;
  gap: 1px;
}
.side-list a {
  display: block;
  padding: .38rem .6rem;
  border-radius: var(--radius-sm);
  border-left: 2px solid transparent;
  color: var(--paper-dim);
  font-size: .885rem;
  text-decoration: none;
  transition: color .12s, background .12s, border-color .12s;
}
.side-list a:hover {
  color: var(--paper);
  background: var(--ink-2);
}
.side-list a.active {
  color: var(--gold-hi);
  background: var(--ink-2);
  border-left-color: var(--gold);
  font-weight: 600;
}

/* ----------------------------------------------------------------- article */

.wiki-main { min-width: 0; }

.wiki-article {
  background: var(--ink-2);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  padding: clamp(1.5rem, 4vw, 2.75rem);
  box-shadow: var(--shadow-sm);
}

.wiki-crumb {
  margin: 0 0 .9rem;
  font-size: .72rem;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--paper-mute);
}
.wiki-crumb a { color: var(--paper-mute); text-decoration: none; }
.wiki-crumb a:hover { color: var(--gold-hi); }
.wiki-crumb span { margin: 0 .4rem; opacity: .5; }

.wiki-article h1 {
  margin: 0 0 .6rem;
  font-family: var(--font-display);
  font-size: clamp(1.75rem, 4.2vw, 2.5rem);
  font-weight: 700;
  line-height: 1.12;
  letter-spacing: -.01em;
}

.wiki-tagline {
  margin: 0 0 1.75rem;
  padding-bottom: 1.5rem;
  border-bottom: 1px solid var(--line-soft);
  font-size: 1.05rem;
  color: var(--paper-dim);
}

.wiki-article h2 {
  margin: 2.25rem 0 .85rem;
  font-family: var(--font-display);
  font-size: 1.45rem;
  font-weight: 700;
  color: var(--paper);
}
.wiki-article h3 {
  margin: 1.75rem 0 .6rem;
  font-size: 1.06rem;
  font-weight: 650;
  color: var(--gold-hi);
}
.wiki-article h4 {
  margin: 1.35rem 0 .5rem;
  font-size: .96rem;
  font-weight: 650;
  color: var(--paper);
}

.wiki-article p { margin: 0 0 1rem; }
.wiki-article a { color: var(--gold-hi); text-decoration: none; border-bottom: 1px solid rgba(201,162,39,.35); }
.wiki-article a:hover { border-bottom-color: var(--gold-hi); }

.wiki-article ul,
.wiki-article ol { margin: 0 0 1.1rem; padding-left: 1.35rem; }
.wiki-article li { margin-bottom: .4rem; }
.wiki-article li::marker { color: var(--gold-dim); }

.wiki-article strong { color: var(--paper); font-weight: 650; }
.wiki-article em { color: var(--paper); }

.wiki-article code {
  background: var(--ink);
  border: 1px solid var(--line-soft);
  border-radius: 4px;
  padding: .1rem .35rem;
  font-size: .86em;
  color: var(--gold-hi);
}

.wiki-article pre {
  margin: 0 0 1.25rem;
  padding: 1rem 1.1rem;
  background: var(--ink);
  border: 1px solid var(--line-soft);
  border-left: 3px solid var(--gold-dim);
  border-radius: var(--radius-sm);
  overflow-x: auto;
}
.wiki-article pre code {
  background: none;
  border: none;
  padding: 0;
  color: var(--paper-dim);
  font-size: .855rem;
  line-height: 1.55;
}

.wiki-article blockquote {
  margin: 0 0 1.25rem;
  padding: .85rem 1.15rem;
  border-left: 3px solid var(--blue);
  background: var(--ink-3);
  border-radius: 0 var(--radius-sm) var(--radius-sm) 0;
  color: var(--paper-dim);
}
.wiki-article blockquote p:last-child { margin-bottom: 0; }

.wiki-article hr {
  margin: 2.25rem 0;
  border: none;
  border-top: 1px solid var(--line-soft);
}

/* ----------------------------------------------------------------- tables */

.table-wrap { overflow-x: auto; margin: 0 0 1.4rem; }

.wiki-article table {
  width: 100%;
  border-collapse: collapse;
  font-size: .9rem;
}
.wiki-article th {
  text-align: left;
  padding: .55rem .7rem;
  border-bottom: 1px solid var(--line);
  font-size: .7rem;
  font-weight: 700;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--paper-mute);
  white-space: nowrap;
}
.wiki-article td {
  padding: .55rem .7rem;
  border-bottom: 1px solid var(--line-soft);
  color: var(--paper-dim);
  vertical-align: top;
}
.wiki-article tr:hover td { background: rgba(255,255,255,.015); }
.wiki-article td:first-child { color: var(--paper); }

/* --------------------------------------------------------------- bestiary */

.bestiary {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(215px, 1fr));
  gap: 1rem;
  margin: 1.5rem 0;
}

.creature {
  background: var(--ink-3);
  border: 1px solid var(--line);
  border-left: 3px solid var(--gold-dim);
  border-radius: var(--radius-sm);
  padding: 1rem 1.05rem;
}
.creature-name {
  margin: 0 0 .35rem;
  font-size: 1rem;
  font-weight: 650;
  color: var(--gold-hi);
}
.creature-meta {
  margin: 0 0 .7rem;
  display: flex;
  flex-wrap: wrap;
  gap: .4rem;
  font-size: .74rem;
}
.creature-badge {
  background: var(--gold);
  color: #17130a;
  font-weight: 700;
  letter-spacing: .06em;
  text-transform: uppercase;
  padding: .12rem .45rem;
  border-radius: 999px;
}
.creature-stats {
  color: var(--paper-mute);
  font-family: var(--mono);
  padding: .12rem 0;
}
.creature-body { font-size: .875rem; color: var(--paper-dim); }
.creature-body p { margin: 0 0 .5rem; }
.creature-body p:last-child { margin-bottom: 0; }

/* ---------------------------------------------------------------- figures */

.wiki-figure {
  margin: 1.75rem 0;
  text-align: center;
}
.wiki-figure img {
  max-width: 100%;
  height: auto;
  border: 1px solid var(--line);
  border-radius: var(--radius-sm);
}
.wiki-figure figcaption {
  margin-top: .6rem;
  font-size: .82rem;
  color: var(--paper-mute);
}

/* ------------------------------------------------------------------ pager */

.wiki-pager {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1rem;
  margin-top: 1.5rem;
}
.pager-prev,
.pager-next {
  display: block;
  padding: .85rem 1.1rem;
  background: var(--ink-2);
  border: 1px solid var(--line);
  border-radius: var(--radius-sm);
  text-decoration: none;
  color: var(--paper);
  font-weight: 600;
  font-size: .92rem;
  transition: border-color .15s, color .15s;
}
.pager-prev:hover,
.pager-next:hover { border-color: var(--gold-dim); color: var(--gold-hi); }
.pager-next { text-align: right; }
.pager-prev span,
.pager-next span {
  display: block;
  font-size: .68rem;
  font-weight: 700;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--paper-mute);
  margin-bottom: .2rem;
}
.pager-empty { border: none; background: none; }

/* -------------------------------------------------------------- responsive */

@media (max-width: 860px) {
  .wiki-shell { grid-template-columns: 1fr; }
  .wiki-side {
    position: static;
    max-height: none;
    border: 1px solid var(--line);
    border-radius: var(--radius);
    background: var(--ink-2);
    padding: 1rem 1.1rem;
  }
  .side-list { grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); }
}

@media (max-width: 560px) {
  .wiki-article { padding: 1.35rem 1.15rem; }
  .wiki-pager { grid-template-columns: 1fr; }
  .pager-next { text-align: left; }
}
