Jump to content

MediaWiki:Common.css: Difference between revisions

From Erindal Wiki
Content deleted Content added
Improve mobile layout and make article links easier to distinguish
No edit summary
 
(6 intermediate revisions by the same user not shown)
Line 2,049: Line 2,049:
#ew-sidebar-toggle {
#ew-sidebar-toggle {
top: 5px !important;
top: 5px !important;
}
}


/* Keep Vector article actions in a single horizontal row. */
body.skin-vector-2022 .vector-page-tools-landmark {
width: auto !important;
}

/* Restore Vector's standard compact article header while the custom Main Page uses the full canvas. */
body.skin-vector-2022.page-Main_Page .mw-body {
grid-template-columns: minmax(0, 1fr) 0 !important;
}

body.skin-vector-2022 .vector-page-toolbar .mw-list-item.selected > a {
color: var(--ew-text) !important;
border-bottom-color: var(--ew-text) !important;
}

/* Extend article title and toolbar rules across the full canvas; keep actions at the far right. */
body.skin-vector-2022:not(.page-Main_Page) .mw-body {
grid-template-columns: minmax(0, 59.25rem) minmax(0, 1fr) !important;
}

body.skin-vector-2022:not(.page-Main_Page) .vector-page-titlebar,
body.skin-vector-2022:not(.page-Main_Page) .vector-page-toolbar {
grid-column: 1 / -1 !important;
}

/* Main Page: remove Vector's empty strip below the footer. */
body.page-Main_Page .mw-footer-container {
padding-bottom: 0 !important;
}

/* Dark category-hub palette must override page-local inline light palettes. */
html[data-ew-theme="dark"] body.ns-14 .category-hub {
--category-heading: #f0d79c !important;
--category-paper: #172228 !important;
--category-paper-alt: #202d33 !important;
--category-ink: #eee5d8 !important;
--category-muted: #c6bcae !important;
--category-link: #8fc8ec !important;
--category-line: rgba(210, 172, 101, 0.24) !important;
}

@media (prefers-color-scheme: dark) {
html[data-ew-theme="system"] body.ns-14 .category-hub {
--category-heading: #f0d79c !important;
--category-paper: #172228 !important;
--category-paper-alt: #202d33 !important;
--category-ink: #eee5d8 !important;
--category-muted: #c6bcae !important;
--category-link: #8fc8ec !important;
--category-line: rgba(210, 172, 101, 0.24) !important;
}
}
}
}

Latest revision as of 20:43, 14 September 2026

/* ========================================================================
   ERINDAL WIKI - VECTOR-2022.CSS v1.1
   Target: MediaWiki 1.43.x, Vector 2022

   The skin shell, Erindal navigation, responsive layout and colour modes
   are defined here. Designed article systems remain skin-independent below.
   ======================================================================== */

:root {
  --ew-sidebar-open: 276px;
  --ew-sidebar: var(--ew-sidebar-open);
  --ew-topbar: 56px;
  --ew-dark-0: #02070a;
  --ew-dark-1: #061119;
  --ew-dark-2: #0b1a23;
  --ew-gold: #d1a24a;
  --ew-gold-soft: #efc979;
  --ew-paper: #efe7d9;
  --ew-paper-light: #f8f2e8;
  --ew-ink: #171513;
  --ew-border: rgba(111, 86, 54, .34);
  --ew-link: #0c4771;
  --ew-canvas: var(--ew-paper);
  --ew-canvas-soft: var(--ew-paper-light);
  --ew-text: var(--ew-ink);
  --ew-heading: #181512;
  --ew-rule: rgba(91, 70, 44, .32);
  --ew-message: rgba(255, 255, 255, .44);
  --ew-shadow: rgba(35, 25, 16, .17);
  color-scheme: light;
}

html.ew-sidebar-collapsed {
  --ew-sidebar: 0px;
}

html[data-ew-theme="dark"] {
  --ew-canvas: #11191d;
  --ew-canvas-soft: #182329;
  --ew-text: #e9e1d6;
  --ew-heading: #f1ddb1;
  --ew-border: rgba(210, 172, 101, .28);
  --ew-link: #8fc8ec;
  --ew-rule: rgba(210, 172, 101, .25);
  --ew-message: rgba(31, 45, 52, .92);
  --ew-shadow: rgba(0, 0, 0, .34);

  /* Shared component tokens used by TemplateStyles. These are deliberately
     undefined in light mode, where every article keeps its own palette. */
  --ew-component-canvas: #11191d;
  --ew-component-surface: #182329;
  --ew-component-surface-alt: #202d33;
  --ew-component-hover: #263941;
  --ew-component-text: #eee5d8;
  --ew-component-heading: #f0d79c;
  --ew-component-muted: #c6bcae;
  --ew-component-link: #8fc8ec;
  --ew-component-accent: #dfb66f;
  --ew-component-border: rgba(210, 172, 101, .24);
  --ew-component-shadow: rgba(0, 0, 0, .30);
  --ew-component-sheen: rgba(255, 255, 255, .035);
  --ew-component-card: rgba(32, 45, 51, .92);
  --ew-component-card-hover: rgba(41, 58, 65, .96);
  --ew-component-image-blend: normal;
  --ew-component-image-filter: none;
  color-scheme: dark;
}

@media (prefers-color-scheme: dark) {
  html[data-ew-theme="system"] {
    --ew-canvas: #11191d;
    --ew-canvas-soft: #182329;
    --ew-text: #e9e1d6;
    --ew-heading: #f1ddb1;
    --ew-border: rgba(210, 172, 101, .28);
    --ew-link: #8fc8ec;
    --ew-rule: rgba(210, 172, 101, .25);
    --ew-message: rgba(31, 45, 52, .92);
    --ew-shadow: rgba(0, 0, 0, .34);
    --ew-component-canvas: #11191d;
    --ew-component-surface: #182329;
    --ew-component-surface-alt: #202d33;
    --ew-component-hover: #263941;
    --ew-component-text: #eee5d8;
    --ew-component-heading: #f0d79c;
    --ew-component-muted: #c6bcae;
    --ew-component-link: #8fc8ec;
    --ew-component-accent: #dfb66f;
    --ew-component-border: rgba(210, 172, 101, .24);
    --ew-component-shadow: rgba(0, 0, 0, .30);
    --ew-component-sheen: rgba(255, 255, 255, .035);
    --ew-component-card: rgba(32, 45, 51, .92);
    --ew-component-card-hover: rgba(41, 58, 65, .96);
    --ew-component-image-blend: normal;
    --ew-component-image-filter: none;
    color-scheme: dark;
  }
}

/* ========================================================================
   PAGE THEME POLICY
   Common.css owns shared layout, typography and component behaviour.
   Individual designed pages continue to set their own palette variables.
   ======================================================================== */

html,
body {
  min-width: 0 !important;
  background: var(--ew-dark-0) !important;
}

body {
  margin: 0 !important;
  color: var(--ew-text);
  font-family: "Alegreya", Georgia, serif;
}

/* ---------- VECTOR 2022 SHELL RESET ---------- */

body.skin-vector-2022 .vector-header-container,
body.skin-vector-2022 .vector-sticky-header,
body.skin-vector-2022 .vector-column-start,
body.skin-vector-2022 .vector-column-end,
body.skin-vector-2022 .vector-sitenotice-container,
body.skin-vector-2022 .vector-toc-landmark,
body.skin-vector-2022 #vector-main-menu-pinned-container,
body.skin-vector-2022 #vector-page-tools-pinned-container,
body.skin-vector-2022 #p-search {
  display: none !important;
}

body.skin-vector-2022 .mw-page-container,
body.skin-vector-2022 .mw-page-container-inner,
body.skin-vector-2022 .mw-content-container,
body.skin-vector-2022 .vector-body,
body.skin-vector-2022 .vector-body-before-content,
body.skin-vector-2022 .vector-page-titlebar,
body.skin-vector-2022 .vector-page-toolbar-container,
body.skin-vector-2022 .vector-page-toolbar,
body.skin-vector-2022 .vector-page-tools-landmark {
  box-sizing: border-box !important;
  width: 100% !important;
  max-width: none !important;
}

body.skin-vector-2022 .mw-page-container {
  min-height: 100vh !important;
  margin: 0 !important;
  padding: 0 !important;
  background: var(--ew-dark-0) !important;
  border: 0 !important;
  box-shadow: none !important;
}

body.skin-vector-2022 .mw-page-container-inner {
  display: block !important;
  margin: 0 !important;
  padding: 0 !important;
}

body.skin-vector-2022 .mw-content-container {
  margin: 0 !important;
}

/* ---------- ERINDAL SIDEBAR ---------- */

#ew-sidebar {
  position: fixed !important;
  z-index: 160 !important;
  inset: 0 auto 0 0 !important;
  width: var(--ew-sidebar-open) !important;
  padding: 0 16px 24px !important;
  overflow-x: hidden !important;
  overflow-y: auto !important;
  box-sizing: border-box !important;
  color: #f4eee3 !important;
  background:
    radial-gradient(circle at 45% 0%, rgba(58, 83, 98, .25), transparent 300px),
    linear-gradient(180deg, #0b1a23 0%, #041019 58%, #020a0f 100%) !important;
  border-right: 2px solid rgba(125, 102, 69, .52) !important;
  box-shadow: inset -12px 0 24px rgba(0, 0, 0, .38), 4px 0 18px rgba(0, 0, 0, .18) !important;
  transform: translateX(0);
  transition: transform .18s ease !important;
}

html.ew-sidebar-collapsed #ew-sidebar {
  transform: translateX(-100%);
}

#ew-sidebar::before,
#ew-sidebar::after {
  content: "";
  position: absolute;
  z-index: 1;
  top: 4px;
  width: 18px;
  height: 18px;
  border-color: rgba(207, 163, 80, .62);
  border-style: solid;
  pointer-events: none;
}

#ew-sidebar::before {
  left: 4px;
  border-width: 1px 0 0 1px;
}

#ew-sidebar::after {
  right: 4px;
  border-width: 1px 1px 0 0;
}

.ew-sidebar-brand,
.ew-sidebar-brand:visited {
  position: relative;
  display: block;
  height: 126px;
  margin: 0 0 12px;
  color: var(--ew-gold-soft) !important;
  border-bottom: 1px solid rgba(139, 116, 79, .45);
  text-decoration: none !important;
}

.ew-sidebar-brand::before {
  content: "";
  position: absolute;
  left: 15px;
  top: 25px;
  width: 72px;
  height: 72px;
  background: center / contain no-repeat url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100'%3E%3Cg fill='none' stroke='%23d6a74d' stroke-width='3'%3E%3Ccircle cx='50' cy='50' r='30'/%3E%3Cpath d='M50 6L58 41L94 50L58 59L50 94L42 59L6 50L42 41Z'/%3E%3Cpath d='M50 17L53 44L83 50L53 56L50 83L47 56L17 50L47 44Z'/%3E%3C/g%3E%3Ccircle cx='50' cy='50' r='5' fill='%23d6a74d'/%3E%3C/svg%3E");
  filter: drop-shadow(0 2px 2px rgba(0, 0, 0, .5));
}

.ew-sidebar-brand::after {
  content: "ERINDAL\A WIKI";
  position: absolute;
  left: 101px;
  top: 28px;
  white-space: pre;
  color: var(--ew-gold-soft);
  font: 700 27px/1.05 "Cinzel Decorative", "Cinzel", Georgia, serif;
  letter-spacing: .055em;
  text-shadow: 0 2px 2px rgba(0, 0, 0, .65);
}

.ew-sidebar-section {
  margin: 0 !important;
  padding: 0 0 18px !important;
  border-bottom: 1px solid rgba(139, 116, 79, .46) !important;
}

.ew-sidebar-section + .ew-sidebar-section {
  margin-top: 18px !important;
}

.ew-sidebar-section h2 {
  margin: 0 0 9px 12px !important;
  padding: 0 !important;
  color: #b9ad9a !important;
  background: none !important;
  border: 0 !important;
  font: 400 13px/1.2 "Almendra SC", "Cinzel", Georgia, serif !important;
  letter-spacing: .07em !important;
  text-transform: uppercase !important;
}

.ew-sidebar-section ul {
  margin: 0 !important;
  padding: 0 !important;
  list-style: none !important;
}

.ew-sidebar-section li {
  margin: 2px 0 !important;
  padding: 0 !important;
}

.ew-sidebar-section a,
.ew-sidebar-section a:visited {
  position: relative;
  display: block;
  padding: 7px 8px 7px 39px !important;
  color: #f1ede6 !important;
  border-radius: 2px;
  font: 400 16px/1.2 "Almendra SC", "Cinzel", Georgia, serif !important;
  letter-spacing: .012em;
  text-decoration: none !important;
}

.ew-sidebar-section a::before {
  content: "◆";
  position: absolute;
  left: 14px;
  top: 7px;
  width: 16px;
  color: #98a09e;
  font-size: 11px;
  text-align: center;
}

.ew-sidebar-section a:hover,
.ew-sidebar-section a:focus {
  color: var(--ew-gold-soft) !important;
  background: linear-gradient(90deg, rgba(35, 67, 93, .72), rgba(22, 43, 57, .20));
}

.ew-sidebar-section:first-of-type li:first-child a {
  color: var(--ew-gold-soft) !important;
  background: linear-gradient(90deg, rgba(35, 67, 93, .95), rgba(22, 43, 57, .42));
}

.ew-sidebar-section:first-of-type li:first-child a::before {
  content: "⌂";
  top: 4px;
  color: var(--ew-gold-soft);
  font-size: 18px;
}

/* ---------- CONTENT CANVAS ---------- */

body.skin-vector-2022 #content {
  min-height: calc(100vh - var(--ew-topbar));
  margin: 0 0 0 var(--ew-sidebar) !important;
  padding: calc(var(--ew-topbar) + 28px) 42px 44px !important;
  color: var(--ew-text) !important;
  background:
    linear-gradient(180deg, rgba(255, 255, 255, .12), transparent 230px),
    repeating-linear-gradient(45deg, rgba(119, 91, 49, .012), rgba(119, 91, 49, .012) 2px, transparent 2px, transparent 7px),
    var(--ew-canvas) !important;
  border: 0 !important;
  transition: margin-left .18s ease !important;
}

body.skin-vector-2022 #content a,
body.skin-vector-2022 #content a:visited {
  color: var(--ew-link);
}

body.skin-vector-2022 #content a:hover,
body.skin-vector-2022 #content a:focus {
  color: color-mix(in srgb, var(--ew-link) 70%, var(--ew-gold));
}

#firstHeading,
#content h1,
#content h2,
#content h3,
#content h4,
#content h5,
#content h6 {
  color: var(--ew-heading);
}

#firstHeading {
  border-bottom-color: var(--ew-rule) !important;
}

body.skin-vector-2022 .vector-page-toolbar {
  margin: 0 0 1.25rem !important;
  border-bottom-color: var(--ew-rule) !important;
}

body.skin-vector-2022 .vector-page-toolbar a,
body.skin-vector-2022 .vector-page-toolbar button,
body.skin-vector-2022 .vector-page-toolbar .vector-menu-heading {
  color: var(--ew-text) !important;
}

body.skin-vector-2022 .vector-dropdown-content,
body.skin-vector-2022 .vector-menu-content {
  color: var(--ew-text);
  background-color: var(--ew-canvas-soft);
  border-color: var(--ew-border);
}

.mw-parser-output .wikitable {
  color: var(--ew-text) !important;
  background: var(--ew-canvas-soft) !important;
  border-color: var(--ew-border) !important;
}

.mw-parser-output .wikitable > * > tr > th {
  color: var(--ew-heading) !important;
  background: color-mix(in srgb, var(--ew-canvas-soft) 82%, var(--ew-gold) 18%) !important;
}

.mw-parser-output .wikitable > * > tr > th,
.mw-parser-output .wikitable > * > tr > td,
.mw-parser-output pre,
.mw-parser-output code {
  border-color: var(--ew-border) !important;
}

.mw-parser-output pre {
  color: var(--ew-text) !important;
  background: var(--ew-canvas-soft) !important;
}

.toc,
.vector-toc,
.catlinks,
.mw-warning,
.mw-message-box {
  color: var(--ew-text) !important;
  background: var(--ew-message) !important;
  border-color: var(--ew-border) !important;
}

body.skin-vector-2022 #footer {
  box-sizing: border-box;
  width: auto !important;
  max-width: none !important;
  margin: 0 0 0 var(--ew-sidebar) !important;
  padding: 17px 28px 19px !important;
  color: #c8c2b7 !important;
  background: linear-gradient(180deg, rgba(18, 39, 51, .22), rgba(6, 17, 25, 0) 55%), #061119 !important;
  border-top: 1px solid rgba(197, 157, 79, .36);
  transition: margin-left .18s ease !important;
}

#footer #footer-info,
#footer #footer-info li,
#footer #footer-info-lastmod,
#footer #footer-info-copyright {
  color: #bdb7ac !important;
}

#footer #footer-info {
  margin: 0 0 .55rem !important;
  padding: 0 !important;
  font-size: .84rem !important;
  line-height: 1.45 !important;
}

#footer #footer-places {
  display: flex !important;
  flex-wrap: wrap;
  gap: .35rem 1rem;
  margin: 0 !important;
  padding: 0 !important;
}

#footer #footer-places li {
  float: none !important;
  margin: 0 !important;
  padding: 0 !important;
}

#footer a,
#footer a:visited {
  color: #d1b66d !important;
  text-decoration: none !important;
}

#footer a:hover,
#footer a:focus {
  color: #fff0bd !important;
  text-decoration: underline !important;
}

#footer #footer-icons {
  display: none !important;
}

/* ---------- MAIN PAGE ---------- */

body.page-Main_Page #content {
  padding: var(--ew-topbar) 0 0 !important;
  background: var(--ew-dark-0) !important;
}

body.page-Main_Page #firstHeading,
body.page-Main_Page #siteSub,
body.page-Main_Page #contentSub,
body.page-Main_Page .mw-indicators,
body.page-Main_Page .catlinks,
body.page-Main_Page .vector-page-titlebar,
body.page-Main_Page .vector-page-toolbar-container,
body.page-Main_Page #jump-to-nav,
body.page-Main_Page .toc,
body.page-Main_Page #toc {
  display: none !important;
}

body.page-Main_Page #bodyContent,
body.page-Main_Page #mw-content-text,
body.page-Main_Page .mw-parser-output {
  margin: 0 !important;
  padding: 0 !important;
}

body.page-Main_Page .mw-parser-output > p:empty {
  display: none;
}

body.page-Main_Page .ew-home {
  width: 100% !important;
  max-width: none !important;
}

/* ---------- GENERAL ARTICLE WIDTH ---------- */

body:not(.page-Main_Page) .mw-parser-output {
  max-width: 1180px;
}

body:not(.page-Main_Page) .mw-parser-output p {
  font-size: 16px;
  line-height: 1.58;
}

body:not(.page-Main_Page) .mw-parser-output h2 {
  margin-top: 1.5em;
  padding-bottom: 5px;
  border-bottom: 1px solid var(--ew-rule);
}

.mw-editsection {
  font-family: Arial, sans-serif;
  font-size: 11px;
}

/* MediaWiki file markup wrappers */
.ew-hero-image > span,
.ew-hero-image > a,
.ew-map-image > span,
.ew-map-image > a,
.ew-feature-image > span,
.ew-feature-image > a,
.ew-strip > span,
.ew-strip > a,
.ew-hero-image .mw-file-description,
.ew-map-image .mw-file-description,
.ew-feature-image .mw-file-description,
.ew-strip .mw-file-description {
  display: block !important;
  width: 100% !important;
  height: 100% !important;
}


/* ========================================================================
   TYPOGRAPHY - CONSOLIDATED CURRENT STATE

   Final values from the former v4.4-v4.8 typography passes. Older font
   experiments were removed so each element has one authoritative rule.
   ======================================================================== */

/* Readable body/lore face. */
html body,
#content,
#bodyContent,
#mw-content-text,
.mw-parser-output,
.mw-parser-output p,
.mw-parser-output li,
.mw-parser-output td,
.mw-parser-output th,
.mw-parser-output dd,
.mw-parser-output dt,
.ew-home,
.ew-panel p,
.ew-card small,
.ew-recent-row,
.ew-global-search input[type="search"] {
  font-family: "Alegreya", Georgia, serif !important;
  font-weight: 400 !important;
}

#ew-server-topbar,
.ew-global-menu,
.ew-global-menu a {
  font-family: "Almendra SC", "Cinzel", Georgia, serif !important;
}

.ew-global-menu { font-weight: 400 !important; }

.ew-global-menu a {
  font-size: 15px !important;
  font-weight: 400 !important;
  letter-spacing: .045em !important;
}

/* Content-facing headings and labels. */
#firstHeading,
#content h1,
#content h2,
#content h3,
#content h4,
#content h5,
#content h6,
.ew-panel h2,
.ew-panel h3,
.ew-panel-title,
.ew-section-title,
.ew-category-title,
.ew-featured h2,
.ew-featured h3,
.ew-recent h2,
.ew-important h2,
.ew-overview h2,
.ew-category h2,
.ew-card-label {
  font-family: "Alegreya SC", "Alegreya", Georgia, serif !important;
  font-weight: 700 !important;
  letter-spacing: .015em !important;
}

.ew-card-label {
  display: block !important;
  color: var(--ew-component-heading, #171513) !important;
  font-size: 14px !important;
  line-height: 1.12 !important;
  text-transform: none !important;
  letter-spacing: .01em !important;
}

.ew-featured h3,
.ew-featured h3 a,
.ew-featured .mw-selflink {
  font-family: "Alegreya SC", "Alegreya", Georgia, serif !important;
  font-size: 21px !important;
  font-weight: 700 !important;
  line-height: 1.15 !important;
  letter-spacing: .018em !important;
  text-transform: none !important;
}

.ew-panel h2,
.ew-panel-title,
.ew-section-title,
.ew-category-title,
.ew-overview h2,
.ew-category h2,
.ew-featured h2,
.ew-recent h2,
.ew-important h2 {
  font-size: 21px !important;
  line-height: 1.15 !important;
}

#firstHeading { font-size: 34px !important; line-height: 1.12 !important; }
#content h2 { font-size: 26px !important; line-height: 1.18 !important; }
#content h3 { font-size: 21px !important; line-height: 1.2 !important; }
#content h4 { font-size: 18px !important; line-height: 1.22 !important; }

/* Strong display face only for branding. */
.ew-sidebar-brand::after,
.ew-hero-title {
  font-family: "Cinzel Decorative", "Cinzel", Georgia, serif !important;
  font-weight: 700 !important;
}

.ew-sidebar-brand::after { letter-spacing: .055em !important; }
.ew-hero-title { letter-spacing: .025em !important; }

.ew-hero-kicker {
  font-family: "Alegreya SC", "Alegreya", Georgia, serif !important;
  font-weight: 700 !important;
  letter-spacing: .04em !important;
}

/* Long-form prose sizing. */
.mw-parser-output p,
.mw-parser-output li,
.mw-parser-output dd,
.mw-parser-output dt,
.ew-home,
.ew-panel p {
  font-size: 16.5px !important;
  line-height: 1.48 !important;
}

/* Use Vector's own edit controls. Do not create a second custom one. */
#ca-edit,
#ca-ve-edit,
#ca-viewsource {
  display: list-item !important;
}

/* Legacy custom edit shortcut is no longer used. */
.ew-edit-link { display: none !important; }

/* =========================================================
   SHARED ARTICLE PRIMITIVES
   Structural rules shared by the designed article systems.
   Page-specific colours and unique behavior remain local.
   ========================================================= */

.country-page,
.history-page,
.city-page,
.deity-page,
.wiki-page {
  box-sizing: border-box;
  width: calc(100vw - var(--ew-sidebar) - 84px) !important;
  max-width: none !important;
  font-family: "Alegreya", Georgia, serif;
  line-height: 1.62;
}

.country-hero,
.history-hero,
.city-hero,
.deity-hero,
.wiki-hero {
  position: relative;
  overflow: hidden;
  border: 1px solid rgba(255, 255, 255, 0.08);
}

.country-hero,
.history-hero,
.city-hero,
.deity-hero {
  box-shadow: 0 12px 30px rgba(28, 18, 13, 0.19);
}

.country-hero__overlay,
.history-hero__overlay,
.city-hero__overlay,
.deity-hero__overlay,
.wiki-hero__overlay {
  position: absolute;
  inset: 0;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  pointer-events: none;
}

.country-hero__eyebrow,
.history-hero__eyebrow,
.city-hero__eyebrow,
.deity-hero__eyebrow,
.wiki-hero__eyebrow {
  margin-bottom: 0.25rem;
  font-family: "Alegreya SC", Georgia, serif;
  font-size: 0.85rem;
  font-weight: 700;
  letter-spacing: 0.16em;
}

.country-hero__title,
.history-hero__title,
.city-hero__title,
.deity-hero__title,
.wiki-hero__title {
  font-family: "Alegreya SC", Georgia, serif;
  font-weight: 700;
  text-shadow: 0 3px 16px rgba(0, 0, 0, 0.72);
}

.country-hero__subtitle,
.history-hero__subtitle,
.city-hero__subtitle,
.deity-hero__subtitle,
.wiki-hero__subtitle {
  font-style: italic;
}

.country-overview,
.history-overview,
.city-overview,
.deity-overview {
  display: grid;
  gap: 2rem;
  align-items: start;
  margin-bottom: 2.25rem;
}

.country-overview__lead,
.history-overview__lead,
.city-overview__lead,
.deity-overview__lead {
  font-size: 1.08rem;
}

.country-overview__lead > p:first-child::first-letter,
.history-overview__lead > p:first-child::first-letter,
.city-overview__lead > p:first-child::first-letter,
.deity-overview__lead > p:first-child::first-letter {
  float: left;
  margin: 0.08em 0.1em 0 0;
  font-family: "Alegreya SC", Georgia, serif;
  font-weight: 700;
}

.country-record,
.history-record,
.city-record,
.deity-record,
.wiki-record {
  overflow: hidden;
  border-radius: 12px;
}

.country-record__heading,
.history-record__heading,
.city-record__heading,
.deity-record__heading {
  padding: 0.85rem 1rem;
  font-family: "Alegreya SC", Georgia, serif;
  font-size: 1.25rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-align: center;
}

.country-record__row,
.history-record__row,
.city-record__row,
.deity-record__row {
  display: grid;
  gap: 0.75rem;
  padding: 0.62rem 0.85rem;
}

.country-record__row span,
.history-record__row span,
.city-record__row span,
.deity-record__row span {
  font-family: "Alegreya SC", Georgia, serif;
  font-weight: 700;
}

.country-card-grid,
.deity-card-grid,
.wiki-card-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1rem;
  margin: 1rem 0 1.75rem;
}

.country-card-grid--three,
.deity-card-grid--three,
.wiki-card-grid--three {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.history-figure,
.deity-figure,
.wiki-figure {
  box-sizing: border-box;
  margin: 1.35rem 0 1.9rem;
  overflow: hidden;
  border-radius: 10px;
}

.history-figure__caption,
.deity-figure__caption,
.wiki-figure__caption {
  padding: 0.65rem 0.9rem 0.72rem;
  font-size: 0.94rem;
  font-style: italic;
  line-height: 1.35;
}

.city-index__grid,
.deity-index__grid,
.wiki-index__grid {
  display: grid;
}

.city-index__grid > div,
.deity-index__grid > div,
.wiki-index__grid > div {
  min-width: 0;
}

.city-index__grid span,
.city-index__grid strong,
.deity-index__grid span,
.deity-index__grid strong,
.wiki-index__grid span,
.wiki-index__grid strong {
  display: block;
}

.city-index__grid span,
.deity-index__grid span,
.wiki-index__grid span {
  font-family: "Alegreya SC", Georgia, serif;
  font-size: 0.76rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.city-index__grid strong,
.deity-index__grid strong,
.wiki-index__grid strong {
  margin-top: 0.12rem;
  font-size: 0.98rem;
  line-height: 1.2;
}

.city-index__heading,
.deity-index__heading,
.wiki-index__heading {
  font-family: "Alegreya SC", Georgia, serif;
  font-weight: 700;
  text-align: center;
}

.deity-card,
.wiki-card {
  min-width: 0;
  padding: 1rem;
  border-radius: 9px;
}

.deity-card h3,
.wiki-card h3 {
  margin: 0 0 0.35rem;
  font-size: 1.17rem;
}

.deity-card p,
.wiki-card p {
  margin: 0.35rem 0 0;
}

.history-note,
.city-note {
  margin: 1.25rem 0;
  border-radius: 8px;
}

.history-note strong,
.city-note strong {
  font-family: "Alegreya SC", Georgia, serif;
}

.history-page__body,
.city-page__body {
  box-sizing: border-box;
  width: 100%;
  max-width: none;
  margin: 0;
}

.history-page__body .toc,
.city-page__body .toc,
.history-page__body #toc,
.city-page__body #toc {
  margin: 0 0 1.8rem;
  padding: 0.9rem 1.1rem;
  border-radius: 9px;
}

.history-page__body h2,
.city-page__body h2,
.deity-page__body h2,
.wiki-page__body h2 {
  font-family: "Alegreya SC", Georgia, serif;
  font-weight: 700;
}

.city-page__body h2::after,
.deity-page__body h2::after,
.wiki-page__body h2::after {
  content: "";
  flex: 1;
  height: 1px;
}

.city-index__grid a,
.deity-index__grid a,
.wiki-index__grid a {
  display: block;
  text-decoration: none;
}

.history-figure .mw-file-element,
.deity-figure .mw-file-element,
.history-figure__image,
.deity-figure__image {
  height: clamp(220px, 28vw, 340px);
  object-fit: cover;
}

.deity-quote,
.wiki-quote {
  font-size: 1.08rem;
  font-style: italic;
}

/* ========================================================================
   SERVER-RENDERED ERINDAL INTERFACE

   #ew-sidebar, #ew-server-topbar and both controls are emitted by the
   companion LocalSettings.php hook. They are independent of Vector's DOM.
   ======================================================================== */

#ew-server-topbar {
  position: fixed !important;
  z-index: 180 !important;
  top: 0 !important;
  left: var(--ew-sidebar) !important;
  right: 0 !important;
  display: flex !important;
  align-items: center !important;
  height: var(--ew-topbar) !important;
  margin: 0 !important;
  padding: 0 14px 0 24px !important;
  overflow: visible !important;
  box-sizing: border-box !important;
  color: #f3eee5 !important;
  background: linear-gradient(180deg, #08141c 0%, #03090d 100%) !important;
  border: 0 !important;
  border-bottom: 2px solid rgba(112, 88, 58, .46) !important;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .045), 0 2px 6px rgba(0, 0, 0, .28) !important;
  font-family: "Almendra SC", "Cinzel", Georgia, serif !important;
  transition: left .18s ease !important;
}

#ew-server-topbar::before,
#ew-server-topbar::after {
  content: "";
  position: absolute;
  top: 4px;
  width: 18px;
  height: 18px;
  border-color: rgba(207, 163, 80, .55);
  border-style: solid;
  pointer-events: none;
}

#ew-server-topbar::before {
  left: 4px;
  border-width: 1px 0 0 1px;
}

#ew-server-topbar::after {
  right: 4px;
  border-width: 1px 1px 0 0;
}

#ew-server-topbar .ew-global-menu {
  display: flex !important;
  flex: 0 1 auto !important;
  align-items: stretch !important;
  min-width: 0 !important;
  height: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
}

#ew-server-topbar .ew-global-section {
  position: relative !important;
  display: block !important;
  height: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
}

#ew-server-topbar .ew-global-section > summary {
  display: flex !important;
  align-items: center !important;
  height: 100% !important;
  margin: 0 !important;
  padding: 0 14px !important;
  box-sizing: border-box !important;
  color: #f3eee5 !important;
  background: transparent !important;
  border: 0 !important;
  outline: 0 !important;
  list-style: none !important;
  font: 400 15px/1 "Almendra SC", "Cinzel", Georgia, serif !important;
  letter-spacing: .045em !important;
  text-transform: uppercase !important;
  white-space: nowrap !important;
  cursor: pointer !important;
}

#ew-server-topbar .ew-global-section > summary::-webkit-details-marker,
#ew-server-topbar .ew-global-section > summary::marker {
  display: none;
  content: "";
}

#ew-server-topbar .ew-global-section > summary span {
  margin-left: 7px;
  font-family: Arial, sans-serif !important;
  font-size: 11px !important;
  transition: transform .16s ease;
}

#ew-server-topbar .ew-global-section[open] > summary span {
  transform: rotate(180deg);
}

#ew-server-topbar .ew-global-section > summary:hover,
#ew-server-topbar .ew-global-section > summary:focus,
#ew-server-topbar .ew-global-section[open] > summary {
  color: var(--ew-gold-soft) !important;
  background: rgba(255, 255, 255, .04) !important;
}

#ew-server-topbar .ew-global-dropdown {
  position: absolute !important;
  z-index: 210 !important;
  top: calc(var(--ew-topbar) - 2px) !important;
  left: 0 !important;
  display: none !important;
  min-width: 220px !important;
  margin: 0 !important;
  padding: 7px !important;
  box-sizing: border-box !important;
  background: linear-gradient(180deg, #0b1a23, #041019) !important;
  border: 1px solid rgba(125, 102, 69, .62) !important;
  box-shadow: 0 10px 24px rgba(0, 0, 0, .36) !important;
}

#ew-server-topbar .ew-global-section[open] > .ew-global-dropdown {
  display: block !important;
}

#ew-server-topbar .ew-global-dropdown a,
#ew-server-topbar .ew-global-dropdown a:visited {
  display: block !important;
  margin: 0 !important;
  padding: 9px 12px !important;
  color: #f1ede6 !important;
  background: transparent !important;
  font: 400 15px/1.15 "Almendra SC", "Cinzel", Georgia, serif !important;
  letter-spacing: .015em !important;
  text-decoration: none !important;
  white-space: nowrap !important;
}

#ew-server-topbar .ew-global-dropdown a:hover,
#ew-server-topbar .ew-global-dropdown a:focus {
  color: var(--ew-gold-soft) !important;
  background: linear-gradient(90deg, rgba(35, 67, 93, .82), rgba(22, 43, 57, .24)) !important;
}

#ew-server-topbar .ew-global-search {
  display: flex !important;
  flex: 0 1 304px !important;
  width: min(304px, 24vw) !important;
  height: 35px !important;
  margin: 0 0 0 auto !important;
  overflow: hidden !important;
  box-sizing: border-box !important;
  background: rgba(0, 0, 0, .28) !important;
  border: 1px solid rgba(151, 128, 91, .42) !important;
  border-radius: 4px !important;
}

#ew-server-topbar .ew-global-search input[type="search"] {
  flex: 1 1 auto !important;
  min-width: 0 !important;
  height: 33px !important;
  margin: 0 !important;
  padding: 0 12px !important;
  color: #eee8de !important;
  background: transparent !important;
  border: 0 !important;
  outline: 0 !important;
  box-shadow: none !important;
  font: 400 15px/33px "Alegreya", Georgia, serif !important;
}

#ew-server-topbar .ew-global-search input::placeholder {
  color: #d4cbc0;
  opacity: .88;
}

#ew-server-topbar .ew-global-search button {
  flex: 0 0 42px !important;
  width: 42px !important;
  height: 33px !important;
  margin: 0 !important;
  padding: 0 !important;
  color: #f1eade !important;
  background: transparent !important;
  border: 0 !important;
  border-left: 1px solid rgba(151, 128, 91, .34) !important;
  font-size: 20px !important;
  line-height: 33px !important;
  cursor: pointer !important;
}

.ew-topbar-tools {
  display: flex;
  align-items: center;
  height: 100%;
  margin-left: 8px;
}

.ew-topbar-tool,
.ew-topbar-tool:visited,
#ew-theme-toggle {
  display: grid !important;
  place-items: center !important;
  min-width: 42px !important;
  height: 38px !important;
  margin: 0 !important;
  padding: 0 8px !important;
  box-sizing: border-box !important;
  color: #f3eee5 !important;
  background: transparent !important;
  border: 0 !important;
  border-left: 1px solid rgba(151, 128, 91, .20) !important;
  font: 400 14px/1 "Almendra SC", "Cinzel", Georgia, serif !important;
  text-decoration: none !important;
  cursor: pointer !important;
}

.ew-topbar-tool:hover,
.ew-topbar-tool:focus,
#ew-theme-toggle:hover,
#ew-theme-toggle:focus {
  color: var(--ew-gold-soft) !important;
  background: rgba(255, 255, 255, .04) !important;
}

#ew-theme-toggle {
  min-width: 76px !important;
}

#ew-sidebar-toggle {
  position: fixed !important;
  z-index: 220 !important;
  top: 70px !important;
  left: calc(var(--ew-sidebar) - 14px) !important;
  display: grid !important;
  place-items: center !important;
  width: 30px !important;
  height: 46px !important;
  margin: 0 !important;
  padding: 0 1px 3px 0 !important;
  color: var(--ew-gold-soft) !important;
  background: linear-gradient(180deg, #102431, #06131b) !important;
  border: 1px solid rgba(207, 163, 80, .72) !important;
  border-radius: 6px !important;
  box-shadow: 0 3px 12px rgba(0, 0, 0, .44) !important;
  font: 28px/1 Georgia, serif !important;
  cursor: pointer !important;
  transition: left .18s ease !important;
}

#ew-sidebar-toggle:hover,
#ew-sidebar-toggle:focus {
  color: #fff4d6 !important;
  background: linear-gradient(180deg, #173447, #0a1b25) !important;
  outline: 2px solid rgba(239, 201, 121, .30) !important;
  outline-offset: 1px !important;
}

html.ew-sidebar-collapsed #ew-sidebar-toggle {
  left: 0 !important;
  border-left: 0 !important;
  border-radius: 0 6px 6px 0 !important;
}


/* =========================================================
   FINAL SHARED HERO SCALE
   Nation, history, city and deity pages deliberately use one size.
   Keep this block last so older duplicate rules cannot win.
   ========================================================= */

.country-hero,
.history-hero,
.city-hero,
.deity-hero,
.wiki-hero {
  box-sizing: border-box !important;
  height: clamp(240px, 22vw, 320px) !important;
  min-height: 240px !important;
  max-height: 320px !important;
  margin: 0 0 1.4rem !important;
  border-radius: 14px !important;
}

.country-hero .mw-file-description,
.country-hero .mw-file-element,
.history-hero .mw-file-description,
.history-hero .mw-file-element,
.city-hero .mw-file-description,
.city-hero .mw-file-element,
.deity-hero .mw-file-description,
.deity-hero .mw-file-element,
.wiki-hero .mw-file-description,
.wiki-hero .mw-file-element,
.country-hero__image,
.history-hero__image,
.city-hero__image,
.deity-hero__image,
.wiki-hero__image {
  display: block !important;
  box-sizing: border-box !important;
  width: 100% !important;
  max-width: none !important;
  height: 100% !important;
  min-height: 0 !important;
  max-height: none !important;
  object-fit: cover !important;
}

.country-hero__overlay,
.history-hero__overlay,
.city-hero__overlay,
.deity-hero__overlay,
.wiki-hero__overlay {
  padding: clamp(1.25rem, 3vw, 2.5rem) !important;
}

.country-hero__title,
.history-hero__title,
.city-hero__title,
.deity-hero__title,
.wiki-hero__title {
  max-width: 900px !important;
  font-size: clamp(2.1rem, 4vw, 3.6rem) !important;
  line-height: 0.96 !important;
}

.country-hero__subtitle,
.history-hero__subtitle,
.city-hero__subtitle,
.deity-hero__subtitle,
.wiki-hero__subtitle {
  margin-top: 0.55rem !important;
  font-size: clamp(1rem, 2vw, 1.35rem) !important;
}

/* Missing files leave no blue filename inside the hero. */
.country-hero a.new,
.history-hero a.new,
.city-hero a.new,
.deity-hero a.new,
.wiki-hero a.new {
  display: none !important;
}


/* =========================================================
   FLOWING RECORD LAYOUT
   Desktop record boxes behave like traditional wiki infoboxes: they float
   beside the article instead of forcing everything below their full height.
   ========================================================= */

/* =========================================================
   HISTORY AND CHRONOLOGY PORTALS — FULL CONTENT WIDTH
   The original general article rule caps parser output at 1180px. These are
   designed reference pages and should use the same available width as city,
   nation, national-history and deity layouts.
   ========================================================= */
body.page-Category_History_and_Timeline .mw-parser-output,
body.page-History_and_Timeline .mw-parser-output,
body.page-Chronology_of_Erindal .mw-parser-output,
body.page-Calendar_of_Erindal .mw-parser-output,
body.page-Death_Souls_and_Resurrection .mw-parser-output {
  box-sizing: border-box !important;
  width: 100% !important;
  max-width: none !important;
}



/* ========================================================================
   CATEGORY HUBS
   Reusable visual treatment for MediaWiki category pages.
   Category-specific colours belong in the category page's own .wiki source.
   ======================================================================== */

body.ns-14 {
  --category-accent: var(--ew-gold);
  --category-accent-light: var(--ew-gold-soft);
  --category-deep: #102733;
  --category-heading: var(--category-deep);
  --category-paper: #f5f0e7;
  --category-paper-alt: #e8dfd0;
  --category-ink: #2b2925;
  --category-muted: #70675c;
  --category-link: #174f72;
  --category-line: rgba(59, 52, 44, 0.24);
}

html[data-ew-theme="dark"] body.ns-14 {
  --category-deep: #0b202b;
  --category-heading: #f0d79c;
  --category-paper: #172228;
  --category-paper-alt: #202d33;
  --category-ink: #eee5d8;
  --category-muted: #c6bcae;
  --category-link: #8fc8ec;
  --category-line: rgba(210, 172, 101, .24);
}

@media (prefers-color-scheme: dark) {
  html[data-ew-theme="system"] body.ns-14 {
    --category-deep: #0b202b;
    --category-heading: #f0d79c;
    --category-paper: #172228;
    --category-paper-alt: #202d33;
    --category-ink: #eee5d8;
    --category-muted: #c6bcae;
    --category-link: #8fc8ec;
    --category-line: rgba(210, 172, 101, .24);
  }
}

/* Category directories are navigation pages, not normal reading-width articles. */
body.ns-14 #mw-content-text {
  box-sizing: border-box !important;
  width: 100% !important;
  max-width: none !important;
}

body.ns-14 .mw-parser-output {
  box-sizing: border-box !important;
  width: calc(100vw - var(--ew-sidebar) - 84px) !important;
  max-width: none !important;
}

/* Keep category pages feeling like part of the Erindal article system. */
body.ns-14 #firstHeading {
  margin-bottom: 0.9rem;
  color: var(--category-heading);
  font-family: "Alegreya SC", Georgia, serif;
  letter-spacing: 0.025em;
}

.category-hub {
  box-sizing: border-box;
  width: 100%;
  margin: 0 0 1.7rem;
  color: var(--category-ink);
  font-family: "Alegreya", Georgia, serif;
}

.category-hub__header {
  position: relative;
  overflow: hidden;
  padding: 1.55rem 1.7rem 1.45rem;
  border: 1px solid var(--category-line);
  border-radius: 13px;
  background:
    linear-gradient(120deg,
      var(--category-deep) 0%,
      var(--category-deep) 58%,
      var(--category-accent) 100%);
  box-shadow: 0 10px 25px rgba(30, 24, 18, 0.13);
}

.category-hub__header::after {
  content: "";
  position: absolute;
  right: -45px;
  bottom: -90px;
  width: 300px;
  height: 220px;
  border: 1px solid var(--category-line);
  border-radius: 50%;
  box-shadow:
    0 0 0 34px rgba(255, 255, 255, 0.035),
    0 0 0 72px rgba(255, 255, 255, 0.02);
  pointer-events: none;
}

.category-hub__eyebrow {
  position: relative;
  z-index: 1;
  margin-bottom: 0.22rem;
  color: var(--category-accent-light);
  font-family: "Alegreya SC", Georgia, serif;
  font-size: 0.82rem;
  font-weight: 700;
  letter-spacing: 0.13em;
  text-transform: uppercase;
}

.category-hub__title {
  position: relative;
  z-index: 1;
  margin: 0;
  color: #fff8ed;
  font-family: "Alegreya SC", Georgia, serif;
  font-size: clamp(2rem, 3vw, 3rem);
  font-weight: 700;
  line-height: 1.05;
  letter-spacing: 0.025em;
}

.category-hub__subtitle {
  position: relative;
  z-index: 1;
  max-width: 780px;
  margin-top: 0.55rem;
  color: rgba(255, 248, 237, 0.88);
  font-size: 1.02rem;
  line-height: 1.5;
}

.category-hub__intro {
  margin: 1rem 0 0;
  padding: 0.95rem 1.1rem;
  border-left: 3px solid var(--category-accent);
  background: linear-gradient(90deg,
    var(--category-paper-alt),
    var(--category-paper));
  color: var(--category-ink);
}

.category-hub__grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0.8rem;
  margin-top: 1rem;
}

.category-hub__grid--2 {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}


/* A secondary status card can sit beneath a 3-column category grid without
   pretending to be another functional organization type. On desktop it uses
   the middle column; on smaller layouts it remains centred, then becomes
   full-width on mobile. */
.category-hub__card--centered {
  grid-column: 2 / 3;
}


.category-hub__card {
  min-width: 0;
  padding: 1rem 1.05rem 0.95rem;
  border: 1px solid var(--category-line);
  border-radius: 10px;
  background:
    linear-gradient(145deg, var(--category-paper), var(--category-paper-alt));
  box-shadow: 0 5px 14px rgba(45, 36, 28, 0.06);
}

.category-hub__card h3,
.category-hub__card-title {
  display: block;
  margin: 0 0 0.28rem;
  color: var(--category-heading);
  font-family: "Alegreya SC", Georgia, serif;
  font-size: 1.13rem;
  font-weight: 700;
  line-height: 1.15;
}

.category-hub__card p {
  margin: 0 0 0.65rem;
  color: var(--category-muted);
  line-height: 1.45;
}

.category-hub__card a {
  color: var(--category-link);
  font-weight: 700;
  text-decoration: none;
}

.category-hub__card a:hover,
.category-hub__card a:focus {
  text-decoration: underline;
}

/* Automatic MediaWiki category output ----------------------------------- */

body.ns-14 #mw-subcategories,
body.ns-14 #mw-pages {
  margin-top: 1.8rem;
}

body.ns-14 #mw-subcategories > h2,
body.ns-14 #mw-pages > h2 {
  margin: 0 0 0.45rem;
  padding-bottom: 0.42rem;
  color: var(--category-heading);
  border-bottom: 1px solid var(--category-line);
  font-family: "Alegreya SC", Georgia, serif;
  font-size: 1.45rem;
  letter-spacing: 0.025em;
}

body.ns-14 #mw-subcategories > p,
body.ns-14 #mw-pages > p {
  color: var(--category-muted);
}

/* Turn the stock alphabetical columns into parchment directory cards. */
body.ns-14 .mw-category {
  display: grid !important;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0.85rem;
  margin-top: 1rem;
}

body.ns-14 .mw-category-generated .mw-category-group,
body.ns-14 .mw-category .mw-category-group {
  box-sizing: border-box;
  min-width: 0;
  margin: 0 !important;
  padding: 0.85rem 0.95rem 0.9rem;
  border: 1px solid var(--category-line);
  border-radius: 10px;
  background:
    linear-gradient(145deg, var(--category-paper), var(--category-paper-alt));
  box-shadow: 0 4px 12px rgba(43, 34, 27, 0.055);
}

body.ns-14 .mw-category-group h3 {
  margin: 0 0 0.45rem;
  padding: 0 0 0.32rem;
  color: var(--category-accent);
  border-bottom: 1px solid var(--category-line);
  font-family: "Alegreya SC", Georgia, serif;
  font-size: 1.2rem;
  line-height: 1;
}

body.ns-14 .mw-category-group ul {
  margin: 0 !important;
  padding: 0 !important;
  list-style: none !important;
}

body.ns-14 .mw-category-group li {
  margin: 0 !important;
  padding: 0.28rem 0 !important;
}

body.ns-14 .mw-category-group li + li {
  border-top: 1px dotted var(--category-line);
}

body.ns-14 .mw-category-group a {
  color: var(--category-link);
  font-weight: 600;
  text-decoration: none;
}

body.ns-14 .mw-category-group a:hover,
body.ns-14 .mw-category-group a:focus {
  color: var(--category-heading);
  text-decoration: underline;
}

/* Subcategories use the same visual language where MediaWiki exposes them. */
body.ns-14 #mw-subcategories .mw-category {
  margin-bottom: 0.4rem;
}


/* ========================================================================
   MAIN CATEGORY HUBS - HIDE DUPLICATE SUBCATEGORIES
   The nine top-level category hubs already show curated category cards.
   Hide MediaWiki's automatic #mw-subcategories block only on those pages.
   Compact/mini category hubs remain unchanged.
   ======================================================================== */

body.ns-14.page-Category_Nations_and_Realms #mw-subcategories,
body.ns-14.page-Category_Ancestries_and_Cultures #mw-subcategories,
body.ns-14.page-Category_Races_and_Peoples #mw-subcategories,
body.ns-14.page-Category_Characters #mw-subcategories,
body.ns-14.page-Category_Organizations #mw-subcategories,
body.ns-14.page-Category_Religion_and_Deities #mw-subcategories,
body.ns-14.page-Category_Magic_and_Cosmology #mw-subcategories,
body.ns-14.page-Category_Locations #mw-subcategories,
body.ns-14.page-Category_History_and_Timeline #mw-subcategories,
body.ns-14.page-Category_Family_Lines #mw-subcategories {
  display: none !important;
}

/* ========================================================================
   RESPONSIVE LAYOUT - VECTOR 2022
   ======================================================================== */

@media (min-width: 1900px) {
  .ew-category-grid {
    grid-template-columns: repeat(5, minmax(0, 1fr));
  }

  .ew-strip {
    grid-column: span 4;
  }
}

@media (min-width: 1181px) and (max-width: 1550px) {
  .ew-home-grid {
    grid-template-columns: minmax(0, 1.56fr) minmax(360px, .98fr);
  }
}

@media (min-width: 951px) {
  .country-overview,
  .history-overview,
  .city-overview {
    display: block !important;
    margin-bottom: 1.5rem !important;
  }

  .country-record,
  .history-record,
  .city-record {
    float: right !important;
    box-sizing: border-box !important;
    width: 340px !important;
    max-width: 34% !important;
    margin: 0 0 1.5rem 2rem !important;
  }

  .country-overview__lead,
  .history-overview__lead,
  .city-overview__lead {
    display: block !important;
    min-width: 0 !important;
  }

  .history-era-index,
  .city-index {
    min-width: 0;
    overflow: hidden;
  }

  .country-page::after,
  .history-page::after,
  .city-page::after,
  .deity-page::after,
  .wiki-page::after {
    content: "";
    display: block;
    clear: both;
  }
}

@media (max-width: 1240px) {
  #ew-server-topbar .ew-global-section > summary {
    padding-right: 9px !important;
    padding-left: 9px !important;
    font-size: 14px !important;
  }

  #ew-server-topbar .ew-global-search {
    flex-basis: 210px !important;
    width: 210px !important;
  }

  #ew-theme-toggle {
    min-width: 42px !important;
    width: 42px !important;
    overflow: hidden;
    white-space: nowrap;
  }
}

@media (max-width: 1100px) {
  #ew-server-topbar .ew-global-section:nth-child(n+5) {
    display: none !important;
  }

  .country-card-grid--four,
  .country-card-grid--three,
  .city-index__grid,
  .city-location-grid,
  .deity-card-grid--three,
  .wiki-card-grid--three,
  .wiki-index__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 950px) {
  .country-overview,
  .history-overview,
  .city-overview {
    display: block !important;
  }

  .country-record,
  .history-record,
  .city-record {
    float: none !important;
    box-sizing: border-box !important;
    width: min(100%, 580px) !important;
    max-width: 100% !important;
    margin: 0 auto 1.5rem !important;
  }

  .category-hub__card--centered {
    grid-column: 1 / -1;
    width: calc((100% - .8rem) / 2);
    justify-self: center;
  }

  .category-hub__grid,
  body.ns-14 .mw-category {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 900px) {
  :root {
    --ew-sidebar-open: 218px;
    --ew-sidebar: var(--ew-sidebar-open);
  }

  html.ew-sidebar-collapsed {
    --ew-sidebar: 0px;
  }

  .ew-sidebar-brand::before {
    left: 8px;
    top: 30px;
    width: 58px;
    height: 58px;
  }

  .ew-sidebar-brand::after {
    left: 72px;
    top: 34px;
    font-size: 21px;
  }

  #ew-server-topbar .ew-global-section:nth-child(n+4) {
    display: none !important;
  }

  body.skin-vector-2022 #content {
    padding-right: 24px !important;
    padding-left: 24px !important;
  }

  body.page-Main_Page #content {
    padding-right: 0 !important;
    padding-left: 0 !important;
  }

  .country-page,
  .history-page,
  .city-page,
  .deity-page,
  .wiki-page,
  body.ns-14 .mw-parser-output {
    width: calc(100vw - var(--ew-sidebar) - 48px) !important;
  }
}

@media (max-width: 760px) {
  :root,
  html.ew-sidebar-collapsed {
    --ew-sidebar: 0px;
  }

  #ew-sidebar {
    box-shadow: inset -12px 0 24px rgba(0, 0, 0, .38), 8px 0 28px rgba(0, 0, 0, .46) !important;
  }

  html:not(.ew-sidebar-collapsed) #ew-sidebar-toggle {
    left: calc(var(--ew-sidebar-open) - 14px) !important;
  }

  #ew-server-topbar {
    left: 0 !important;
    padding-left: 12px !important;
  }

  #ew-server-topbar .ew-global-section:nth-child(n+3) {
    display: none !important;
  }

  #ew-server-topbar .ew-global-search {
    flex-basis: min(220px, 43vw) !important;
    width: min(220px, 43vw) !important;
  }

  .ew-topbar-tool {
    display: none !important;
  }

  body.skin-vector-2022 #content,
  body.skin-vector-2022 #footer {
    margin-left: 0 !important;
  }

  .country-overview,
  .country-feature,
  .country-feature--image-left,
  .country-card-grid,
  .country-card-grid--three,
  .country-card-grid--four,
  .country-quickfacts,
  .history-overview,
  .history-era-index__grid,
  .city-overview,
  .city-index__grid,
  .city-district-grid,
  .city-location-grid,
  .deity-overview,
  .deity-card-grid,
  .deity-card-grid--three,
  .deity-index__grid,
  .wiki-index__grid,
  .wiki-card-grid,
  .wiki-card-grid--three,
  .wiki-process {
    grid-template-columns: 1fr;
  }

  .country-record__row,
  .history-record__row,
  .city-record__row,
  .deity-record__row,
  .wiki-record__rows > div {
    grid-template-columns: 1fr;
    gap: .15rem;
  }

  .city-record,
  .deity-record {
    width: min(100%, 580px);
    order: -1;
  }

  .history-figure .mw-file-element,
  .history-figure__image,
  .deity-figure .mw-file-element,
  .deity-figure__image {
    height: 220px;
  }

  .country-hero,
  .history-hero,
  .city-hero,
  .deity-hero,
  .wiki-hero {
    height: 250px !important;
    min-height: 250px !important;
    max-height: 250px !important;
    border-radius: 10px !important;
  }

  .country-hero__overlay,
  .history-hero__overlay,
  .city-hero__overlay,
  .deity-hero__overlay,
  .wiki-hero__overlay {
    padding: 1.25rem !important;
  }

  .country-page,
  .history-page,
  .city-page,
  .deity-page,
  .wiki-page,
  body.ns-14 .mw-parser-output {
    width: calc(100vw - 48px) !important;
  }
}

@media (max-width: 560px) {
  #ew-server-topbar .ew-global-section:nth-child(n+2),
  #ew-server-topbar .ew-global-search {
    display: none !important;
  }

  #ew-server-topbar .ew-global-menu {
    flex: 1 1 auto !important;
  }

  #ew-server-topbar .ew-global-section:first-child {
    display: block !important;
  }

  #ew-theme-toggle {
    display: grid !important;
  }

  body.skin-vector-2022 #content {
    padding-right: 16px !important;
    padding-left: 16px !important;
  }

  body.page-Main_Page #content {
    padding-right: 0 !important;
    padding-left: 0 !important;
  }

  .country-page,
  .history-page,
  .city-page,
  .deity-page,
  .wiki-page,
  body.ns-14 .mw-parser-output {
    width: calc(100vw - 32px) !important;
  }
}

@media (max-width: 620px) {
  .category-hub__header {
    padding: 1.2rem;
  }

  .category-hub__grid,
  .category-hub__grid--2,
  body.ns-14 .mw-category {
    grid-template-columns: 1fr;
  }

  .category-hub__card--centered {
    width: 100%;
  }
}

@media (prefers-reduced-motion: reduce) {
  #ew-sidebar,
  #ew-server-topbar,
  #ew-sidebar-toggle,
  body.skin-vector-2022 #content,
  body.skin-vector-2022 #footer {
    transition: none !important;
  }
}

/* ========================================================================
   END ERINDAL WIKI VECTOR-2022.CSS v1.0
   ======================================================================== */

/* Accessibility and mobile layout refinements — September 2026 */
body.page-Main_Page .mw-parser-output > p:has(> br:only-child) {
  display: none !important;
}

body:not(.page-Main_Page) .mw-parser-output p a:not(.mw-file-description),
body:not(.page-Main_Page) .mw-parser-output li a:not(.mw-file-description) {
  text-decoration: underline;
  text-decoration-thickness: .06em;
  text-underline-offset: .13em;
}

@media (max-width: 760px) {
  #ew-server-topbar {
    padding-left: 48px !important;
  }

  #ew-sidebar-toggle {
    top: 5px !important;
  }
}


/* Keep Vector article actions in a single horizontal row. */
body.skin-vector-2022 .vector-page-tools-landmark {
  width: auto !important;
}

/* Restore Vector's standard compact article header while the custom Main Page uses the full canvas. */
body.skin-vector-2022.page-Main_Page .mw-body {
  grid-template-columns: minmax(0, 1fr) 0 !important;
}

body.skin-vector-2022 .vector-page-toolbar .mw-list-item.selected > a {
  color: var(--ew-text) !important;
  border-bottom-color: var(--ew-text) !important;
}

/* Extend article title and toolbar rules across the full canvas; keep actions at the far right. */
body.skin-vector-2022:not(.page-Main_Page) .mw-body {
  grid-template-columns: minmax(0, 59.25rem) minmax(0, 1fr) !important;
}

body.skin-vector-2022:not(.page-Main_Page) .vector-page-titlebar,
body.skin-vector-2022:not(.page-Main_Page) .vector-page-toolbar {
  grid-column: 1 / -1 !important;
}

/* Main Page: remove Vector's empty strip below the footer. */
body.page-Main_Page .mw-footer-container {
  padding-bottom: 0 !important;
}

/* Dark category-hub palette must override page-local inline light palettes. */
html[data-ew-theme="dark"] body.ns-14 .category-hub {
  --category-heading: #f0d79c !important;
  --category-paper: #172228 !important;
  --category-paper-alt: #202d33 !important;
  --category-ink: #eee5d8 !important;
  --category-muted: #c6bcae !important;
  --category-link: #8fc8ec !important;
  --category-line: rgba(210, 172, 101, 0.24) !important;
}

@media (prefers-color-scheme: dark) {
  html[data-ew-theme="system"] body.ns-14 .category-hub {
    --category-heading: #f0d79c !important;
    --category-paper: #172228 !important;
    --category-paper-alt: #202d33 !important;
    --category-ink: #eee5d8 !important;
    --category-muted: #c6bcae !important;
    --category-link: #8fc8ec !important;
    --category-line: rgba(210, 172, 101, 0.24) !important;
  }
}