/* ==========================================================================
   "Paper" style – calm, warm reading style: ivory paper, serif headings,
   clay accent, quiet chrome.
   ========================================================================== */

@font-face {
  font-family: "Source Serif 4";
  font-weight: 400;
  font-display: swap;
  src: url("../fonts/source-serif-4-latin-400-normal.woff2") format("woff2");
}
@font-face {
  font-family: "Source Serif 4";
  font-weight: 600;
  font-display: swap;
  src: url("../fonts/source-serif-4-latin-600-normal.woff2") format("woff2");
}

:root {
  --pp-serif: "Source Serif 4", Georgia, "Times New Roman", serif;
  --pp-radius: 10px;
}

[data-md-color-scheme="default"] {
  --pp-bg: #faf9f5;
  --pp-surface: #f2f0e8;
  --pp-raised: #ffffff;
  --pp-border: #e3dfd3;
  --pp-heading: #1f1d17;
  --pp-text: #3b3830;
  --pp-muted: #6e6a5f;
  --pp-accent: #b4532f;
  --pp-accent-soft: #b4532f14;
  --pp-btn-bg: #1f1d17;
  --pp-btn-fg: #faf9f5;

  --md-primary-fg-color: var(--pp-bg);
  --md-primary-fg-color--light: var(--pp-bg);
  --md-primary-fg-color--dark: var(--pp-surface);
  --md-primary-bg-color: var(--pp-heading);
  --md-primary-bg-color--light: #1f1d17b3;
  --md-accent-fg-color: var(--pp-accent);
  --md-accent-fg-color--transparent: var(--pp-accent-soft);
  --md-default-bg-color: var(--pp-bg);
  --md-default-fg-color: var(--pp-text);
  --md-default-fg-color--light: var(--pp-muted);
  --md-default-fg-color--lighter: #a29d8f;
  --md-default-fg-color--lightest: #e3dfd3;
  --md-typeset-a-color: var(--pp-accent);
  --md-code-bg-color: var(--pp-surface);
  --md-code-fg-color: #2e2b24;
  --md-footer-bg-color: var(--pp-surface);
  --md-footer-bg-color--dark: #ebe8de;
  --md-footer-fg-color: var(--pp-text);
  --md-footer-fg-color--light: var(--pp-muted);
  --md-footer-fg-color--lighter: #a29d8f;
}

[data-md-color-scheme="slate"] {
  --md-hue: 40;
  --pp-bg: #262624;
  --pp-surface: #30302d;
  --pp-raised: #2c2c29;
  --pp-border: #3f3e3a;
  --pp-heading: #f7f5ee;
  --pp-text: #dedbd1;
  --pp-muted: #a8a397;
  --pp-accent: #e08a68;
  --pp-accent-soft: #e08a681c;
  --pp-btn-bg: #f7f5ee;
  --pp-btn-fg: #262624;

  --md-primary-fg-color: var(--pp-bg);
  --md-primary-fg-color--light: var(--pp-bg);
  --md-primary-fg-color--dark: var(--pp-surface);
  --md-primary-bg-color: var(--pp-heading);
  --md-primary-bg-color--light: #f7f5eeb3;
  --md-accent-fg-color: var(--pp-accent);
  --md-accent-fg-color--transparent: var(--pp-accent-soft);
  --md-default-bg-color: var(--pp-bg);
  --md-default-fg-color: var(--pp-text);
  --md-default-fg-color--light: var(--pp-muted);
  --md-default-fg-color--lighter: #7d796f;
  --md-default-fg-color--lightest: #3f3e3a;
  --md-typeset-a-color: var(--pp-accent);
  --md-code-bg-color: #1f1f1d;
  --md-code-fg-color: #ece9df;
  --md-footer-bg-color: #20201e;
  --md-footer-bg-color--dark: #1b1b19;
  --md-code-hl-keyword-color: #e08a68;
  --md-code-hl-string-color: #b5c98a;
  --md-code-hl-number-color: #e3b873;
  --md-code-hl-function-color: #8fb8d9;
  --md-code-hl-comment-color: #85817a;
  --md-code-hl-constant-color: #c9a3d9;
  --md-code-hl-name-color: #ece9df;
}

/* ---------- header & tabs: same surface as the page ---------- */
.md-header {
  background: var(--pp-bg);
  color: var(--pp-heading);
  box-shadow: 0 1px 0 var(--pp-border);
}
.md-header--shadow { box-shadow: 0 1px 0 var(--pp-border), 0 6px 16px -12px #0003; }
.md-header__topic:first-child { font-family: var(--pp-serif); font-weight: 600; font-size: 1rem; }
.md-header__button.md-logo img { height: 1.5rem; image-rendering: pixelated; }
.md-search__input { background: var(--pp-surface); border: 1px solid var(--pp-border); border-radius: 8px; }
.md-search__input::placeholder,
.md-search__icon { color: var(--pp-muted); }

.md-tabs {
  background: var(--pp-bg);
  color: var(--pp-muted);
  box-shadow: 0 1px 0 var(--pp-border);
}
.md-tabs__link { font-size: .72rem; font-weight: 500; opacity: 1; color: var(--pp-muted); }
.md-tabs__item { position: relative; }
.md-tabs__item--active .md-tabs__link { color: var(--pp-heading); }
.md-tabs__item--active::after {
  content: ""; position: absolute; left: .6rem; right: .6rem; bottom: 0;
  height: 2px; background: var(--pp-accent); border-radius: 2px;
}
.md-tabs__link:hover { color: var(--pp-heading); }

/* ---------- sidebar ---------- */
.md-nav { font-size: .7rem; }
.md-nav__title { color: var(--pp-heading); font-weight: 600; }
.md-nav--primary .md-nav__item--section > .md-nav__link {
  color: var(--pp-heading);
  font-weight: 600;
  font-size: .68rem;
}
.md-sidebar--primary .md-nav__link {
  border-radius: 7px;
  padding: .3rem .6rem;
  margin-top: .1rem;
  margin-left: -.6rem;
  transition: background .15s, color .15s;
}
.md-sidebar--primary .md-nav__link:hover { background: var(--pp-surface); color: var(--pp-heading); }
.md-sidebar--primary .md-nav__link--active {
  background: var(--pp-accent-soft);
  color: var(--pp-accent) !important;
  font-weight: 600;
}
.md-nav--secondary .md-nav__link--active { color: var(--pp-accent); }

/* ---------- typography ---------- */
.md-typeset { font-size: .82rem; line-height: 1.7; color: var(--pp-text); }
.md-typeset h1,
.md-typeset h2,
.md-typeset h3 {
  font-family: var(--pp-serif);
  color: var(--pp-heading);
  letter-spacing: -.005em;
}
.md-typeset h1 { font-weight: 600; font-size: 2.1rem; line-height: 1.2; margin-bottom: 1rem; }
.md-typeset h2 { font-weight: 600; font-size: 1.45rem; margin-top: 2.4rem; }
.md-typeset h3 { font-weight: 600; font-size: 1.12rem; }
.md-typeset a { text-decoration: underline; text-decoration-color: color-mix(in srgb, var(--pp-accent) 35%, transparent); text-underline-offset: 3px; }
.md-typeset a:hover { text-decoration-color: var(--pp-accent); }
.md-typeset .headerlink { text-decoration: none; }
.md-typeset hr { border-bottom: 1px solid var(--pp-border); }
.md-typeset blockquote { border-left: 3px solid var(--pp-accent); color: var(--pp-muted); }

/* ---------- code ---------- */
.md-typeset :not(pre) > code {
  background: var(--pp-surface);
  border: 1px solid var(--pp-border);
  border-radius: 5px;
  padding: .05em .35em;
  font-size: .82em;
}
.md-typeset pre {
  border: 1px solid var(--pp-border);
  border-radius: var(--pp-radius);
  overflow: hidden;
}
.md-typeset pre > code { padding: .9em 1.1em; }

/* ---------- tables & admonitions ---------- */
.md-typeset table:not([class]) {
  border: 1px solid var(--pp-border);
  border-radius: var(--pp-radius);
  overflow: hidden;
  font-size: .74rem;
  box-shadow: none;
}
.md-typeset table:not([class]) th { background: var(--pp-surface); color: var(--pp-heading); font-weight: 600; }
.md-typeset table:not([class]) td { border-top: 1px solid var(--pp-border); }
.md-typeset .admonition,
.md-typeset details {
  border: 1px solid var(--pp-border);
  border-radius: var(--pp-radius);
  background: var(--pp-raised);
  box-shadow: none;
}

/* ---------- footer ---------- */
.md-footer { border-top: 1px solid var(--pp-border); }

/* ==========================================================================
   Home page
   ========================================================================== */
.gc-only-game { display: none !important; }
.gc-only-docs { display: inline; }

.gc-hero {
  background:
    radial-gradient(700px 260px at 85% 0%, var(--pp-accent-soft), transparent 70%),
    var(--pp-bg);
  border-bottom: 1px solid var(--pp-border);
}
.gc-hero__inner { padding: 3.6rem .8rem 3.2rem; }
.gc-hero__kicker {
  margin: 0 0 .9rem;
  font-size: .72rem;
  font-weight: 600;
  color: var(--pp-accent);
  letter-spacing: .02em;
}
.gc-hero__title {
  margin: 0;
  font-family: var(--pp-serif);
  font-weight: 400;
  font-size: clamp(2.2rem, 6vw, 3.6rem);
  line-height: 1.1;
  letter-spacing: -.015em;
  color: var(--pp-heading);
}
.gc-hero__title span { font-style: italic; color: var(--pp-accent); }
.gc-hero__lead {
  max-width: 34rem;
  margin: 1rem 0 1.4rem;
  font-size: .95rem;
  line-height: 1.65;
  color: var(--pp-muted);
}
.gc-worlds { gap: .45rem; margin-bottom: 1.8rem; }
.gc-world {
  display: inline-flex; align-items: center; gap: .4rem;
  padding: .22rem .7rem;
  font-size: .68rem; font-weight: 500;
  color: var(--pp-text);
  border: 1px solid var(--pp-border);
  border-radius: 999px;
  background: var(--pp-raised);
}
.gc-world::before { content: ""; width: .45rem; height: .45rem; border-radius: 50%; }
.gc-world--avalonia::before { background: #3a9c6e; }
.gc-world--corleone::before { background: #c4473b; }
.gc-world--etherion::before { background: #7a64d6; }

.gc-hero__actions { gap: .6rem; }
.gc-btn {
  display: inline-flex; align-items: center; gap: .4rem;
  padding: .55rem 1rem;
  font-size: .74rem; font-weight: 600;
  color: var(--pp-heading) !important;
  background: var(--pp-raised);
  border: 1px solid var(--pp-border);
  border-radius: 8px;
  text-decoration: none !important;
  transition: background .15s, border-color .15s;
}
.gc-btn:hover { border-color: var(--pp-muted); }
.gc-btn--primary { color: var(--pp-btn-fg) !important; background: var(--pp-btn-bg); border-color: var(--pp-btn-bg); }
.gc-btn--primary:hover { background: var(--pp-accent); border-color: var(--pp-accent); }

.gc-home h2 { margin-top: 2rem; }
.md-typeset a.gc-card {
  padding: .9rem 1rem;
  background: var(--pp-raised);
  border: 1px solid var(--pp-border);
  border-radius: var(--pp-radius);
  color: var(--pp-text);
  transition: border-color .15s, box-shadow .15s;
}
.md-typeset a.gc-card:hover { border-color: var(--pp-accent); box-shadow: 0 4px 14px -8px #0002; }
.gc-card__meta { font-size: .62rem; color: var(--pp-muted); }
.gc-card__label { font-family: var(--pp-serif); font-size: 1.02rem; font-weight: 600; color: var(--pp-heading); }
