/* Goblin Chronicles palettes (2026-10-01, site-redesign-20261001).
   Each story sets `palette:` in its front matter; head_custom.html copies it to
   <html data-palette="...">. The arc runs underground -> sea, each phase tinted by the
   dominant colours sampled from that phase's illustrations. Text is warm off-white on the
   dark grounds (never pure white); every pair below meets WCAG AA (ratios recorded in the
   commit and in docs/goblin_chronicles.md's maintainer note). Generated -- edit the
   palette table, not this file by hand. */
html[data-palette="underground"] {
  --pal-bg: #110d09; --pal-surface: #1c160f; --pal-line: #3a3024; --pal-text: #ede6d6;
  --pal-head: #f3ecdd; --pal-muted: #c7bca6; --pal-link: #e5b56b; --pal-code: #211a12;
}
html[data-palette="lantern"] {
  --pal-bg: #1b140b; --pal-surface: #271e13; --pal-line: #3d3528; --pal-text: #ede6d6;
  --pal-head: #f3ecdd; --pal-muted: #c6bda8; --pal-link: #e3bb72; --pal-code: #231d14;
}
html[data-palette="tunnels"] {
  --pal-bg: #14170f; --pal-surface: #1f2318; --pal-line: #3a3b30; --pal-text: #ede6d6;
  --pal-head: #f3ecdd; --pal-muted: #c4bfaa; --pal-link: #d9c07a; --pal-code: #20211a;
}
html[data-palette="fishtank"] {
  --pal-bg: #0e1a16; --pal-surface: #172620; --pal-line: #2f3e38; --pal-text: #ede6d6;
  --pal-head: #f1ecdf; --pal-muted: #bfc2b0; --pal-link: #b9d39a; --pal-code: #18221e;
}
html[data-palette="shore"] {
  --pal-bg: #0c1a1f; --pal-surface: #14262c; --pal-line: #2b4044; --pal-text: #ede6d6;
  --pal-head: #f0ebe0; --pal-muted: #bcc4bb; --pal-link: #9fd2c4; --pal-code: #152326;
}
html[data-palette="sea-navy"] {
  --pal-bg: #0d1626; --pal-surface: #15203a; --pal-line: #2a3a58; --pal-text: #ede6d6;
  --pal-head: #f0ebe0; --pal-muted: #bcc3c9; --pal-link: #9cc7e6; --pal-code: #131e33;
}
html[data-palette="sea-teal"] {
  --pal-bg: #0b1d22; --pal-surface: #13292f; --pal-line: #27434a; --pal-text: #ede6d6;
  --pal-head: #f0ebe0; --pal-muted: #b8c6c3; --pal-link: #8fd0cf; --pal-code: #122a30;
}
html[data-palette="sea-mist"] {
  --pal-bg: #e7eef0; --pal-surface: #f3f7f8; --pal-line: #c3d2d8; --pal-text: #16263a;
  --pal-head: #0f1e30; --pal-muted: #46586a; --pal-link: #1d5a7a; --pal-code: #dce6ea;
}

html[data-palette],
html[data-palette] body,
html[data-palette] .side-bar,
html[data-palette] .site-header,
html[data-palette] .main,
html[data-palette] .main-content-wrap,
html[data-palette] .main-header {
  background: var(--pal-bg);
  color: var(--pal-text);
  border-color: var(--pal-line);
}

html[data-palette] .side-bar { border-right: 1px solid var(--pal-line); }
html[data-palette] .main-header,
html[data-palette] .site-header { border-bottom: 1px solid var(--pal-line); }

html[data-palette] .main-content,
html[data-palette] .main-content p,
html[data-palette] .main-content li,
html[data-palette] .main-content td,
html[data-palette] .main-content strong,
html[data-palette] .main-content em { color: var(--pal-text); }

html[data-palette] .main-content h1,
html[data-palette] .main-content h2,
html[data-palette] .main-content h3,
html[data-palette] .main-content h4,
html[data-palette] .site-title { color: var(--pal-head); }

html[data-palette] .main-content h2 { border-bottom-color: var(--pal-line); }

html[data-palette] .main-content a,
html[data-palette] .main-content a:visited,
html[data-palette] .nav-list .nav-list-item .nav-list-link,
html[data-palette] .aux-nav .aux-nav-list-link,
html[data-palette] .ree-public-header a,
html[data-palette] .ree-public-status-link,
html[data-palette] .ree-nav-footer a,
html[data-palette] .breadcrumb-nav-list-item a { color: var(--pal-link) !important; }

html[data-palette] .main-content a:hover { color: var(--pal-head) !important; }

html[data-palette] .nav-list .nav-list-item .nav-list-link.active,
html[data-palette] .ree-public-header,
html[data-palette] .breadcrumb-nav-list-item { color: var(--pal-head) !important; }

html[data-palette] .nav-list .nav-list-item .nav-list-link:hover,
html[data-palette] .nav-list .nav-list-item .nav-list-link.active { background-image: none; background-color: var(--pal-surface); }

html[data-palette] .nav-list-expander,
html[data-palette] .site-button,
html[data-palette] .anchor-heading svg { color: var(--pal-muted); fill: var(--pal-muted); }

/* Captions are inline-styled in the story sources, so they need the override. */
html[data-palette] .main-content figcaption { color: var(--pal-muted) !important; }
html[data-palette] .main-content figure img { border-color: var(--pal-line) !important; }

html[data-palette] .main-content code,
html[data-palette] .main-content pre,
html[data-palette] .main-content pre code,
html[data-palette] .main-content div.highlighter-rouge,
html[data-palette] .main-content .highlight {
  background: var(--pal-code) !important;
  color: var(--pal-text) !important;
  border-color: var(--pal-line) !important;
}
html[data-palette] .main-content .highlight span { color: var(--pal-text) !important; }

html[data-palette] .main-content blockquote {
  background: var(--pal-surface);
  color: var(--pal-text);
  border-left-color: var(--pal-link);
}

html[data-palette] .main-content hr { background-color: var(--pal-line); border-color: var(--pal-line); }
html[data-palette] .main-content table,
html[data-palette] .main-content th,
html[data-palette] .main-content td { border-color: var(--pal-line); background: var(--pal-surface); }

html[data-palette] .ree-public-footer,
html[data-palette] .ree-public-footer p { color: var(--pal-muted); border-top-color: var(--pal-line); }
html[data-palette] .ree-nav-footer { border-top-color: var(--pal-line); }

html[data-palette] .search-input { background: var(--pal-surface); color: var(--pal-text); }
html[data-palette] .search-input::placeholder { color: var(--pal-muted); }
html[data-palette] .search-label svg,
html[data-palette] .search-icon { color: var(--pal-muted); fill: var(--pal-muted); }
html[data-palette] .search-results { background: var(--pal-surface); color: var(--pal-text); }

/* The light sea-mist candidate keeps a light image surround. */
html[data-palette="sea-mist"] .main-content figure img { border-color: var(--pal-line) !important; }
