/* SPIRALWORLDS NPC DIRECTORY GRID — global reusable card layout, 2026-10-07 */
.sw-npc-card-grid {
  display: grid !important;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 1.5rem;
  align-items: stretch;
  background: var(--ast-global-color-8, #111116) !important;
  padding: 1.25rem !important;
  margin-top: 0 !important;
  margin-bottom: 0 !important;
}
.sw-npc-card-grid > .wp-block-column {
  min-width: 0 !important;
  margin: 0 !important;
  width: auto !important;
  flex-basis: auto !important;
}
.sw-npc-card-grid > .wp-block-column > .wp-block-group,
.sw-npc-card-grid > .wp-block-column > .wp-block-group > .wp-block-group__inner-container {
  height: 100%;
}
.sw-npc-card-grid > .wp-block-column > .wp-block-group > .wp-block-group__inner-container {
  display: flex;
  flex-direction: column;
}
.sw-npc-card-grid .wp-block-image {
  width: 100%;
  margin: 0 0 .8rem;
  overflow: hidden;
}
.sw-npc-card-grid .wp-block-image a {
  display: block;
}
.sw-npc-card-grid .wp-block-image img {
  display: block;
  width: 100% !important;
  aspect-ratio: 1 / 1 !important;
  object-fit: cover !important;
  object-position: center 20% !important;
}
.sw-npc-card-grid h3 {
  margin: 0 0 .45rem !important;
  min-height: 2.5em;
  font-size: clamp(1rem, 1.3vw, 1.2rem) !important;
  line-height: 1.25 !important;
}
.sw-npc-card-grid h3 a {
  color: #c9a227 !important;
  text-decoration: none !important;
}
.sw-npc-card-grid p {
  margin: 0 !important;
  color: #ddd9e2 !important;
  font-size: .94rem !important;
  line-height: 1.45 !important;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
h3[id^="npc-"].wp-block-heading {
  margin: 2.25rem 0 0 !important;
  padding: 1rem 1.25rem .85rem !important;
  background: var(--ast-global-color-8, #111116) !important;
  color: #f2eff5 !important;
}
.sw-npc-card-grid + .sw-npc-card-grid {
  padding-top: 0 !important;
}
@media (max-width: 921px) {
  .sw-npc-card-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 600px) {
  .sw-npc-card-grid { grid-template-columns: 1fr; }
}

/* SPIRALWORLDS CANONICAL EDITION TABS — hard lock, 2026-09-28
   Global only. Direct-child selectors; no :has() dependency. */
html body .sw-entry.sw-entry {
  color: #e8e6eb !important;
}
html body .sw-entry.sw-entry :is(p,li,dd,dt,td,th,blockquote,figcaption) {
  color: #e8e6eb !important;
}
html body .sw-entry.sw-entry :is(h1,h2,h3,h4,h5,h6) {
  color: #f2eff5 !important;
}

html body .sw-entry.sw-entry .sw-tabs > input.sw-tab-radio[type="radio"] {
  position: absolute !important;
  left: -10000px !important;
  top: auto !important;
  width: 1px !important;
  height: 1px !important;
  min-width: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  opacity: 0 !important;
  overflow: hidden !important;
  pointer-events: none !important;
}

html body .sw-entry.sw-entry .sw-tabs > .sw-tab-labels {
  display: grid !important;
  grid-template-columns: repeat(4,minmax(0,1fr)) !important;
  gap: .6rem !important;
  margin: 0 0 1rem !important;
  padding: 0 !important;
  background: transparent !important;
  border: 0 !important;
}
html body .sw-entry.sw-entry .sw-tabs > .sw-tab-labels > label {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  min-height: 48px !important;
  margin: 0 !important;
  padding: .7rem .85rem !important;
  border: 1px solid #55505e !important;
  border-radius: 7px !important;
  background: #25232b !important;
  color: #f2eff5 !important;
  font-weight: 700 !important;
  line-height: 1.25 !important;
  text-align: center !important;
  cursor: pointer !important;
}

html body .sw-entry.sw-entry .sw-tabs > .sw-tab-panels > .sw-tab-panel {
  display: none !important;
  visibility: hidden !important;
  height: 0 !important;
  min-height: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  overflow: hidden !important;
  border: 0 !important;
}

html body .sw-entry.sw-entry .sw-tabs > input[id$="-55"]:checked ~ .sw-tab-panels > .sw-tab-panel[id$="-55"],
html body .sw-entry.sw-entry .sw-tabs > input[id$="-2024"]:checked ~ .sw-tab-panels > .sw-tab-panel[id$="-2024"],
html body .sw-entry.sw-entry .sw-tabs > input[id$="-2014"]:checked ~ .sw-tab-panels > .sw-tab-panel[id$="-2014"],
html body .sw-entry.sw-entry .sw-tabs > input[id$="-5e"]:checked ~ .sw-tab-panels > .sw-tab-panel[id$="-5e"],
html body .sw-entry.sw-entry .sw-tabs > input[id$="-pf"]:checked ~ .sw-tab-panels > .sw-tab-panel[id$="-pf"],
html body .sw-entry.sw-entry .sw-tabs > input[id$="-pf1"]:checked ~ .sw-tab-panels > .sw-tab-panel[id$="-pf1"],
html body .sw-entry.sw-entry .sw-tabs > input[id$="-35"]:checked ~ .sw-tab-panels > .sw-tab-panel[id$="-35"] {
  display: block !important;
  visibility: visible !important;
  height: auto !important;
  min-height: 0 !important;
  margin: 0 0 1.4rem !important;
  padding: clamp(1rem,2vw,1.5rem) !important;
  overflow: visible !important;
  border: 1px solid #55505e !important;
  border-top: 3px solid #e6c68e !important;
  border-radius: 8px !important;
  background: #1b1a20 !important;
  color: #e8e6eb !important;
}

html body .sw-entry.sw-entry .sw-tabs > input[id$="-55"]:checked ~ .sw-tab-labels > label[for$="-55"],
html body .sw-entry.sw-entry .sw-tabs > input[id$="-2024"]:checked ~ .sw-tab-labels > label[for$="-2024"],
html body .sw-entry.sw-entry .sw-tabs > input[id$="-2014"]:checked ~ .sw-tab-labels > label[for$="-2014"],
html body .sw-entry.sw-entry .sw-tabs > input[id$="-5e"]:checked ~ .sw-tab-labels > label[for$="-5e"],
html body .sw-entry.sw-entry .sw-tabs > input[id$="-pf"]:checked ~ .sw-tab-labels > label[for$="-pf"],
html body .sw-entry.sw-entry .sw-tabs > input[id$="-pf1"]:checked ~ .sw-tab-labels > label[for$="-pf1"],
html body .sw-entry.sw-entry .sw-tabs > input[id$="-35"]:checked ~ .sw-tab-labels > label[for$="-35"] {
  background: #e6c68e !important;
  border-color: #e6c68e !important;
  color: #17130c !important;
}

@media (max-width:780px) {
  html body .sw-entry.sw-entry .sw-tabs > .sw-tab-labels {
    grid-template-columns: repeat(2,minmax(0,1fr)) !important;
  }
}
@media (max-width:520px) {
  html body .sw-entry.sw-entry .sw-tabs > .sw-tab-labels {
    grid-template-columns: 1fr !important;
  }
}

/* SpiralWorlds compact internal-page header */
body:not(.home) #masthead .main-header-bar {
  padding: 0 !important;
  border-bottom: 1px solid rgba(214, 165, 45, 0.24);
  background-color: #05080a !important;
  background-image: none !important;
  box-shadow: 0 6px 24px rgba(0, 0, 0, 0.22);
}

body:not(.home) #masthead .ast-container {
  width: min(1500px, calc(100% - 36px));
  max-width: 1500px;
  padding: 0;
}

body:not(.home) #masthead .main-header-container {
  min-height: 72px;
  align-items: center;
  flex-wrap: nowrap;
}

body:not(.home) #masthead .site-branding {
  flex: 0 0 auto;
  margin: 0;
}

body:not(.home) #masthead .ast-site-identity {
  padding: 8px 0;
  align-items: center;
}

body:not(.home) #masthead .site-logo-img,
body:not(.home) #masthead .custom-logo-link {
  line-height: 0;
}

body:not(.home) #masthead .custom-logo-link img {
  width: 52px !important;
  max-width: 52px !important;
  height: 52px !important;
  object-fit: cover;
}

body:not(.home) #masthead .ast-site-title-wrap {
  margin-left: 12px;
}

body:not(.home) #masthead .site-title {
  margin: 0;
  line-height: 1;
}

body:not(.home) #masthead .site-title a {
  color: #f3ead5 !important;
  font-family: Georgia, "Times New Roman", serif;
  font-size: 0;
  font-weight: 700;
  letter-spacing: -0.02em;
  text-decoration: none;
}

body:not(.home) #masthead .site-title a::after {
  content: "SpiralWorlds";
  font-size: 28px;
}

body:not(.home) #masthead .ast-site-title-wrap::after {
  content: "Myth is real. History remembers.";
  display: block;
  margin-top: 5px;
  color: #efd06f;
  font-family: Georgia, "Times New Roman", serif;
  font-size: 10px;
  font-style: italic;
  line-height: 1.1;
}

body:not(.home) #masthead .main-header-menu > .menu-item > .menu-link,
body:not(.home) #masthead .ast-masthead-custom-menu-items {
  color: #e9dfcb;
  font-family: "Segoe UI", Tahoma, Arial, sans-serif;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.045em;
  text-transform: uppercase;
}

body:not(.home) #masthead .main-header-menu > .menu-item > .menu-link:hover,
body:not(.home) #masthead .main-header-menu > .current-menu-item > .menu-link,
body:not(.home) #masthead .ast-masthead-custom-menu-items:hover {
  color: #efd06f;
}

@media (min-width: 922px) {
  body:not(.home) #masthead #primary-site-navigation,
  body:not(.home) #masthead .main-header-bar-navigation {
    height: auto;
  }

  body:not(.home) #masthead .main-header-menu {
    height: 72px;
    align-items: center;
    flex-wrap: nowrap;
  }

  body:not(.home) #masthead .main-header-menu > .menu-item > .menu-link {
    height: 72px;
    padding: 0 8px;
  }

  body:not(.home) #masthead .ast-masthead-custom-menu-items {
    padding-left: 8px;
  }
}

@media (max-width: 1120px) and (min-width: 922px) {
  body:not(.home) #masthead .site-title a::after {
    font-size: 23px;
  }

  body:not(.home) #masthead .ast-site-title-wrap::after {
    display: none;
  }

  body:not(.home) #masthead .main-header-menu > .menu-item > .menu-link {
    padding: 0 6px;
    font-size: 10px;
  }
}

@media (max-width: 921px) {
  body:not(.home) #masthead .main-header-container {
    min-height: 64px;
    flex-wrap: wrap;
  }

  body:not(.home) #masthead .custom-logo-link img {
    width: 44px !important;
    max-width: 44px !important;
    height: 44px !important;
  }

  body:not(.home) #masthead .site-title a::after {
    font-size: 22px;
  }

  body:not(.home) #masthead .ast-site-title-wrap::after {
    display: none;
  }

  body:not(.home) #masthead .ast-button-wrap .menu-toggle {
    border: 1px solid rgba(214, 165, 45, 0.72);
    color: #efd06f;
    background: transparent;
  }

  body:not(.home) #masthead .main-header-menu {
    border-top: 1px solid rgba(214, 165, 45, 0.24);
    background: #080d11;
  }

  body:not(.home) #masthead .main-header-menu .menu-link {
    border-bottom: 1px solid rgba(214, 165, 45, 0.14);
    color: #f3ead5;
  }
}
/* ============================================================
   SPIRALWORLDS — MODERN PAGE WIDTH LOCK
   Pilot: Arcane Eye + Resilient Sphere
   ============================================================ */


/* ------------------------------------------------------------
   FUTURE STANDARDISED PAGES
   Any future page using .sw-entry gets the canonical shell.
   ------------------------------------------------------------ */

.sw-entry {
    width: calc(100% - 40px) !important;
    max-width: 1400px !important;
    margin-left: auto !important;
    margin-right: auto !important;
    box-sizing: border-box !important;
}

.sw-entry,
.sw-entry *,
.sw-entry *::before,
.sw-entry *::after {
    box-sizing: border-box;
}

.sw-entry img,
.sw-entry video,
.sw-entry iframe {
    max-width: 100%;
}

.sw-entry img {
    height: auto;
}


/* ------------------------------------------------------------
   PILOT PAGES ONLY
   Arcane Eye + Resilient Sphere
   ------------------------------------------------------------ */

html:has(
    head link[rel="canonical"]:is(
        [href*="/magic/spell-arcane-eye/"],
        [href*="/magic/spell-resilient-sphere/"]
    )
) body .site-main article {
    width: calc(100% - 40px) !important;
    max-width: 1400px !important;
    margin-left: auto !important;
    margin-right: auto !important;
    box-sizing: border-box !important;
}


/* Keep the WordPress content area inside the article */

html:has(
    head link[rel="canonical"]:is(
        [href*="/magic/spell-arcane-eye/"],
        [href*="/magic/spell-resilient-sphere/"]
    )
) body .site-main article .entry-content {
    width: 100% !important;
    max-width: 100% !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    box-sizing: border-box !important;
}


/* Repair the main custom wrapper if it is trying to break
   out to full browser width */

html:has(
    head link[rel="canonical"]:is(
        [href*="/magic/spell-arcane-eye/"],
        [href*="/magic/spell-resilient-sphere/"]
    )
) body .site-main article .entry-content > div,

html:has(
    head link[rel="canonical"]:is(
        [href*="/magic/spell-arcane-eye/"],
        [href*="/magic/spell-resilient-sphere/"]
    )
) body .site-main article .entry-content > section {
    width: 100% !important;
    max-width: 100% !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    left: auto !important;
    right: auto !important;
    box-sizing: border-box !important;
}


/* Neutralise WordPress full-width blocks on these pages */

html:has(
    head link[rel="canonical"]:is(
        [href*="/magic/spell-arcane-eye/"],
        [href*="/magic/spell-resilient-sphere/"]
    )
) body .site-main article .alignfull {
    width: 100% !important;
    max-width: 100% !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
}


/* Catch inline width:100vw rules */

html:has(
    head link[rel="canonical"]:is(
        [href*="/magic/spell-arcane-eye/"],
        [href*="/magic/spell-resilient-sphere/"]
    )
) body .site-main article [style*="100vw"] {
    width: 100% !important;
    max-width: 100% !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
}


/* Images cannot escape the content shell */

html:has(
    head link[rel="canonical"]:is(
        [href*="/magic/spell-arcane-eye/"],
        [href*="/magic/spell-resilient-sphere/"]
    )
) body .site-main article img {
    max-width: 100%;
    height: auto;
}


/* ------------------------------------------------------------
   TABLET
   ------------------------------------------------------------ */

@media (max-width: 1024px) {

    .sw-entry {
        width: calc(100% - 32px) !important;
    }

    html:has(
        head link[rel="canonical"]:is(
            [href*="/magic/spell-arcane-eye/"],
            [href*="/magic/spell-resilient-sphere/"]
        )
    ) body .site-main article {
        width: calc(100% - 32px) !important;
    }
}


/* ------------------------------------------------------------
   MOBILE
   ------------------------------------------------------------ */

@media (max-width: 768px) {

    .sw-entry {
        width: calc(100% - 24px) !important;
    }

    html:has(
        head link[rel="canonical"]:is(
            [href*="/magic/spell-arcane-eye/"],
            [href*="/magic/spell-resilient-sphere/"]
        )
    ) body .site-main article {
        width: calc(100% - 24px) !important;
    }
} /* BEGIN SPIRALWORLDS CANONICAL ENTRIES — 1.0.0, 2026-09-08
 * One site-wide stylesheet; HTML entries contain no style blocks.
 * Scope: .sw-entry and its own WordPress title/container only.
 * Repeated .sw-entry specificity deliberately wins against older page CSS.
 * Canonical class contract: September 2026 rendering standard.
 * Existing generic component aliases are supported during migration.
 */

/* Shared dark palette is explicit, independent of device theme settings. */
.sw-entry.sw-entry {
  --sw-c-bg: #121117;
  --sw-c-panel: #1b1a20;
  --sw-c-raised: #25232b;
  --sw-c-text: #e8e6eb;
  --sw-c-heading: #f2eff5;
  --sw-c-muted: #b9b4c1;
  --sw-c-border: #55505e;
  --sw-c-link: #e6c68e;
  --sw-c-hover: #ffe1a9;
  --sw-c-active: #e6c68e;
  --sw-c-active-text: #17130c;
  --sw-c-focus: #ffe1a9;
  /* Map existing generic tokens once; stop old per-page palette switches. */
  --sw-bg: var(--sw-c-bg) !important;
  --sw-panel: var(--sw-c-panel) !important;
  --sw-panel-2: var(--sw-c-raised) !important;
  --sw-bg-soft: var(--sw-c-panel) !important;
  --sw-bg-panel: var(--sw-c-panel) !important;
  --sw-bg-panel-strong: var(--sw-c-raised) !important;
  --sw-text: var(--sw-c-text) !important;
  --sw-heading: var(--sw-c-heading) !important;
  --sw-heading-strong: var(--sw-c-heading) !important;
  --sw-muted: var(--sw-c-muted) !important;
  --sw-text-soft: var(--sw-c-text) !important;
  --sw-text-muted: var(--sw-c-muted) !important;
  --sw-border: var(--sw-c-border) !important;
  --sw-border-strong: var(--sw-c-border) !important;
  --sw-accent: var(--sw-c-link) !important;
  --sw-accent-2: var(--sw-c-link) !important;
  --sw-accent-strong: var(--sw-c-hover) !important;
  --sw-link: var(--sw-c-link) !important;
  --sw-link-hover: var(--sw-c-hover) !important;
  --sw-focus: var(--sw-c-focus) !important;
  width: calc(100% - 32px) !important;
  max-width: 1180px !important;
  min-width: 0 !important;
  margin: 0 auto !important;
  padding: 24px clamp(0px, 1vw, 12px) 40px !important;
  box-sizing: border-box !important;
  background: var(--sw-c-bg) !important;
  color: var(--sw-c-text) !important;
  line-height: 1.68;
  font-size: 1rem;
  overflow-wrap: anywhere;
  isolation: auto;
}
.sw-entry.sw-entry *,
.sw-entry.sw-entry *::before,
.sw-entry.sw-entry *::after { box-sizing: border-box; }
.sw-entry.sw-entry :is(section, div, figure, dl, fieldset) { min-width: 0; }
.sw-entry.sw-entry :is(p, li, dd, dt, td, th, blockquote, summary) {
  color: var(--sw-c-text) !important;
}
.sw-entry.sw-entry :is(strong, b) { color: var(--sw-c-heading) !important; }
.sw-entry.sw-entry :is(h1, h2, h3, h4, h5, h6, .sw-display-title, .sw-entry-title) {
  color: var(--sw-c-heading) !important;
  line-height: 1.2;
  text-wrap: balance;
}
.sw-entry.sw-entry :is(h1, .sw-display-title, header > .sw-entry-title) {
  font-size: clamp(2rem, 4.5vw, 3.5rem);
  line-height: 1.1;
  margin: 0 auto 1.25rem;
  font-weight: 750;
}
.sw-entry.sw-entry h2 { font-size: clamp(1.5rem, 2.8vw, 2.15rem); margin: 2.4rem 0 1rem; }
.sw-entry.sw-entry h3 { font-size: clamp(1.2rem, 2vw, 1.5rem); margin: 1.65rem 0 .65rem; }
.sw-entry.sw-entry h4 { font-size: 1.08rem; margin: 1.3rem 0 .55rem; }
.sw-entry.sw-entry p { margin-top: 0; margin-bottom: 1.1rem; }
.sw-entry.sw-entry :is(ul, ol) { padding-left: 1.4rem; margin-top: .75rem; margin-bottom: 1.25rem; }
.sw-entry.sw-entry li + li { margin-top: .4rem; }
.sw-entry.sw-entry :is(section, .sw-statblock, .sw-tab-panel, .sw-card) > :is(h2, h3, h4):first-child { margin-top: 0; }
.sw-entry.sw-entry :is(.sw-kicker, .sw-eyebrow, .sw-panel-kicker, .sw-rule-label) {
  color: var(--sw-c-muted) !important;
  font-size: .82rem;
  font-weight: 700;
  letter-spacing: .055em;
  margin-bottom: .5rem;
}
.sw-entry.sw-entry :is(.sw-caption, figcaption, .sw-small, .sw-edition-note, .sw-source-note) {
  color: var(--sw-c-muted) !important;
  font-size: .9rem;
  line-height: 1.5;
}

/* A wide shell for rules/images, a narrower column for reading. */
.sw-entry.sw-entry > :is(header, h1, h2, h3, h4, p, ul, ol, blockquote, dl),
.sw-entry.sw-entry :is(.sw-prose, .sw-lead, .sw-lede, .sw-deck, .sw-dek,
 .sw-opening, .sw-section-narrow, .sw-hooks, .sw-related, .sw-source-note,
 .sw-source-list, .sw-sources, .sw-license, .sw-history, .sw-now,
 .sw-rumours, .sw-rulings, .sw-rules-text, .sw-flavour),
.sw-entry.sw-entry > section:not(:has(.sw-tabs, .sw-tabset, .sw-scroll, .sw-table-wrap, .sw-map, .sw-grid, .sw-card-grid, .sw-cards, .sw-place-grid, .sw-person-grid, .sw-faction-grid, .sw-related-grid, .sw-pressure-grid, .sw-two-col)):not(.sw-glance) {
  max-width: 850px !important;
  margin-left: auto !important;
  margin-right: auto !important;
}
.sw-entry.sw-entry :is(.sw-lead, .sw-lede, .sw-deck, .sw-dek) { font-size: 1.1rem; line-height: 1.74; }
.sw-entry.sw-entry :is(.sw-prose, .sw-section, .sw-section-narrow, .sw-now, .sw-related, .sw-hooks, .sw-history) {
  margin-top: 2.25rem;
  margin-bottom: 2.25rem;
}
.sw-entry.sw-entry :is(.sw-section, .sw-anchor) > :is(h2, h3, p, ul, ol) {
  max-width: 850px;
  margin-left: auto;
  margin-right: auto;
}
.sw-entry.sw-entry :is([id], .sw-anchor) { scroll-margin-top: 100px; }
.sw-entry.sw-entry .alignfull { width: 100% !important; max-width: 100% !important; margin-inline: 0 !important; }

/* Hide a duplicate theme H1 only when this SAME content area has its own H1.
 * Do not hide the sole H1 on entries using an H2 or div display title. */
.entry-content:has(.sw-entry h1) > h1.entry-title,
article:has(> .entry-content .sw-entry h1) > .entry-header > h1.entry-title { display: none !important; }
.entry-content:has(.sw-entry) > h1.entry-title:not(:has(+ .sw-entry h1)),
article:has(> .entry-content .sw-entry) > .entry-header > h1.entry-title {
  max-width: 850px;
  margin: 1rem auto;
  color: #f2eff5 !important;
}

/* Images retain their natural proportions; heroes are never full-width banners. */
.sw-entry.sw-entry :is(img, video, iframe, svg) { max-width: 100%; }
.sw-entry.sw-entry img { height: auto; }
.sw-entry.sw-entry :is(.sw-hero, .sw-figure) {
  width: auto !important;
  max-width: 850px !important;
  margin: 0 auto 1.5rem !important;
  text-align: center;
  float: none;
}
.sw-entry.sw-entry :is(.sw-hero, .sw-figure) > a { display: block; width: fit-content; max-width: 100%; margin: auto; }
.sw-entry.sw-entry :is(.sw-hero, .sw-figure) img {
  display: block !important;
  width: auto !important;
  height: auto !important;
  max-width: min(100%, 650px) !important;
  max-height: 780px !important;
  aspect-ratio: auto !important;
  object-fit: contain !important;
  margin: 0 auto !important;
  border-radius: 10px;
}
.sw-entry.sw-entry :is(.sw-hero, .sw-figure, .sw-map) figcaption { max-width: 650px; margin: .65rem auto 0; }
.sw-entry.sw-entry .sw-map { max-width: 100%; margin: 1.5rem auto; text-align: center; }
.sw-entry.sw-entry .sw-map img { width: auto !important; max-width: 100% !important; height: auto !important; object-fit: contain; }
.sw-entry.sw-entry .sw-hero-title { max-width: 850px; margin: .6rem auto; font-size: 1.15rem; }

/* Reusable heraldry beside the opening paragraph. Supports current location HTML. */
.sw-entry.sw-entry :is(.sw-opening-grid, .sw-opening-lead),
.sw-entry.sw-entry :is(.sw-lead, .sw-opening):has(> .sw-heraldry) {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) 170px !important;
  align-items: start !important;
  gap: 24px !important;
  max-width: 930px !important;
  margin: 1.5rem auto 2rem !important;
}
.sw-entry.sw-entry :is(.sw-opening-lead, .sw-opening-grid) > :first-child { margin-top: 0 !important; }
.sw-entry.sw-entry :is(.sw-arms, .sw-opening-arms, .sw-heraldry, .sw-sigil) {
  width: 170px !important;
  max-width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
  justify-self: end;
  align-self: start;
  float: none !important;
  text-align: center;
}
.sw-entry.sw-entry :is(.sw-arms, .sw-opening-arms, .sw-heraldry, .sw-sigil) img {
  display: block !important;
  width: 100% !important;
  max-width: 170px !important;
  height: auto !important;
  max-height: 210px !important;
  object-fit: contain !important;
  margin: 0 auto !important;
}
.sw-entry.sw-entry :is(.sw-arms, .sw-opening-arms, .sw-heraldry, .sw-sigil) figcaption { margin-top: .55rem; font-size: .8rem; }

/* At-a-glance and spell metadata, including unwrapped dt/dd pairs. */
.sw-entry.sw-entry :is(.sw-glance, .sw-quick-rules) {
  max-width: 930px;
  margin: 1.6rem auto 2.2rem;
  padding: 1rem;
  border: 1px solid var(--sw-c-border);
  border-radius: 8px;
  background: var(--sw-c-panel) !important;
}
.sw-entry.sw-entry :is(.sw-glance-grid, .sw-rulegrid, .sw-stat-grid, .sw-quick, .sw-quick-grid) {
  display: grid !important;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: .75rem !important;
  max-width: 930px;
  margin: 1rem auto;
  padding: 0;
}
.sw-entry.sw-entry :is(.sw-rulegrid, .sw-stat-grid) { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.sw-entry.sw-entry :is(.sw-glance-grid, .sw-rulegrid, .sw-stat-grid, .sw-quick, .sw-quick-grid) > div {
  padding: .75rem .85rem !important;
  margin: 0 !important;
  background: var(--sw-c-panel) !important;
  border: 1px solid var(--sw-c-border) !important;
  border-radius: 6px;
}
.sw-entry.sw-entry :is(.sw-glance-grid, .sw-rulegrid, .sw-stat-grid) dt,
.sw-entry.sw-entry :is(.sw-quick, .sw-quick-item) :is(b, strong):first-child {
  display: block;
  color: var(--sw-c-muted) !important;
  margin: 0 0 .3rem;
  font-size: .82rem;
  font-weight: 700;
}
.sw-entry.sw-entry :is(.sw-glance-grid, .sw-rulegrid, .sw-stat-grid) dd { margin: 0; }
.sw-entry.sw-entry .sw-glance > dl:has(> dt) {
  display: grid !important;
  grid-template-columns: minmax(100px, 28%) minmax(0, 1fr) !important;
  gap: .6rem 1rem;
  margin: 0;
}
.sw-entry.sw-entry .sw-glance > dl:has(> dt) :is(dt, dd) { margin: 0; padding: .45rem 0; border-bottom: 1px solid var(--sw-c-border); }
.sw-entry.sw-entry .sw-glance > dl > dt { color: var(--sw-c-muted) !important; font-weight: 700; }

/* Rules panels, labels, hidden-but-focusable native radio controls. */
.sw-entry.sw-entry :is(.sw-tabs, .sw-tabset) {
  position: relative;
  max-width: 100%;
  margin: 1.25rem auto 2rem;
  border: 0 !important;
  background: transparent !important;
  padding: 0 !important;
}
.sw-entry.sw-entry :is(.sw-tab-radio, .sw-tab-input),
.sw-entry.sw-entry :is(.sw-tabs, .sw-tabset) > input[type="radio"],
.sw-entry.sw-entry .sw-visually-hidden {
  position: absolute !important;
  display: block !important;
  width: 1px !important;
  height: 1px !important;
  min-width: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  clip: rect(0, 0, 0, 0) !important;
  clip-path: inset(50%) !important;
  overflow: hidden !important;
  white-space: nowrap !important;
  opacity: .001 !important;
}
.sw-entry.sw-entry .sw-tab-labels {
  display: flex !important;
  flex-wrap: wrap !important;
  gap: .6rem !important;
  margin: 0 0 1rem !important;
  padding: 0 !important;
  border: 0 !important;
  background: transparent !important;
}
.sw-entry.sw-entry .sw-tab-labels label {
  display: flex !important;
  align-items: center;
  justify-content: center;
  flex: 1 1 160px;
  min-height: 46px;
  padding: .7rem 1rem;
  margin: 0;
  border: 1px solid var(--sw-c-border) !important;
  border-radius: 7px;
  background: var(--sw-c-raised) !important;
  color: var(--sw-c-text) !important;
  cursor: pointer;
  text-align: center;
  font-size: 1rem;
  font-weight: 700;
}
.sw-entry.sw-entry .sw-tab-labels label:hover { border-color: var(--sw-c-link) !important; }
.sw-entry.sw-entry .sw-tab-panels { padding: 0 !important; background: transparent !important; border: 0 !important; }
/* Fail open: unfamiliar markup remains readable instead of disappearing. */
.sw-entry.sw-entry .sw-tab-panel { display: block !important; margin: 0 0 1.4rem; }
.sw-entry.sw-entry :is(.sw-tab-panel, .sw-statblock, .sw-mechanics) {
  padding: clamp(1rem, 2vw, 1.5rem) !important;
  background: var(--sw-c-panel) !important;
  color: var(--sw-c-text) !important;
  border: 1px solid var(--sw-c-border) !important;
  border-top: 3px solid var(--sw-c-link) !important;
  border-radius: 8px;
}
.sw-entry.sw-entry .sw-tab-panel > :is(.sw-statblock, .sw-mechanics) { border: 0 !important; padding: 0 !important; }
.sw-entry.sw-entry :is(.sw-tab-panel, .sw-statblock) > :is(p, ul, ol) { max-width: 850px; }
.sw-entry.sw-entry .sw-statline { margin: .25rem 0 !important; }
.sw-entry.sw-entry .sw-rule { display: block; height: 1px; margin: 1rem 0; padding: 0; border: 0; background: var(--sw-c-border); }

.sw-entry.sw-entry :is(.sw-tabs, .sw-tabset):has(> :is(input[id$="-55"], input[id$="-2024"], input[id$="-pf"], input[id$="-pf1"], input[id$="-35"]):checked) > .sw-tab-panels > .sw-tab-panel { display: none !important; }

.sw-entry.sw-entry :is(#sw-tab-55, input[id$="-55"], input[id$="-2024"]):checked ~ .sw-tab-panels > .sw-tab-panel:is(#sw-panel-55, [id$="-55"], [id$="-2024"], .sw-panel-2024) { display: block !important; }
.sw-entry.sw-entry :is(#sw-tab-55, input[id$="-55"], input[id$="-2024"]):checked ~ .sw-tab-labels :is(label[for$="-55"], label[for$="-2024"]) {
  background: var(--sw-c-active) !important;
  border-color: var(--sw-c-active) !important;
  color: var(--sw-c-active-text) !important;
}
.sw-entry.sw-entry :is(#sw-tab-55, input[id$="-55"], input[id$="-2024"]):focus-visible ~ .sw-tab-labels :is(label[for$="-55"], label[for$="-2024"]) {
  outline: 3px solid var(--sw-c-focus) !important;
  outline-offset: 3px;
}

.sw-entry.sw-entry :is(#sw-tab-pf, input[id$="-pf"], input[id$="-pf1"]):checked ~ .sw-tab-panels > .sw-tab-panel:is(#sw-panel-pf, [id$="-pf"], [id$="-pf1"], .sw-panel-pf1) { display: block !important; }
.sw-entry.sw-entry :is(#sw-tab-pf, input[id$="-pf"], input[id$="-pf1"]):checked ~ .sw-tab-labels :is(label[for$="-pf"], label[for$="-pf1"]) {
  background: var(--sw-c-active) !important;
  border-color: var(--sw-c-active) !important;
  color: var(--sw-c-active-text) !important;
}
.sw-entry.sw-entry :is(#sw-tab-pf, input[id$="-pf"], input[id$="-pf1"]):focus-visible ~ .sw-tab-labels :is(label[for$="-pf"], label[for$="-pf1"]) {
  outline: 3px solid var(--sw-c-focus) !important;
  outline-offset: 3px;
}

.sw-entry.sw-entry :is(#sw-tab-35, input[id$="-35"]):checked ~ .sw-tab-panels > .sw-tab-panel:is(#sw-panel-35, [id$="-35"], .sw-panel-35) { display: block !important; }
.sw-entry.sw-entry :is(#sw-tab-35, input[id$="-35"]):checked ~ .sw-tab-labels :is(label[for$="-35"]) {
  background: var(--sw-c-active) !important;
  border-color: var(--sw-c-active) !important;
  color: var(--sw-c-active-text) !important;
}
.sw-entry.sw-entry :is(#sw-tab-35, input[id$="-35"]):focus-visible ~ .sw-tab-labels :is(label[for$="-35"]) {
  outline: 3px solid var(--sw-c-focus) !important;
  outline-offset: 3px;
}

/* Tables remain real tables; only their own wrapper scrolls on small screens. */
.sw-entry.sw-entry :is(.sw-scroll, .sw-table-wrap, .wp-block-table) {
  display: block;
  width: 100%;
  max-width: 100%;
  min-width: 0;
  overflow-x: auto !important;
  overscroll-behavior-x: contain;
  -webkit-overflow-scrolling: touch;
  margin: 1rem 0 1.6rem;
}
.sw-entry.sw-entry table { width: 100%; max-width: 100%; border-collapse: collapse; color: var(--sw-c-text); }
.sw-entry.sw-entry :is(.sw-scroll, .sw-table-wrap) > table { min-width: 620px; }
.sw-entry.sw-entry :is(th, td) { padding: .7rem .8rem; border: 1px solid var(--sw-c-border); vertical-align: top; text-align: left; }
.sw-entry.sw-entry th { background: var(--sw-c-raised) !important; color: var(--sw-c-heading) !important; }
.sw-entry.sw-entry td { background: var(--sw-c-panel) !important; }
.sw-entry.sw-entry .sw-abilities { min-width: 0 !important; width: 100%; table-layout: fixed; }
.sw-entry.sw-entry .sw-abilities :is(th, td) { padding: .45rem .2rem; text-align: center; font-size: .9rem; }
/* Existing unwrapped comparisons need a scroll container on the table itself. */
.sw-entry.sw-entry .sw-compare { display: block !important; overflow-x: auto !important; max-width: 100% !important; }
.sw-entry.sw-entry .sw-compare thead { display: table-header-group !important; position: static !important; width: auto !important; height: auto !important; clip: auto !important; clip-path: none !important; overflow: visible !important; }
.sw-entry.sw-entry .sw-compare tbody { display: table-row-group !important; }
.sw-entry.sw-entry .sw-compare tr { display: table-row !important; }
.sw-entry.sw-entry .sw-compare :is(td, th) { display: table-cell !important; width: auto !important; min-width: 150px; padding: .7rem .8rem !important; }
.sw-entry.sw-entry .sw-compare td::before { content: none !important; display: none !important; }

/* Ordinary content stays open; boxes are reserved for mechanics and key notes. */
.sw-entry.sw-entry :is(.sw-note, .sw-callout, .sw-context-note, .sw-play-box) {
  max-width: 850px;
  margin: 1.4rem auto;
  padding: 1rem 1.1rem;
  border: 0 !important;
  border-left: 3px solid var(--sw-c-link) !important;
  border-radius: 0 !important;
  background: var(--sw-c-panel) !important;
}
.sw-entry.sw-entry :is(.sw-note, .sw-callout) > p:last-child { margin-bottom: 0; }
.sw-entry.sw-entry :is(.sw-card, .sw-hook) {
  padding: 1rem 0 !important;
  border: 0 !important;
  border-top: 1px solid var(--sw-c-border) !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}
.sw-entry.sw-entry :is(.sw-cards, .sw-card-grid, .sw-place-grid, .sw-person-grid, .sw-faction-grid, .sw-related-grid, .sw-pressure-grid, .sw-grid, .sw-two-col) {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1.25rem;
}
.sw-entry.sw-entry .sw-grid-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.sw-entry.sw-entry details { margin: 1rem 0; padding: 0 !important; border: 1px solid var(--sw-c-border); border-radius: 7px; background: var(--sw-c-panel) !important; }
.sw-entry.sw-entry summary { display: list-item; padding: .9rem 1rem; cursor: pointer; font-weight: 700; }
.sw-entry.sw-entry :is(.sw-license-text, .sw-license-content, .sw-license-body, .sw-ogl-body, .sw-details-body) {
  padding: 0 1rem 1rem;
  font-size: .9rem;
  line-height: 1.58;
  overflow-wrap: anywhere;
}

/* CSS-only lightboxes: all existing close-link patterns are supported. */
.sw-entry.sw-entry .sw-lightbox, :is(.sw-lightbox.sw-lightbox, .sw-entry ~ [class$="-lightbox"][role="dialog"]) {
  position: fixed !important;
  inset: 0 !important;
  width: auto !important;
  max-width: none !important;
  height: auto !important;
  margin: 0 !important;
  z-index: 999999;
  display: none !important;
  align-items: center;
  justify-content: center;
  padding: 60px 20px 24px !important;
  background: rgba(0, 0, 0, .94) !important;
  opacity: 0 !important;
  visibility: hidden !important;
  pointer-events: none !important;
}
.sw-entry.sw-entry .sw-lightbox:target, :is(.sw-lightbox.sw-lightbox, .sw-entry ~ [class$="-lightbox"][role="dialog"]):target {
  display: flex !important;
  opacity: 1 !important;
  visibility: visible !important;
  pointer-events: auto !important;
}
:is(.sw-lightbox.sw-lightbox, .sw-entry ~ [class$="-lightbox"][role="dialog"]) .sw-lightbox-backdrop { position: absolute; inset: 0; display: grid; place-items: center; padding: 60px 20px 24px; }
:is(.sw-lightbox.sw-lightbox, .sw-entry ~ [class$="-lightbox"][role="dialog"]) .sw-lightbox-inner { display: block; position: relative; max-width: 94vw; max-height: calc(100dvh - 96px); }
:is(.sw-lightbox.sw-lightbox, .sw-entry ~ [class$="-lightbox"][role="dialog"]) img { display: block; width: auto !important; height: auto !important; max-width: 94vw !important; max-height: calc(100dvh - 120px) !important; margin: auto !important; object-fit: contain !important; }
:is(.sw-lightbox.sw-lightbox, .sw-entry ~ [class$="-lightbox"][role="dialog"]) .sw-lightbox-close { position: absolute; top: -48px; right: 0; display: flex; align-items: center; justify-content: center; width: auto !important; min-width: 44px; height: 44px; padding: 0 12px; border: 1px solid #b9b4c1; border-radius: 6px; background: #1b1a20 !important; font-size: 1rem; }
:is(.sw-lightbox.sw-lightbox, .sw-entry ~ [class$="-lightbox"][role="dialog"]) .sw-lightbox-close-text { display: block; text-align: center; padding: .5rem; color: #fff !important; }

/* Links, including strong text inside links, always keep their link colour. */
.sw-entry.sw-entry a, .sw-entry.sw-entry a:visited { color: var(--sw-c-link) !important; text-decoration: underline; text-underline-offset: .16em; text-decoration-thickness: .08em; }
.sw-entry.sw-entry a :is(strong, b, em, span) { color: inherit !important; }
.sw-entry.sw-entry :is(strong, b) a { color: var(--sw-c-link) !important; }
.sw-entry.sw-entry a:hover { color: var(--sw-c-hover) !important; }
.sw-entry.sw-entry :is(a, summary, button, [tabindex="0"]):focus-visible { outline: 3px solid var(--sw-c-focus); outline-offset: 3px; }
:is(.sw-lightbox.sw-lightbox, .sw-entry ~ [class$="-lightbox"][role="dialog"]) a.sw-lightbox-close, :is(.sw-lightbox.sw-lightbox, .sw-entry ~ [class$="-lightbox"][role="dialog"]) a.sw-lightbox-backdrop { color: #fff !important; text-decoration: none !important; }

@media (max-width: 760px) {
  .sw-entry.sw-entry { width: calc(100% - 32px) !important; padding: 18px 0 30px !important; }
  .sw-entry.sw-entry :is(.sw-glance-grid, .sw-rulegrid, .sw-stat-grid, .sw-quick, .sw-quick-grid,
    .sw-cards, .sw-card-grid, .sw-place-grid, .sw-person-grid, .sw-faction-grid, .sw-related-grid,
    .sw-pressure-grid, .sw-grid, .sw-grid-3, .sw-two-col) { grid-template-columns: 1fr !important; }
  .sw-entry.sw-entry .sw-tab-labels label { flex-basis: 100%; }
  .sw-entry.sw-entry :is(.sw-opening-grid, .sw-opening-lead),
  .sw-entry.sw-entry :is(.sw-lead, .sw-opening):has(> .sw-heraldry) { grid-template-columns: minmax(0, 1fr) 112px !important; gap: 16px !important; }
  .sw-entry.sw-entry :is(.sw-arms, .sw-opening-arms, .sw-heraldry, .sw-sigil) { width: 112px !important; }
  .sw-entry.sw-entry .sw-glance > dl:has(> dt) { grid-template-columns: 1fr !important; gap: 0; }
  .sw-entry.sw-entry .sw-glance > dl > dt { border-bottom: 0 !important; padding-bottom: .1rem; }
  .sw-entry.sw-entry .sw-glance > dl > dd { padding-top: 0; padding-bottom: .75rem; }
}
@media (max-width: 360px) {
  .sw-entry.sw-entry :is(.sw-opening-grid, .sw-opening-lead),
  .sw-entry.sw-entry :is(.sw-lead, .sw-opening):has(> .sw-heraldry) { grid-template-columns: 1fr !important; }
  .sw-entry.sw-entry :is(.sw-arms, .sw-opening-arms, .sw-heraldry, .sw-sigil) { justify-self: center; }
}
@media (prefers-reduced-motion: reduce) { .sw-entry.sw-entry * { scroll-behavior: auto !important; transition: none !important; animation: none !important; } }
@media print {
  .sw-entry.sw-entry {
    --sw-c-bg: #fff; --sw-c-panel: #fff; --sw-c-raised: #eee;
    --sw-c-text: #111; --sw-c-heading: #111; --sw-c-muted: #333;
    --sw-c-link: #111; --sw-c-border: #888;
    width: 100% !important; max-width: none !important; padding: 0 !important;
  }
  .sw-entry.sw-entry :is(.sw-tab-radio, .sw-tab-input, .sw-tab-labels),
  .sw-entry.sw-entry :is(.sw-tabs, .sw-tabset) > input[type="radio"],
  .sw-entry.sw-entry .sw-lightbox, :is(.sw-lightbox.sw-lightbox, .sw-entry ~ [class$="-lightbox"][role="dialog"]):target { display: none !important; }
  .sw-entry.sw-entry :is(.sw-tabs, .sw-tabset):has(> :is(input[id$="-55"], input[id$="-2024"], input[id$="-pf"], input[id$="-pf1"], input[id$="-35"]):checked) > .sw-tab-panels > .sw-tab-panel,
  .sw-entry.sw-entry .sw-tab-panel { display: block !important; margin-bottom: 1.5rem; }
  .sw-entry.sw-entry :is(.sw-scroll, .sw-table-wrap, .sw-compare) { overflow: visible !important; }
  .sw-entry.sw-entry :is(.sw-scroll, .sw-table-wrap) > table { min-width: 0; }
  .sw-entry.sw-entry .sw-compare :is(td, th) { min-width: 0; }
  .sw-entry.sw-entry :is(h1, h2, h3) { break-after: avoid; }
}
/* END SPIRALWORLDS CANONICAL ENTRIES */
/* SPIRALWORLDS CENTRAL FONT UPDATE — 1.1.0, 2026-09-08
 * User-selected: Cinzel 600 headings; Crimson Pro 400–700 reading text.
 * Crimson Pro includes true italics. Compact UI uses existing system fonts.
 * Prepared for installation; not published by Codex.
 * INSTALL: In Appearance > Customise > Additional CSS, REPLACE any earlier
 * SPIRALWORLDS CENTRAL FONT UPDATE block (through its matching END marker)
 * with this entire file. If no font block is installed, append this ONCE
 * after the existing central entry styles. Keep the other Additional CSS.
 * Preview desktop and mobile, then Publish and clear the page cache.
 * Font loading is included: no plugin, HTML or @import is required.
 * ROLLBACK: Remove this block through its final END marker.
 * Google-hosted WOFF2 fonts use font-display: swap and fallback families.
 * Text size: 20px desktop / 19px narrow screens; headings retain their scale.
 * This changes typography only. Page content and layout widths are retained.
 * Font references:
 * https://fonts.google.com/specimen/Cinzel
 * https://fonts.google.com/specimen/Crimson+Pro
 */

/* latin-ext */
@font-face {
  font-family: 'Cinzel';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(https://fonts.gstatic.com/s/cinzel/v26/8vIU7ww63mVu7gtR-kwKxNvkNOjw-gjgfYPlDX5Z.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Cinzel';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(https://fonts.gstatic.com/s/cinzel/v26/8vIU7ww63mVu7gtR-kwKxNvkNOjw-gjgfY3lDQ.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* vietnamese */
@font-face {
  font-family: 'Crimson Pro';
  font-style: italic;
  font-weight: 400 700;
  font-display: swap;
  src: url(https://fonts.gstatic.com/s/crimsonpro/v28/q5uBsoa5M_tv7IihmnkabARekYxwDfKi.woff2) format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: 'Crimson Pro';
  font-style: italic;
  font-weight: 400 700;
  font-display: swap;
  src: url(https://fonts.gstatic.com/s/crimsonpro/v28/q5uBsoa5M_tv7IihmnkabARekY1wDfKi.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Crimson Pro';
  font-style: italic;
  font-weight: 400 700;
  font-display: swap;
  src: url(https://fonts.gstatic.com/s/crimsonpro/v28/q5uBsoa5M_tv7IihmnkabARekYNwDQ.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* vietnamese */
@font-face {
  font-family: 'Crimson Pro';
  font-style: normal;
  font-weight: 400 700;
  font-display: swap;
  src: url(https://fonts.gstatic.com/s/crimsonpro/v28/q5uDsoa5M_tv7IihmnkabARUoYFoCQ.woff2) format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: 'Crimson Pro';
  font-style: normal;
  font-weight: 400 700;
  font-display: swap;
  src: url(https://fonts.gstatic.com/s/crimsonpro/v28/q5uDsoa5M_tv7IihmnkabARVoYFoCQ.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Crimson Pro';
  font-style: normal;
  font-weight: 400 700;
  font-display: swap;
  src: url(https://fonts.gstatic.com/s/crimsonpro/v28/q5uDsoa5M_tv7IihmnkabARboYE.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* ============================================================
   SPIRALWORLDS LOCATION IDENTITY BLOCK — 1.0.0
   H1 → Hero → 2/3 At a Glance + 1/3 Heraldry
   ============================================================ */

/* The complete identity block uses the full canonical entry width. */
.sw-entry.sw-entry > .sw-location-identity {
    display: grid !important;
    grid-template-columns: minmax(0, 2fr) minmax(0, 1fr) !important;
    align-items: start !important;
    gap: 28px !important;

    width: 100% !important;
    max-width: 100% !important;

    margin: 1.5rem auto 2.25rem !important;
    padding: 0 !important;
}


/* LEFT COLUMN — AT A GLANCE */
.sw-entry.sw-entry > .sw-location-identity > .sw-at-a-glance,
.sw-entry.sw-entry > .sw-location-identity > .sw-glance,
.sw-entry.sw-entry > .sw-location-identity > .sw-location-glance {
    width: 100% !important;
    max-width: none !important;

    margin: 0 !important;
    padding: 0 !important;

    min-width: 0 !important;
}


/* Heading starts level with the top of the heraldry. */
.sw-entry.sw-entry > .sw-location-identity > .sw-at-a-glance > h2,
.sw-entry.sw-entry > .sw-location-identity > .sw-glance > h2,
.sw-entry.sw-entry > .sw-location-identity > .sw-location-glance > h2 {
    margin-top: 0 !important;
}


/* Table fills only its two-thirds column. */
.sw-entry.sw-entry > .sw-location-identity > .sw-at-a-glance table,
.sw-entry.sw-entry > .sw-location-identity > .sw-glance table,
.sw-entry.sw-entry > .sw-location-identity > .sw-location-glance table {
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 !important;
}


/* RIGHT COLUMN — HERALDRY */
.sw-entry.sw-entry > .sw-location-identity > :is(
    .sw-heraldry,
    .sw-location-heraldry,
    .sw-arms,
    .sw-opening-arms,
    .sw-sigil
) {
    width: 100% !important;
    max-width: none !important;

    margin: 0 !important;
    padding: 0 !important;

    justify-self: stretch !important;
    align-self: start !important;

    float: none !important;
    text-align: center !important;
}


/* Nested figure inside the heraldry column must fill the one-third column. */
.sw-entry.sw-entry > .sw-location-identity > :is(.sw-heraldry, .sw-location-heraldry) > :is(.sw-arms, .sw-location-heraldry-figure) {
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
}

/* Heraldry is always presented as a true square. */
.sw-entry.sw-entry > .sw-location-identity > :is(
    .sw-heraldry,
    .sw-location-heraldry,
    .sw-arms,
    .sw-opening-arms,
    .sw-sigil
) img {
    display: block !important;

    width: 100% !important;
    max-width: 100% !important;

    aspect-ratio: 1 / 1 !important;
    height: auto !important;
    max-height: none !important;

    object-fit: cover !important;

    margin: 0 auto !important;
}


/* Caption belongs directly beneath the heraldry. */
.sw-entry.sw-entry > .sw-location-identity > :is(
    .sw-heraldry,
    .sw-location-heraldry,
    .sw-arms,
    .sw-opening-arms,
    .sw-sigil
) figcaption {
    margin: .55rem auto 0 !important;
    text-align: center !important;
}


/* MOBILE — glance first, heraldry immediately below. */
@media (max-width: 760px) {

    .sw-entry.sw-entry > .sw-location-identity {
        grid-template-columns: 1fr !important;
        gap: 1.25rem !important;
    }

    .sw-entry.sw-entry > .sw-location-identity > :is(
        .sw-heraldry,
        .sw-location-heraldry,
        .sw-arms,
        .sw-opening-arms,
        .sw-sigil
    ) {
        width: min(100%, 320px) !important;
        max-width: 320px !important;

        justify-self: center !important;
        margin: 0 auto !important;
    }
}
/* BEGIN SPIRALWORLDS TYPOGRAPHY RULES — 1.1.0 */
:root {
  --sw-font-heading: "Cinzel", Georgia, "Times New Roman", serif;
  --sw-font-body: "Crimson Pro", Georgia, "Times New Roman", serif;
  --sw-font-ui: "Segoe UI", Arial, sans-serif;
}

/* Public site defaults. Target text elements, keeping icon fonts intact. */
body:not(.wp-admin) {
  font-family: var(--sw-font-body) !important;
  font-weight: 400;
  font-size: max(1rem, 20px);
  line-height: 1.65;
}

body:not(.wp-admin) :is(
  .entry-content, .sw-entry, .sw-lightbox,
  p, li, dt, dd, th, td, figcaption, summary,
  .sw-tab-labels label, .sw-kicker, .sw-eyebrow, .sw-panel-kicker,
  .sw-rule-label, .sw-caption, .sw-small, .sw-edition-note,
  .sw-source-note, .sw-lightbox-close
) {
  font-family: var(--sw-font-body) !important;
}

body:not(.wp-admin) .footer-adv .widget > :not(
  h1, h2, h3, h4, h5, h6, .widget-title
) {
  font-family: var(--sw-font-body) !important;
}

/* Headings follow the text rules so heading classes always take precedence. */
body:not(.wp-admin) :is(
  h1, h2, h3, h4, h5, h6,
  .entry-title, .site-title, .widget-title,
  .sw-display-title, .sw-entry-title
) {
  font-family: var(--sw-font-heading) !important;
  font-weight: 600 !important;
  font-optical-sizing: auto;
  font-synthesis: none;
}

body:not(.wp-admin) :is(
  h1, h2, h3, h4, h5, h6,
  .entry-title, .site-title, .widget-title,
  .sw-display-title, .sw-entry-title
) :is(a, strong, b, em) {
  font-family: inherit !important;
  font-weight: inherit !important;
}

/* The compact internal header has its own existing family declarations. */
body:not(.home):not(.wp-admin) #masthead .site-title a {
  font-family: var(--sw-font-heading) !important;
  font-weight: 600 !important;
}
body:not(.home):not(.wp-admin) #masthead .ast-site-title-wrap::after {
  font-family: var(--sw-font-body);
  font-weight: 400;
}
body:not(.home):not(.wp-admin) #masthead :is(
  .main-header-menu > .menu-item > .menu-link,
  .ast-masthead-custom-menu-items
) {
  font-family: var(--sw-font-ui) !important;
}

/* Compact menus and form controls retain clear system lettering. */
body:not(.wp-admin) :is(
  button, input, select, textarea,
  .ast-button, .ast-custom-button, .wp-element-button,
  .wp-block-button__link, .menu-link, .ast-masthead-custom-menu-items
) {
  font-family: var(--sw-font-ui) !important;
}

/* The shared entry stylesheet sets its own size; define the reading size here. */
body:not(.wp-admin) .sw-entry.sw-entry {
  font-size: max(1rem, 20px);
  font-weight: 400;
  line-height: 1.65;
}
body:not(.wp-admin) .sw-entry.sw-entry :is(strong, b) {
  font-weight: 700;
}
body:not(.wp-admin) .sw-entry.sw-entry :is(
  h1, h2, h3, h4, h5, h6, .sw-display-title, .sw-entry-title
) {
  font-weight: 600 !important;
}
body:not(.wp-admin) .sw-entry.sw-entry .sw-tab-labels label {
  font-weight: 600;
  font-size: max(1rem, 17px);
}
body:not(.wp-admin) .sw-entry.sw-entry :is(
  .sw-lead, .sw-lede, .sw-deck, .sw-dek
) {
  font-size: 1.05em;
  line-height: 1.65;
}
body:not(.wp-admin) .sw-entry.sw-entry :is(
  .sw-kicker, .sw-eyebrow, .sw-panel-kicker, .sw-rule-label
),
body:not(.wp-admin) .sw-entry.sw-entry :is(
  .sw-glance-grid, .sw-rulegrid, .sw-stat-grid
) dt {
  font-size: max(.82rem, 14px);
}
body:not(.wp-admin) .sw-entry.sw-entry :is(
  .sw-caption, figcaption, .sw-small, .sw-edition-note, .sw-source-note
),
body:not(.wp-admin) .sw-entry.sw-entry .sw-abilities :is(th, td) {
  font-size: max(.9rem, 16px);
}
body:not(.wp-admin) .sw-entry.sw-entry table {
  font-variant-numeric: lining-nums tabular-nums;
}
@media (max-width: 544px) {
  body:not(.wp-admin),
  body:not(.wp-admin) .sw-entry.sw-entry {
    font-size: max(1rem, 19px);
  }
}
/* END SPIRALWORLDS TYPOGRAPHY RULES */

/* END SPIRALWORLDS CENTRAL FONT UPDATE */

/* ============================================================
   SPIRALWORLDS — LOCATION FACTS, TAGS & VIDEO GRID
   Publication support
   ============================================================ */

.sw-entry.sw-entry .sw-location-glance-grid > .sw-fact {
	display: block;
	min-width: 0;
	padding: .75rem .85rem;
	border: 1px solid var(--sw-c-border);
	border-radius: 6px;
	background: var(--sw-c-panel);
}

.sw-entry.sw-entry .sw-location-glance-grid > .sw-fact > strong {
	display: block;
	margin: 0 0 .3rem;
	color: var(--sw-c-muted) !important;
	font-size: .82rem;
	font-weight: 700;
	line-height: 1.35;
}

.sw-entry.sw-entry .sw-tags {
	display: flex;
	flex-wrap: wrap;
	gap: .5rem;
	max-width: 850px;
	margin: 1rem auto 1.6rem;
}

.sw-entry.sw-entry .sw-tag {
	display: inline-flex;
	align-items: center;
	padding: .35rem .7rem;
	border: 1px solid var(--sw-c-border);
	border-radius: 999px;
	background: var(--sw-c-panel);
	color: var(--sw-c-text) !important;
	font-size: .9rem;
	line-height: 1.25;
	overflow-wrap: normal;
}

.sw-entry.sw-entry .sw-video-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 1.25rem;
	max-width: 850px;
	margin: 1.5rem auto 2rem;
}

.sw-entry.sw-entry .sw-video-grid figure {
	min-width: 0;
	margin: 0;
}

.sw-entry.sw-entry .sw-video-grid iframe {
	display: block;
	width: 100%;
	height: auto;
	aspect-ratio: 16 / 9;
	border: 0;
	background: #000;
}

.sw-entry.sw-entry .sw-video-grid figcaption {
	margin-top: .55rem;
}

@media (max-width: 760px) {
	.sw-entry.sw-entry .sw-video-grid {
		grid-template-columns: 1fr;
	}
}



/* --- WPWriter addition --- */




/* --- WPWriter addition --- */

/* ============================================================
   SPIRALWORLDS — ACCESSIBILITY + HOMEPAGE FOOTER CLEANUP — 2026-09-17
   Global low-risk pass: distinguish prose links, enlarge mobile/header targets,
   and suppress Astra's duplicate footer on the custom homepage.
   ============================================================ */

/* The homepage supplies its own branded footer. */
body.home #colophon,
body.home .site-footer {
  display: none !important;
}

/* Keep the custom homepage footer visible. */
body.home .swh-footer {
  display: block !important;
}

/* Homepage navigation and footer links meet a practical 44px target size. */
body.home .swh-main-nav a,
body.home .swh-search-jump,
body.home .swh-mobile-menu a,
body.home .swh-footer-nav a {
  min-height: 44px;
  display: inline-flex;
  align-items: center;
}

body.home .swh-mobile-menu a {
  width: 100%;
}

/* Legacy prose links must not rely on colour alone. Canonical .sw-entry
   pages already carry their own stronger link treatment. */
body:not(.home) .entry-content :is(p, li, dd, blockquote, figcaption) a:not(.wp-element-button):not(.ast-button):not([class*="button"]),
body:not(.home) .entry-content table a:not(.wp-element-button):not(.ast-button):not([class*="button"]) {
  text-decoration: underline !important;
  text-decoration-thickness: .08em !important;
  text-underline-offset: .16em !important;
}

/* Internal Astra navigation gets usable touch targets at the mobile breakpoint. */
@media (max-width: 921px) {
  body:not(.home) #masthead .main-header-menu .menu-link,
  body:not(.home) #masthead .ast-masthead-custom-menu-items,
  body:not(.home) #masthead .menu-toggle {
    min-height: 44px !important;
  }

  body:not(.home) #masthead .main-header-menu .menu-link {
    display: flex !important;
    align-items: center !important;
  }
}

/* END SPIRALWORLDS ACCESSIBILITY + HOMEPAGE FOOTER CLEANUP */


/* --- WPWriter addition --- */
/* SpiralWorlds accessibility repair — 2026-09-20 */
body .skip-link.screen-reader-text:focus {
  color: #ffffff !important;
  background: #3a2b00 !important;
}
body .site-footer a {
  text-decoration: underline !important;
  text-underline-offset: .15em;
}

/* --- WPWriter addition --- */

/* ============================================================
   SPIRALWORLDS — SUPPORT / REVENUE CALLOUT
   Shared site-wide component; no per-page CSS.
   ============================================================ */
body:not(.wp-admin) .sw-support-note {
  max-width: 850px;
  margin: 2.25rem auto;
  padding: 1.2rem 1.35rem;
  border: 1px solid var(--sw-c-border, var(--ast-border-color, #b9b9b9));
  border-left: 5px solid var(--sw-c-accent, var(--ast-global-color-0, #7a4d22));
  border-radius: 8px;
  background: var(--sw-c-panel, var(--ast-global-color-7, #f5f5f5));
  color: var(--sw-c-text, inherit);
}
body:not(.wp-admin) .sw-support-note h2,
body:not(.wp-admin) .sw-support-note h3 {
  margin-top: 0 !important;
  margin-bottom: .45rem !important;
}
body:not(.wp-admin) .sw-support-note p {
  margin: .35rem 0 .85rem;
}
body:not(.wp-admin) .sw-support-note .sw-support-button {
  display: inline-block;
  padding: .65rem 1rem;
  border-radius: 6px;
  background: var(--sw-c-accent, var(--ast-global-color-0, #7a4d22));
  color: #fff !important;
  font-family: var(--sw-font-ui, "Segoe UI", Arial, sans-serif) !important;
  font-weight: 700;
  line-height: 1.2;
  text-decoration: none !important;
}
body:not(.wp-admin) .sw-support-note .sw-support-button:hover,
body:not(.wp-admin) .sw-support-note .sw-support-button:focus {
  filter: brightness(.92);
}
@media (max-width: 544px) {
  body:not(.wp-admin) .sw-support-note {
    margin: 1.5rem auto;
    padding: 1rem;
  }
  body:not(.wp-admin) .sw-support-note .sw-support-button {
    display: block;
    width: 100%;
    text-align: center;
  }
}
/* END SPIRALWORLDS SUPPORT / REVENUE CALLOUT */


/* --- WPWriter addition --- */

/* SpiralWorlds breadcrumb correction — 2026-09-20
   Restore the genuine Home breadcrumb hidden by the retired /index/ cleanup,
   while continuing to suppress only actual legacy /index/ breadcrumb links. */
body .ast-breadcrumbs .trail-item:has(> a[href="https://spiralworlds.com/"]),
body .ast-breadcrumbs .trail-item:has(> a[href="/"]),
body .breadcrumb-trail .trail-item:has(> a[href="https://spiralworlds.com/"]),
body .breadcrumb-trail .trail-item:has(> a[href="/"]),
body .rank-math-breadcrumb :is(span, li):has(> a[href="https://spiralworlds.com/"]),
body .rank-math-breadcrumb :is(span, li):has(> a[href="/"]) {
  display: inline !important;
}

body .rank-math-breadcrumb a[href="https://spiralworlds.com/"],
body .rank-math-breadcrumb a[href="/"],
body .rank-math-breadcrumb .separator:has(+ a[href="https://spiralworlds.com/"]),
body .rank-math-breadcrumb .separator:has(+ a[href="/"]),
body .rank-math-breadcrumb a[href="https://spiralworlds.com/"] + .separator,
body .rank-math-breadcrumb a[href="/"] + .separator {
  display: inline !important;
}

body .ast-breadcrumbs .trail-item:has(> a[href*="/index/"]),
body .breadcrumb-trail .trail-item:has(> a[href*="/index/"]),
body .rank-math-breadcrumb :is(span, li):has(> a[href*="/index/"]) {
  display: none !important;
}

body .rank-math-breadcrumb a[href*="/index/"],
body .rank-math-breadcrumb .separator:has(+ a[href*="/index/"]),
body .rank-math-breadcrumb a[href*="/index/"] + .separator {
  display: none !important;
}
/* END SpiralWorlds breadcrumb correction */


/* --- WPWriter addition --- */

/* Player Resources owns its own header/footer. Suppress duplicate theme/Elementor chrome. */
body.page-id-239093 #masthead,
body.page-id-239093 .site-header,
body.page-id-239093 .elementor-location-header,
body.page-id-239093 header[data-elementor-type="header"],
body.page-id-239093 #colophon,
body.page-id-239093 .site-footer,
body.page-id-239093 .elementor-location-footer,
body.page-id-239093 footer[data-elementor-type="footer"] {
  display: none !important;
}
/* END Player Resources duplicate chrome fix */






/* --- WPWriter addition --- */
/* ============================================================
   SPIRALWORLDS — REUSABLE FULL-PAGE DARK ENTRY
   Add .sw-dark-page anywhere inside an entry to opt that page in.
   ============================================================ */
body:has(.entry-content .sw-dark-page) {
  background: #121117 !important;
}

body:has(.entry-content .sw-dark-page) .site-content,
body:has(.entry-content .sw-dark-page) .site-content > .ast-container,
body:has(.entry-content .sw-dark-page) .content-area,
body:has(.entry-content .sw-dark-page) .site-main,
body:has(.entry-content .sw-dark-page) article,
body:has(.entry-content .sw-dark-page) .entry-header,
body:has(.entry-content .sw-dark-page) .entry-content {
  background: #121117 !important;
}

body:has(.entry-content .sw-dark-page) .entry-title,
body:has(.entry-content .sw-dark-page) .entry-content :is(h1,h2,h3,h4,h5,h6) {
  color: #f2eff5 !important;
}

body:has(.entry-content .sw-dark-page) .entry-content :is(p,li,dd,dt,td,th,blockquote,figcaption) {
  color: #e8e6eb !important;
}

body:has(.entry-content .sw-dark-page) .entry-content a {
  color: #e6c68e !important;
}

body:has(.entry-content .sw-dark-page) .entry-content a:hover {
  color: #ffe1a9 !important;
}

body:has(.entry-content .sw-dark-page) .entry-content table {
  background: #1b1a20 !important;
  color: #e8e6eb !important;
  border-color: #55505e !important;
}

body:has(.entry-content .sw-dark-page) .entry-content :is(th,td) {
  border-color: #55505e !important;
}

body:has(.entry-content .sw-dark-page) .entry-content thead th {
  background: #25232b !important;
  color: #f2eff5 !important;
}

body:has(.entry-content .sw-dark-page) .entry-content .is-style-stripes tbody tr:nth-child(odd) {
  background: #1b1a20 !important;
}

body:has(.entry-content .sw-dark-page) .entry-content .is-style-stripes tbody tr:nth-child(even) {
  background: #25232b !important;
}

body:has(.entry-content .sw-dark-page) :is(.ast-breadcrumbs,.breadcrumb-trail,.rank-math-breadcrumb) {
  color: #b9b4c1 !important;
}

/* END SPIRALWORLDS REUSABLE FULL-PAGE DARK ENTRY */

/* --- WPWriter addition --- */


/* BEGIN SPIRALWORLDS MONSTER SHOWCASE — reusable monster-page presentation */
.sw-entry.sw-monster-entry > .sw-monster-hero {
  display: grid !important;
  grid-template-columns: minmax(0, .92fr) minmax(0, 1.35fr) !important;
  width: 100% !important;
  max-width: 1180px !important;
  min-height: 430px;
  margin: 0 auto 1.4rem !important;
  overflow: hidden;
  border: 1px solid rgba(230,198,142,.38);
  border-radius: 10px;
  background: #070a0c !important;
  box-shadow: 0 18px 42px rgba(0,0,0,.36);
}
.sw-entry.sw-monster-entry .sw-monster-hero-copy {
  position: relative;
  z-index: 2;
  display: flex;
  flex-direction: column;
  justify-content: center;
  min-width: 0;
  padding: clamp(1.5rem, 4vw, 3.4rem);
  background:
    linear-gradient(90deg, rgba(8,10,12,.99) 0%, rgba(8,10,12,.95) 74%, rgba(8,10,12,.68) 100%),
    radial-gradient(circle at 15% 10%, rgba(173,112,48,.16), transparent 52%);
}
.sw-entry.sw-monster-entry .sw-monster-hero-copy .sw-kicker {
  margin: 0 0 .7rem !important;
  color: #d8aa55 !important;
  font-family: var(--sw-font-ui) !important;
  font-size: .78rem !important;
  font-weight: 700 !important;
  letter-spacing: .16em !important;
  text-transform: uppercase;
}
.sw-entry.sw-monster-entry .sw-monster-hero h1 {
  max-width: none !important;
  margin: 0 0 .35rem !important;
  color: #f4e7cf !important;
  font-size: clamp(2.7rem, 6.2vw, 5.7rem) !important;
  line-height: .95 !important;
  letter-spacing: .015em;
  text-shadow: 0 4px 22px rgba(0,0,0,.55);
}
.sw-entry.sw-monster-entry .sw-monster-subtitle {
  margin: .25rem 0 .8rem !important;
  color: #eadbc5 !important;
  font-family: var(--sw-font-heading) !important;
  font-size: clamp(1.1rem, 2vw, 1.55rem);
  line-height: 1.3;
}
.sw-entry.sw-monster-entry .sw-monster-tagline {
  margin: .15rem 0 1rem !important;
  color: #d8d0c4 !important;
  font-size: 1.05rem;
}
.sw-entry.sw-monster-entry .sw-monster-tags {
  display: flex;
  flex-wrap: wrap;
  gap: .45rem;
  margin-top: .3rem;
}
.sw-entry.sw-monster-entry .sw-monster-tags > span {
  display: inline-flex;
  align-items: center;
  min-height: 32px;
  padding: .28rem .72rem;
  border: 1px solid rgba(230,198,142,.46);
  border-radius: 999px;
  background: rgba(8,11,13,.76);
  color: #eadfce !important;
  font-family: var(--sw-font-ui) !important;
  font-size: .78rem;
  line-height: 1.2;
}
.sw-entry.sw-monster-entry .sw-monster-hero-media {
  position: relative;
  min-height: 430px;
  overflow: hidden;
  background: #090c0d;
}
.sw-entry.sw-monster-entry .sw-monster-hero-media::after {
  content: "";
  position: absolute;
  inset: 0;
  background:
    linear-gradient(90deg, rgba(7,10,12,.72) 0%, rgba(7,10,12,.18) 28%, rgba(7,10,12,0) 58%),
    linear-gradient(0deg, rgba(7,10,12,.52) 0%, transparent 35%);
  pointer-events: none;
}
.sw-entry.sw-monster-entry .sw-monster-hero-media img {
  display: block !important;
  width: 100% !important;
  max-width: none !important;
  height: 100% !important;
  min-height: 430px !important;
  max-height: none !important;
  margin: 0 !important;
  object-fit: cover !important;
  object-position: center !important;
  border-radius: 0 !important;
}

.sw-entry.sw-monster-entry > .sw-monster-intro-grid {
  display: grid !important;
  grid-template-columns: minmax(0, 1.1fr) minmax(320px, .9fr) !important;
  gap: 1.35rem;
  align-items: start;
  width: 100% !important;
  max-width: 1080px !important;
  margin: 1.25rem auto 2rem !important;
}
.sw-entry.sw-monster-entry .sw-monster-intro-copy {
  min-width: 0;
  padding: 1.15rem 1.2rem .25rem;
  border-top: 1px solid rgba(230,198,142,.36);
}
.sw-entry.sw-monster-entry .sw-monster-intro-copy .sw-lead {
  max-width: none !important;
  margin: 0 0 1.1rem !important;
  font-size: 1.08em;
}
.sw-entry.sw-monster-entry .sw-monster-intro-copy .sw-callout {
  max-width: none !important;
  margin: 0 !important;
  border-left-color: #d8aa55 !important;
  background: linear-gradient(90deg, rgba(216,170,85,.09), rgba(128,128,128,.035)) !important;
}
.sw-entry.sw-monster-entry .sw-monster-glance {
  max-width: none !important;
  margin: 0 !important;
  padding: 1rem !important;
  border-color: rgba(230,198,142,.38) !important;
  background:
    linear-gradient(180deg, rgba(36,31,24,.76), rgba(20,19,22,.96)) !important;
  box-shadow: 0 14px 32px rgba(0,0,0,.2);
}
.sw-entry.sw-monster-entry .sw-monster-glance > h2 {
  margin: 0 0 .9rem !important;
  color: #e7d3af !important;
  font-size: clamp(1.3rem, 2vw, 1.7rem) !important;
  letter-spacing: .02em;
}
.sw-entry.sw-monster-entry .sw-monster-glance .sw-glance-grid {
  grid-template-columns: 1fr !important;
  gap: 0 !important;
  margin: 0 !important;
}
.sw-entry.sw-monster-entry .sw-monster-glance .sw-glance-grid > div {
  display: grid;
  grid-template-columns: minmax(120px, .75fr) minmax(0, 1.25fr);
  gap: .75rem;
  padding: .7rem 0 !important;
  border: 0 !important;
  border-top: 1px solid rgba(230,198,142,.18) !important;
  border-radius: 0 !important;
  background: transparent !important;
}
.sw-entry.sw-monster-entry .sw-monster-glance .sw-glance-grid > div:first-child {
  border-top: 0 !important;
}
.sw-entry.sw-monster-entry .sw-monster-glance .sw-glance-grid strong {
  margin: 0 !important;
  color: #d8aa55 !important;
  font-size: .78rem;
}

.sw-entry.sw-monster-entry .sw-monster-tabs > .sw-tab-labels {
  gap: .55rem !important;
  margin-bottom: 1.1rem !important;
}
.sw-entry.sw-monster-entry .sw-monster-tabs > .sw-tab-labels label {
  flex-direction: column;
  min-height: 78px;
  padding: .75rem 1rem !important;
  border-color: rgba(230,198,142,.34) !important;
  border-radius: 5px !important;
  box-shadow: inset 0 0 0 1px rgba(255,255,255,.025);
}
.sw-entry.sw-monster-entry .sw-monster-tabs > .sw-tab-labels label:nth-child(1) {
  background: linear-gradient(180deg, rgba(94,43,26,.98), rgba(53,29,22,.98)) !important;
}
.sw-entry.sw-monster-entry .sw-monster-tabs > .sw-tab-labels label:nth-child(2) {
  background: linear-gradient(180deg, rgba(10,52,72,.98), rgba(5,30,44,.98)) !important;
}
.sw-entry.sw-monster-entry .sw-monster-tabs > .sw-tab-labels label:nth-child(3) {
  background: linear-gradient(180deg, rgba(15,65,52,.98), rgba(8,37,31,.98)) !important;
}
.sw-entry.sw-monster-entry .sw-monster-tabs .sw-edition-title {
  display: block;
  color: #f2e8d8 !important;
  font-family: var(--sw-font-heading) !important;
  font-size: 1.03rem;
  line-height: 1.2;
}
.sw-entry.sw-monster-entry .sw-monster-tabs .sw-edition-note-card {
  display: block;
  margin-top: .3rem;
  color: rgba(242,232,216,.72) !important;
  font-family: var(--sw-font-body) !important;
  font-size: .78rem;
  line-height: 1.2;
}
.sw-entry.sw-monster-entry .sw-monster-tabs > input[id$="-55"]:checked ~ .sw-tab-labels label[for$="-55"],
.sw-entry.sw-monster-entry .sw-monster-tabs > input[id$="-pf"]:checked ~ .sw-tab-labels label[for$="-pf"],
.sw-entry.sw-monster-entry .sw-monster-tabs > input[id$="-35"]:checked ~ .sw-tab-labels label[for$="-35"] {
  border-color: #e6c68e !important;
  box-shadow: inset 0 0 0 1px #e6c68e, 0 0 0 2px rgba(230,198,142,.16) !important;
}

.sw-entry.sw-monster-entry .sw-folklore-figure {
  margin-top: 1.2rem !important;
  padding: .7rem;
  border: 1px solid rgba(230,198,142,.32);
  background: #17130f !important;
  box-shadow: 0 12px 28px rgba(0,0,0,.25);
}
.sw-entry.sw-monster-entry .sw-folklore-figure img {
  border-radius: 4px !important;
}
.sw-entry.sw-monster-entry .sw-folklore-figure figcaption {
  color: #d4c3a6 !important;
}

@media (max-width: 900px) {
  .sw-entry.sw-monster-entry > .sw-monster-hero {
    grid-template-columns: 1fr !important;
  }
  .sw-entry.sw-monster-entry .sw-monster-hero-media {
    min-height: 300px;
  }
  .sw-entry.sw-monster-entry .sw-monster-hero-media img {
    min-height: 300px !important;
  }
  .sw-entry.sw-monster-entry .sw-monster-hero-media::after {
    background: linear-gradient(0deg, rgba(7,10,12,.7), rgba(7,10,12,.08) 50%);
  }
  .sw-entry.sw-monster-entry > .sw-monster-intro-grid {
    grid-template-columns: 1fr !important;
  }
}
@media (max-width: 560px) {
  .sw-entry.sw-monster-entry .sw-monster-hero-copy {
    padding: 1.35rem 1rem;
  }
  .sw-entry.sw-monster-entry .sw-monster-hero h1 {
    font-size: clamp(2.4rem, 16vw, 4rem) !important;
  }
  .sw-entry.sw-monster-entry .sw-monster-hero-media,
  .sw-entry.sw-monster-entry .sw-monster-hero-media img {
    min-height: 240px !important;
  }
  .sw-entry.sw-monster-entry .sw-monster-glance .sw-glance-grid > div {
    grid-template-columns: 1fr !important;
    gap: .2rem;
  }
}
/* END SPIRALWORLDS MONSTER SHOWCASE */


/* --- WPWriter addition --- */
/* --- WPWriter addition --- */




/* --- WPWriter addition --- */




/* --- WPWriter addition --- */


/* Four-card monster palette: only pages that actually expose four edition tabs.
   Three-tab pages keep the 5.5e / PF1e / 3.5e palette defined above. */
.sw-entry.sw-monster-entry .sw-monster-tabs:has(> .sw-tab-labels > label:nth-child(4)) > .sw-tab-labels label:nth-child(1) {
  background: linear-gradient(180deg, rgba(94,43,26,.98), rgba(53,29,22,.98)) !important;
}
.sw-entry.sw-monster-entry .sw-monster-tabs:has(> .sw-tab-labels > label:nth-child(4)) > .sw-tab-labels label:nth-child(2) {
  background: linear-gradient(180deg, rgba(86,40,52,.98), rgba(48,23,31,.98)) !important;
}
.sw-entry.sw-monster-entry .sw-monster-tabs:has(> .sw-tab-labels > label:nth-child(4)) > .sw-tab-labels label:nth-child(3) {
  background: linear-gradient(180deg, rgba(10,52,72,.98), rgba(5,30,44,.98)) !important;
}
.sw-entry.sw-monster-entry .sw-monster-tabs:has(> .sw-tab-labels > label:nth-child(4)) > .sw-tab-labels label:nth-child(4) {
  background: linear-gradient(180deg, rgba(15,65,52,.98), rgba(8,37,31,.98)) !important;
}


/* --- WPWriter addition --- */




/* --- WPWriter addition --- */


/* SPIRALWORLDS MONSTER PAGE SHELL — dark background */
body:has(.sw-entry.sw-monster-entry) {
  background: #0b0b0d !important;
}

body:has(.sw-entry.sw-monster-entry) :is(
  #page,
  .site,
  .site-content,
  .ast-container,
  #primary,
  .content-area,
  .site-main,
  article,
  .entry-content
) {
  background-color: #0b0b0d !important;
}

body:has(.sw-entry.sw-monster-entry) .site-content {
  background:
    radial-gradient(circle at 50% 0%, rgba(92,67,38,.10), transparent 34rem),
    #0b0b0d !important;
}

body:has(.sw-entry.sw-monster-entry) article {
  box-shadow: none !important;
}

body:has(.sw-entry.sw-monster-entry) .entry-content {
  margin-top: 0 !important;
  color: #e8e6eb !important;
}

body:has(.sw-entry.sw-monster-entry) .sw-entry.sw-monster-entry {
  background:
    linear-gradient(180deg, #101014 0%, #121117 34%, #0d0d10 100%) !important;
  border-left: 1px solid rgba(230,198,142,.10);
  border-right: 1px solid rgba(230,198,142,.10);
}


/* --- WPWriter addition --- */


/* ============================================================
   SPIRALWORLDS — CANONICAL ENTRY SHELL + EDITION TABS — 2.0.0
   Authoritative global layer. Replaces page-level dark-canvas fixes
   and overlapping tab-lock patches for canonical .sw-entry pages.
   ============================================================ */

/* Canonical entries always sit on the shared dark canvas. */
body:has(.entry-content .sw-entry),
body:has(.entry-content .sw-entry) #page,
body:has(.entry-content .sw-entry) .site,
body:has(.entry-content .sw-entry) .site-content,
body:has(.entry-content .sw-entry) .site-content > .ast-container,
body:has(.entry-content .sw-entry) #primary,
body:has(.entry-content .sw-entry) .content-area,
body:has(.entry-content .sw-entry) .site-main,
body:has(.entry-content .sw-entry) .site-main > article,
body:has(.entry-content .sw-entry) .ast-article-single,
body:has(.entry-content .sw-entry) .entry-header,
body:has(.entry-content .sw-entry) .entry-content {
  background-color: #0b0b0d !important;
  background-image: none !important;
}

body:has(.entry-content .sw-entry) .site-main > article,
body:has(.entry-content .sw-entry) .ast-article-single {
  box-shadow: none !important;
}

body:has(.entry-content .sw-entry) .entry-title {
  color: #f2eff5 !important;
}

body:has(.entry-content .sw-entry) :is(.ast-breadcrumbs-wrapper,.ast-breadcrumbs,.breadcrumb-trail,.rank-math-breadcrumb) {
  background: #0b0b0d !important;
  color: #b9b4c1 !important;
}

body:has(.entry-content .sw-entry) :is(.ast-breadcrumbs,.breadcrumb-trail,.rank-math-breadcrumb) a {
  color: #e6c68e !important;
}

/* Canonical tab inputs stay accessible but off-canvas. */
/* SpiralWorlds hard-locked edition tabs — 2026-09-27.
   Simple direct-child selectors deliberately avoid fragile :has() dependencies. */
.sw-entry .sw-tabs > input.sw-tab-radio[type="radio"] {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  margin: -1px !important;
  padding: 0 !important;
  overflow: hidden !important;
  clip: rect(0 0 0 0) !important;
  clip-path: inset(50%) !important;
  white-space: nowrap !important;
  border: 0 !important;
  opacity: 0 !important;
}

.sw-entry .sw-tabs > .sw-tab-labels {
  display: grid !important;
  grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
  gap: .55rem !important;
  margin: 0 0 1rem !important;
}

.sw-entry .sw-tabs > .sw-tab-labels > label {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  min-height: 3rem !important;
  padding: .65rem .8rem !important;
  border: 1px solid var(--sw-c-border, #5a4c60) !important;
  border-radius: .45rem !important;
  background: var(--sw-c-panel, #18141d) !important;
  color: var(--sw-c-text, #e8e0d6) !important;
  cursor: pointer !important;
  font-weight: 700 !important;
  line-height: 1.25 !important;
  text-align: center !important;
}

.sw-entry .sw-tabs > .sw-tab-labels > label:hover {
  border-color: var(--sw-c-link, #d8ad64) !important;
}

.sw-entry .sw-tabs > .sw-tab-panels > .sw-tab-panel {
  display: none !important;
}

.sw-entry .sw-tabs > input[id$="-55"]:checked ~ .sw-tab-panels > .sw-tab-panel[id$="-55"],
.sw-entry .sw-tabs > input[id$="-2024"]:checked ~ .sw-tab-panels > .sw-tab-panel[id$="-2024"],
.sw-entry .sw-tabs > input[id$="-2014"]:checked ~ .sw-tab-panels > .sw-tab-panel[id$="-2014"],
.sw-entry .sw-tabs > input[id$="-5e"]:checked ~ .sw-tab-panels > .sw-tab-panel[id$="-5e"],
.sw-entry .sw-tabs > input[id$="-pf"]:checked ~ .sw-tab-panels > .sw-tab-panel[id$="-pf"],
.sw-entry .sw-tabs > input[id$="-pf1"]:checked ~ .sw-tab-panels > .sw-tab-panel[id$="-pf1"],
.sw-entry .sw-tabs > input[id$="-35"]:checked ~ .sw-tab-panels > .sw-tab-panel[id$="-35"] {
  display: block !important;
}

.sw-entry .sw-tabs > input[id$="-55"]:checked ~ .sw-tab-labels > label[for$="-55"],
.sw-entry .sw-tabs > input[id$="-2024"]:checked ~ .sw-tab-labels > label[for$="-2024"],
.sw-entry .sw-tabs > input[id$="-2014"]:checked ~ .sw-tab-labels > label[for$="-2014"],
.sw-entry .sw-tabs > input[id$="-5e"]:checked ~ .sw-tab-labels > label[for$="-5e"],
.sw-entry .sw-tabs > input[id$="-pf"]:checked ~ .sw-tab-labels > label[for$="-pf"],
.sw-entry .sw-tabs > input[id$="-pf1"]:checked ~ .sw-tab-labels > label[for$="-pf1"],
.sw-entry .sw-tabs > input[id$="-35"]:checked ~ .sw-tab-labels > label[for$="-35"] {
  background: var(--sw-c-active, #4d183f) !important;
  border-color: var(--sw-c-link, #d8ad64) !important;
  color: #fff !important;
}

@media (max-width: 780px) {
  .sw-entry .sw-tabs > .sw-tab-labels {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
}

@media (max-width: 520px) {
  .sw-entry .sw-tabs > .sw-tab-labels {
    grid-template-columns: 1fr !important;
  }
}
.sw-entry.sw-entry :is(.sw-tabs,.sw-tabset) > input[type="radio"],
.sw-entry.sw-entry :is(.sw-tabs,.sw-tabset) > .wp-block-group__inner-container > input[type="radio"],
.sw-entry.sw-entry:is(.sw-tabs,.sw-tabset) > .wp-block-group__inner-container > input[type="radio"] {
  position: absolute !important;
  inline-size: 1px !important;
  block-size: 1px !important;
  opacity: 0 !important;
  overflow: hidden !important;
  clip-path: inset(50%) !important;
  white-space: nowrap !important;
}

/* DIRECT CANONICAL MARKUP: once a supported radio exists, hide every panel. */
.sw-entry.sw-entry :is(.sw-tabs,.sw-tabset):has(> input[type="radio"]:checked) > .sw-tab-panels > .sw-tab-panel {
  display: none !important;
  visibility: hidden !important;
  height: 0 !important;
  min-height: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  overflow: hidden !important;
  border: 0 !important;
}

/* Restore only the checked direct panel. */
.sw-entry.sw-entry :is(.sw-tabs,.sw-tabset) > :is(input[id$="-55"],input[id$="-2024"]):checked ~ .sw-tab-panels > .sw-tab-panel:is([id$="-55"],[id$="-2024"],.sw-panel-2024),
.sw-entry.sw-entry :is(.sw-tabs,.sw-tabset) > :is(input[id$="-5e"],input[id$="-2014"]):checked ~ .sw-tab-panels > .sw-tab-panel:is([id$="-5e"],[id$="-2014"],.sw-panel-2014),
.sw-entry.sw-entry :is(.sw-tabs,.sw-tabset) > :is(input[id$="-pf"],input[id$="-pf1"]):checked ~ .sw-tab-panels > .sw-tab-panel:is([id$="-pf"],[id$="-pf1"],.sw-panel-pf1),
.sw-entry.sw-entry :is(.sw-tabs,.sw-tabset) > input[id$="-35"]:checked ~ .sw-tab-panels > .sw-tab-panel:is([id$="-35"],.sw-panel-35) {
  display: block !important;
  visibility: visible !important;
  height: auto !important;
  min-height: 0 !important;
  margin: 0 0 1.4rem !important;
  padding: clamp(1rem, 2vw, 1.5rem) !important;
  overflow: visible !important;
  border: 1px solid var(--sw-c-border) !important;
  border-top: 3px solid var(--sw-c-link) !important;
  border-radius: 8px !important;
  background: var(--sw-c-panel) !important;
}

/* GUTENBERG GROUP MARKUP: WordPress may wrap radios/panels in inner containers. */
.sw-entry.sw-entry :is(.sw-tabs,.sw-tabset) > .wp-block-group__inner-container:has(> input[type="radio"]:checked) > .sw-tab-panels > .wp-block-group__inner-container > .sw-tab-panel,
.sw-entry.sw-entry:is(.sw-tabs,.sw-tabset) > .wp-block-group__inner-container:has(> input[type="radio"]:checked) > .sw-tab-panels > .wp-block-group__inner-container > .sw-tab-panel {
  display: none !important;
  visibility: hidden !important;
  height: 0 !important;
  min-height: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  overflow: hidden !important;
  border: 0 !important;
}

.sw-entry.sw-entry :is(.sw-tabs,.sw-tabset) > .wp-block-group__inner-container > :is(input[id$="-55"],input[id$="-2024"]):checked ~ .sw-tab-panels > .wp-block-group__inner-container > .sw-tab-panel:is([id$="-55"],[id$="-2024"],.sw-panel-2024),
.sw-entry.sw-entry :is(.sw-tabs,.sw-tabset) > .wp-block-group__inner-container > :is(input[id$="-5e"],input[id$="-2014"]):checked ~ .sw-tab-panels > .wp-block-group__inner-container > .sw-tab-panel:is([id$="-5e"],[id$="-2014"],.sw-panel-2014),
.sw-entry.sw-entry :is(.sw-tabs,.sw-tabset) > .wp-block-group__inner-container > :is(input[id$="-pf"],input[id$="-pf1"]):checked ~ .sw-tab-panels > .wp-block-group__inner-container > .sw-tab-panel:is([id$="-pf"],[id$="-pf1"],.sw-panel-pf1),
.sw-entry.sw-entry :is(.sw-tabs,.sw-tabset) > .wp-block-group__inner-container > input[id$="-35"]:checked ~ .sw-tab-panels > .wp-block-group__inner-container > .sw-tab-panel:is([id$="-35"],.sw-panel-35),
.sw-entry.sw-entry:is(.sw-tabs,.sw-tabset) > .wp-block-group__inner-container > :is(input[id$="-55"],input[id$="-2024"]):checked ~ .sw-tab-panels > .wp-block-group__inner-container > .sw-tab-panel:is([id$="-55"],[id$="-2024"],.sw-panel-2024),
.sw-entry.sw-entry:is(.sw-tabs,.sw-tabset) > .wp-block-group__inner-container > :is(input[id$="-5e"],input[id$="-2014"]):checked ~ .sw-tab-panels > .wp-block-group__inner-container > .sw-tab-panel:is([id$="-5e"],[id$="-2014"],.sw-panel-2014),
.sw-entry.sw-entry:is(.sw-tabs,.sw-tabset) > .wp-block-group__inner-container > :is(input[id$="-pf"],input[id$="-pf1"]):checked ~ .sw-tab-panels > .wp-block-group__inner-container > .sw-tab-panel:is([id$="-pf"],[id$="-pf1"],.sw-panel-pf1),
.sw-entry.sw-entry:is(.sw-tabs,.sw-tabset) > .wp-block-group__inner-container > input[id$="-35"]:checked ~ .sw-tab-panels > .wp-block-group__inner-container > .sw-tab-panel:is([id$="-35"],.sw-panel-35) {
  display: block !important;
  visibility: visible !important;
  height: auto !important;
  min-height: 0 !important;
  margin: 0 0 1.4rem !important;
  padding: clamp(1rem, 2vw, 1.5rem) !important;
  overflow: visible !important;
  border: 1px solid var(--sw-c-border) !important;
  border-top: 3px solid var(--sw-c-link) !important;
  border-radius: 8px !important;
  background: var(--sw-c-panel) !important;
}

/* Active tab label follows the checked edition in both DOM shapes. */
.sw-entry.sw-entry :is(.sw-tabs,.sw-tabset) > :is(input[id$="-55"],input[id$="-2024"]):checked ~ .sw-tab-labels :is(label[for$="-55"],label[for$="-2024"]),
.sw-entry.sw-entry :is(.sw-tabs,.sw-tabset) > :is(input[id$="-5e"],input[id$="-2014"]):checked ~ .sw-tab-labels :is(label[for$="-5e"],label[for$="-2014"]),
.sw-entry.sw-entry :is(.sw-tabs,.sw-tabset) > :is(input[id$="-pf"],input[id$="-pf1"]):checked ~ .sw-tab-labels :is(label[for$="-pf"],label[for$="-pf1"]),
.sw-entry.sw-entry :is(.sw-tabs,.sw-tabset) > input[id$="-35"]:checked ~ .sw-tab-labels label[for$="-35"],
.sw-entry.sw-entry :is(.sw-tabs,.sw-tabset) > .wp-block-group__inner-container > :is(input[id$="-55"],input[id$="-2024"]):checked ~ .sw-tab-labels :is(label[for$="-55"],label[for$="-2024"]),
.sw-entry.sw-entry :is(.sw-tabs,.sw-tabset) > .wp-block-group__inner-container > :is(input[id$="-5e"],input[id$="-2014"]):checked ~ .sw-tab-labels :is(label[for$="-5e"],label[for$="-2014"]),
.sw-entry.sw-entry :is(.sw-tabs,.sw-tabset) > .wp-block-group__inner-container > :is(input[id$="-pf"],input[id$="-pf1"]):checked ~ .sw-tab-labels :is(label[for$="-pf"],label[for$="-pf1"]),
.sw-entry.sw-entry :is(.sw-tabs,.sw-tabset) > .wp-block-group__inner-container > input[id$="-35"]:checked ~ .sw-tab-labels label[for$="-35"] {
  background: var(--sw-c-active) !important;
  border-color: var(--sw-c-active) !important;
  color: var(--sw-c-active-text) !important;
}

/* Print deliberately shows all editions. */
@media print {
  .sw-entry.sw-entry :is(.sw-tabs,.sw-tabset) .sw-tab-panel {
    display: block !important;
    visibility: visible !important;
    height: auto !important;
    margin-bottom: 1.5rem !important;
    padding: 1rem !important;
    overflow: visible !important;
  }
}

/* END SPIRALWORLDS CANONICAL ENTRY SHELL + EDITION TABS — 2.0.0 */



/* --- WPWriter addition --- */

/* SpiralWorlds semantic site-title repair — 2026-09-23
   Use WordPress's real site title instead of hiding it and recreating it with ::after. */
body:not(.home) #masthead .site-title a {
  font-size: 28px !important;
}
body:not(.home) #masthead .site-title a::after {
  content: none !important;
  display: none !important;
}
@media (max-width: 1120px) and (min-width: 922px) {
  body:not(.home) #masthead .site-title a {
    font-size: 23px !important;
  }
}
@media (max-width: 921px) {
  body:not(.home) #masthead .site-title a {
    font-size: 22px !important;
  }
}


/* --- WPWriter addition --- */

/* Temporary compatibility restore — remove after LiteSpeed/full-page cache purge.
   Some cached pages still carry the old HTML site title. */
body:not(.home) #masthead .site-title a {
  font-size: 0 !important;
}
body:not(.home) #masthead .site-title a::after {
  content: "SpiralWorlds" !important;
  display: inline !important;
  font-size: 28px !important;
}
@media (max-width: 1120px) and (min-width: 922px) {
  body:not(.home) #masthead .site-title a::after {
    font-size: 23px !important;
  }
}
@media (max-width: 921px) {
  body:not(.home) #masthead .site-title a::after {
    font-size: 22px !important;
  }
}


/* --- WPWriter addition --- */

/* Shared dark canvas for legacy entries that style their own inner content. */
body:has(.entry-content .sw-dark-shell) {
  background-color: #06141b !important;
}
body:has(.entry-content .sw-dark-shell) :is(
  .site-content,
  .site-content > .ast-container,
  #primary,
  .site-main,
  .site-main > article,
  .site-main > article > .entry-content
) {
  background-color: #06141b !important;
  background-image: none !important;
}
body:has(.entry-content .sw-dark-shell) .ast-breadcrumbs {
  color: #b7c9cc !important;
}


/* --- WPWriter addition --- */

/* ============================================================
   SPIRALWORLDS — LOCATION IDENTITY BLOCK 50:50 — 2026-09-25
   Canonical site-wide rule for At a Glance + heraldry/emblems.
   Supports both current .sw-identity and legacy .sw-location-identity.
   ============================================================ */

.sw-entry.sw-entry > :is(.sw-identity, .sw-location-identity) {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) !important;
  align-items: start !important;
  gap: 32px !important;
  width: 100% !important;
  max-width: 100% !important;
  margin: 1.5rem auto 2.25rem !important;
  padding: 0 !important;
}

.sw-entry.sw-entry > :is(.sw-identity, .sw-location-identity) > :is(
  .sw-at-a-glance,
  .sw-glance,
  .sw-location-glance
) {
  width: 100% !important;
  max-width: none !important;
  min-width: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
}

.sw-entry.sw-entry > :is(.sw-identity, .sw-location-identity) > :is(
  .sw-at-a-glance,
  .sw-glance,
  .sw-location-glance
) > h2 {
  margin-top: 0 !important;
}

.sw-entry.sw-entry > :is(.sw-identity, .sw-location-identity) > :is(
  .sw-at-a-glance,
  .sw-glance,
  .sw-location-glance
) table {
  width: 100% !important;
  max-width: 100% !important;
  margin: 0 !important;
}

.sw-entry.sw-entry > :is(.sw-identity, .sw-location-identity) > :is(
  .sw-heraldry,
  .sw-location-heraldry,
  .sw-arms,
  .sw-opening-arms,
  .sw-sigil
) {
  width: 100% !important;
  max-width: none !important;
  margin: 0 !important;
  padding: 0 !important;
  justify-self: stretch !important;
  align-self: start !important;
  float: none !important;
  text-align: center !important;
}

.sw-entry.sw-entry > :is(.sw-identity, .sw-location-identity) > :is(
  .sw-heraldry,
  .sw-location-heraldry,
  .sw-arms,
  .sw-opening-arms,
  .sw-sigil
) img {
  display: block !important;
  width: 100% !important;
  max-width: 100% !important;
  height: auto !important;
  max-height: none !important;
  aspect-ratio: 1 / 1 !important;
  object-fit: contain !important;
  margin: 0 auto !important;
}

.sw-entry.sw-entry > :is(.sw-identity, .sw-location-identity) > :is(
  .sw-heraldry,
  .sw-location-heraldry,
  .sw-arms,
  .sw-opening-arms,
  .sw-sigil
) figcaption {
  margin: .65rem auto 0 !important;
  text-align: center !important;
}

@media (max-width: 900px) {
  .sw-entry.sw-entry > :is(.sw-identity, .sw-location-identity) {
    grid-template-columns: 1fr !important;
    gap: 1.4rem !important;
  }

  .sw-entry.sw-entry > :is(.sw-identity, .sw-location-identity) > :is(
    .sw-heraldry,
    .sw-location-heraldry,
    .sw-arms,
    .sw-opening-arms,
    .sw-sigil
  ) {
    width: min(100%, 420px) !important;
    max-width: 420px !important;
    justify-self: center !important;
    margin: 0 auto !important;
  }
}
/* END SPIRALWORLDS LOCATION IDENTITY BLOCK 50:50 */


/* --- WPWriter addition --- */

/* ============================================================
   SPIRALWORLDS — GLOBAL WORD-WRAP REPAIR — 2026-09-26
   Prevent mid-word breaks caused by inherited overflow-wrap:anywhere.
   ============================================================ */

/* Normal reading text should wrap between words, not through them. */
body:not(.wp-admin) .sw-entry.sw-entry :is(
  p, li, dd, dt, td, th, blockquote, summary, figcaption
) {
  word-break: normal !important;
  overflow-wrap: break-word !important;
  hyphens: auto;
}

/* At-a-Glance labels must remain whole words. */
body:not(.wp-admin) .sw-entry.sw-entry :is(
  .sw-at-a-glance,
  .sw-glance,
  .sw-location-glance
) table {
  width: 100% !important;
  table-layout: auto !important;
}

body:not(.wp-admin) .sw-entry.sw-entry :is(
  .sw-at-a-glance,
  .sw-glance,
  .sw-location-glance
) th {
  width: 30% !important;
  min-width: 9.5rem !important;
  white-space: normal !important;
  word-break: keep-all !important;
  overflow-wrap: normal !important;
  hyphens: none !important;
  vertical-align: top !important;
}

body:not(.wp-admin) .sw-entry.sw-entry :is(
  .sw-at-a-glance,
  .sw-glance,
  .sw-location-glance
) td {
  white-space: normal !important;
  word-break: normal !important;
  overflow-wrap: break-word !important;
  hyphens: auto !important;
  vertical-align: top !important;
}

/* Long technical strings and URLs may still break safely when necessary. */
body:not(.wp-admin) .sw-entry.sw-entry :is(
  code, pre, a[href^="http"]
) {
  overflow-wrap: anywhere;
}

@media (max-width: 900px) {
  body:not(.wp-admin) .sw-entry.sw-entry :is(
    .sw-at-a-glance,
    .sw-glance,
    .sw-location-glance
  ) th {
    width: 34% !important;
    min-width: 8rem !important;
  }
}

@media (max-width: 640px) {
  body:not(.wp-admin) .sw-entry.sw-entry :is(
    .sw-at-a-glance,
    .sw-glance,
    .sw-location-glance
  ) th {
    width: 38% !important;
    min-width: 7rem !important;
  }
}
/* END SPIRALWORLDS GLOBAL WORD-WRAP REPAIR */


/* --- WPWriter addition --- */

/* BEGIN SPIRALWORLDS DUNGEONS HUB — migrated from page content 2026-09-26 */
/* ============================================================
   SPIRALWORLDS — MODERN PAGE OUTER BACKGROUND FIX
   Removes Astra's white frame around rebuilt .sw-entry pages.
   Does not widen the article or alter legacy page geometry.
   ============================================================ */

body:has(.sw-entry.sw-dungeons) .site-content,
body:has(.sw-entry.sw-dungeons) .site-content > .ast-container,
body:has(.sw-entry.sw-dungeons) .ast-container,
body:has(.sw-entry.sw-dungeons) #primary,
body:has(.sw-entry.sw-dungeons) .content-area,
body:has(.sw-entry.sw-dungeons) .site-main,
body:has(.sw-entry.sw-dungeons) .ast-article-single,
body:has(.sw-entry.sw-dungeons) .entry-content,
body:has(.sw-entry.sw-dungeons) .ast-breadcrumbs-wrapper,
body:has(.sw-entry.sw-dungeons) .ast-breadcrumbs {
	background: transparent !important;
}

body:has(.sw-entry.sw-dungeons) .ast-article-single {
	padding-left: 0 !important;
	padding-right: 0 !important;
	box-shadow: none !important;
}


/* ============================================================
   SPIRALWORLDS — DUNGEONS HUB
   Definitive publication build · August 2026

   WIDTH LOCK
   - One centred article shell
   - Maximum width 1400px
   - No 100vw
   - No negative viewport margins
   - No alignfull
   - Hero fills article, never browser viewport

   TABS
   - Genuine CSS-only 5.5e / PF1e / 3.5e tabs
   - No JavaScript required
   ============================================================ */

.sw-entry.sw-dungeons {
	--sw-bg: #0d1117;
	--sw-surface: #141b24;
	--sw-surface-2: #19222d;
	--sw-surface-3: #202b37;
	--sw-border: #354352;
	--sw-border-soft: #283541;
	--sw-text: #e8edf2;
	--sw-muted: #b5c0ca;
	--sw-faint: #8795a2;
	--sw-link: #7fd6e8;
	--sw-link-hover: #b8edf7;
	--sw-gold: #d7b56d;
	--sw-gold-light: #f0d99a;
	--sw-green: #94c7a4;
	--sw-red: #dc8d82;
	--sw-shadow: 0 18px 45px rgba(0, 0, 0, 0.3);
	margin: 0 auto;
	padding: clamp(18px, 3vw, 42px);
	

	background: var(--sw-bg);
	color: var(--sw-text);

	font-family:
		system-ui,
		-apple-system,
		BlinkMacSystemFont,
		"Segoe UI",
		sans-serif;

	font-size: 17px;
	line-height: 1.72;

	border: 1px solid #1e2933;
	border-radius: 20px;
}

.sw-entry.sw-dungeons *,
.sw-entry.sw-dungeons *::before,
.sw-entry.sw-dungeons *::after {
	
}

.sw-entry.sw-dungeons h1,
.sw-entry.sw-dungeons h2,
.sw-entry.sw-dungeons h3,
.sw-entry.sw-dungeons h4 {
	color: #ffffff;
	line-height: 1.18;
	text-wrap: balance;
}

.sw-entry.sw-dungeons h1 {
	margin: 0 0 1rem;
	font-size: clamp(2.55rem, 6vw, 5rem);
	letter-spacing: -0.045em;
}

.sw-entry.sw-dungeons h2 {
	margin: 0 0 1rem;
	font-size: clamp(1.75rem, 3.5vw, 2.65rem);
	letter-spacing: -0.025em;
}

.sw-entry.sw-dungeons h3 {
	margin: 0 0 0.55rem;
	font-size: clamp(1.12rem, 2vw, 1.38rem);
}

.sw-entry.sw-dungeons h4 {
	margin: 1.25rem 0 0.4rem;
	font-size: 1.08rem;
}

.sw-entry.sw-dungeons p {
	margin: 0 0 1rem;
}

.sw-entry.sw-dungeons ul,
.sw-entry.sw-dungeons ol {
	margin-top: 0.45rem;
	margin-bottom: 1rem;
	padding-left: 1.35rem;
}

.sw-entry.sw-dungeons li + li {
	margin-top: 0.38rem;
}

.sw-entry.sw-dungeons strong {
	color: #ffffff;
}

.sw-entry.sw-dungeons a {
	color: var(--sw-link);
	text-decoration-thickness: 1px;
	text-underline-offset: 0.18em;
}

.sw-entry.sw-dungeons a:hover,
.sw-entry.sw-dungeons a:focus {
	color: var(--sw-link-hover);
}

.sw-entry.sw-dungeons img {
	display: block;
	max-width: 100%;
	height: auto;
}


/* ------------------------------------------------------------
   HEADER
   ------------------------------------------------------------ */

.sw-dungeons .sw-dun-kicker {
	margin: 0 0 0.55rem;
	color: var(--sw-gold);
	font-size: 0.8rem;
	font-weight: 800;
	letter-spacing: 0.14em;
	text-transform: uppercase;
}

.sw-dungeons .sw-dun-subtitle {
	max-width: 950px;
	margin: 0 0 1.3rem;
	color: var(--sw-muted);
	font-size: clamp(1.08rem, 2vw, 1.32rem);
}


/* ------------------------------------------------------------
   HERO
   ------------------------------------------------------------ */

.sw-dungeons .sw-dun-hero {
	margin: 0;
	overflow: hidden;

	border: 1px solid var(--sw-border);
	border-radius: 18px;
	background: #080b0e;
	box-shadow: var(--sw-shadow);
}

.sw-dungeons .sw-dun-hero > a {
	display: block;
	background: #080b0e;
}

.sw-dungeons .sw-dun-hero img {
	width: 100%;
	max-height: 900px;
	object-fit: cover;
	object-position: center;
	cursor: zoom-in;
}

.sw-dungeons .sw-dun-hero figcaption,
.sw-dungeons .sw-dun-history-image figcaption {
	padding: 0.78rem 1rem;
	background: #101720;
	color: var(--sw-muted);
	font-size: 0.88rem;
	line-height: 1.5;
}


/* ------------------------------------------------------------
   CSS-ONLY LIGHTBOXES
   ------------------------------------------------------------ */

.sw-dungeons .sw-dun-lightbox {
	position: fixed;
	z-index: 99999;
	inset: 0;

	display: none;
	align-items: center;
	justify-content: center;

	padding: 28px;
}

.sw-dungeons .sw-dun-lightbox:target {
	display: flex;
}

.sw-dungeons .sw-dun-lightbox-backdrop {
	position: absolute;
	inset: 0;

	background: rgba(3, 6, 9, 0.94);
	cursor: zoom-out;
}

.sw-dungeons .sw-dun-lightbox-dialog {
	position: relative;
	z-index: 2;

	max-width: min(96vw, 1700px);
	max-height: 94vh;
}

.sw-dungeons .sw-dun-lightbox-dialog img {
	max-width: 100%;
	max-height: 90vh;
	width: auto;
	height: auto;

	border: 1px solid #607080;
	border-radius: 10px;
	box-shadow: 0 25px 80px rgba(0, 0, 0, 0.7);
}

.sw-dungeons .sw-dun-lightbox-close {
	position: absolute;
	z-index: 3;
	top: -18px;
	right: -10px;

	display: inline-flex;
	align-items: center;
	justify-content: center;

	width: 42px;
	height: 42px;

	border: 1px solid #71808d;
	border-radius: 50%;

	background: #111922;
	color: #ffffff !important;

	font-size: 1.7rem;
	font-weight: 800;
	line-height: 1;
	text-decoration: none !important;
}

.sw-dungeons .sw-dun-lightbox-image-close {
	display: block;
	cursor: zoom-out;
	text-decoration: none !important;
}

.sw-dungeons .sw-dun-lightbox-image-close img {
	cursor: zoom-out;
}


/* ------------------------------------------------------------
   INTRO / NAVIGATION
   ------------------------------------------------------------ */

.sw-dungeons .sw-dun-lede {
	max-width: 1050px;
	margin: 1.55rem auto 0;
	padding: clamp(1.2rem, 3vw, 1.8rem);

	border: 1px solid var(--sw-border);
	border-radius: 16px;

	background:
		linear-gradient(
			135deg,
			rgba(215, 181, 109, 0.08),
			rgba(127, 214, 232, 0.035)
		),
		var(--sw-surface);

	font-size: 1.05rem;
}

.sw-dungeons .sw-dun-lede p:last-child {
	margin-bottom: 0;
}

.sw-dungeons .sw-dun-toc {
	margin: 1.25rem 0 0;
	padding: 1rem 1.1rem;

	border: 1px solid var(--sw-border-soft);
	border-radius: 14px;
	background: var(--sw-surface);
}

.sw-dungeons .sw-dun-toc strong {
	display: block;
	margin-bottom: 0.55rem;
}

.sw-dungeons .sw-dun-toc-list {
	display: flex;
	flex-wrap: wrap;
	gap: 0.45rem 1rem;

	margin: 0;
	padding: 0;
	list-style: none;
}

.sw-dungeons .sw-dun-toc-list li {
	margin: 0;
}


/* ------------------------------------------------------------
   SECTION
   ------------------------------------------------------------ */

.sw-dungeons .sw-dun-section {
	margin-top: clamp(2.4rem, 6vw, 4.7rem);
	scroll-margin-top: 24px;
}

.sw-dungeons .sw-dun-section-head {
	max-width: 960px;
	margin-bottom: 1.35rem;
}

.sw-dungeons .sw-dun-eyebrow {
	margin: 0 0 0.4rem;
	color: var(--sw-gold);
	font-size: 0.76rem;
	font-weight: 850;
	letter-spacing: 0.13em;
	text-transform: uppercase;
}

.sw-dungeons .sw-dun-section-intro {
	color: var(--sw-muted);
	font-size: 1.03rem;
}


/* ------------------------------------------------------------
   GRIDS / CARDS
   ------------------------------------------------------------ */

.sw-dungeons .sw-dun-grid-2,
.sw-dungeons .sw-dun-grid-3,
.sw-dungeons .sw-dun-grid-4,
.sw-dungeons .sw-dun-build-grid,
.sw-dungeons .sw-dun-link-grid {
	display: grid;
	gap: 1rem;
}

.sw-dungeons .sw-dun-grid-2 {
	grid-template-columns: repeat(2, minmax(0, 1fr));
}

.sw-dungeons .sw-dun-grid-3 {
	grid-template-columns: repeat(3, minmax(0, 1fr));
}

.sw-dungeons .sw-dun-grid-4 {
	grid-template-columns: repeat(4, minmax(0, 1fr));
}

.sw-dungeons .sw-dun-build-grid {
	grid-template-columns: repeat(2, minmax(0, 1fr));
}

.sw-dungeons .sw-dun-link-grid {
	grid-template-columns: repeat(3, minmax(0, 1fr));
}

.sw-dungeons .sw-dun-card,
.sw-dungeons .sw-dun-step,
.sw-dungeons .sw-dun-link-card {
	min-width: 0;
	padding: 1.15rem;

	border: 1px solid var(--sw-border);
	border-radius: 14px;
	background: var(--sw-surface);
}

.sw-dungeons .sw-dun-card p:last-child,
.sw-dungeons .sw-dun-step p:last-child,
.sw-dungeons .sw-dun-link-card p:last-child {
	margin-bottom: 0;
}

.sw-dungeons .sw-dun-step {
	position: relative;
	padding-left: 4.45rem;
}

.sw-dungeons .sw-dun-step-number {
	position: absolute;
	top: 1.1rem;
	left: 1.1rem;

	display: flex;
	align-items: center;
	justify-content: center;

	width: 2.45rem;
	height: 2.45rem;

	border: 1px solid #806d43;
	border-radius: 50%;

	background: #211d16;
	color: var(--sw-gold-light);

	font-weight: 850;
}

.sw-dungeons .sw-dun-type-card {
	display: flex;
	flex-direction: column;
	height: 100%;
}

.sw-dungeons .sw-dun-type-card .sw-dun-card-link {
	margin-top: auto;
	padding-top: 0.4rem;
	font-weight: 750;
}

.sw-dungeons .sw-dun-link-card {
	display: block;
	text-decoration: none !important;
	transition:
		transform 0.16s ease,
		border-color 0.16s ease,
		background 0.16s ease;
}

.sw-dungeons .sw-dun-link-card:hover,
.sw-dungeons .sw-dun-link-card:focus {
	transform: translateY(-2px);
	border-color: #5e8192;
	background: var(--sw-surface-2);
}

.sw-dungeons .sw-dun-link-card strong {
	display: block;
	margin-bottom: 0.35rem;
	color: var(--sw-link-hover);
}

.sw-dungeons .sw-dun-link-card span {
	display: block;
	color: var(--sw-muted);
}


/* ------------------------------------------------------------
   CALLOUTS
   ------------------------------------------------------------ */

.sw-dungeons .sw-dun-callout {
	margin: 1.3rem 0;
	padding: 1.1rem 1.2rem;

	border-left: 5px solid var(--sw-gold);
	border-radius: 0 12px 12px 0;

	background: #191a19;
}

.sw-dungeons .sw-dun-callout--blue {
	border-left-color: var(--sw-link);
	background: #121c23;
}

.sw-dungeons .sw-dun-callout--green {
	border-left-color: var(--sw-green);
	background: #141d18;
}

.sw-dungeons .sw-dun-callout--red {
	border-left-color: var(--sw-red);
	background: #211616;
}

.sw-dungeons .sw-dun-callout p:last-child {
	margin-bottom: 0;
}


/* ------------------------------------------------------------
   CSS-ONLY EDITION TABS
   ------------------------------------------------------------ */

.sw-dungeons .sw-dun-tabs {
	margin-top: 1.25rem;
}

.sw-dungeons .sw-dun-tab-input {
	position: absolute;
	width: 1px;
	height: 1px;
	opacity: 0;
	pointer-events: none;
}

.sw-dungeons .sw-dun-tab-labels {
	display: flex;
	flex-wrap: wrap;
	gap: 0.55rem;

	margin-bottom: 1rem;
}

.sw-dungeons .sw-dun-tab-labels label {
	display: inline-flex;
	align-items: center;
	justify-content: center;

	min-width: 105px;
	min-height: 46px;
	padding: 0.7rem 1rem;

	border: 1px solid #536575;
	border-radius: 999px;

	background: #131a22;
	color: var(--sw-text);

	font-weight: 800;
	cursor: pointer;
	user-select: none;
}

#sw-dun-edition-55:checked ~ .sw-dun-tab-labels label[for="sw-dun-edition-55"],
#sw-dun-edition-pf:checked ~ .sw-dun-tab-labels label[for="sw-dun-edition-pf"],
#sw-dun-edition-35:checked ~ .sw-dun-tab-labels label[for="sw-dun-edition-35"] {
	border-color: #d2b675;
	background: #3a3221;
	color: #ffffff;
}

#sw-dun-edition-55:focus-visible ~ .sw-dun-tab-labels label[for="sw-dun-edition-55"],
#sw-dun-edition-pf:focus-visible ~ .sw-dun-tab-labels label[for="sw-dun-edition-pf"],
#sw-dun-edition-35:focus-visible ~ .sw-dun-tab-labels label[for="sw-dun-edition-35"] {
	outline: 3px solid #8ad8e8;
	outline-offset: 3px;
}

.sw-dungeons .sw-dun-tab-panel {
	display: none;

	padding: clamp(1.15rem, 3vw, 1.8rem);

	border: 1px solid var(--sw-border);
	border-radius: 16px;
	background: var(--sw-surface);
	box-shadow: var(--sw-shadow);
}

#sw-dun-edition-55:checked ~ .sw-dun-tab-panels .sw-dun-panel-55,
#sw-dun-edition-pf:checked ~ .sw-dun-tab-panels .sw-dun-panel-pf,
#sw-dun-edition-35:checked ~ .sw-dun-tab-panels .sw-dun-panel-35 {
	display: block;
}

.sw-dungeons .sw-dun-rules-note {
	margin-bottom: 1.2rem;
	padding: 0.9rem 1rem;

	border: 1px solid var(--sw-border-soft);
	border-radius: 10px;
	background: #10171f;
	color: var(--sw-muted);
}


/* ------------------------------------------------------------
   TABLES
   ------------------------------------------------------------ */

.sw-dungeons .sw-dun-table-wrap {
	width: 100%;
	margin: 1rem 0 1.45rem;
	overflow-x: auto;

	border: 1px solid var(--sw-border);
	border-radius: 12px;
	background: #10161d;
	-webkit-overflow-scrolling: touch;
}

.sw-dungeons table {
	width: 100%;
	min-width: 680px;

	border-collapse: collapse;
	color: var(--sw-text);
}

.sw-dungeons th,
.sw-dungeons td {
	padding: 0.75rem 0.85rem;
	border-bottom: 1px solid var(--sw-border-soft);
	text-align: left;
	vertical-align: top;
}

.sw-dungeons th {
	background: #202b36;
	color: #ffffff;
	font-size: 0.9rem;
}

.sw-dungeons tr:last-child td {
	border-bottom: 0;
}

.sw-dungeons tbody tr:nth-child(even) {
	background: rgba(255, 255, 255, 0.018);
}

.sw-dungeons .sw-dun-small {
	color: var(--sw-muted);
	font-size: 0.9rem;
}


/* ------------------------------------------------------------
   PROCEDURE / TRACKER
   ------------------------------------------------------------ */

.sw-dungeons .sw-dun-procedure {
	counter-reset: sw-dun-procedure;
	margin: 0;
	padding: 0;
	list-style: none;
}

.sw-dungeons .sw-dun-procedure li {
	position: relative;

	margin: 0 0 0.85rem;
	padding: 0.9rem 1rem 0.9rem 3.55rem;

	border: 1px solid var(--sw-border-soft);
	border-radius: 12px;
	background: var(--sw-surface);
}

.sw-dungeons .sw-dun-procedure li::before {
	counter-increment: sw-dun-procedure;
	content: counter(sw-dun-procedure);

	position: absolute;
	top: 0.82rem;
	left: 0.9rem;

	display: flex;
	align-items: center;
	justify-content: center;

	width: 1.95rem;
	height: 1.95rem;

	border-radius: 50%;
	background: #263440;
	color: #ffffff;
	font-weight: 850;
}


/* ------------------------------------------------------------
   HISTORY IMAGE
   ------------------------------------------------------------ */

.sw-dungeons .sw-dun-history-image {
	max-width: 900px;
	margin: 1.35rem auto 0;

	overflow: hidden;
	border: 1px solid var(--sw-border);
	border-radius: 16px;
	background: #0c1015;
}

.sw-dungeons .sw-dun-history-image > a {
	display: block;
}

.sw-dungeons .sw-dun-history-image img {
	width: 100%;
	max-height: 700px;
	object-fit: contain;
	background: #0b0e12;
	cursor: zoom-in;
}


/* ------------------------------------------------------------
   SOURCES / LICENCE
   ------------------------------------------------------------ */

.sw-dungeons .sw-dun-sources {
	padding: clamp(1.1rem, 3vw, 1.6rem);

	border: 1px solid var(--sw-border);
	border-radius: 15px;
	background: var(--sw-surface);
}

.sw-dungeons .sw-dun-source-row + .sw-dun-source-row {
	margin-top: 1.15rem;
	padding-top: 1.15rem;
	border-top: 1px solid var(--sw-border-soft);
}

.sw-dungeons .sw-dun-licence {
	margin-top: 1.2rem;

	border: 1px solid var(--sw-border);
	border-radius: 12px;
	background: #10161d;
}

.sw-dungeons .sw-dun-licence summary {
	padding: 1rem 1.1rem;

	color: #ffffff;
	font-weight: 800;
	cursor: pointer;
}

.sw-dungeons .sw-dun-licence-content {
	padding: 0 1.1rem 1.2rem;
	color: var(--sw-muted);
	font-size: 0.9rem;
}

.sw-dungeons .sw-dun-licence-content li {
	margin-bottom: 0.75rem;
}


/* ------------------------------------------------------------
   BOTTOM NAV
   ------------------------------------------------------------ */

.sw-dungeons .sw-dun-bottom {
	margin-top: 2.5rem;
	padding-top: 1.5rem;

	border-top: 1px solid var(--sw-border);
}

.sw-dungeons .sw-dun-bottom-title {
	margin-bottom: 0.8rem;
	color: var(--sw-gold);
	font-size: 0.78rem;
	font-weight: 850;
	letter-spacing: 0.12em;
	text-transform: uppercase;
}


/* ------------------------------------------------------------
   MOBILE
   ------------------------------------------------------------ */

@media (max-width: 1050px) {
	.sw-dungeons .sw-dun-grid-4,
	.sw-dungeons .sw-dun-grid-3,
	.sw-dungeons .sw-dun-link-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 760px) {
	.sw-entry.sw-dungeons {
		padding: 16px;
		border-radius: 14px;
	}

	.sw-dungeons .sw-dun-grid-2,
	.sw-dungeons .sw-dun-grid-3,
	.sw-dungeons .sw-dun-grid-4,
	.sw-dungeons .sw-dun-build-grid,
	.sw-dungeons .sw-dun-link-grid {
		grid-template-columns: 1fr;
	}

	.sw-dungeons .sw-dun-step {
		padding-left: 1.1rem;
		padding-top: 4.15rem;
	}

	.sw-dungeons .sw-dun-step-number {
		top: 1rem;
		left: 1.1rem;
	}

	.sw-dungeons .sw-dun-tab-labels {
		display: grid;
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}

	.sw-dungeons .sw-dun-tab-labels label {
		min-width: 0;
		padding-left: 0.5rem;
		padding-right: 0.5rem;
	}

	.sw-dungeons .sw-dun-lightbox {
		padding: 12px;
	}
}

@media (max-width: 480px) {
	.sw-dungeons .sw-dun-tab-labels {
		grid-template-columns: 1fr;
	}

	.sw-dungeons .sw-dun-toc-list {
		display: block;
	}

	.sw-dungeons .sw-dun-toc-list li + li {
		margin-top: 0.35rem;
	}
}
/* END SPIRALWORLDS DUNGEONS HUB */

/* --- WPWriter addition --- */

/* BEGIN SPIRALWORLDS BRITISH ISLES HUB — migrated from page 10691, 2026-09-28 */
/* =========================================================
   SPIRALWORLDS — THE BRITISH ISLES
   Reader-first location hub · Campaign present 1454 CE
   Astra / Spectra compatible · CSS only · No JavaScript
   ========================================================= */

.sw-entry.sw-british-isles {
	--sw-line: rgba(128, 128, 128, 0.30);
	--sw-soft: rgba(128, 128, 128, 0.08);
	--sw-link: #6b451f;
	--sw-link-hover: #4e3115;
	--sw-table: rgba(128, 128, 128, 0.08);

	max-width: 1180px;
	width: calc(100% - 32px);
	margin: 0 auto;
	color: inherit;
	font-size: 17px;
	line-height: 1.72;
}

.sw-british-isles *,
.sw-british-isles *::before,
.sw-british-isles *::after {
	box-sizing: border-box;
}

.sw-british-isles h1,
.sw-british-isles h2,
.sw-british-isles h3,
.sw-british-isles h4 {
	font-family: "Cinzel", Georgia, "Times New Roman", serif;
	color: inherit;
	line-height: 1.2;
	text-wrap: balance;
}

.sw-british-isles h1 {
	margin: 0 0 24px;
	text-align: center;
	font-size: clamp(2.25rem, 5vw, 4rem);
	letter-spacing: 0.015em;
}

.sw-british-isles h2 {
	margin: 54px 0 18px;
	font-size: clamp(1.7rem, 3.1vw, 2.45rem);
}

.sw-british-isles h3 {
	margin: 32px 0 10px;
	font-size: clamp(1.24rem, 2vw, 1.55rem);
}

.sw-british-isles h4 {
	margin: 22px 0 8px;
	font-size: 1.08rem;
}

.sw-british-isles p {
	margin: 0 0 1.15em;
}

.sw-british-isles a {
	color: var(--sw-link);
	text-decoration-thickness: 1px;
	text-underline-offset: 0.16em;
}

.sw-british-isles a:hover,
.sw-british-isles a:focus-visible {
	color: var(--sw-link-hover);
}

.sw-british-isles a:focus-visible {
	outline: 2px solid currentColor;
	outline-offset: 3px;
}

.sw-british-isles strong {
	font-weight: 700;
}

.sw-british-isles .sw-lead {
	font-size: clamp(1.08rem, 1.65vw, 1.25rem);
	line-height: 1.72;
}

.sw-british-isles .sw-rule {
	border: 0;
	border-top: 1px solid var(--sw-line);
	margin: 46px 0;
}

/* Hero */
.sw-british-isles .sw-hero {
	margin: 0 0 26px;
}

.sw-british-isles .sw-hero a,
.sw-british-isles .sw-map-figure a,
.sw-british-isles .sw-heraldry a {
	display: block;
}

.sw-british-isles .sw-hero img {
	display: block;
	width: 100%;
	aspect-ratio: 16 / 9;
	object-fit: cover;
	border-radius: 4px;
}

.sw-british-isles figcaption {
	margin-top: 8px;
	color: inherit;
	opacity: 0.74;
	font-size: 0.88rem;
	line-height: 1.45;
	text-align: center;
}

/* =========================================================
   IDENTITY BLOCK
   Desktop = exact 50% / 50%
   ========================================================= */

.sw-british-isles .sw-identity {
	display: flex !important;
	flex-direction: row !important;
	align-items: flex-start !important;
	gap: 28px !important;
	margin: 0 0 36px !important;
	width: 100% !important;
}

.sw-british-isles .sw-identity > .sw-glance {
	flex: 0 0 calc(50% - 14px) !important;
	width: calc(50% - 14px) !important;
	max-width: calc(50% - 14px) !important;
	min-width: 0;
	margin: 0 !important;
	align-self: flex-start !important;
}

.sw-british-isles .sw-identity > .sw-heraldry {
	flex: 0 0 calc(50% - 14px) !important;
	width: calc(50% - 14px) !important;
	max-width: calc(50% - 14px) !important;
	min-width: 0;
	margin: 0 !important;
	align-self: flex-start !important;
}

.sw-british-isles .sw-glance,
.sw-british-isles .sw-heraldry {
	margin: 0 !important;
	padding: 0 !important;
	align-self: flex-start !important;
}

.sw-british-isles .sw-glance h2 {
	margin: 0 0 14px !important;
}

.sw-british-isles .sw-heraldry a {
	display: block !important;
	width: 100% !important;
	max-width: none !important;
	margin: 0 !important;
}

.sw-british-isles .sw-table-wrap {
	width: 100%;
	overflow-x: auto;
	-webkit-overflow-scrolling: touch;
}

.sw-british-isles .sw-glance table {
	width: 100%;
	border-collapse: collapse;
	margin: 0;
	font-size: 0.96rem;
}

.sw-british-isles .sw-glance th,
.sw-british-isles .sw-glance td {
	padding: 10px 12px;
	border-bottom: 1px solid var(--sw-line);
	text-align: left;
	vertical-align: top;
}

.sw-british-isles .sw-glance th {
	width: 30%;
	font-weight: 700;
	background: var(--sw-table);
}

.sw-british-isles .sw-heraldry img {
	display: block !important;
	width: 100% !important;
	max-width: none !important;
	height: auto !important;
	aspect-ratio: 1 / 1;
	object-fit: cover;
	border-radius: 4px;
	margin: 0 !important;
}

/* Plain campaign gateway columns — deliberately not box-heavy */
.sw-british-isles .sw-region-grid,
.sw-british-isles .sw-two-col {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 24px 36px;
}

.sw-british-isles .sw-region {
	padding-left: 18px;
	border-left: 3px solid var(--sw-line);
}

.sw-british-isles .sw-region h3 {
	margin-top: 0;
}

.sw-british-isles .sw-link-row {
	margin: 18px 0 0;
	font-size: 0.95rem;
}

/* Adventure hooks */
.sw-british-isles .sw-hook-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 12px 34px;
	margin-top: 20px;
}

.sw-british-isles .sw-hook {
	padding: 18px 0;
	border-top: 1px solid var(--sw-line);
}

.sw-british-isles .sw-hook h3 {
	margin: 0 0 8px;
}

.sw-british-isles .sw-hook p:last-child {
	margin-bottom: 0;
}

/* Inline campaign note */
.sw-british-isles .sw-note {
	margin: 28px 0;
	padding: 18px 22px;
	border-left: 4px solid currentColor;
	background: var(--sw-soft);
}

.sw-british-isles .sw-note p:last-child {
	margin-bottom: 0;
}

/* Map */
.sw-british-isles .sw-map-figure {
	margin: 26px auto 40px;
}

.sw-british-isles .sw-map-figure img {
	display: block;
	width: 100%;
	height: auto;
	border-radius: 4px;
}

/* Videos */
.sw-british-isles .sw-video-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 22px;
	margin-top: 20px;
}

.sw-british-isles .sw-video {
	margin: 0;
}

.sw-british-isles .sw-video-frame {
	position: relative;
	padding-top: 56.25%;
	overflow: hidden;
	background: #111;
	border-radius: 4px;
}

.sw-british-isles .sw-video-frame iframe {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	border: 0;
}

.sw-british-isles .sw-video h3 {
	margin: 10px 0 4px;
	font-size: 1rem;
}

/* Related links */
.sw-british-isles .sw-related {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 16px 28px;
	margin-top: 18px;
}

.sw-british-isles .sw-related > div {
	padding-top: 12px;
	border-top: 1px solid var(--sw-line);
}

.sw-british-isles .sw-related strong {
	display: block;
	margin-bottom: 3px;
}

/* FAQ */
.sw-british-isles .sw-faq {
	border-top: 1px solid var(--sw-line);
}

.sw-british-isles .sw-faq h3 {
	margin-bottom: 5px;
}

.sw-british-isles .sw-faq-item {
	padding: 18px 0 8px;
	border-bottom: 1px solid var(--sw-line);
}

/* Sources */
.sw-british-isles .sw-sources {
	font-size: 0.94rem;
	opacity: 0.86;
}

.sw-british-isles .sw-sources a {
	color: inherit;
}

/* =========================================================
   CSS-ONLY LIGHTBOX
   ========================================================= */

.sw-british-isles .sw-lightbox {
	display: none;
	position: fixed;
	z-index: 999999;
	inset: 0;
	align-items: center;
	justify-content: center;
	padding: 28px;
	background: rgba(5, 6, 8, 0.95);
}

.sw-british-isles .sw-lightbox:target {
	display: flex;
}

.sw-british-isles .sw-lightbox img {
	display: block;
	max-width: min(96vw, 1800px);
	max-height: 90vh;
	width: auto;
	height: auto;
	object-fit: contain;
	box-shadow: 0 18px 60px rgba(0,0,0,.55);
}

.sw-british-isles .sw-lightbox__close {
	position: absolute;
	top: 14px;
	right: 20px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
	color: #fff !important;
	font-size: 2rem;
	line-height: 1;
	text-decoration: none;
	background: rgba(0,0,0,.55);
	border: 1px solid rgba(255,255,255,.34);
	border-radius: 50%;
}

/* Dark-mode fallbacks.
   Main text inherits from Astra/Spectra so the component cannot force
   dark text onto a dark site merely because the visitor's OS is light. */
@media (prefers-color-scheme: dark) {
	.sw-entry.sw-british-isles {
		--sw-line: rgba(226, 214, 194, 0.20);
		--sw-soft: rgba(255, 255, 255, 0.05);
		--sw-link: #d7b47b;
		--sw-link-hover: #f0d09a;
		--sw-table: rgba(255,255,255,.05);
	}
}

body.dark-mode .sw-entry.sw-british-isles,
body.ast-dark-mode .sw-entry.sw-british-isles,
body.wp-dark-mode-active .sw-entry.sw-british-isles,
html[data-theme="dark"] .sw-entry.sw-british-isles,
body[data-theme="dark"] .sw-entry.sw-british-isles {
	--sw-line: rgba(226, 214, 194, 0.20);
	--sw-soft: rgba(255, 255, 255, 0.05);
	--sw-link: #d7b47b;
	--sw-link-hover: #f0d09a;
	--sw-table: rgba(255,255,255,.05);
}

/* Mobile */
@media (max-width: 860px) {
	.sw-british-isles .sw-identity {
		flex-direction: column !important;
		gap: 24px !important;
	}

	.sw-british-isles .sw-identity > .sw-glance {
		flex: 0 0 100% !important;
		width: 100% !important;
		max-width: 100% !important;
	}

	.sw-british-isles .sw-identity > .sw-heraldry {
		flex: 0 0 auto !important;
		width: min(100%, 430px) !important;
		max-width: 430px !important;
		margin: 0 auto !important;
	}

	.sw-british-isles .sw-region-grid,
	.sw-british-isles .sw-two-col,
	.sw-british-isles .sw-hook-grid,
	.sw-british-isles .sw-video-grid,
	.sw-british-isles .sw-related {
		grid-template-columns: 1fr;
	}

	.sw-british-isles h2 {
		margin-top: 42px;
	}
}

@media (max-width: 560px) {
	.sw-entry.sw-british-isles {
		width: calc(100% - 24px);
		font-size: 16px;
	}

	.sw-british-isles .sw-glance th,
	.sw-british-isles .sw-glance td {
		padding: 9px;
	}

	.sw-british-isles .sw-glance th {
		width: 36%;
	}
}
/* END SPIRALWORLDS BRITISH ISLES HUB */


/* --- WPWriter addition --- */

/* BEGIN SPIRALWORLDS CLICKABLE MAP — IRELAND 1454, 2026-09-28 */
.sw-entry .sw-clickmap {
  position: relative;
  width: 100%;
  max-width: 1223px;
  margin: 0 auto;
}
.sw-entry .sw-clickmap > img {
  display: block;
  width: 100%;
  height: auto;
}
.sw-entry .sw-clickmap-hotspot {
  position: absolute;
  z-index: 3;
  display: block;
  overflow: hidden;
  border: 1px solid transparent;
  border-radius: 5px;
  background: transparent;
  color: transparent !important;
  font-size: 0;
  line-height: 0;
  text-decoration: none !important;
}
.sw-entry .sw-clickmap-hotspot:hover,
.sw-entry .sw-clickmap-hotspot:focus-visible {
  border-color: var(--sw-c-link, #e6c68e);
  background: rgba(230,198,142,.18);
  box-shadow: 0 0 0 2px rgba(18,17,23,.78);
  outline: none;
}

/* Hotspots align to the labels already painted onto ireland-political-map-1454.png. */
.sw-entry .sw-clickmap--ireland .sw-hotspot--derry       { left: 57.2%; top: 11.0%; width: 7.4%; height: 3.6%; }
.sw-entry .sw-clickmap--ireland .sw-hotspot--ulster      { left: 61.8%; top: 18.2%; width: 12.4%; height: 5.0%; }
.sw-entry .sw-clickmap--ireland .sw-hotspot--clogher     { left: 58.6%; top: 23.8%; width: 8.8%; height: 3.7%; }
.sw-entry .sw-clickmap--ireland .sw-hotspot--downpatrick { left: 79.8%; top: 28.7%; width: 13.0%; height: 3.7%; }
.sw-entry .sw-clickmap--ireland .sw-hotspot--meath       { left: 66.9%; top: 37.3%; width: 8.5%; height: 3.8%; }
.sw-entry .sw-clickmap--ireland .sw-hotspot--connacht    { left: 37.7%; top: 41.9%; width: 11.3%; height: 4.0%; }
.sw-entry .sw-clickmap--ireland .sw-hotspot--pale        { left: 72.1%; top: 44.0%; width: 11.5%; height: 6.0%; }
.sw-entry .sw-clickmap--ireland .sw-hotspot--dublin      { left: 80.2%; top: 47.0%; width: 8.7%; height: 3.8%; }
.sw-entry .sw-clickmap--ireland .sw-hotspot--galway      { left: 27.1%; top: 49.3%; width: 8.8%; height: 3.8%; }
.sw-entry .sw-clickmap--ireland .sw-hotspot--leinster    { left: 67.9%; top: 54.0%; width: 9.2%; height: 3.9%; }
.sw-entry .sw-clickmap--ireland .sw-hotspot--kilkenny    { left: 58.5%; top: 64.8%; width: 9.0%; height: 3.8%; }
.sw-entry .sw-clickmap--ireland .sw-hotspot--limerick    { left: 36.5%; top: 62.4%; width: 9.0%; height: 3.8%; }
.sw-entry .sw-clickmap--ireland .sw-hotspot--waterford   { left: 59.4%; top: 71.9%; width: 10.8%; height: 3.9%; }
.sw-entry .sw-clickmap--ireland .sw-hotspot--desmond     { left: 40.1%; top: 76.2%; width: 10.4%; height: 3.9%; }
.sw-entry .sw-clickmap--ireland .sw-hotspot--cork        { left: 40.2%; top: 80.4%; width: 6.6%; height: 3.8%; }

@media (max-width: 700px) {
  .sw-entry .sw-clickmap-hotspot:hover,
  .sw-entry .sw-clickmap-hotspot:focus-visible {
    background: rgba(230,198,142,.24);
  }
}
/* END SPIRALWORLDS CLICKABLE MAP — IRELAND 1454 */


/* --- WPWriter addition --- */

/* IRELAND CLICKMAP GAP FIX — 2026-09-28
   Lock wrapper to the source image ratio so no empty height can survive
   below a responsive map. */
.sw-entry.sw-entry .sw-map--clickable {
  margin: 1.5rem auto !important;
  padding: 0 !important;
}
.sw-entry.sw-entry .sw-clickmap.sw-clickmap--ireland {
  position: relative !important;
  display: block !important;
  width: min(100%, 1223px) !important;
  max-width: 1223px !important;
  height: auto !important;
  min-height: 0 !important;
  max-height: none !important;
  aspect-ratio: 1223 / 1286 !important;
  margin: 0 auto !important;
  padding: 0 !important;
  overflow: hidden !important;
  line-height: 0 !important;
}
.sw-entry.sw-entry .sw-clickmap.sw-clickmap--ireland > img {
  position: absolute !important;
  inset: 0 !important;
  display: block !important;
  width: 100% !important;
  max-width: none !important;
  height: 100% !important;
  max-height: none !important;
  margin: 0 !important;
  padding: 0 !important;
  object-fit: contain !important;
}
.sw-entry.sw-entry .sw-map--clickable > figcaption {
  display: block !important;
  margin: .65rem auto 0 !important;
  padding: 0 !important;
}


/* --- WPWriter addition --- */

/* SPIRALWORLDS CANONICAL DIRECTORY + TAB LAYOUT — 2026-09-28
   One final layout authority. Earlier component colours/panel visibility remain intact. */

/* Pantheon directories: full-width section, four cards desktop, two tablet, one mobile. */
.sw-entry.sw-pantheon > .sw-section:has(> .sw-grid),
.sw-entry.sw-asgardian > .sw-section:has(> .sw-grid) {
  width: 100% !important;
  max-width: none !important;
  margin-left: auto !important;
  margin-right: auto !important;
}

html body .sw-entry.sw-pantheon > .sw-section > .sw-grid,
html body .sw-entry.sw-asgardian > .sw-section > .sw-grid {
  display: grid !important;
  grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
  gap: 1.25rem !important;
  align-items: stretch !important;
  width: 100% !important;
  max-width: none !important;
}

html body .sw-entry.sw-pantheon > .sw-section > .sw-grid > .sw-card,
html body .sw-entry.sw-asgardian > .sw-section > .sw-grid > .sw-card {
  display: flex !important;
  flex-direction: column !important;
  min-width: 0 !important;
  height: 100% !important;
}

/* Directory media uses one level frame regardless of source artwork proportions. */
.sw-entry.sw-entry .sw-card-media {
  display: block !important;
  width: 100% !important;
  aspect-ratio: 4 / 3 !important;
  height: auto !important;
  margin: 0 0 .85rem !important;
  overflow: hidden !important;
  background: var(--sw-c-panel) !important;
}

.sw-entry.sw-entry .sw-card-media img {
  display: block !important;
  width: 100% !important;
  height: 100% !important;
  max-width: none !important;
  max-height: none !important;
  margin: 0 !important;
  aspect-ratio: auto !important;
  object-fit: cover !important;
  object-position: center !important;
}

html body .sw-entry.sw-pantheon > .sw-section > .sw-grid > .sw-card > h3,
html body .sw-entry.sw-asgardian > .sw-section > .sw-grid > .sw-card > h3 {
  margin-top: 0 !important;
}

/* Existing compact related-link grids remain independent of deity directories. */
.sw-entry.sw-entry .sw-related-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(170px, 1fr));
  gap: .75rem;
  max-width: 850px;
  margin: 1rem auto 1.5rem;
}
.sw-entry.sw-entry .sw-related-grid > a {
  min-width: 0;
  padding: .75rem .85rem;
  border-top: 1px solid var(--sw-c-border);
  color: var(--sw-c-link) !important;
  text-decoration: none !important;
}
.sw-entry.sw-entry .sw-related-grid > a:hover,
.sw-entry.sw-entry .sw-related-grid > a:focus {
  color: var(--sw-c-hover) !important;
}

/* Edition tabs: use flex so the number of labels defines the number of columns.
   Hide wpautop <br> nodes that otherwise become extra grid/flex items. */
html body .sw-tab-labels {
  display: flex !important;
  flex-flow: row nowrap !important;
  align-items: stretch !important;
  justify-content: stretch !important;
  width: 100% !important;
  max-width: none !important;
  gap: .6rem !important;
  margin: 0 0 1rem !important;
}

html body .sw-tab-labels > br,
html body .sw-entry.sw-entry .sw-tabs.sw-tabs > br {
  display: none !important;
}

html body .sw-tab-labels > label {
  display: flex !important;
  flex: 1 1 0 !important;
  flex-basis: 0 !important;
  width: auto !important;
  max-width: none !important;
  min-width: 0 !important;
  min-height: 48px !important;
  align-items: center !important;
  justify-content: center !important;
  box-sizing: border-box !important;
}

/* Tablet/mobile directory response. */
@media (max-width: 900px) {
  html body .sw-entry.sw-pantheon > .sw-section > .sw-grid,
  html body .sw-entry.sw-asgardian > .sw-section > .sw-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
}

@media (max-width: 620px) {
  html body .sw-entry.sw-pantheon > .sw-section > .sw-grid,
  html body .sw-entry.sw-asgardian > .sw-section > .sw-grid {
    grid-template-columns: 1fr !important;
  }

  html body .sw-tab-labels {
    flex-wrap: wrap !important;
  }
  html body .sw-tab-labels > label {
    flex: 1 1 calc(50% - .3rem) !important;
    flex-basis: calc(50% - .3rem) !important;
  }
}

@media (max-width: 420px) {
  html body .sw-tab-labels > label {
    flex: 1 1 100% !important;
    flex-basis: 100% !important;
  }
}
/* END SPIRALWORLDS CANONICAL DIRECTORY + TAB LAYOUT */

/* --- WPWriter addition --- */
/* SPIRALWORLDS DEITY HUB CARDS — reusable across pantheon hubs */
.sw-entry.sw-entry .sw-deity-hub-grid {
  display: grid !important;
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  gap: 1.5rem !important;
  width: 100% !important;
  max-width: 100% !important;
  margin: 1.5rem auto 2.5rem !important;
}

.sw-entry.sw-entry .sw-deity-card {
  min-width: 0 !important;
  margin: 0 !important;
  padding: 0 0 1rem !important;
  border: 1px solid var(--sw-c-border) !important;
  border-radius: 10px !important;
  background: var(--sw-c-panel) !important;
  overflow: hidden !important;
}

.sw-entry.sw-entry .sw-deity-card-image {
  display: block !important;
  width: 100% !important;
  aspect-ratio: 1 / 1 !important;
  overflow: hidden !important;
  text-decoration: none !important;
}

.sw-entry.sw-entry .sw-deity-card-image img {
  display: block !important;
  width: 100% !important;
  height: 100% !important;
  max-width: none !important;
  max-height: none !important;
  aspect-ratio: 1 / 1 !important;
  object-fit: cover !important;
}

.sw-entry.sw-entry .sw-deity-card h3 {
  margin: 1rem 1rem .35rem !important;
  text-align: center !important;
}

.sw-entry.sw-entry .sw-deity-card p {
  margin: 0 1rem !important;
  color: var(--sw-c-muted) !important;
  text-align: center !important;
}

@media (max-width: 900px) {
  .sw-entry.sw-entry .sw-deity-hub-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
}

@media (max-width: 600px) {
  .sw-entry.sw-entry .sw-deity-hub-grid {
    grid-template-columns: 1fr !important;
    gap: 1rem !important;
  }

  .sw-entry.sw-entry .sw-deity-card {
    max-width: 520px !important;
    width: 100% !important;
    margin-inline: auto !important;
  }
}

/* --- WPWriter addition --- */
/* SPIRALWORLDS CANONICAL SUPPLEMENTAL ENTRY COMPONENTS — 2026-09-29
 * Migrates reusable legacy deity components into the single global stylesheet.
 * No page-specific selectors. */
.sw-entry.sw-entry .sw-anchor-nav {
  display:flex;
  flex-wrap:wrap;
  gap:.5rem;
  max-width:850px;
  margin:1.25rem auto 1.75rem;
}
.sw-entry.sw-entry .sw-anchor-nav a {
  display:inline-flex;
  align-items:center;
  min-height:40px;
  padding:.45rem .75rem;
  border:1px solid var(--sw-c-border);
  border-radius:6px;
  background:var(--sw-c-panel);
  color:var(--sw-c-link) !important;
  text-decoration:none;
}
.sw-entry.sw-entry .sw-anchor-nav a:hover,
.sw-entry.sw-entry .sw-anchor-nav a:focus-visible {
  border-color:var(--sw-c-link);
  color:var(--sw-c-hover) !important;
}

.sw-entry.sw-entry .sw-profile-grid,
.sw-entry.sw-entry .sw-three-col {
  display:grid;
  gap:1.25rem;
  max-width:850px;
  margin:1.25rem auto;
}
.sw-entry.sw-entry .sw-profile-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
.sw-entry.sw-entry .sw-three-col { grid-template-columns:repeat(3,minmax(0,1fr)); }

.sw-entry.sw-entry .sw-profile-list {
  list-style:none;
  padding:0;
  margin:0;
}
.sw-entry.sw-entry .sw-profile-list li {
  padding:.55rem 0;
  border-bottom:1px solid var(--sw-c-border);
}
.sw-entry.sw-entry .sw-profile-list li:last-child { border-bottom:0; }

.sw-entry.sw-entry .sw-number {
  display:inline-grid;
  place-items:center;
  width:2rem;
  height:2rem;
  margin-bottom:.65rem;
  border:1px solid var(--sw-c-link);
  border-radius:50%;
  color:var(--sw-c-link) !important;
  font-weight:700;
}

.sw-entry.sw-entry .sw-domain,
.sw-entry.sw-entry .sw-domain-spells,
.sw-entry.sw-entry .sw-artifact {
  max-width:850px;
  margin:1.35rem auto;
  padding:1rem 1.1rem;
  background:var(--sw-c-panel);
  border:1px solid var(--sw-c-border);
  border-radius:7px;
}
.sw-entry.sw-entry .sw-domain { border-left:4px solid var(--sw-c-link); }
.sw-entry.sw-entry .sw-artifact { border-top:4px solid var(--sw-c-link); }

.sw-entry.sw-entry .sw-secondary-image,
.sw-entry.sw-entry .sw-artifact-image {
  max-width:720px;
  margin:1.4rem auto 1.75rem;
  padding:.5rem;
  border:1px solid var(--sw-c-border);
  border-radius:9px;
  background:var(--sw-c-panel);
  text-align:center;
}
.sw-entry.sw-entry :is(.sw-secondary-image,.sw-artifact-image) img {
  display:block;
  width:auto !important;
  max-width:100% !important;
  max-height:820px !important;
  height:auto !important;
  margin:0 auto !important;
  object-fit:contain !important;
}

.sw-entry.sw-entry .sw-relation,
.sw-entry.sw-entry .sw-plane-step {
  padding:1rem;
  border-left:3px solid var(--sw-c-border);
  background:var(--sw-c-panel);
}
.sw-entry.sw-entry .sw-plane-step .sw-plane-name {
  color:var(--sw-c-link) !important;
  font-weight:700;
}
.sw-entry.sw-entry .sw-source {
  padding:.85rem 0;
  border-bottom:1px solid var(--sw-c-border);
}
.sw-entry.sw-entry .sw-source:last-child { border-bottom:0; }

@media (max-width:760px) {
  .sw-entry.sw-entry :is(.sw-profile-grid,.sw-three-col) {
    grid-template-columns:1fr !important;
  }
}
/* END SPIRALWORLDS CANONICAL SUPPLEMENTAL ENTRY COMPONENTS */

/* --- WPWriter addition --- */

/* ============================================================
   HIDDEN MAGICAL REALMS HUB — global component rules
   Migrated from page-local CSS 2026-09-30.
   ============================================================ */
.sw-entry.sw-hidden-realms .sw-glance {
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:1px;
  margin:1.6rem 0 2rem;
  padding:1px;
  border:1px solid var(--sw-c-border);
  border-radius:10px;
  overflow:hidden;
  background:var(--sw-c-border);
}
.sw-entry.sw-hidden-realms .sw-glance > div {
  min-width:0;
  padding:1.15rem 1.2rem;
  background:var(--sw-c-panel);
  color:var(--sw-c-text);
  line-height:1.65;
}
.sw-entry.sw-hidden-realms .sw-glance strong {
  display:block;
  margin-bottom:.45rem;
  color:var(--sw-c-link) !important;
  font-size:1rem;
  font-weight:700;
}
.sw-entry.sw-hidden-realms .sw-realms {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  column-gap:2.2rem;
  row-gap:0;
  margin-top:1.4rem;
}
.sw-entry.sw-hidden-realms .sw-realm {
  padding:1.2rem 0;
  border-top:1px solid var(--sw-c-border);
}
.sw-entry.sw-hidden-realms .sw-realm p:last-child { margin-bottom:0; }
.sw-entry.sw-hidden-realms .sw-type {
  display:inline-block;
  margin-bottom:.55rem;
  color:var(--sw-c-muted) !important;
  font-size:.82rem;
  font-weight:700;
  letter-spacing:.04em;
  text-transform:uppercase;
}
.sw-entry.sw-hidden-realms .sw-links {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:.8rem 1.4rem;
  margin:1rem 0;
}
.sw-entry.sw-hidden-realms .sw-video-wrap { margin:1.5rem 0 2.2rem; }
.sw-entry.sw-hidden-realms .sw-video {
  position:relative;
  width:100%;
  aspect-ratio:16/9;
  overflow:hidden;
  border:1px solid var(--sw-c-border);
  border-radius:10px;
  background:#000;
}
.sw-entry.sw-hidden-realms .sw-video iframe {
  display:block;
  width:100%;
  height:100%;
  border:0;
}
.sw-entry.sw-hidden-realms .sw-video-note {
  margin:.65rem 0 0;
  color:var(--sw-c-muted) !important;
  font-size:.92rem;
}
@media (max-width:900px) {
  .sw-entry.sw-hidden-realms .sw-glance { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width:820px) {
  .sw-entry.sw-hidden-realms .sw-realms,
  .sw-entry.sw-hidden-realms .sw-links { grid-template-columns:1fr; }
}
@media (max-width:560px) {
  .sw-entry.sw-hidden-realms .sw-glance { grid-template-columns:1fr; }
}


/* --- WPWriter addition --- */

/* ============================================================
   SPIRALWORLDS RESPONSIVE CLICKABLE IMAGE MAP — 1.0.0
   Reusable percentage-positioned hotspots for maps/diagrams.
   ============================================================ */
.sw-image-map {
  position: relative;
  display: block;
  width: 100%;
  max-width: 100%;
  margin: 0;
}
.sw-image-map > img {
  display: block;
  width: 100% !important;
  height: auto !important;
  max-width: 100% !important;
}
.sw-image-map > .sw-image-map-link {
  position: absolute;
  z-index: 3;
  display: block;
  overflow: hidden;
  background: transparent;
  clip-path: ellipse(50% 50% at 50% 50%);
  cursor: pointer;
  text-decoration: none !important;
  -webkit-tap-highlight-color: rgba(230, 198, 142, .22);
}
.sw-image-map > .sw-image-map-link:hover,
.sw-image-map > .sw-image-map-link:focus-visible {
  background: rgba(230, 198, 142, .09);
  box-shadow:
    inset 0 0 0 2px rgba(255, 225, 169, .92),
    inset 0 0 24px rgba(230, 198, 142, .18);
  outline: 0 !important;
}
.sw-image-map > .sw-image-map-link--label {
  clip-path: inset(0 round 10px);
}
@media (hover: none) {
  .sw-image-map > .sw-image-map-link:hover {
    background: transparent;
    box-shadow: none;
  }
}
@media (prefers-reduced-motion: reduce) {
  .sw-image-map > .sw-image-map-link {
    transition: none !important;
  }
}
/* END SPIRALWORLDS RESPONSIVE CLICKABLE IMAGE MAP */


/* --- WPWriter addition --- */

/* SPIRALWORLDS MONSTER STAT SUMMARY — canonical global component */
html body .sw-entry.sw-entry .sw-stat-head {
  margin: 0 0 .9rem !important;
}
html body .sw-entry.sw-entry .sw-stat-name {
  margin: 0 0 .25rem !important;
}
html body .sw-entry.sw-entry .sw-type-line {
  color: var(--sw-c-muted) !important;
  line-height: 1.45 !important;
}
html body .sw-entry.sw-entry .sw-stat-strip {
  display: grid !important;
  grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
  gap: .7rem !important;
  margin: 1rem 0 1.2rem !important;
}
html body .sw-entry.sw-entry .sw-stat-strip > div {
  min-width: 0 !important;
  padding: .7rem .8rem !important;
  border: 1px solid var(--sw-c-border) !important;
  border-radius: 6px !important;
  background: var(--sw-c-raised) !important;
}
html body .sw-entry.sw-entry .sw-stat-strip > div > small {
  display: block !important;
  margin: 0 0 .2rem !important;
  color: var(--sw-c-muted) !important;
  font-size: .78em !important;
  font-weight: 600 !important;
  line-height: 1.2 !important;
}
html body .sw-entry.sw-entry .sw-stat-strip > div > strong {
  display: block !important;
  margin: 0 !important;
  color: var(--sw-c-heading) !important;
  font-size: 1.02em !important;
  line-height: 1.25 !important;
}
@media (max-width: 760px) {
  html body .sw-entry.sw-entry .sw-stat-strip {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
}
@media (max-width: 420px) {
  html body .sw-entry.sw-entry .sw-stat-strip {
    grid-template-columns: 1fr !important;
  }
}


/* --- WPWriter addition --- */

/* SpiralWorlds — Planes of Existence hub */
#sw-planes-hub,
#sw-planes-hub * {
  box-sizing: border-box;
}

#sw-planes-hub {
  --sw-black: #070706;
  --sw-black-soft: #0e0c09;
  --sw-panel: #12100c;
  --sw-panel-raised: #18140e;
  --sw-gold: #c9a052;
  --sw-gold-bright: #e1bd70;
  --sw-gold-dark: #765b2d;
  --sw-cream: #eee4ce;
  --sw-cream-muted: #cfc2a8;
  --sw-line: rgba(201, 160, 82, 0.38);
  --sw-shadow: rgba(0, 0, 0, 0.72);
  width: 100%;
  max-width: 1440px;
  margin: 0 auto;
  overflow-x: clip;
  color: var(--sw-cream) !important;
  background:
    radial-gradient(circle at 50% 0%, rgba(132, 98, 43, 0.13), transparent 31rem),
    var(--sw-black);
  border: 1px solid var(--sw-gold-dark);
  box-shadow: 0 22px 70px var(--sw-shadow);
  font-family: Georgia, "Times New Roman", serif;
  line-height: 1.68;
}

#sw-planes-hub a,
#sw-planes-hub a:visited {
  color: var(--sw-gold-bright) !important;
  text-decoration-color: rgba(225, 189, 112, 0.52) !important;
  text-underline-offset: 0.18em;
}

#sw-planes-hub a:hover,
#sw-planes-hub a:focus-visible {
  color: #fff1c9 !important;
  text-decoration-color: #fff1c9 !important;
}

#sw-planes-hub a:focus-visible {
  outline: 2px solid var(--sw-gold-bright);
  outline-offset: 4px;
}

#sw-planes-hub h1,
#sw-planes-hub h2,
#sw-planes-hub h3,
#sw-planes-hub h4,
#sw-planes-hub p,
#sw-planes-hub li,
#sw-planes-hub span,
#sw-planes-hub strong,
#sw-planes-hub small {
  color: inherit !important;
}

#sw-planes-hub h1,
#sw-planes-hub h2,
#sw-planes-hub h3,
#sw-planes-hub h4 {
  margin: 0;
  font-family: Georgia, "Times New Roman", serif;
  font-weight: 600;
  line-height: 1.12;
}

#sw-planes-hub p {
  margin: 0 0 1rem;
}

#sw-planes-hub img {
  display: block;
  max-width: 100%;
}

#sw-planes-hub figure {
  margin: 0;
}

#sw-planes-hub .swh-visually-hidden {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
  white-space: nowrap !important;
  border: 0 !important;
}

#sw-planes-hub .swh-shell {
  width: min(100%, 1280px);
  margin: 0 auto;
  padding: clamp(1.1rem, 2.8vw, 2.5rem);
}

#sw-planes-hub .swh-hero {
  position: relative;
  isolation: isolate;
  padding: clamp(1.2rem, 3.5vw, 3.2rem);
  background:
    linear-gradient(180deg, rgba(7, 7, 6, 0.26), rgba(7, 7, 6, 0.92)),
    var(--sw-black-soft);
  border-bottom: 1px solid var(--sw-line);
}

#sw-planes-hub .swh-hero-copy {
  width: min(100%, 930px);
  margin: 0 auto clamp(1.35rem, 2.5vw, 2.25rem);
  text-align: center;
}

#sw-planes-hub .swh-kicker {
  display: inline-flex;
  align-items: center;
  gap: 0.65rem;
  margin-bottom: 0.8rem;
  color: var(--sw-gold-bright) !important;
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0.18em;
  text-transform: uppercase;
}

#sw-planes-hub .swh-kicker::before,
#sw-planes-hub .swh-kicker::after {
  width: 2.6rem;
  height: 1px;
  content: "";
  background: linear-gradient(90deg, transparent, var(--sw-gold));
}

#sw-planes-hub .swh-kicker::after {
  background: linear-gradient(90deg, var(--sw-gold), transparent);
}

#sw-planes-hub h1 {
  color: var(--sw-gold-bright) !important;
  font-size: clamp(2.25rem, 6vw, 5rem);
  letter-spacing: 0.015em;
  text-shadow: 0 3px 20px rgba(0, 0, 0, 0.95);
}

#sw-planes-hub .swh-hero-lead {
  max-width: 820px;
  margin: 1rem auto 0;
  color: var(--sw-cream) !important;
  font-size: clamp(1.05rem, 2vw, 1.3rem);
}

#sw-planes-hub .swh-hero-note {
  max-width: 850px;
  margin: 0.7rem auto 0;
  color: var(--sw-cream-muted) !important;
  font-size: 0.98rem;
}

#sw-planes-hub .swh-hero-figure {
  position: relative;
  width: min(100%, 1120px);
  margin: 0 auto;
  overflow: hidden;
  background: #020202;
  border: 1px solid var(--sw-gold);
  box-shadow:
    0 0 0 5px rgba(201, 160, 82, 0.08),
    0 24px 65px rgba(0, 0, 0, 0.8);
}

#sw-planes-hub .swh-hero-figure::after {
  position: absolute;
  inset: 0;
  pointer-events: none;
  content: "";
  box-shadow: inset 0 0 70px rgba(0, 0, 0, 0.45);
}

#sw-planes-hub .swh-hero-figure img {
  width: 100%;
  height: auto;
}

#sw-planes-hub .swh-hero-actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 0.75rem;
  margin-top: 1.5rem;
}

#sw-planes-hub .swh-button,
#sw-planes-hub .swh-button:visited {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 2.8rem;
  padding: 0.7rem 1rem;
  color: #0a0805 !important;
  background: linear-gradient(180deg, #e4c277, #b98d3f);
  border: 1px solid #f0d18f;
  text-decoration: none !important;
  font-size: 0.88rem;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  box-shadow: 0 6px 20px rgba(0, 0, 0, 0.45);
}

#sw-planes-hub .swh-button:hover,
#sw-planes-hub .swh-button:focus-visible {
  color: #000 !important;
  background: #f0d18f;
  transform: translateY(-1px);
}

#sw-planes-hub .swh-button-secondary,
#sw-planes-hub .swh-button-secondary:visited {
  color: var(--sw-gold-bright) !important;
  background: rgba(5, 5, 4, 0.82);
  border-color: var(--sw-gold-dark);
}

#sw-planes-hub .swh-button-secondary:hover,
#sw-planes-hub .swh-button-secondary:focus-visible {
  color: #fff1c9 !important;
  background: rgba(44, 34, 18, 0.96);
}

#sw-planes-hub .swh-jump-nav {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 0.35rem 1.15rem;
  padding: 0.95rem clamp(1rem, 3vw, 2rem);
  background: #0a0907;
  border-bottom: 1px solid var(--sw-line);
  text-align: center;
}

#sw-planes-hub .swh-jump-nav a {
  display: inline-flex;
  min-height: 2.25rem;
  align-items: center;
  font-size: 0.82rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

#sw-planes-hub .swh-section {
  scroll-margin-top: 1.25rem;
  padding: clamp(2.35rem, 5vw, 4.7rem) 0;
  border-bottom: 1px solid rgba(201, 160, 82, 0.2);
}

#sw-planes-hub .swh-section:last-child {
  border-bottom: 0;
}

#sw-planes-hub .swh-section-heading {
  max-width: 900px;
  margin: 0 auto clamp(1.4rem, 3vw, 2.4rem);
  text-align: center;
}

#sw-planes-hub .swh-section-heading h2 {
  color: var(--sw-gold-bright) !important;
  font-size: clamp(1.7rem, 3.8vw, 2.8rem);
}

#sw-planes-hub .swh-section-heading h2::after {
  display: block;
  width: 6rem;
  height: 1px;
  margin: 0.85rem auto 0;
  content: "";
  background: linear-gradient(90deg, transparent, var(--sw-gold), transparent);
}

#sw-planes-hub .swh-section-heading p {
  margin: 0.95rem auto 0;
  color: var(--sw-cream-muted) !important;
}

#sw-planes-hub .swh-directory-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1rem;
}

#sw-planes-hub .swh-directory-group {
  padding: 1.15rem 1.2rem 1.25rem;
  background:
    linear-gradient(145deg, rgba(201, 160, 82, 0.06), transparent 42%),
    var(--sw-panel);
  border: 1px solid var(--sw-line);
  border-top: 3px solid var(--sw-gold-dark);
}

#sw-planes-hub .swh-directory-group h3 {
  color: var(--sw-gold-bright) !important;
  font-size: 1.18rem;
}

#sw-planes-hub .swh-directory-group > p {
  margin: 0.55rem 0 0.8rem;
  color: var(--sw-cream-muted) !important;
  font-size: 0.92rem;
}

#sw-planes-hub .swh-link-list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.42rem 1rem;
  margin: 0;
  padding: 0;
  list-style: none;
}

#sw-planes-hub .swh-link-list li {
  position: relative;
  min-width: 0;
  padding-left: 0.9rem;
}

#sw-planes-hub .swh-link-list li::before {
  position: absolute;
  top: 0.7em;
  left: 0;
  width: 0.3rem;
  height: 0.3rem;
  content: "";
  background: var(--sw-gold);
  transform: rotate(45deg);
}

#sw-planes-hub .swh-link-list a {
  display: inline-block;
  min-height: 1.8rem;
  overflow-wrap: anywhere;
  font-size: 0.94rem;
}

#sw-planes-hub .swh-collection-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1rem;
}

#sw-planes-hub .swh-collection-card {
  display: flex;
  min-height: 100%;
  flex-direction: column;
  overflow: hidden;
  background: var(--sw-panel);
  border: 1px solid var(--sw-line);
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.35);
}

#sw-planes-hub .swh-card-mark {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 5.5rem;
  background:
    radial-gradient(circle at 50% 48%, rgba(201, 160, 82, 0.13), transparent 3.9rem),
    #0a0907;
  border-bottom: 1px solid var(--sw-gold-dark);
}

#sw-planes-hub .swh-card-mark span {
  display: inline-flex;
  width: 3.25rem;
  height: 3.25rem;
  align-items: center;
  justify-content: center;
  color: var(--sw-gold-bright) !important;
  background: rgba(7, 7, 6, 0.8);
  border: 1px solid var(--sw-gold);
  border-radius: 50%;
  box-shadow:
    0 0 0 5px rgba(201, 160, 82, 0.06),
    inset 0 0 18px rgba(201, 160, 82, 0.08);
  font-size: 1.35rem;
  line-height: 1;
}

#sw-planes-hub .swh-card-body {
  display: flex;
  flex: 1;
  flex-direction: column;
  padding: 1.05rem 1.1rem 1.15rem;
}

#sw-planes-hub .swh-card-body h3 {
  color: var(--sw-gold-bright) !important;
  font-size: 1.24rem;
}

#sw-planes-hub .swh-card-body p {
  margin: 0.55rem 0 0.8rem;
  color: var(--sw-cream-muted) !important;
  font-size: 0.93rem;
}

#sw-planes-hub .swh-card-links {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem 0.75rem;
  margin-top: auto;
  padding-top: 0.2rem;
}

#sw-planes-hub .swh-card-links a {
  font-size: 0.88rem;
  font-weight: 700;
}

#sw-planes-hub .swh-travel-layout {
  display: grid;
  grid-template-columns: minmax(0, 1.35fr) minmax(17rem, 0.65fr);
  gap: 1.1rem;
  align-items: stretch;
}

#sw-planes-hub .swh-travel-panel,
#sw-planes-hub .swh-campaign-panel {
  padding: clamp(1.2rem, 3vw, 2rem);
  background: var(--sw-panel);
  border: 1px solid var(--sw-line);
}

#sw-planes-hub .swh-travel-panel h3,
#sw-planes-hub .swh-campaign-panel h3 {
  margin-bottom: 0.8rem;
  color: var(--sw-gold-bright) !important;
  font-size: 1.35rem;
}

#sw-planes-hub .swh-travel-list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.7rem;
  margin: 1rem 0 0;
  padding: 0;
  list-style: none;
}

#sw-planes-hub .swh-travel-list li {
  padding: 0.85rem;
  color: var(--sw-cream-muted) !important;
  background: rgba(255, 255, 255, 0.018);
  border-left: 2px solid var(--sw-gold-dark);
  font-size: 0.92rem;
}

#sw-planes-hub .swh-travel-list strong {
  display: block;
  margin-bottom: 0.18rem;
  color: var(--sw-cream) !important;
}

#sw-planes-hub .swh-campaign-panel {
  display: flex;
  flex-direction: column;
  justify-content: center;
  background:
    radial-gradient(circle at 100% 0%, rgba(201, 160, 82, 0.15), transparent 18rem),
    var(--sw-panel-raised);
  border-top: 3px solid var(--sw-gold);
}

#sw-planes-hub .swh-campaign-panel .swh-button {
  align-self: flex-start;
  margin-top: 0.25rem;
}

#sw-planes-hub .swh-video-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1rem;
}

#sw-planes-hub .swh-video-card {
  overflow: hidden;
  background: var(--sw-panel);
  border: 1px solid var(--sw-line);
}

#sw-planes-hub .swh-video-thumb {
  position: relative;
  display: block;
  aspect-ratio: 16 / 9;
  overflow: hidden;
  background: #000;
  border-bottom: 1px solid var(--sw-gold-dark);
}

#sw-planes-hub .swh-video-thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 180ms ease, filter 180ms ease;
}

#sw-planes-hub .swh-video-thumb::after {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 4rem;
  height: 2.8rem;
  content: "&#x25b6;";
  color: #0a0805;
  background: rgba(225, 189, 112, 0.92);
  border: 1px solid #f5d99c;
  box-shadow: 0 6px 25px rgba(0, 0, 0, 0.7);
  font: 700 1.1rem/2.8rem Arial, sans-serif;
  text-align: center;
  transform: translate(-50%, -50%);
}

#sw-planes-hub .swh-video-thumb:hover img,
#sw-planes-hub .swh-video-thumb:focus-visible img {
  filter: brightness(1.06);
  transform: scale(1.025);
}

#sw-planes-hub .swh-video-copy {
  padding: 1.05rem 1.15rem 1.2rem;
}

#sw-planes-hub .swh-external-label {
  display: inline-block;
  margin-bottom: 0.45rem;
  color: var(--sw-cream-muted) !important;
  font: 700 0.71rem/1.2 Arial, sans-serif;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

#sw-planes-hub .swh-video-copy h3 {
  font-size: 1.18rem;
}

#sw-planes-hub .swh-video-copy p {
  margin: 0.55rem 0 0.7rem;
  color: var(--sw-cream-muted) !important;
  font-size: 0.92rem;
}

#sw-planes-hub .swh-watch-link {
  font-size: 0.86rem;
  font-weight: 800;
  letter-spacing: 0.05em;
  text-transform: uppercase;
}

#sw-planes-hub .swh-context-layout {
  display: grid;
  grid-template-columns: minmax(0, 1.35fr) minmax(17rem, 0.65fr);
  gap: 1.1rem;
}

#sw-planes-hub .swh-context-copy,
#sw-planes-hub .swh-reference-panel {
  padding: clamp(1.2rem, 3vw, 2rem);
  background: var(--sw-panel);
  border: 1px solid var(--sw-line);
}

#sw-planes-hub .swh-context-copy p:last-child,
#sw-planes-hub .swh-reference-panel p:last-child {
  margin-bottom: 0;
}

#sw-planes-hub .swh-context-copy strong {
  color: var(--sw-gold-bright) !important;
}

#sw-planes-hub .swh-reference-panel h3 {
  margin-bottom: 0.8rem;
  color: var(--sw-gold-bright) !important;
  font-size: 1.28rem;
}

#sw-planes-hub .swh-reference-list {
  margin: 0;
  padding: 0;
  list-style: none;
}

#sw-planes-hub .swh-reference-list li {
  padding: 0.72rem 0;
  border-top: 1px solid rgba(201, 160, 82, 0.18);
}

#sw-planes-hub .swh-reference-list li:first-child {
  padding-top: 0;
  border-top: 0;
}

#sw-planes-hub .swh-reference-list a {
  font-weight: 700;
}

#sw-planes-hub .swh-reference-list small {
  display: block;
  margin-top: 0.15rem;
  color: var(--sw-cream-muted) !important;
  font-size: 0.82rem;
}

#sw-planes-hub .swh-related {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1rem;
}

#sw-planes-hub .swh-related a,
#sw-planes-hub .swh-related a:visited {
  display: block;
  padding: 1.1rem 1.2rem;
  color: var(--sw-cream) !important;
  background: var(--sw-panel);
  border: 1px solid var(--sw-line);
  text-decoration: none !important;
}

#sw-planes-hub .swh-related a:hover,
#sw-planes-hub .swh-related a:focus-visible {
  color: #fff1c9 !important;
  background: var(--sw-panel-raised);
  border-color: var(--sw-gold);
}

#sw-planes-hub .swh-related strong {
  display: block;
  margin-bottom: 0.25rem;
  color: var(--sw-gold-bright) !important;
  font-size: 1.1rem;
}

#sw-planes-hub .swh-related span {
  color: var(--sw-cream-muted) !important;
  font-size: 0.9rem;
}


/* Small square sigil navigation buttons */
#sw-planes-hub .swh-sigil-inline {
  display: flex !important;
  flex-wrap: wrap !important;
  align-items: center !important;
  gap: 0.5rem !important;
  margin: 0.75rem 0 0.9rem !important;
  padding: 0 !important;
}

#sw-planes-hub a.swh-sigil-btn,
#sw-planes-hub a.swh-sigil-btn:visited {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  flex: 0 0 44px !important;
  width: 44px !important;
  min-width: 44px !important;
  max-width: 44px !important;
  height: 44px !important;
  min-height: 44px !important;
  max-height: 44px !important;
  margin: 0 !important;
  padding: 3px !important;
  overflow: hidden !important;
  color: var(--sw-gold-bright) !important;
  background: #090806 !important;
  border: 1px solid rgba(201, 160, 82, 0.48) !important;
  border-radius: 0 !important;
  box-shadow: inset 0 0 0 2px rgba(201, 160, 82, 0.06) !important;
  text-decoration: none !important;
  line-height: 1 !important;
  vertical-align: top !important;
}

#sw-planes-hub a.swh-sigil-btn:hover,
#sw-planes-hub a.swh-sigil-btn:focus-visible {
  background: #18120b !important;
  border-color: var(--sw-gold-bright) !important;
  transform: translateY(-1px);
}

#sw-planes-hub .swh-sigil-btn-icon {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  flex: 0 0 36px !important;
  width: 36px !important;
  min-width: 36px !important;
  max-width: 36px !important;
  height: 36px !important;
  min-height: 36px !important;
  max-height: 36px !important;
  margin: 0 !important;
  padding: 0 !important;
  overflow: hidden !important;
  background: #050504 !important;
  border: 0 !important;
  border-radius: 0 !important;
}

#sw-planes-hub .swh-sigil-btn-icon img {
  display: block !important;
  width: 36px !important;
  min-width: 36px !important;
  max-width: 36px !important;
  height: 36px !important;
  min-height: 36px !important;
  max-height: 36px !important;
  margin: 0 !important;
  padding: 0 !important;
  object-fit: cover !important;
  object-position: center !important;
}


@media (max-width: 980px) {
  #sw-planes-hub .swh-collection-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  #sw-planes-hub .swh-sigil-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  #sw-planes-hub .swh-travel-layout,
  #sw-planes-hub .swh-context-layout {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 720px) {
  #sw-planes-hub .swh-directory-grid,
  #sw-planes-hub .swh-collection-grid,
  #sw-planes-hub .swh-video-grid,
  #sw-planes-hub .swh-related {
    grid-template-columns: 1fr;
  }

  #sw-planes-hub .swh-link-list,
  #sw-planes-hub .swh-travel-list {
    grid-template-columns: 1fr;
  }

  #sw-planes-hub .swh-hero {
    padding-right: 1rem;
    padding-left: 1rem;
  }

  #sw-planes-hub .swh-kicker::before,
  #sw-planes-hub .swh-kicker::after {
    width: 1.4rem;
  }

  #sw-planes-hub .swh-jump-nav {
    align-items: center;
    flex-direction: column;
    gap: 0.35rem;
  }
}

@media (prefers-reduced-motion: reduce) {
  #sw-planes-hub *,
  #sw-planes-hub *::before,
  #sw-planes-hub *::after {
    scroll-behavior: auto !important;
    transition: none !important;
  }
}



/* SpiralWorlds Magic Hub — complete scoped styles */
.sw-magic-hub,
.sw-magic-hub * {
  box-sizing: border-box;
}

.sw-magic-hub {
  --sw-bg: #090a10;
  --sw-bg-soft: #10121b;
  --sw-panel: #141722;
  --sw-panel-2: #191b28;
  --sw-ink: #f3efe5;
  --sw-muted: #c8c1b3;
  --sw-gold: #d9b45f;
  --sw-gold-bright: #f0d58e;
  --sw-gold-dark: #8e6b2d;
  --sw-violet: #8d72c7;
  --sw-blue: #75aee8;
  --sw-border: rgba(217, 180, 95, 0.30);
  --sw-shadow: 0 20px 54px rgba(0, 0, 0, 0.34);
  width: 100%;
  margin: 0 auto;
  color: var(--sw-ink);
  background:
    radial-gradient(circle at 16% 12%, rgba(91, 70, 151, 0.16), transparent 30rem),
    radial-gradient(circle at 86% 28%, rgba(37, 95, 143, 0.13), transparent 34rem),
    var(--sw-bg);
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  font-size: 17px;
  line-height: 1.72;
  overflow: hidden;
}

.sw-magic-hub a {
  color: var(--sw-gold-bright);
  text-decoration-thickness: 1px;
  text-underline-offset: 0.18em;
}

.sw-magic-hub a:hover {
  color: #ffffff;
}

.sw-magic-hub a:focus-visible,
.sw-magic-hub button:focus-visible,
.sw-magic-hub input:focus-visible,
.sw-magic-hub summary:focus-visible {
  outline: 3px solid var(--sw-gold-bright);
  outline-offset: 4px;
}

.sw-magic-hub img {
  display: block;
  width: 100%;
  height: auto;
}

.sw-magic-hub h1,
.sw-magic-hub h2,
.sw-magic-hub h3 {
  margin-top: 0;
  color: #fffaf0;
  font-family: Georgia, "Times New Roman", serif;
  text-wrap: balance;
}

.sw-magic-hub h1 {
  max-width: 1100px;
  margin-right: auto;
  margin-bottom: 0.42em;
  margin-left: auto;
  font-size: clamp(2.5rem, 6vw, 5.4rem);
  font-weight: 600;
  line-height: 0.99;
  letter-spacing: -0.035em;
}

.sw-magic-hub h2 {
  margin-bottom: 0.45em;
  font-size: clamp(2rem, 4vw, 3.35rem);
  font-weight: 600;
  line-height: 1.08;
  letter-spacing: -0.025em;
}

.sw-magic-hub h3 {
  margin-bottom: 0.42em;
  font-size: clamp(1.25rem, 2.2vw, 1.62rem);
  font-weight: 600;
  line-height: 1.22;
}

.sw-magic-hub p {
  margin-top: 0;
}

.sw-magic-hub .sw-shell {
  width: min(1180px, calc(100% - 36px));
  margin: 0 auto;
}

.sw-magic-hub .sw-eyebrow,
.sw-magic-hub .sw-kicker,
.sw-magic-hub .sw-section-number {
  color: var(--sw-gold);
  font-size: 0.78rem;
  font-weight: 800;
  letter-spacing: 0.16em;
  text-transform: uppercase;
}

.sw-magic-hub .sw-lead {
  max-width: 840px;
  margin-right: auto;
  margin-left: auto;
  color: #eee7da;
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(1.08rem, 2vw, 1.35rem);
  line-height: 1.66;
}

.sw-magic-hub .sw-muted {
  color: var(--sw-muted);
}

.sw-magic-hub .screen-reader-text {
  position: absolute !important;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

.sw-magic-hub .sw-skip-link {
  position: absolute;
  z-index: 1000;
  top: 10px;
  left: 10px;
  padding: 0.7rem 1rem;
  color: #101010;
  background: #fff4c8;
  border-radius: 5px;
  transform: translateY(-160%);
}

.sw-magic-hub .sw-skip-link:focus {
  transform: translateY(0);
}

/* Hero */
.sw-magic-hub .sw-hero {
  position: relative;
  min-height: min(790px, 82vh);
  display: grid;
  place-items: end center;
  isolation: isolate;
  border-bottom: 1px solid var(--sw-border);
}

.sw-magic-hub .sw-hero-media,
.sw-magic-hub .sw-hero-media::after {
  position: absolute;
  inset: 0;
}

.sw-magic-hub .sw-hero-media {
  z-index: -2;
  margin: 0;
  overflow: hidden;
  background: #090a10;
}

.sw-magic-hub .sw-hero-media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 46%;
}

.sw-magic-hub .sw-hero-media::after {
  content: "";
  z-index: 1;
  background:
    linear-gradient(180deg, rgba(5, 7, 12, 0.05) 0%, rgba(5, 7, 12, 0.18) 38%, rgba(5, 7, 12, 0.90) 88%, var(--sw-bg) 100%),
    linear-gradient(90deg, rgba(5, 7, 12, 0.28), transparent 28%, transparent 72%, rgba(5, 7, 12, 0.28));
}

.sw-magic-hub .sw-hero-content {
  width: min(1120px, calc(100% - 36px));
  padding: clamp(5rem, 10vw, 8rem) 0 clamp(2.8rem, 7vw, 5.8rem);
  text-align: center;
}

.sw-magic-hub .sw-hero-content .sw-eyebrow {
  margin-bottom: 1rem;
}

.sw-magic-hub .sw-hero-actions,
.sw-magic-hub .sw-route-nav {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 0.75rem;
}

.sw-magic-hub .sw-hero-actions {
  margin-top: 1.65rem;
}

.sw-magic-hub .sw-button {
  display: inline-flex;
  min-height: 48px;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  padding: 0.78rem 1.1rem;
  border: 1px solid rgba(240, 213, 142, 0.68);
  border-radius: 999px;
  color: #151109;
  background: linear-gradient(180deg, #f4dc9a, #c99d48);
  box-shadow: 0 8px 28px rgba(0, 0, 0, 0.24);
  font-weight: 800;
  text-decoration: none;
}

.sw-magic-hub .sw-button:hover {
  color: #090807;
  background: #ffe7aa;
  transform: translateY(-1px);
}

.sw-magic-hub .sw-button--ghost {
  color: var(--sw-ink);
  background: rgba(9, 10, 16, 0.62);
  backdrop-filter: blur(8px);
}

.sw-magic-hub .sw-button--ghost:hover {
  color: #fff;
  background: rgba(25, 27, 40, 0.90);
}

/* Route selector */
.sw-magic-hub .sw-route-panel {
  position: relative;
  z-index: 3;
  margin-top: -1px;
  padding: clamp(2.8rem, 6vw, 5rem) 0;
  background: linear-gradient(180deg, rgba(9, 10, 16, 0.96), rgba(16, 18, 27, 0.94));
}

.sw-magic-hub .sw-route-intro {
  max-width: 820px;
  margin: 0 auto 1.7rem;
  text-align: center;
}

.sw-magic-hub .sw-route-steps {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 0.75rem;
  margin: 1.8rem 0;
  padding: 0;
  list-style: none;
  counter-reset: route;
}

.sw-magic-hub .sw-route-steps li {
  counter-increment: route;
  min-height: 128px;
  padding: 1rem;
  border: 1px solid var(--sw-border);
  border-radius: 14px;
  background: rgba(20, 23, 34, 0.78);
}

.sw-magic-hub .sw-route-steps li::before {
  content: "0" counter(route);
  display: block;
  margin-bottom: 0.65rem;
  color: var(--sw-gold);
  font-family: Georgia, "Times New Roman", serif;
  font-size: 1.35rem;
  font-weight: 700;
}

.sw-magic-hub .sw-route-nav a {
  display: inline-flex;
  min-height: 42px;
  align-items: center;
  padding: 0.56rem 0.86rem;
  border: 1px solid rgba(141, 114, 199, 0.42);
  border-radius: 999px;
  color: #eee9fa;
  background: rgba(77, 57, 122, 0.22);
  font-weight: 700;
  text-decoration: none;
}

.sw-magic-hub .sw-route-nav a:hover {
  border-color: var(--sw-gold);
  background: rgba(141, 114, 199, 0.35);
}

/* Sections */
.sw-magic-hub .sw-section {
  padding: clamp(3.7rem, 8vw, 7rem) 0;
  border-top: 1px solid rgba(217, 180, 95, 0.13);
}

.sw-magic-hub .sw-section:nth-of-type(even) {
  background: rgba(255, 255, 255, 0.015);
}

.sw-magic-hub .sw-section-heading {
  max-width: 840px;
  margin-bottom: 2rem;
}

.sw-magic-hub .sw-section-heading--center {
  margin-right: auto;
  margin-left: auto;
  text-align: center;
}

.sw-magic-hub .sw-section-number {
  display: block;
  margin-bottom: 0.65rem;
}

.sw-magic-hub .sw-feature-image {
  margin: 0 0 clamp(1.8rem, 4vw, 3rem);
  overflow: hidden;
  border: 1px solid var(--sw-border);
  border-radius: 20px;
  background: #0c0d14;
  box-shadow: var(--sw-shadow);
}

.sw-magic-hub .sw-feature-image img {
  aspect-ratio: 3 / 2;
  object-fit: cover;
}

.sw-magic-hub .sw-card-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1rem;
}

.sw-magic-hub .sw-card-grid--two {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.sw-magic-hub .sw-card-grid--seven {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.sw-magic-hub .sw-card {
  position: relative;
  display: flex;
  min-height: 100%;
  flex-direction: column;
  padding: clamp(1.05rem, 2.2vw, 1.45rem);
  border: 1px solid var(--sw-border);
  border-radius: 15px;
  background:
    linear-gradient(145deg, rgba(25, 27, 40, 0.97), rgba(15, 17, 26, 0.97));
  box-shadow: 0 12px 38px rgba(0, 0, 0, 0.20);
}

.sw-magic-hub .sw-card::before {
  content: "";
  position: absolute;
  top: 0;
  right: 1rem;
  left: 1rem;
  height: 1px;
  background: linear-gradient(90deg, transparent, rgba(240, 213, 142, 0.70), transparent);
}

.sw-magic-hub .sw-card p {
  flex: 1;
  margin-bottom: 1rem;
  color: var(--sw-muted);
}

.sw-magic-hub .sw-card-link {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  font-weight: 800;
}

.sw-magic-hub .sw-card-link::after {
  content: "→";
}

.sw-magic-hub .sw-card-index {
  display: block;
  margin-bottom: 0.55rem;
  color: var(--sw-gold);
  font-family: Georgia, "Times New Roman", serif;
  font-size: 1.15rem;
  font-weight: 700;
}

/* Schools */
.sw-magic-hub .sw-school-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 0.8rem;
  margin: 0;
  padding: 0;
  list-style: none;
}

.sw-magic-hub .sw-school-grid li {
  min-height: 100%;
}

.sw-magic-hub .sw-school-grid a,
.sw-magic-hub .sw-school-grid .sw-school-universal {
  display: block;
  min-height: 100%;
  padding: 1rem;
  border: 1px solid rgba(117, 174, 232, 0.26);
  border-radius: 13px;
  color: var(--sw-ink);
  background: rgba(15, 18, 30, 0.78);
  text-decoration: none;
}

.sw-magic-hub .sw-school-grid a:hover {
  border-color: var(--sw-gold);
  background: rgba(25, 29, 46, 0.96);
  transform: translateY(-2px);
}

.sw-magic-hub .sw-school-name {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.65rem;
  margin-bottom: 0.45rem;
  color: #fff8e7;
  font-family: Georgia, "Times New Roman", serif;
  font-size: 1.15rem;
  font-weight: 700;
}

.sw-magic-hub .sw-school-symbol {
  color: var(--sw-gold);
  font-size: 1.3rem;
}

.sw-magic-hub .sw-school-copy {
  display: block;
  color: var(--sw-muted);
  font-size: 0.94rem;
  line-height: 1.55;
}

/* Link chips */
.sw-magic-hub .sw-chip-list,
.sw-magic-hub .sw-directory-list {
  display: flex;
  flex-wrap: wrap;
  gap: 0.62rem;
  margin: 0;
  padding: 0;
  list-style: none;
}

.sw-magic-hub .sw-chip-list a,
.sw-magic-hub .sw-directory-list a {
  display: inline-flex;
  min-height: 42px;
  align-items: center;
  padding: 0.55rem 0.78rem;
  border: 1px solid rgba(217, 180, 95, 0.27);
  border-radius: 9px;
  color: #f2ead8;
  background: rgba(20, 23, 34, 0.82);
  font-size: 0.95rem;
  font-weight: 700;
  text-decoration: none;
}

.sw-magic-hub .sw-chip-list a:hover,
.sw-magic-hub .sw-directory-list a:hover {
  border-color: var(--sw-gold-bright);
  color: #fff;
  background: rgba(43, 37, 26, 0.96);
}

.sw-magic-hub .sw-directory-group {
  margin-top: 1.2rem;
  padding: 1.2rem;
  border: 1px solid var(--sw-border);
  border-radius: 15px;
  background: rgba(17, 19, 29, 0.83);
}

.sw-magic-hub .sw-directory-group h3 {
  margin-bottom: 1rem;
}

.sw-magic-hub .sw-directory-list--spaced,
.sw-magic-hub .sw-card-grid--spaced {
  margin-top: 1rem;
}

.sw-magic-hub .sw-directory-note {
  margin-bottom: 0;
  padding: 0.9rem 1rem;
  border-left: 3px solid var(--sw-gold);
  color: var(--sw-muted);
  background: rgba(217, 180, 95, 0.06);
}

/* Magic-item categories */
.sw-magic-hub .sw-item-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0.85rem;
  margin: 0;
  padding: 0;
  list-style: none;
}

.sw-magic-hub .sw-item-grid li {
  min-height: 100%;
}

.sw-magic-hub .sw-item-card {
  display: flex;
  min-height: 100%;
  flex-direction: column;
  gap: 0.42rem;
  padding: 1rem;
  border: 1px solid rgba(217, 180, 95, 0.28);
  border-radius: 13px;
  color: var(--sw-ink);
  background: rgba(15, 18, 28, 0.86);
  text-decoration: none;
}

.sw-magic-hub .sw-item-card:hover {
  border-color: var(--sw-gold-bright);
  color: #fff;
  background: rgba(37, 31, 21, 0.96);
  transform: translateY(-2px);
}

.sw-magic-hub .sw-item-card strong {
  color: #fff8e7;
  font-family: Georgia, "Times New Roman", serif;
  font-size: 1.08rem;
  line-height: 1.25;
}

.sw-magic-hub .sw-item-card span {
  color: var(--sw-muted);
  font-size: 0.92rem;
  line-height: 1.5;
}

/* Linked video cards — thumbnails only, no embedded iframes */
.sw-magic-hub .sw-video-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1rem;
}

.sw-magic-hub .sw-video-card {
  display: flex;
  min-height: 100%;
  flex-direction: column;
  overflow: hidden;
  border: 1px solid var(--sw-border);
  border-radius: 15px;
  color: var(--sw-ink);
  background: linear-gradient(145deg, rgba(25, 27, 40, 0.98), rgba(15, 17, 26, 0.98));
  text-decoration: none;
  box-shadow: 0 12px 38px rgba(0, 0, 0, 0.20);
}

.sw-magic-hub .sw-video-card:hover {
  border-color: var(--sw-gold-bright);
  color: #fff;
  transform: translateY(-2px);
}

.sw-magic-hub .sw-video-thumb {
  position: relative;
  aspect-ratio: 16 / 9;
  overflow: hidden;
  background: #07080d;
}

.sw-magic-hub .sw-video-thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.sw-magic-hub .sw-video-thumb::after {
  content: "&#x25b6;";
  position: absolute;
  top: 50%;
  left: 50%;
  display: grid;
  width: 58px;
  height: 58px;
  place-items: center;
  padding-left: 3px;
  border: 1px solid rgba(255, 255, 255, 0.72);
  border-radius: 50%;
  color: #16110a;
  background: rgba(240, 213, 142, 0.92);
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.38);
  transform: translate(-50%, -50%);
}

.sw-magic-hub .sw-video-body {
  display: flex;
  flex: 1;
  flex-direction: column;
  padding: 1rem;
}

.sw-magic-hub .sw-video-body h3 {
  margin-bottom: 0.48rem;
  font-size: 1.18rem;
}

.sw-magic-hub .sw-video-body p {
  flex: 1;
  margin-bottom: 0.8rem;
  color: var(--sw-muted);
  font-size: 0.93rem;
  line-height: 1.55;
}

.sw-magic-hub .sw-video-source {
  color: var(--sw-gold-bright);
  font-size: 0.82rem;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

/* Search */
.sw-magic-hub .sw-search-panel {
  padding: clamp(3rem, 7vw, 5.5rem) 0;
  border-top: 1px solid var(--sw-border);
  background:
    radial-gradient(circle at 50% 0%, rgba(141, 114, 199, 0.14), transparent 30rem),
    #0d0f17;
}

.sw-magic-hub .sw-search-box {
  max-width: 850px;
  margin: 0 auto;
  padding: clamp(1.35rem, 3vw, 2.2rem);
  border: 1px solid var(--sw-border);
  border-radius: 18px;
  background: rgba(20, 23, 34, 0.95);
  text-align: center;
  box-shadow: var(--sw-shadow);
}

.sw-magic-hub .sw-search-form {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 0.7rem;
  margin-top: 1.2rem;
}

.sw-magic-hub .sw-search-form input {
  width: 100%;
  min-height: 50px;
  padding: 0.78rem 0.95rem;
  border: 1px solid rgba(240, 213, 142, 0.42);
  border-radius: 10px;
  color: #fff;
  background: #090a10;
  font: inherit;
}

.sw-magic-hub .sw-search-form button {
  min-height: 50px;
  padding: 0.75rem 1.15rem;
  border: 1px solid #f0d58e;
  border-radius: 10px;
  color: #151109;
  background: linear-gradient(180deg, #f4dc9a, #c99d48);
  font: inherit;
  font-weight: 800;
  cursor: pointer;
}

.sw-magic-hub .sw-source-note {
  margin-top: 1.2rem;
  color: var(--sw-muted);
  font-size: 0.92rem;
}

@media (max-width: 1020px) {
  .sw-magic-hub .sw-route-steps {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .sw-magic-hub .sw-card-grid,
  .sw-magic-hub .sw-card-grid--seven,
  .sw-magic-hub .sw-item-grid,
  .sw-magic-hub .sw-video-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .sw-magic-hub .sw-school-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 680px) {
  .sw-magic-hub {
    font-size: 16px;
  }

  .sw-magic-hub .sw-shell,
  .sw-magic-hub .sw-hero-content {
    width: min(100% - 24px, 1180px);
  }

  .sw-magic-hub .sw-hero {
    min-height: 700px;
  }

  .sw-magic-hub .sw-hero-media img {
    object-position: center center;
  }

  .sw-magic-hub .sw-route-steps,
  .sw-magic-hub .sw-card-grid,
  .sw-magic-hub .sw-card-grid--two,
  .sw-magic-hub .sw-card-grid--seven,
  .sw-magic-hub .sw-school-grid,
  .sw-magic-hub .sw-item-grid,
  .sw-magic-hub .sw-video-grid,
  .sw-magic-hub .sw-search-form {
    grid-template-columns: 1fr;
  }

  .sw-magic-hub .sw-route-steps li {
    min-height: auto;
  }

  .sw-magic-hub .sw-button {
    width: 100%;
  }
}

@media (prefers-reduced-motion: no-preference) {
  .sw-magic-hub a,
  .sw-magic-hub .sw-button,
  .sw-magic-hub .sw-school-grid a,
  .sw-magic-hub .sw-item-card,
  .sw-magic-hub .sw-video-card {
    transition: color 180ms ease, background-color 180ms ease, border-color 180ms ease, transform 180ms ease;
  }
}



.swg {
    --swg-black: #040709;
    --swg-black-soft: #080d11;
    --swg-panel: #0d1419;
    --swg-panel-raised: #111a20;
    --swg-gold: #d6a52d;
    --swg-gold-light: #f0cf76;
    --swg-cream: #f4ecdd;
    --swg-text: #f7f3eb;
    --swg-muted: #c5bcaf;
    --swg-line: rgba(214, 165, 45, 0.58);
    --swg-line-soft: rgba(214, 165, 45, 0.18);
    --swg-serif: "Iowan Old Style", "Palatino Linotype", "Book Antiqua", Palatino, Georgia, serif;
    --swg-sans: "Segoe UI", Tahoma, Arial, sans-serif;
    --swg-site-header-offset: 73px;
    --swg-map-image: url("https://spiralworlds.com/wp-content/uploads/2026/07/spiralworlds-home-geography.webp");
    position: relative;
    overflow: clip;
    color: var(--swg-text);
    background: var(--swg-black);
    font-family: var(--swg-serif);
    font-size: 16px;
    line-height: 1.55;
}

.swg *,
.swg *::before,
.swg *::after { box-sizing: border-box; }

.swg h1,
.swg h2,
.swg h3,
.swg p { margin-top: 0; }

.swg h1,
.swg h2,
.swg h3,
.swg p,
.swg span,
.swg a,
.swg li {
    overflow-wrap: normal !important;
    word-break: normal !important;
    hyphens: none !important;
}

.swg a { color: inherit; }

.swg a:focus-visible,
.swg input:focus-visible,
.swg button:focus-visible {
    outline: 3px solid #fff;
    outline-offset: 3px;
    box-shadow: 0 0 0 6px #8b650e;
}

.swg [id] { scroll-margin-top: 102px; }

.swg-shell {
    width: min(1420px, calc(100% - 38px));
    margin-inline: auto;
}

.swg-kicker {
    margin-bottom: 10px;
    color: var(--swg-gold-light);
    font-family: var(--swg-sans);
    font-size: 0.76rem;
    font-weight: 800;
    letter-spacing: 0.12em;
    line-height: 1.3;
    text-transform: uppercase;
}

.swg-hero {
    position: relative;
    isolation: isolate;
    overflow: hidden;
    min-height: clamp(610px, 68vw, 790px);
    border-bottom: 1px solid var(--swg-line-soft);
    background:
        linear-gradient(90deg, rgba(2, 5, 7, 0.72) 0%, rgba(3, 6, 8, 0.48) 29%, rgba(4, 8, 11, 0.16) 52%, rgba(4, 8, 11, 0.02) 82%, rgba(4, 8, 11, 0) 100%),
        linear-gradient(180deg, rgba(255, 238, 191, 0.18) 0%, rgba(255, 238, 191, 0.10) 58%, rgba(255, 238, 191, 0.04) 100%),
        linear-gradient(180deg, rgba(4, 7, 9, 0) 55%, rgba(4, 7, 9, 0.24) 100%),
        var(--swg-map-image) 60% center / cover no-repeat,
        linear-gradient(135deg, #1a252c, #080d10 62%, #030506);
}

.swg-hero::after {
    content: "";
    position: absolute;
    z-index: -1;
    inset: 0;
    background:
        radial-gradient(circle at 74% 34%, rgba(239, 202, 105, 0.17), transparent 23%),
        repeating-linear-gradient(90deg, transparent 0 139px, rgba(214, 165, 45, 0.035) 140px);
    pointer-events: none;
}

.swg-hero-inner {
    display: flex;
    min-height: inherit;
    align-items: center;
    padding-top: clamp(76px, 9vw, 120px);
    padding-bottom: clamp(132px, 15vw, 180px);
}

.swg-hero-copy { width: min(690px, 58%); }

.swg-hero h1 {
    max-width: 760px;
    margin-bottom: 20px;
    color: #fff;
    font-size: clamp(3.5rem, 7vw, 6.65rem);
    font-weight: 700;
    letter-spacing: -0.052em;
    line-height: 0.91;
    text-shadow: 0 5px 30px rgba(0, 0, 0, 0.74);
}

.swg-hero-lede {
    max-width: 640px;
    margin-bottom: 28px;
    color: #f1eadf;
    font-size: clamp(1.05rem, 1.55vw, 1.29rem);
    line-height: 1.54;
    text-shadow: 0 2px 18px rgba(0, 0, 0, 0.84);
}

.swg-button-row {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
}

.swg-button {
    display: inline-flex;
    min-height: 49px;
    align-items: center;
    justify-content: center;
    padding: 12px 22px;
    border: 1px solid var(--swg-gold);
    border-radius: 3px;
    font-family: var(--swg-sans);
    font-size: 0.78rem;
    font-weight: 800;
    letter-spacing: 0.055em;
    line-height: 1.2;
    text-decoration: none;
    text-transform: uppercase;
    transition: transform 150ms ease, border-color 150ms ease, background 150ms ease;
}

.swg-button:hover,
.swg-button:focus-visible { transform: translateY(-2px); }

.swg-button-primary {
    color: #171006;
    background: linear-gradient(180deg, #f0ce73, #d4a334);
}

.swg-button-secondary {
    color: var(--swg-cream);
    background: rgba(4, 7, 9, 0.76);
}

.swg-hero-facts {
    position: absolute;
    right: 0;
    bottom: 0;
    left: 0;
    border-top: 1px solid var(--swg-line-soft);
    background: rgba(3, 6, 8, 0.88);
    backdrop-filter: blur(8px);
}

.swg-fact-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
}

.swg-fact {
    min-height: 92px;
    padding: 18px 21px;
    border-right: 1px solid var(--swg-line-soft);
}

.swg-fact:last-child { border-right: 0; }

.swg-fact strong {
    display: block;
    margin-bottom: 4px;
    color: var(--swg-gold-light);
    font-family: var(--swg-sans);
    font-size: 0.74rem;
    font-weight: 800;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.swg-fact span {
    display: block;
    color: #eee6da;
    font-size: 0.91rem;
    line-height: 1.34;
}

.swg-jump-nav {
    position: sticky;
    z-index: 40;
    top: var(--swg-site-header-offset);
    border-bottom: 1px solid var(--swg-line-soft);
    background: rgba(4, 7, 9, 0.97);
    backdrop-filter: blur(10px);
}

.swg-jump-nav .swg-shell {
    display: flex;
    overflow-x: auto;
    gap: 6px;
    align-items: center;
    padding-top: 9px;
    padding-bottom: 9px;
    scrollbar-width: thin;
}

.swg-jump-nav a {
    flex: 0 0 auto;
    padding: 8px 12px;
    border: 1px solid transparent;
    border-radius: 2px;
    color: #e4dccf;
    font-family: var(--swg-sans);
    font-size: 0.72rem;
    font-weight: 800;
    letter-spacing: 0.055em;
    text-decoration: none;
    text-transform: uppercase;
}

.swg-jump-nav a:hover,
.swg-jump-nav a:focus-visible {
    border-color: var(--swg-line);
    color: var(--swg-gold-light);
    background: rgba(214, 165, 45, 0.08);
}

.swg-section { padding: clamp(68px, 8vw, 112px) 0; }

.swg-section-dark {
    background:
        radial-gradient(circle at 50% 0%, rgba(214, 165, 45, 0.065), transparent 33%),
        var(--swg-black);
}

.swg-section-raised {
    border-top: 1px solid var(--swg-line-soft);
    border-bottom: 1px solid var(--swg-line-soft);
    background: var(--swg-black-soft);
}

.swg-heading-row {
    display: grid;
    grid-template-columns: minmax(0, 0.75fr) minmax(320px, 1.25fr);
    gap: clamp(30px, 6vw, 86px);
    align-items: end;
    margin-bottom: 34px;
}

.swg-heading-row h2 {
    margin-bottom: 0;
    color: #fff;
    font-size: clamp(2.25rem, 4.5vw, 4.2rem);
    letter-spacing: -0.04em;
    line-height: 0.98;
}

.swg-heading-row > p {
    max-width: 760px;
    margin-bottom: 2px;
    color: var(--swg-muted);
    font-size: 1.03rem;
    line-height: 1.62;
}

.swg-europe-panel {
    display: grid;
    grid-template-columns: minmax(300px, 0.72fr) minmax(0, 1.28fr);
    gap: clamp(30px, 5vw, 76px);
    padding: clamp(30px, 5vw, 66px);
    border: 1px solid var(--swg-line);
    border-radius: 5px;
    background:
        radial-gradient(circle at 0 0, rgba(214, 165, 45, 0.1), transparent 34%),
        var(--swg-panel);
    box-shadow: 0 26px 70px rgba(0, 0, 0, 0.32);
}

.swg-europe-intro {
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.swg-europe-intro h3 {
    margin-bottom: 15px;
    color: #fff;
    font-size: clamp(2.5rem, 4.3vw, 4.4rem);
    letter-spacing: -0.045em;
    line-height: 0.96;
}

.swg-europe-intro > p:not(.swg-kicker) {
    margin-bottom: 24px;
    color: #ddd5ca;
    font-size: 1rem;
    line-height: 1.62;
}

.swg-route-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 9px;
}

.swg-route {
    display: flex;
    min-height: 66px;
    gap: 13px;
    align-items: center;
    justify-content: space-between;
    padding: 13px 15px;
    border: 1px solid var(--swg-line-soft);
    border-radius: 3px;
    color: #eee7dc;
    background: rgba(255, 255, 255, 0.018);
    font-family: var(--swg-sans);
    font-size: 0.77rem;
    font-weight: 800;
    letter-spacing: 0.025em;
    line-height: 1.28;
    text-decoration: none;
    transition: transform 150ms ease, border-color 150ms ease, background 150ms ease;
}

.swg-route:hover,
.swg-route:focus-visible {
    border-color: var(--swg-gold-light);
    background: rgba(214, 165, 45, 0.08);
    transform: translateY(-2px);
}

.swg-route span:last-child {
    flex: 0 0 auto;
    color: var(--swg-gold-light);
    font-size: 1rem;
}

.swg-card-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 13px;
}

.swg-card {
    position: relative;
    display: flex;
    min-height: 285px;
    flex-direction: column;
    justify-content: space-between;
    overflow: hidden;
    padding: 24px;
    border: 1px solid var(--swg-line-soft);
    border-radius: 4px;
    background:
        linear-gradient(155deg, rgba(214, 165, 45, 0.055), transparent 44%),
        var(--swg-panel);
    text-decoration: none;
    transition: transform 160ms ease, border-color 160ms ease, background 160ms ease, box-shadow 160ms ease;
}

.swg-card::before {
    content: "";
    position: absolute;
    top: -42px;
    right: -42px;
    width: 132px;
    height: 132px;
    border: 1px solid rgba(214, 165, 45, 0.11);
    border-radius: 50%;
    box-shadow: 0 0 0 25px rgba(214, 165, 45, 0.025), 0 0 0 50px rgba(214, 165, 45, 0.018);
    pointer-events: none;
}

.swg-card:hover,
.swg-card:focus-visible {
    border-color: var(--swg-gold-light);
    background: var(--swg-panel-raised);
    box-shadow: 0 18px 38px rgba(0, 0, 0, 0.34);
    transform: translateY(-4px);
}

.swg-card-number {
    display: block;
    margin-bottom: 34px;
    color: var(--swg-gold-light);
    font-family: var(--swg-sans);
    font-size: 0.7rem;
    font-weight: 800;
    letter-spacing: 0.1em;
    text-transform: uppercase;
}

.swg-card h3 {
    margin-bottom: 11px;
    color: #fff;
    font-size: clamp(1.48rem, 2.15vw, 2.05rem);
    letter-spacing: -0.03em;
    line-height: 1.03;
}

.swg-card p {
    margin-bottom: 0;
    color: var(--swg-muted);
    font-size: 0.92rem;
    line-height: 1.52;
}

.swg-card-footer {
    display: flex;
    gap: 12px;
    align-items: center;
    justify-content: space-between;
    margin-top: 25px;
    padding-top: 16px;
    border-top: 1px solid var(--swg-line-soft);
    color: var(--swg-gold-light);
    font-family: var(--swg-sans);
    font-size: 0.72rem;
    font-weight: 800;
    letter-spacing: 0.05em;
    text-transform: uppercase;
}

.swg-card-arrow {
    display: grid;
    width: 30px;
    height: 30px;
    flex: 0 0 30px;
    place-items: center;
    border: 1px solid var(--swg-gold);
    border-radius: 50%;
    font-size: 0.95rem;
}

.swg-wide-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 13px;
}

.swg-wide-card {
    position: relative;
    overflow: hidden;
    min-height: 290px;
    padding: 29px;
    border: 1px solid var(--swg-line-soft);
    border-radius: 4px;
    background: var(--swg-panel);
}

.swg-wide-card h3 {
    margin-bottom: 11px;
    color: #fff;
    font-size: clamp(1.7rem, 2.4vw, 2.35rem);
    letter-spacing: -0.03em;
    line-height: 1.03;
}

.swg-wide-card > p:not(.swg-kicker) {
    margin-bottom: 22px;
    color: var(--swg-muted);
    font-size: 0.95rem;
    line-height: 1.58;
}

.swg-link-stack {
    display: flex;
    flex-wrap: wrap;
    gap: 11px 18px;
}

.swg-text-link {
    display: inline-flex;
    gap: 9px;
    align-items: center;
    color: var(--swg-gold-light);
    font-family: var(--swg-sans);
    font-size: 0.75rem;
    font-weight: 800;
    letter-spacing: 0.045em;
    text-decoration: none;
    text-transform: uppercase;
}

.swg-text-link:hover,
.swg-text-link:focus-visible { color: #fff1b8; }

.swg-connection-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 13px;
}

.swg-connection {
    min-height: 245px;
    padding: 28px;
    border-left: 3px solid var(--swg-gold);
    background: rgba(255, 255, 255, 0.025);
}

.swg-connection h3 {
    margin-bottom: 10px;
    color: #fff;
    font-size: 1.45rem;
    line-height: 1.08;
}

.swg-connection p {
    margin-bottom: 14px;
    color: var(--swg-muted);
    font-size: 0.94rem;
    line-height: 1.55;
}

.swg-video-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 18px;
}

.swg-video-card {
    display: flex;
    overflow: hidden;
    min-height: 100%;
    flex-direction: column;
    border: 1px solid var(--swg-line-soft);
    border-radius: 4px;
    color: inherit;
    background: #0a1014;
    text-decoration: none;
    transition: transform 160ms ease, border-color 160ms ease, background 160ms ease;
}

.swg-video-card:hover,
.swg-video-card:focus-visible {
    transform: translateY(-3px);
    border-color: var(--swg-line);
    background: #10181e;
}

.swg-video-thumb {
    position: relative;
    overflow: hidden;
    aspect-ratio: 16 / 9;
    border-bottom: 1px solid var(--swg-line-soft);
    background: linear-gradient(135deg, #1b252b, #070b0e);
}

.swg-video-thumb img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    filter: saturate(0.82) contrast(1.04) brightness(0.82);
    transition: transform 220ms ease, filter 220ms ease;
}

.swg-video-card:hover .swg-video-thumb img,
.swg-video-card:focus-visible .swg-video-thumb img {
    transform: scale(1.025);
    filter: saturate(0.92) contrast(1.04) brightness(0.9);
}

.swg-video-play {
    position: absolute;
    top: 50%;
    left: 50%;
    display: grid;
    width: 52px;
    height: 52px;
    place-items: center;
    transform: translate(-50%, -50%);
    border: 1px solid rgba(240, 207, 118, 0.82);
    border-radius: 50%;
    color: #191006;
    background: rgba(240, 207, 118, 0.92);
    font-family: var(--swg-sans);
    font-size: 1.05rem;
    line-height: 1;
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.45);
}

.swg-video-copy {
    display: flex;
    flex: 1;
    flex-direction: column;
    padding: 22px;
}

.swg-video-copy h3 {
    margin-bottom: 9px;
    color: #fff;
    font-size: 1.32rem;
    line-height: 1.15;
}

.swg-video-copy p {
    margin-bottom: 18px;
    color: var(--swg-muted);
    font-size: 0.92rem;
    line-height: 1.54;
}

.swg-video-meta {
    display: flex;
    gap: 10px;
    align-items: center;
    justify-content: space-between;
    margin-top: auto;
    color: var(--swg-gold-light);
    font-family: var(--swg-sans);
    font-size: 0.72rem;
    font-weight: 800;
    letter-spacing: 0.055em;
    text-transform: uppercase;
}

.swg-search {
    border-top: 1px solid var(--swg-line-soft);
    background:
        radial-gradient(circle at 75% 50%, rgba(214, 165, 45, 0.09), transparent 27%),
        #060a0d;
}

.swg-search-box {
    display: grid;
    grid-template-columns: minmax(0, 0.85fr) minmax(380px, 1.15fr);
    gap: clamp(30px, 6vw, 85px);
    align-items: center;
    padding-top: clamp(58px, 7vw, 92px);
    padding-bottom: clamp(58px, 7vw, 92px);
}

.swg-search h2 {
    margin-bottom: 9px;
    color: #fff;
    font-size: clamp(2rem, 3.7vw, 3.5rem);
    letter-spacing: -0.04em;
    line-height: 1;
}

.swg-search p {
    margin-bottom: 0;
    color: var(--swg-muted);
    font-size: 0.98rem;
}

.swg-search-form {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 9px;
}

.swg-search-form input {
    min-width: 0;
    min-height: 52px;
    padding: 12px 15px;
    border: 1px solid var(--swg-line);
    border-radius: 3px;
    color: #fff;
    background: #0b1115;
    font: inherit;
}

.swg-search-form input::placeholder { color: #938a7f; }

.swg-search-form button {
    min-height: 52px;
    padding: 12px 22px;
    border: 1px solid var(--swg-gold);
    border-radius: 3px;
    color: #171006;
    background: linear-gradient(180deg, #f0ce73, #d4a334);
    font-family: var(--swg-sans);
    font-size: 0.76rem;
    font-weight: 800;
    letter-spacing: 0.055em;
    text-transform: uppercase;
    cursor: pointer;
}

.swg .screen-reader-text {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    padding: 0 !important;
    margin: -1px !important;
    overflow: hidden !important;
    clip: rect(0, 0, 0, 0) !important;
    white-space: nowrap !important;
    border: 0 !important;
}

@media (max-width: 1160px) {
    .swg-hero-copy { width: min(660px, 65%); }
    .swg-card-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .swg-connection-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .swg-video-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}


@media (max-width: 900px) {
    .swg { --swg-site-header-offset: 65px; }
    .swg-shell { width: min(100% - 30px, 1420px); }
    .swg-hero {
        min-height: 790px;
        background:
            linear-gradient(180deg, rgba(255, 238, 191, 0.10) 0%, rgba(3, 6, 8, 0.12) 34%, rgba(3, 6, 8, 0.82) 69%, #030608 100%),
            var(--swg-map-image) 59% 11% / auto 56% no-repeat,
            linear-gradient(135deg, #182028, #070b0e 62%, #030506);
    }
    .swg-hero-inner {
        align-items: end;
        padding-top: 300px;
        padding-bottom: 200px;
    }
    .swg-hero-copy { width: 100%; }
    .swg-hero h1 { max-width: 760px; font-size: clamp(3.2rem, 10vw, 5.7rem); }
    .swg-fact-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .swg-fact:nth-child(2) { border-right: 0; }
    .swg-fact:nth-child(-n+2) { border-bottom: 1px solid var(--swg-line-soft); }
    .swg-heading-row,
    .swg-search-box,
    .swg-europe-panel { grid-template-columns: 1fr; }
    .swg-card-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .swg-wide-grid { grid-template-columns: 1fr; }
    .swg-video-grid { grid-template-columns: 1fr; }
}


@media (max-width: 580px) {
    .swg-shell { width: min(100% - 24px, 1420px); }
    .swg-hero { min-height: 785px; background-size: auto 45%, cover; background-position: 58% 7%, center; }
    .swg-hero-inner { padding-top: 265px; padding-bottom: 215px; }
    .swg-hero h1 { font-size: clamp(3rem, 17vw, 4.55rem); }
    .swg-hero-lede { font-size: 1rem; }
    .swg-button-row,
    .swg-button { width: 100%; }
    .swg-fact { min-height: 108px; padding: 15px; }
    .swg-fact span { font-size: 0.83rem; }
    .swg-jump-nav .swg-shell { width: 100%; padding-inline: 12px; }
    .swg-section { padding: 62px 0; }
    .swg-heading-row { margin-bottom: 26px; }
    .swg-europe-panel { padding: 27px 21px; }
    .swg-route-grid,
    .swg-card-grid,
    .swg-connection-grid { grid-template-columns: 1fr; }
    .swg-card { min-height: 240px; }
    .swg-connection { min-height: auto; }
    .swg-search-form { grid-template-columns: 1fr; }
    .swg-search-form button { width: 100%; }
}

@media (prefers-reduced-motion: reduce) {
    .swg *,
    .swg *::before,
    .swg *::after {
        scroll-behavior: auto !important;
        transition-duration: 0.01ms !important;
    }
}


/* --- WPWriter addition --- */

/* SPIRALWORLDS MONSTER TABS — supported-edition count */
html body .sw-entry.sw-monster-entry .sw-monster-tabs:has(> .sw-tab-labels > label:nth-child(2):last-child) > .sw-tab-labels {
  grid-template-columns: repeat(2,minmax(0,1fr)) !important;
}
html body .sw-entry.sw-monster-entry .sw-monster-tabs:has(> .sw-tab-labels > label:nth-child(3):last-child) > .sw-tab-labels {
  grid-template-columns: repeat(3,minmax(0,1fr)) !important;
}
html body .sw-entry.sw-monster-entry .sw-monster-tabs:has(> .sw-tab-labels > label:nth-child(4):last-child) > .sw-tab-labels {
  grid-template-columns: repeat(4,minmax(0,1fr)) !important;
}
@media (max-width:780px) {
  html body .sw-entry.sw-monster-entry .sw-monster-tabs > .sw-tab-labels {
    grid-template-columns: repeat(2,minmax(0,1fr)) !important;
  }
}
@media (max-width:520px) {
  html body .sw-entry.sw-monster-entry .sw-monster-tabs > .sw-tab-labels {
    grid-template-columns: 1fr !important;
  }
}


/* --- WPWriter addition --- */

  .sw-pharaoh{
    --ink:#eef1f5;--muted:#b8bec8;--gold:#d8b15a;--gold2:#f0d58c;
    --night:#070b12;--panel:#101722;--panel2:#151e2b;--line:rgba(216,177,90,.28);
    max-width:1240px;margin:0 auto;color:var(--ink);background:var(--night);
    font-family:Quicksand,system-ui,-apple-system,"Segoe UI",sans-serif;line-height:1.72;
  }
  .sw-pharaoh *{box-sizing:border-box}
  .sw-pharaoh a{color:var(--gold2);text-decoration-thickness:1px;text-underline-offset:3px}
  .sw-pharaoh a:hover{color:#fff}
  .sw-pharaoh img{display:block;max-width:100%}
  .sw-pharaoh h1,.sw-pharaoh h2,.sw-pharaoh h3{font-family:Georgia,"Times New Roman",serif;line-height:1.14;margin:0;color:#fff}
  .sw-pharaoh h1{font-size:clamp(2.35rem,6vw,5rem);font-weight:500;letter-spacing:-.035em}
  .sw-pharaoh h2{font-size:clamp(1.85rem,4vw,3rem);font-weight:600}
  .sw-pharaoh h3{font-size:1.28rem;font-weight:600}
  .sw-pharaoh p{margin:0 0 1rem}
  .sw-pharaoh .eyebrow{margin:0 0 .7rem;color:var(--gold2);font-size:.78rem;font-weight:800;letter-spacing:.18em;text-transform:uppercase}
  .sw-pharaoh .hero{position:relative;min-height:610px;display:flex;align-items:flex-end;overflow:hidden;border:1px solid var(--line);background:#05070b}
  .sw-pharaoh .hero>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 44%;opacity:.7}
  .sw-pharaoh .hero:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(3,5,9,.08) 5%,rgba(3,5,9,.45) 48%,rgba(3,5,9,.98) 100%),linear-gradient(90deg,rgba(3,5,9,.75),transparent 72%)}
  .sw-pharaoh .hero-copy{position:relative;z-index:1;width:min(880px,100%);padding:clamp(2rem,6vw,5rem)}
  .sw-pharaoh .hero-copy h1 span{display:block;margin-top:.35rem;color:var(--gold2);font-size:.31em;font-family:Quicksand,system-ui,sans-serif;font-weight:800;letter-spacing:.16em;text-transform:uppercase}
  .sw-pharaoh .lede{max-width:780px;margin:1.25rem 0 0;color:#e5e8ed;font-size:clamp(1.05rem,2vw,1.28rem)}
  .sw-pharaoh .hero-links{display:flex;flex-wrap:wrap;gap:.7rem;margin-top:1.35rem}
  .sw-pharaoh .pill{display:inline-flex;align-items:center;gap:.4rem;padding:.55rem .8rem;border:1px solid var(--line);border-radius:999px;background:rgba(7,11,18,.72);color:#f7e7bb;text-decoration:none;font-size:.88rem;font-weight:700}
  .sw-pharaoh .intro{padding:clamp(2.4rem,6vw,5.3rem);background:linear-gradient(180deg,#0b111a,#070b12)}
  .sw-pharaoh .intro-grid{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(260px,.55fr);gap:clamp(2rem,5vw,4.8rem);align-items:start}
  .sw-pharaoh .intro p:first-of-type{font-size:1.15rem;color:#f0f2f6}
  .sw-pharaoh .profile{padding:1.2rem 1.3rem;border:1px solid var(--line);border-radius:14px;background:linear-gradient(145deg,var(--panel2),var(--panel))}
  .sw-pharaoh .profile ul{list-style:none;margin:0;padding:0}
  .sw-pharaoh .profile li{padding:.68rem 0;border-bottom:1px solid rgba(255,255,255,.08)}
  .sw-pharaoh .profile li:last-child{border-bottom:0}
  .sw-pharaoh .profile strong{display:block;color:var(--gold2);font-size:.72rem;letter-spacing:.1em;text-transform:uppercase}
  .sw-pharaoh .section{padding:clamp(2.5rem,6vw,5.3rem);border-top:1px solid var(--line)}
  .sw-pharaoh .section-head{max-width:820px;margin-bottom:2rem}
  .sw-pharaoh .section-head p{margin-top:.85rem;color:var(--muted)}
  .sw-pharaoh .deity-group+.deity-group{margin-top:2.8rem}
  .sw-pharaoh .deity-group-head{display:flex;justify-content:space-between;gap:1rem;align-items:end;margin-bottom:1rem;padding:1.15rem 1.25rem;border:1px solid var(--line);border-radius:14px;background:linear-gradient(100deg,#182337,#0b111a)}
  .sw-pharaoh .deity-group-head h3{font-size:clamp(1.25rem,2.5vw,1.75rem);color:#fff}
  .sw-pharaoh .deity-group-head span{color:var(--gold2);font-size:.72rem;font-weight:800;letter-spacing:.1em;text-align:right;text-transform:uppercase}
  .sw-pharaoh .deity-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1rem}
  .sw-pharaoh .deity-card{position:relative;overflow:hidden;border:1px solid var(--line);border-radius:14px;background:linear-gradient(180deg,#131b27,#0c121b);box-shadow:0 16px 36px rgba(0,0,0,.2)}
  .sw-pharaoh .deity-card>a{display:flex;height:100%;flex-direction:column;color:inherit;text-decoration:none}
  .sw-pharaoh .deity-media{position:relative;aspect-ratio:3/4;overflow:hidden;background:radial-gradient(circle at 50% 35%,#263143,#080c12 72%)}
  .sw-pharaoh .deity-media:after{content:"";position:absolute;inset:auto 0 0;height:40%;background:linear-gradient(transparent,rgba(7,11,18,.86))}
  .sw-pharaoh .deity-media img{width:100%;height:100%;object-fit:cover;object-position:var(--focus,50% 22%);transition:transform .35s ease,filter .35s ease}
  .sw-pharaoh .deity-card.landscape .deity-media img{object-fit:contain;object-position:center}
  .sw-pharaoh .deity-card.text-only .deity-media{display:grid;place-items:center;padding:1.2rem;background:radial-gradient(circle at 50% 35%,#34435b,#090e16 76%)}
  .sw-pharaoh .deity-nameplate{width:100%;padding:1.2rem .85rem;border:1px solid var(--line);border-radius:12px;text-align:center;background:rgba(6,10,16,.72)}
  .sw-pharaoh .deity-nameplate strong{display:block;color:#fff;font-family:Georgia,"Times New Roman",serif;font-size:1.45rem;font-weight:600}
  .sw-pharaoh .deity-nameplate span{display:block;margin-top:.55rem;color:var(--gold2);font-size:.66rem;font-weight:800;letter-spacing:.09em;text-transform:uppercase}
  .sw-pharaoh .deity-card>a:hover .deity-media img{transform:scale(1.035);filter:saturate(1.08)}
  .sw-pharaoh .deity-copy{display:flex;flex:1;flex-direction:column;padding:1rem 1.05rem 1.15rem}
  .sw-pharaoh .deity-copy h3{color:#fff}
  .sw-pharaoh .deity-copy p{margin:.48rem 0 0;color:var(--muted);font-size:.9rem;line-height:1.5}
  .sw-pharaoh .deity-copy .type{margin-top:auto;padding-top:.8rem;color:var(--gold2);font-size:.68rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase}
  .sw-pharaoh .deity-card.adversary{border-color:rgba(181,67,55,.55)}
  .sw-pharaoh .deity-card.adversary .type{color:#ef9a8d}
  .sw-pharaoh .minor-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:.8rem;margin-top:1.25rem}
  .sw-pharaoh .minor-card{min-height:180px;padding:1.15rem;border:1px solid var(--line);border-radius:13px;background:radial-gradient(circle at 50% 0,#263143,#0b111a 72%)}
  .sw-pharaoh .minor-card h3{color:var(--gold2);font-size:1.12rem}
  .sw-pharaoh .minor-card p{margin:.55rem 0 0;color:var(--muted);font-size:.86rem;line-height:1.5}
  .sw-pharaoh .minor-card .type{display:block;margin-top:.75rem;color:#d9c58f;font-size:.65rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase}
  .sw-pharaoh .split{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}
  .sw-pharaoh .panel{padding:clamp(1.4rem,3vw,2.2rem);border:1px solid var(--line);border-radius:14px;background:linear-gradient(145deg,var(--panel2),var(--panel))}
  .sw-pharaoh .panel h3{margin-bottom:.75rem;color:var(--gold2)}
  .sw-pharaoh .panel ul{margin:.5rem 0 0;padding-left:1.15rem}
  .sw-pharaoh .panel li+li{margin-top:.55rem}
  .sw-pharaoh .timeline{display:grid;gap:.9rem;margin-top:1.5rem}
  .sw-pharaoh .timeline-item{display:grid;grid-template-columns:52px 1fr;gap:1rem;align-items:start}
  .sw-pharaoh .timeline-item b{display:grid;place-items:center;width:52px;height:52px;border:1px solid var(--line);border-radius:50%;color:var(--gold2);background:#111927}
  .sw-pharaoh .timeline-item h3{font-size:1.08rem;margin:.1rem 0 .25rem}
  .sw-pharaoh .timeline-item p{color:var(--muted)}
  .sw-pharaoh .beast-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem}
  .sw-pharaoh .beast-card{overflow:hidden;border:1px solid var(--line);border-radius:14px;background:var(--panel)}
  .sw-pharaoh .beast-card>a{display:flex;height:100%;flex-direction:column;color:inherit;text-decoration:none}
  .sw-pharaoh .beast-media{display:grid;place-items:center;aspect-ratio:4/3;overflow:hidden;background:radial-gradient(circle,#29364a,#080c12 75%)}
  .sw-pharaoh .beast-media img{width:100%;height:100%;object-fit:cover;object-position:center 28%;transition:transform .3s ease}
  .sw-pharaoh .beast-card.object .beast-media img{object-fit:contain;padding:1rem}
  .sw-pharaoh .beast-card>a:hover .beast-media img{transform:scale(1.03)}
  .sw-pharaoh .beast-copy{padding:1.1rem}
  .sw-pharaoh .beast-copy p{margin:.5rem 0 0;color:var(--muted);font-size:.9rem}
  .sw-pharaoh .beast-copy .type{color:var(--gold2);font-size:.67rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase}
  .sw-pharaoh .feature{display:grid;grid-template-columns:minmax(0,.82fr) minmax(0,1.18fr);overflow:hidden;border:1px solid var(--line);border-radius:16px;background:linear-gradient(145deg,var(--panel2),var(--panel))}
  .sw-pharaoh .feature-media{min-height:420px;background:#05080c}
  .sw-pharaoh .feature-media img{width:100%;height:100%;object-fit:cover;object-position:center}
  .sw-pharaoh .feature-body{padding:clamp(1.6rem,4vw,3.2rem);align-self:center}
  .sw-pharaoh .feature-body h2{margin-bottom:1rem}
  .sw-pharaoh .duality{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
  .sw-pharaoh .duality>div{padding:clamp(1.5rem,4vw,2.7rem);border:1px solid var(--line);border-radius:15px}
  .sw-pharaoh .maat{background:linear-gradient(145deg,#263249,#111a28)}
  .sw-pharaoh .isfet{background:linear-gradient(145deg,#351b1a,#160d10);border-color:rgba(181,67,55,.5)!important}
  .sw-pharaoh .duality h3{margin-bottom:.7rem;color:var(--gold2)}
  .sw-pharaoh .judgement{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:.8rem;counter-reset:judgement}
  .sw-pharaoh .judgement-step{position:relative;padding:1.15rem;border:1px solid var(--line);border-radius:13px;background:var(--panel)}
  .sw-pharaoh .judgement-step:before{counter-increment:judgement;content:counter(judgement);display:grid;place-items:center;width:34px;height:34px;margin-bottom:.8rem;border:1px solid var(--line);border-radius:50%;color:var(--gold2);font-weight:800}
  .sw-pharaoh .judgement-step p{margin:.45rem 0 0;color:var(--muted);font-size:.87rem}
  .sw-pharaoh .judgement-art{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin-top:1rem}
  .sw-pharaoh .judgement-art figure{display:grid;grid-template-columns:180px 1fr;align-items:center;margin:0;overflow:hidden;border:1px solid var(--line);border-radius:14px;background:var(--panel)}
  .sw-pharaoh .judgement-art img{width:180px;height:220px;object-fit:cover;object-position:center 22%}
  .sw-pharaoh .judgement-art figcaption{padding:1.2rem;color:var(--muted)}
  .sw-pharaoh .video-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}
  .sw-pharaoh .video-card{overflow:hidden;border:1px solid var(--line);border-radius:14px;background:var(--panel)}
  .sw-pharaoh .video-lite{position:relative;aspect-ratio:16/9;overflow:hidden;background:#000}
  .sw-pharaoh .video-lite>img{width:100%;height:100%;object-fit:cover;opacity:.86;transition:transform .3s ease,opacity .3s ease}
  .sw-pharaoh .video-lite:hover>img{transform:scale(1.025);opacity:1}
  .sw-pharaoh .video-play{position:absolute;inset:0;display:grid;place-items:center;color:#fff!important;text-decoration:none;background:linear-gradient(transparent,rgba(0,0,0,.25))}
  .sw-pharaoh .video-play span{display:grid;place-items:center;width:72px;height:52px;border-radius:14px;background:#c92d28;box-shadow:0 8px 25px rgba(0,0,0,.45);font-size:1.65rem;line-height:1}
  .sw-pharaoh .video-lite iframe{display:block;width:100%;height:100%;border:0}
  .sw-pharaoh .video-card h3{padding:1rem;font-family:Quicksand,system-ui,sans-serif;font-size:.98rem;line-height:1.4}
  .sw-pharaoh .video-card>p{margin:-.55rem 1rem 1rem;font-size:.82rem}
  .sw-pharaoh .link-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.7rem;margin-top:1.25rem}
  .sw-pharaoh .link-grid a{display:flex;align-items:center;min-height:54px;padding:.8rem 1rem;border:1px solid var(--line);border-radius:12px;background:var(--panel);text-decoration:none;font-weight:700}
  .sw-pharaoh .sources{font-size:.92rem;color:var(--muted)}
  .sw-pharaoh .sources ul{margin:.8rem 0 0;padding-left:1.1rem}
  .sw-pharaoh .return{display:flex;flex-wrap:wrap;gap:.7rem;margin-top:1.4rem}
  @media(max-width:1000px){.sw-pharaoh .deity-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.sw-pharaoh .minor-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.sw-pharaoh .judgement{grid-template-columns:repeat(3,minmax(0,1fr))}}
  @media(max-width:760px){
    .sw-pharaoh .hero{min-height:560px}.sw-pharaoh .hero-copy{padding:2rem 1.25rem}
    .sw-pharaoh .intro,.sw-pharaoh .section{padding:2.5rem 1.15rem}
    .sw-pharaoh .intro-grid,.sw-pharaoh .split,.sw-pharaoh .video-grid,.sw-pharaoh .beast-grid,.sw-pharaoh .feature,.sw-pharaoh .duality,.sw-pharaoh .judgement-art{grid-template-columns:1fr}
    .sw-pharaoh .deity-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
    .sw-pharaoh .deity-group-head{display:block}.sw-pharaoh .deity-group-head span{display:block;margin-top:.55rem;text-align:left}
    .sw-pharaoh .feature-media{min-height:320px}.sw-pharaoh .judgement{grid-template-columns:1fr 1fr}.sw-pharaoh .link-grid{grid-template-columns:1fr 1fr}
    .sw-pharaoh .judgement-art figure{grid-template-columns:130px 1fr}.sw-pharaoh .judgement-art img{width:130px;height:180px}
  }
  @media(max-width:470px){.sw-pharaoh .deity-grid,.sw-pharaoh .minor-grid,.sw-pharaoh .judgement,.sw-pharaoh .link-grid{grid-template-columns:1fr}.sw-pharaoh .deity-media{aspect-ratio:4/5}}
  @media(prefers-reduced-motion:reduce){.sw-pharaoh .deity-media img{transition:none}}



/* =========================================================
   SPIRALWORLDS — CELTIC PANTHEON
   FINAL ILLUSTRATED HUB
   ========================================================= */

.sw-celtic {
	--swc-panel: #17211b;
	--swc-panel-2: #1d2922;
	--swc-panel-3: #243129;
	--swc-text: #edf1e9;
	--swc-muted: #bdc8ba;
	--swc-gold: #d5b36a;
	--swc-gold-bright: #efd38f;
	--swc-green: #8eae85;
	--swc-border: rgba(213,179,106,.28);
	--swc-shadow: 0 16px 40px rgba(0,0,0,.25);

	max-width: 1180px;
	margin: 0 auto;
	padding: 0 18px 56px;
	color: var(--swc-text);
	font-family: Georgia, "Times New Roman", serif;
	line-height: 1.7;
}

.sw-celtic *,
.sw-celtic *::before,
.sw-celtic *::after {
	box-sizing: border-box;
}

.sw-celtic a {
	color: var(--swc-gold-bright);
	text-decoration-thickness: 1px;
	text-underline-offset: 3px;
}

.sw-celtic a:hover,
.sw-celtic a:focus {
	color: #fff;
}

.sw-celtic h1,
.sw-celtic h2,
.sw-celtic h3 {
	margin-top: 0;
	color: #fff;
	font-family: Georgia, "Times New Roman", serif;
	font-weight: 400;
	line-height: 1.16;
}

.sw-celtic h1 {
	margin-bottom: 0;
	font-size: clamp(2.5rem,6vw,4.6rem);
	letter-spacing: -.025em;
}

.sw-celtic h2 {
	margin-bottom: 14px;
	font-size: clamp(1.8rem,4vw,2.7rem);
}

.sw-celtic h3 {
	font-size: 1.2rem;
}

.sw-celtic p:last-child {
	margin-bottom: 0;
}


/* =========================================================
   PARENT NAVIGATION
   ========================================================= */

.sw-celtic .swc-back {
	margin: 0 0 14px;
}

.sw-celtic .swc-back a {
	display: inline-flex;
	align-items: center;
	gap: 7px;
	padding: 7px 11px;
	border: 1px solid rgba(213,179,106,.24);
	border-radius: 999px;
	background: rgba(23,33,27,.74);
	color: var(--swc-gold-bright);
	font-family: Arial, Helvetica, sans-serif;
	font-size: .82rem;
	font-weight: 700;
	letter-spacing: .04em;
	text-decoration: none;
}

.sw-celtic .swc-back a:hover,
.sw-celtic .swc-back a:focus {
	border-color: var(--swc-gold);
	background: var(--swc-panel);
	color: #fff;
}

.sw-celtic .swc-back-arrow {
	font-size: 1rem;
	line-height: 1;
}


/* =========================================================
   HERO
   ========================================================= */

.sw-celtic .swc-hero {
	overflow: hidden;
	margin: 0 0 30px;
	border: 1px solid var(--swc-border);
	border-radius: 22px;
	background:
		radial-gradient(circle at 15% 0%,rgba(142,174,133,.18),transparent 36%),
		linear-gradient(145deg,#1a261e 0%,#0d130f 100%);
	box-shadow: var(--swc-shadow);
}

.sw-celtic .swc-hero-copy {
	padding: clamp(30px,5vw,58px);
}

.sw-celtic .swc-kicker {
	display: inline-block;
	margin: 0 0 12px;
	color: var(--swc-gold);
	font-family: Arial,Helvetica,sans-serif;
	font-size: .76rem;
	font-weight: 700;
	letter-spacing: .16em;
	text-transform: uppercase;
}

.sw-celtic .swc-lead {
	max-width: 870px;
	margin: 18px 0 0;
	color: #dce5d9;
	font-size: clamp(1.05rem,2.2vw,1.25rem);
}

.sw-celtic .swc-hero-figure {
	margin: 0;
	border-top: 1px solid var(--swc-border);
	background: #090d0a;
}

.sw-celtic .swc-hero-figure img {
	display: block;
	width: 100%;
	height: auto;
	margin: 0;
}

.sw-celtic .swc-hero-figure figcaption {
	padding: 9px 16px 12px;
	color: #96a294;
	font-family: Arial,Helvetica,sans-serif;
	font-size: .76rem;
}


/* =========================================================
   CONTENT PANELS
   ========================================================= */

.sw-celtic .swc-section,
.sw-celtic .swc-tradition {
	margin: 30px 0;
	padding: clamp(22px,4vw,36px);
	border: 1px solid var(--swc-border);
	border-radius: 18px;
	background: var(--swc-panel);
	box-shadow: 0 8px 24px rgba(0,0,0,.12);
}

.sw-celtic .swc-tradition {
	scroll-margin-top: 90px;
}

.sw-celtic .swc-section-intro {
	max-width: 900px;
	color: var(--swc-muted);
}


/* =========================================================
   SECTION NAVIGATION
   ========================================================= */

.sw-celtic .swc-nav {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	margin-top: 22px;
}

.sw-celtic .swc-nav a {
	display: inline-block;
	padding: 9px 14px;
	border: 1px solid var(--swc-border);
	border-radius: 999px;
	background: rgba(255,255,255,.025);
	color: #f1e3bc;
	font-family: Arial,Helvetica,sans-serif;
	font-size: .84rem;
	font-weight: 700;
	text-decoration: none;
}

.sw-celtic .swc-nav a:hover,
.sw-celtic .swc-nav a:focus {
	border-color: var(--swc-gold);
	background: rgba(213,179,106,.1);
	color: #fff;
}


/* =========================================================
   TRADITIONS
   ========================================================= */

.sw-celtic .swc-tradition-head {
	margin-bottom: 22px;
	padding-bottom: 17px;
	border-bottom: 1px solid var(--swc-border);
}

.sw-celtic .swc-tradition-head p {
	max-width: 920px;
	margin: 7px 0 0;
	color: var(--swc-muted);
}


/* =========================================================
   DEITY DIRECTORY
   ========================================================= */

.sw-celtic .swc-directory {
	display: grid;
	grid-template-columns: repeat(4,minmax(0,1fr));
	gap: 18px;
}

.sw-celtic .swc-deity {
	display: flex;
	flex-direction: column;
	min-width: 0;
	overflow: hidden;
	border: 1px solid rgba(213,179,106,.27);
	border-radius: 16px;
	background: var(--swc-panel-2);
	box-shadow: 0 8px 22px rgba(0,0,0,.16);
	color: inherit;
	text-decoration: none;
	transition:
		transform .2s ease,
		border-color .2s ease,
		box-shadow .2s ease;
}

.sw-celtic .swc-deity:hover,
.sw-celtic .swc-deity:focus {
	transform: translateY(-3px);
	border-color: rgba(239,211,143,.72);
	box-shadow: 0 14px 30px rgba(0,0,0,.26);
	color: inherit;
}

.sw-celtic .swc-deity-media {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	height: 250px;
	overflow: hidden;
	border-bottom: 1px solid rgba(213,179,106,.2);
	background:
		radial-gradient(circle at 50% 28%,#2d4033 0%,#18231c 45%,#0e1511 100%);
}

.sw-celtic .swc-deity-media img {
	display: block;
	width: 100%;
	height: 100%;
	margin: 0;
	padding: 7px;
	object-fit: contain;
	object-position: center;
	transition: transform .25s ease;
}

.sw-celtic .swc-deity-media--cover img {
	padding: 0;
	object-fit: cover;
}

.sw-celtic .swc-deity-media--top img {
	object-position: center top;
}

.sw-celtic .swc-deity:hover .swc-deity-media img,
.sw-celtic .swc-deity:focus .swc-deity-media img {
	transform: scale(1.025);
}

.sw-celtic .swc-deity-media--symbolic {
	background:
		linear-gradient(rgba(7,12,9,.28),rgba(7,12,9,.68)),
		url("https://spiralworlds.com/wp-content/uploads/2023/04/Celtic-Pantheon.png")
		center / cover no-repeat;
}

.sw-celtic .swc-deity-media--symbolic::after {
	position: absolute;
	inset: 0;
	content: "";
	background:
		radial-gradient(circle at center,transparent 15%,rgba(3,7,5,.48) 100%);
}

.sw-celtic .swc-symbol {
	position: relative;
	z-index: 2;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 96px;
	height: 96px;
	border: 1px solid rgba(239,211,143,.72);
	border-radius: 50%;
	background: rgba(8,14,10,.78);
	color: var(--swc-gold-bright);
	font-family: Georgia,"Times New Roman",serif;
	font-size: 2.15rem;
	box-shadow: 0 8px 28px rgba(0,0,0,.4);
}

.sw-celtic .swc-deity-copy {
	display: flex;
	flex: 1;
	flex-direction: column;
	padding: 17px 17px 18px;
}

.sw-celtic .swc-deity-name {
	display: block;
	margin-bottom: 7px;
	color: #fff;
	font-size: 1.2rem;
	line-height: 1.22;
}

.sw-celtic .swc-deity-desc {
	display: block;
	flex: 1;
	color: var(--swc-muted);
	font-size: .92rem;
	line-height: 1.48;
}

.sw-celtic .swc-tag {
	align-self: flex-start;
	display: inline-block;
	margin-top: 14px;
	padding: 4px 8px;
	border: 1px solid rgba(142,174,133,.32);
	border-radius: 999px;
	color: #c2d5bc;
	font-family: Arial,Helvetica,sans-serif;
	font-size: .66rem;
	font-weight: 700;
	letter-spacing: .05em;
	text-transform: uppercase;
}

.sw-celtic .swc-deity--fomorian {
	border-color: rgba(183,106,82,.42);
}

.sw-celtic .swc-deity--fomorian .swc-tag {
	border-color: rgba(192,112,88,.42);
	color: #e2b6a7;
}


/* =========================================================
   USING THE PANTHEON
   ========================================================= */

.sw-celtic .swc-use-grid {
	display: grid;
	grid-template-columns: repeat(2,minmax(0,1fr));
	gap: 14px;
	margin-top: 20px;
}

.sw-celtic .swc-use {
	padding: 20px;
	border: 1px solid rgba(213,179,106,.2);
	border-radius: 14px;
	background: var(--swc-panel-2);
}

.sw-celtic .swc-use h3 {
	margin-bottom: 7px;
	color: var(--swc-gold-bright);
}

.sw-celtic .swc-use p {
	margin: 0;
	color: var(--swc-muted);
	font-size: .94rem;
}


/* =========================================================
   HISTORICAL CONTEXT
   ========================================================= */

.sw-celtic .swc-context {
	display: grid;
	grid-template-columns: minmax(0,1.6fr) minmax(260px,.75fr);
	gap: 24px;
	align-items: start;
}

.sw-celtic .swc-source-box {
	padding: 19px;
	border: 1px solid var(--swc-border);
	border-radius: 14px;
	background: #111914;
}

.sw-celtic .swc-source-box h3 {
	margin-bottom: 10px;
	color: var(--swc-gold-bright);
}

.sw-celtic .swc-source-box ul {
	margin: 0;
	padding-left: 19px;
}

.sw-celtic .swc-source-box li {
	margin: 9px 0;
	color: var(--swc-muted);
}


/* =========================================================
   VIDEOS
   ========================================================= */

.sw-celtic .swc-videos {
	display: grid;
	grid-template-columns: repeat(2,minmax(0,1fr));
	gap: 16px;
	margin-top: 20px;
}

.sw-celtic .swc-video {
	overflow: hidden;
	border: 1px solid var(--swc-border);
	border-radius: 15px;
	background: var(--swc-panel-2);
}

.sw-celtic .swc-video a {
	display: block;
	height: 100%;
	color: inherit;
	text-decoration: none;
}

.sw-celtic .swc-video-thumb {
	position: relative;
	overflow: hidden;
	aspect-ratio: 16 / 9;
	border-bottom: 1px solid var(--swc-border);
	background: #090d0a;
}

.sw-celtic .swc-video-thumb img {
	display: block;
	width: 100%;
	height: 100%;
	margin: 0;
	object-fit: cover;
}

.sw-celtic .swc-video-play {
	position: absolute;
	top: 50%;
	left: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 60px;
	height: 60px;
	padding-left: 4px;
	border: 1px solid rgba(239,211,143,.78);
	border-radius: 50%;
	background: rgba(8,14,10,.82);
	color: var(--swc-gold-bright);
	font-family: Arial,Helvetica,sans-serif;
	font-size: 1.25rem;
	transform: translate(-50%,-50%);
	transition:
		transform .18s ease,
		background .18s ease;
}

.sw-celtic .swc-video a:hover .swc-video-play,
.sw-celtic .swc-video a:focus .swc-video-play {
	background: rgba(213,179,106,.94);
	color: #101713;
	transform: translate(-50%,-50%) scale(1.08);
}

.sw-celtic .swc-video-copy {
	padding: 17px 18px 19px;
}

.sw-celtic .swc-video-copy strong {
	display: block;
	margin-bottom: 6px;
	color: #fff;
	font-size: 1.05rem;
	font-weight: 400;
}

.sw-celtic .swc-video-copy span {
	display: block;
	color: var(--swc-muted);
	font-size: .88rem;
	line-height: 1.5;
}


/* =========================================================
   CLOSE
   ========================================================= */

.sw-celtic .swc-close {
	margin-top: 30px;
	padding: 23px 25px;
	border: 1px solid var(--swc-border);
	border-left: 4px solid var(--swc-gold);
	border-radius: 13px;
	background: #17211b;
	color: #d9e1d6;
	box-shadow: 0 8px 22px rgba(0,0,0,.12);
}

.sw-celtic .swc-close strong {
	color: var(--swc-gold-bright);
}

.sw-celtic .swc-close p {
	margin: 15px 0 0;
	padding-top: 14px;
	border-top: 1px solid rgba(213,179,106,.18);
}

.sw-celtic .swc-close a {
	font-family: Arial,Helvetica,sans-serif;
	font-size: .9rem;
	font-weight: 700;
	text-decoration: none;
}


/* =========================================================
   RESPONSIVE
   ========================================================= */

@media (max-width:1080px) {
	.sw-celtic .swc-directory {
		grid-template-columns: repeat(3,minmax(0,1fr));
	}
}

@media (max-width:850px) {
	.sw-celtic .swc-directory {
		grid-template-columns: repeat(2,minmax(0,1fr));
	}

	.sw-celtic .swc-context {
		grid-template-columns: 1fr;
	}
}

@media (max-width:680px) {
	.sw-celtic {
		padding-left: 12px;
		padding-right: 12px;
	}

	.sw-celtic .swc-use-grid,
	.sw-celtic .swc-videos {
		grid-template-columns: 1fr;
	}

	.sw-celtic .swc-hero,
	.sw-celtic .swc-section,
	.sw-celtic .swc-tradition {
		border-radius: 14px;
	}
}

@media (max-width:540px) {
	.sw-celtic .swc-directory {
		grid-template-columns: 1fr;
	}

	.sw-celtic .swc-deity-media {
		height: auto;
		aspect-ratio: 4 / 3;
	}
}


/* --- WPWriter addition --- */

/* SPIRALWORLDS MONSTER HERO — long-title safeguard */
html body .sw-entry.sw-monster-entry .sw-monster-hero h1.sw-monster-title-long {
  font-size: clamp(2.55rem, 4.1vw, 3.65rem) !important;
  line-height: 1.02 !important;
  overflow-wrap: normal !important;
  word-break: normal !important;
  hyphens: none !important;
  text-wrap: balance;
}
@media (max-width:560px) {
  html body .sw-entry.sw-monster-entry .sw-monster-hero h1.sw-monster-title-long {
    font-size: clamp(2.2rem, 12vw, 3.15rem) !important;
  }
}


/* --- WPWriter addition --- */

/* MONSTER WORKFLOW — edition visibility + long-title stability */
html body .sw-entry.sw-monster-entry .sw-monster-tabs > .sw-tab-labels {
  display: grid !important;
  grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
}
html body .sw-entry.sw-monster-entry .sw-monster-tabs > .sw-tab-labels > label {
  display: flex !important;
  visibility: visible !important;
  opacity: 1 !important;
  min-width: 0 !important;
}
html body .sw-entry.sw-monster-entry .sw-monster-tabs > .sw-tab-labels > label .sw-edition-title,
html body .sw-entry.sw-monster-entry .sw-monster-tabs > .sw-tab-labels > label .sw-edition-note-card {
  display: block !important;
  visibility: visible !important;
  opacity: 1 !important;
}
html body .sw-entry.sw-monster-entry .sw-monster-hero h1.sw-monster-title-long {
  max-width: 100% !important;
  font-size: clamp(2.4rem, 3.25vw, 3.2rem) !important;
  line-height: 1.02 !important;
  letter-spacing: 0 !important;
  overflow-wrap: normal !important;
  word-break: normal !important;
  hyphens: none !important;
}
html body .sw-entry.sw-monster-entry.sw-mountain-giant > .sw-monster-hero {
  grid-template-columns: minmax(0, 1.05fr) minmax(0, 1.35fr) !important;
}
html body .sw-entry.sw-monster-entry.sw-mountain-giant .sw-monster-hero-copy {
  padding-left: clamp(1.5rem, 3vw, 2.6rem) !important;
  padding-right: clamp(1.5rem, 3vw, 2.6rem) !important;
}
@media (min-width: 901px) {
  html body .sw-entry.sw-monster-entry.sw-mountain-giant .sw-monster-hero h1.sw-monster-title-long {
    white-space: nowrap !important;
  }
}
@media (max-width: 900px) {
  html body .sw-entry.sw-monster-entry .sw-monster-tabs > .sw-tab-labels {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
  html body .sw-entry.sw-monster-entry.sw-mountain-giant .sw-monster-hero h1.sw-monster-title-long {
    white-space: normal !important;
  }
}
@media (max-width: 520px) {
  html body .sw-entry.sw-monster-entry .sw-monster-tabs > .sw-tab-labels {
    grid-template-columns: 1fr !important;
  }
}


/* --- WPWriter addition --- */

/* ============================================================
   MONSTER WORKFLOW 3.0 — authoritative global presentation
   One shared shell; edition-native stat-block hierarchy inside.
   ============================================================ */

/* ---------- Edition controls: always usable ---------- */
html body .sw-entry.sw-monster-entry .sw-tabs > input[type="radio"] {
  position: absolute !important;
  inline-size: 1px !important;
  block-size: 1px !important;
  margin: -1px !important;
  padding: 0 !important;
  overflow: hidden !important;
  clip: rect(0 0 0 0) !important;
  clip-path: inset(50%) !important;
  white-space: nowrap !important;
  border: 0 !important;
  opacity: 0 !important;
}

html body .sw-entry.sw-monster-entry .sw-tabs > .sw-tab-labels {
  display: grid !important;
  gap: .65rem !important;
  width: 100% !important;
  margin: 0 0 1rem !important;
}

html body .sw-entry.sw-monster-entry .sw-tabs:has(> .sw-tab-labels > label:nth-child(1):last-child) > .sw-tab-labels {
  grid-template-columns: 1fr !important;
}
html body .sw-entry.sw-monster-entry .sw-tabs:has(> .sw-tab-labels > label:nth-child(2):last-child) > .sw-tab-labels {
  grid-template-columns: repeat(2,minmax(0,1fr)) !important;
}
html body .sw-entry.sw-monster-entry .sw-tabs:has(> .sw-tab-labels > label:nth-child(3):last-child) > .sw-tab-labels {
  grid-template-columns: repeat(3,minmax(0,1fr)) !important;
}
html body .sw-entry.sw-monster-entry .sw-tabs:has(> .sw-tab-labels > label:nth-child(4):last-child) > .sw-tab-labels {
  grid-template-columns: repeat(4,minmax(0,1fr)) !important;
}

html body .sw-entry.sw-monster-entry .sw-tabs > .sw-tab-labels > label {
  display: flex !important;
  visibility: visible !important;
  opacity: 1 !important;
  flex-direction: column !important;
  justify-content: center !important;
  align-items: center !important;
  min-width: 0 !important;
  min-height: 76px !important;
  padding: .72rem .8rem !important;
  text-align: center !important;
  cursor: pointer !important;
  border: 1px solid rgba(230,198,142,.42) !important;
  border-radius: 7px !important;
  background: #222127 !important;
  box-shadow: inset 0 0 0 1px rgba(255,255,255,.025) !important;
}
html body .sw-entry.sw-monster-entry .sw-tabs > .sw-tab-labels > label .sw-edition-title,
html body .sw-entry.sw-monster-entry .sw-tabs > .sw-tab-labels > label .sw-edition-note-card {
  display: block !important;
  visibility: visible !important;
  opacity: 1 !important;
}
html body .sw-entry.sw-monster-entry .sw-tabs > .sw-tab-labels > label .sw-edition-title {
  color: #f5ead8 !important;
  font-family: var(--sw-font-heading, Georgia, serif) !important;
  font-weight: 700 !important;
  line-height: 1.15 !important;
}
html body .sw-entry.sw-monster-entry .sw-tabs > .sw-tab-labels > label .sw-edition-note-card {
  margin-top: .3rem !important;
  color: #d5c9b8 !important;
  font-size: .78rem !important;
  line-height: 1.2 !important;
}

/* Four-edition colour cue: 2024 / 2014 / PF1e / 3.5e. */
html body .sw-entry.sw-monster-entry .sw-tabs:has(> .sw-tab-labels > label:nth-child(4):last-child) > .sw-tab-labels > label:nth-child(1) {
  background: linear-gradient(180deg,#5b2b1d,#352018) !important;
}
html body .sw-entry.sw-monster-entry .sw-tabs:has(> .sw-tab-labels > label:nth-child(4):last-child) > .sw-tab-labels > label:nth-child(2) {
  background: linear-gradient(180deg,#55303c,#321f28) !important;
}
html body .sw-entry.sw-monster-entry .sw-tabs:has(> .sw-tab-labels > label:nth-child(4):last-child) > .sw-tab-labels > label:nth-child(3) {
  background: linear-gradient(180deg,#123d52,#092a3a) !important;
}
html body .sw-entry.sw-monster-entry .sw-tabs:has(> .sw-tab-labels > label:nth-child(4):last-child) > .sw-tab-labels > label:nth-child(4) {
  background: linear-gradient(180deg,#144b3d,#0b3028) !important;
}

/* Hide every panel by default — supports both current and older monster markup. */
html body .sw-entry.sw-monster-entry .sw-tabs > .sw-tab-panels > .sw-tab-panel,
html body .sw-entry.sw-monster-entry .sw-tabs > .sw-panels > .sw-panel {
  display: none !important;
  visibility: hidden !important;
  height: 0 !important;
  min-height: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  overflow: hidden !important;
  border: 0 !important;
}

/* Current markup: panel IDs carry the edition suffix. */
html body .sw-entry.sw-monster-entry .sw-tabs > :is(input[id$="-55"],input[id$="-2024"]):checked ~ .sw-tab-panels > .sw-tab-panel:is([id$="-55"],[id$="-2024"]),
html body .sw-entry.sw-monster-entry .sw-tabs > :is(input[id$="-5e"],input[id$="-2014"]):checked ~ .sw-tab-panels > .sw-tab-panel:is([id$="-5e"],[id$="-2014"]),
html body .sw-entry.sw-monster-entry .sw-tabs > :is(input[id$="-pf"],input[id$="-pf1"]):checked ~ .sw-tab-panels > .sw-tab-panel:is([id$="-pf"],[id$="-pf1"]),
html body .sw-entry.sw-monster-entry .sw-tabs > input[id$="-35"]:checked ~ .sw-tab-panels > .sw-tab-panel[id$="-35"] {
  display: block !important;
  visibility: visible !important;
  height: auto !important;
  min-height: 0 !important;
  margin: 0 0 1.5rem !important;
  padding: clamp(1rem,2vw,1.45rem) !important;
  overflow: visible !important;
  border: 1px solid rgba(230,198,142,.34) !important;
  border-top: 3px solid #e6c68e !important;
  border-radius: 8px !important;
  background: #19191e !important;
}

/* Older markup: panels use sw-55 / sw-5e / sw-pf / sw-35 classes. */
html body .sw-entry.sw-monster-entry .sw-tabs > :is(input[id$="-55"],input[id$="-2024"]):checked ~ .sw-panels > :is(.sw-55,.sw-2024),
html body .sw-entry.sw-monster-entry .sw-tabs > :is(input[id$="-5e"],input[id$="-2014"]):checked ~ .sw-panels > :is(.sw-5e,.sw-2014),
html body .sw-entry.sw-monster-entry .sw-tabs > :is(input[id$="-pf"],input[id$="-pf1"]):checked ~ .sw-panels > :is(.sw-pf,.sw-pf1),
html body .sw-entry.sw-monster-entry .sw-tabs > input[id$="-35"]:checked ~ .sw-panels > .sw-35 {
  display: block !important;
  visibility: visible !important;
  height: auto !important;
  min-height: 0 !important;
  margin: 0 0 1.5rem !important;
  padding: clamp(1rem,2vw,1.45rem) !important;
  overflow: visible !important;
  border: 1px solid rgba(230,198,142,.34) !important;
  border-top: 3px solid #e6c68e !important;
  border-radius: 8px !important;
  background: #19191e !important;
}

/* Active edition control. */
html body .sw-entry.sw-monster-entry .sw-tabs > :is(input[id$="-55"],input[id$="-2024"]):checked ~ .sw-tab-labels > :is(label[for$="-55"],label[for$="-2024"]),
html body .sw-entry.sw-monster-entry .sw-tabs > :is(input[id$="-5e"],input[id$="-2014"]):checked ~ .sw-tab-labels > :is(label[for$="-5e"],label[for$="-2014"]),
html body .sw-entry.sw-monster-entry .sw-tabs > :is(input[id$="-pf"],input[id$="-pf1"]):checked ~ .sw-tab-labels > :is(label[for$="-pf"],label[for$="-pf1"]),
html body .sw-entry.sw-monster-entry .sw-tabs > input[id$="-35"]:checked ~ .sw-tab-labels > label[for$="-35"] {
  border-color: #efd18d !important;
  box-shadow: inset 0 0 0 1px #efd18d,0 0 0 2px rgba(239,209,141,.16) !important;
}

/* ---------- Hero/title stability ---------- */
html body .sw-entry.sw-monster-entry .sw-monster-hero h1 {
  overflow-wrap: normal !important;
  word-break: normal !important;
  hyphens: none !important;
}
@media (min-width:901px) {
  html body .sw-entry.sw-monster-entry .sw-monster-hero:has(h1.sw-monster-title-long) {
    grid-template-columns: minmax(390px,1.05fr) minmax(0,1.35fr) !important;
  }
  html body .sw-entry.sw-monster-entry .sw-monster-hero h1.sw-monster-title-long {
    max-width: 100% !important;
    font-size: clamp(2.35rem,3.25vw,3.25rem) !important;
    line-height: 1.02 !important;
    letter-spacing: 0 !important;
    white-space: normal !important;
    text-wrap: balance !important;
  }
}
@media (max-width:900px) {
  html body .sw-entry.sw-monster-entry .sw-monster-hero h1.sw-monster-title-long {
    font-size: clamp(2.2rem,9vw,3.2rem) !important;
    line-height: 1.03 !important;
    white-space: normal !important;
  }
}

/* ---------- Shared stat-block readability ---------- */
html body .sw-entry.sw-monster-entry :is(.sw-statblock,.sw-stat) {
  max-width: none !important;
  color: #eee8df !important;
}
html body .sw-entry.sw-monster-entry :is(.sw-statblock,.sw-stat) > h3:first-child {
  margin-top: 0 !important;
  margin-bottom: .25rem !important;
  font-size: clamp(1.45rem,2.4vw,2rem) !important;
}
html body .sw-entry.sw-monster-entry .sw-creature-line {
  margin: 0 0 .85rem !important;
  color: #dbcaa9 !important;
  font-style: italic;
}
html body .sw-entry.sw-monster-entry :is(.sw-stat-table,.sw-statblock table,.sw-stat table) {
  width: 100% !important;
  border-collapse: collapse !important;
}
html body .sw-entry.sw-monster-entry :is(.sw-stat-table,.sw-statblock table,.sw-stat table) th,
html body .sw-entry.sw-monster-entry :is(.sw-stat-table,.sw-statblock table,.sw-stat table) td {
  padding: .42rem .55rem !important;
  vertical-align: top !important;
  border-bottom: 1px solid rgba(230,198,142,.15) !important;
}
html body .sw-entry.sw-monster-entry :is(.sw-stat-table,.sw-statblock table,.sw-stat table) th {
  color: #e1bd76 !important;
  text-align: left !important;
}

/* 2024 / 2014 compact combat header. */
html body .sw-entry.sw-monster-entry :is(
  .sw-tab-panel[id$="-55"],.sw-tab-panel[id$="-2024"],
  .sw-tab-panel[id$="-5e"],.sw-tab-panel[id$="-2014"],
  .sw-panel.sw-55,.sw-panel.sw-2024,.sw-panel.sw-5e,.sw-panel.sw-2014
) .sw-stat-strip {
  display: grid !important;
  grid-template-columns: repeat(4,minmax(0,1fr)) !important;
  gap: 0 !important;
  margin: .8rem 0 1rem !important;
  border-top: 2px solid #b84832 !important;
  border-bottom: 2px solid #b84832 !important;
  background: transparent !important;
}
html body .sw-entry.sw-monster-entry :is(
  .sw-tab-panel[id$="-55"],.sw-tab-panel[id$="-2024"],
  .sw-tab-panel[id$="-5e"],.sw-tab-panel[id$="-2014"],
  .sw-panel.sw-55,.sw-panel.sw-2024,.sw-panel.sw-5e,.sw-panel.sw-2014
) .sw-stat-strip > div {
  min-width: 0 !important;
  padding: .58rem .7rem !important;
  border: 0 !important;
  border-right: 1px solid rgba(184,72,50,.35) !important;
  border-radius: 0 !important;
  background: transparent !important;
}
html body .sw-entry.sw-monster-entry :is(
  .sw-tab-panel[id$="-55"],.sw-tab-panel[id$="-2024"],
  .sw-tab-panel[id$="-5e"],.sw-tab-panel[id$="-2014"],
  .sw-panel.sw-55,.sw-panel.sw-2024,.sw-panel.sw-5e,.sw-panel.sw-2014
) .sw-stat-strip > div:last-child {
  border-right: 0 !important;
}
html body .sw-entry.sw-monster-entry .sw-ability-grid {
  display: grid !important;
  grid-template-columns: repeat(6,minmax(0,1fr)) !important;
  gap: .35rem !important;
  margin: .75rem 0 1rem !important;
}
html body .sw-entry.sw-monster-entry .sw-ability-grid > .sw-ability {
  min-width: 0 !important;
  padding: .48rem .35rem !important;
  text-align: center !important;
  border-top: 1px solid rgba(230,198,142,.26) !important;
  border-bottom: 1px solid rgba(230,198,142,.26) !important;
  background: transparent !important;
}
html body .sw-entry.sw-monster-entry .sw-ability-grid > .sw-ability strong,
html body .sw-entry.sw-monster-entry .sw-ability-grid > .sw-ability span {
  display: block !important;
}

/* Pathfinder 1e: preserve Bestiary section hierarchy. */
html body .sw-entry.sw-monster-entry :is(
  .sw-tab-panel[id$="-pf"],.sw-tab-panel[id$="-pf1"],
  .sw-panel.sw-pf,.sw-panel.sw-pf1
) h4 {
  margin: 1.05rem 0 .45rem !important;
  padding: .34rem .55rem !important;
  color: #f2e8d8 !important;
  font-family: var(--sw-font-ui, system-ui, sans-serif) !important;
  font-size: .9rem !important;
  font-weight: 800 !important;
  letter-spacing: .09em !important;
  text-transform: uppercase !important;
  border-left: 4px solid #2d7898 !important;
  background: linear-gradient(90deg,rgba(45,120,152,.22),transparent) !important;
}

/* D&D 3.5e: dense reference hierarchy, clearly separated from PF1e. */
html body .sw-entry.sw-monster-entry :is(
  .sw-tab-panel[id$="-35"],.sw-panel.sw-35
) h4 {
  margin: 1.05rem 0 .45rem !important;
  padding: .34rem .55rem !important;
  color: #f2e8d8 !important;
  font-family: var(--sw-font-ui, system-ui, sans-serif) !important;
  font-size: .9rem !important;
  font-weight: 800 !important;
  letter-spacing: .09em !important;
  text-transform: uppercase !important;
  border-left: 4px solid #38826d !important;
  background: linear-gradient(90deg,rgba(56,130,109,.22),transparent) !important;
}

/* ---------- Responsive ---------- */
@media (max-width:780px) {
  html body .sw-entry.sw-monster-entry .sw-tabs > .sw-tab-labels {
    grid-template-columns: repeat(2,minmax(0,1fr)) !important;
  }
  html body .sw-entry.sw-monster-entry .sw-ability-grid {
    grid-template-columns: repeat(3,minmax(0,1fr)) !important;
  }
  html body .sw-entry.sw-monster-entry .sw-stat-strip {
    grid-template-columns: repeat(2,minmax(0,1fr)) !important;
  }
}
@media (max-width:520px) {
  html body .sw-entry.sw-monster-entry .sw-tabs > .sw-tab-labels {
    grid-template-columns: 1fr !important;
  }
  html body .sw-entry.sw-monster-entry .sw-ability-grid {
    grid-template-columns: repeat(2,minmax(0,1fr)) !important;
  }
  html body .sw-entry.sw-monster-entry .sw-stat-strip {
    grid-template-columns: 1fr !important;
  }
  html body .sw-entry.sw-monster-entry :is(.sw-stat-table,.sw-statblock table,.sw-stat table) {
    font-size: .92rem !important;
  }
}
/* END MONSTER WORKFLOW 3.0 */


/* --- WPWriter addition --- */


/* migrated from Aboleth legacy page-local CSS */

.sw-entry{max-width:1180px;width:calc(100% - 32px);margin:0 auto;line-height:1.68}
.sw-entry img{max-width:100%;height:auto}
.sw-entry .sw-page-title{font-size:clamp(2.1rem,5vw,3.7rem);line-height:1.08;margin:0 0 1rem;text-align:center}
.sw-entry .sw-hero{margin:0 0 1.35rem}
.sw-entry .sw-hero img{display:block;width:100%;aspect-ratio:16/9;object-fit:cover;border-radius:14px}
.sw-entry .sw-lead{font-size:1.12rem}
.sw-entry .sw-glance{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.75rem;margin:1.25rem 0}
.sw-entry .sw-glance>div{padding:.85rem 1rem;border:1px solid rgba(128,128,128,.28);border-radius:10px}
.sw-entry .sw-glance strong{display:block;margin-bottom:.2rem}
.sw-entry .sw-callout{padding:1rem 1.1rem;margin:1.25rem 0;border-left:4px solid currentColor;background:rgba(128,128,128,.08)}
.sw-entry .sw-grid-2{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
.sw-entry .sw-stat{padding:1rem;border:1px solid rgba(128,128,128,.3);border-radius:12px;margin:.75rem 0;overflow-x:auto}
.sw-entry .sw-stat h3,.sw-entry .sw-stat h4{margin-top:.2rem}
.sw-entry table{width:100%;border-collapse:collapse}
.sw-entry th,.sw-entry td{padding:.45rem .55rem;border-bottom:1px solid rgba(128,128,128,.25);vertical-align:top}
.sw-entry .sw-ability{text-align:center}
.sw-entry .sw-tabs{margin:1.5rem 0}
.sw-entry .sw-tabs>input{position:absolute;opacity:0;pointer-events:none}
.sw-entry .sw-tab-labels{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:.85rem}
.sw-entry .sw-tab-labels label{cursor:pointer;padding:.6rem .9rem;border:1px solid rgba(128,128,128,.35);border-radius:999px;font-weight:700}
.sw-entry .sw-panel{display:none}
#aboleth-55:checked~.sw-tab-labels label[for="aboleth-55"],
#aboleth-pf:checked~.sw-tab-labels label[for="aboleth-pf"],
#aboleth-35:checked~.sw-tab-labels label[for="aboleth-35"]{outline:2px solid currentColor;outline-offset:2px}
#aboleth-55:checked~.sw-panels .sw-55,
#aboleth-pf:checked~.sw-panels .sw-pf,
#aboleth-35:checked~.sw-panels .sw-35{display:block}
.sw-entry .sw-hooks td:first-child{font-weight:700;width:28%}
.sw-entry .sw-muted{opacity:.82}
.sw-entry .sw-license{margin-top:1rem}
.sw-entry .sw-video-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;margin:1.25rem 0}
.sw-entry .sw-video{position:relative;aspect-ratio:16/9;overflow:hidden;border-radius:12px;background:#000}
.sw-entry .sw-video iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.sw-entry .sw-figure{margin:1.35rem 0}
.sw-entry .sw-figure img{display:block;width:100%;border-radius:12px}
.sw-entry .sw-figure figcaption{margin:.5rem 0 0;font-size:.92rem;opacity:.82}
.sw-entry .sw-lightbox{display:none;position:fixed;inset:0;z-index:99999;background:rgba(0,0,0,.92);padding:2rem;align-items:center;justify-content:center}
.sw-entry .sw-lightbox:target{display:flex}
.sw-entry .sw-lightbox img{max-width:min(96vw,1500px);max-height:90vh;width:auto;height:auto;border-radius:8px}
.sw-entry .sw-lightbox-close{position:absolute;top:1rem;right:1.25rem;font-size:2rem;line-height:1;color:#fff;text-decoration:none}
@media(max-width:760px){
 .sw-entry .sw-glance,.sw-entry .sw-grid-2{grid-template-columns:1fr}
 .sw-entry .sw-video-grid{grid-template-columns:1fr}
 .sw-entry{width:calc(100% - 24px)}
}


/* migrated from Elder Treant legacy page-local CSS */

.sw-entry{max-width:1180px;width:calc(100% - 32px);margin:0 auto;line-height:1.68}
.sw-entry img{max-width:100%;height:auto}
.sw-entry .sw-page-title{font-size:clamp(2.1rem,5vw,3.7rem);line-height:1.08;margin:0 0 1rem;text-align:center}
.sw-entry .sw-lead{font-size:1.12rem}
.sw-entry .sw-glance{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.75rem;margin:1.25rem 0}
.sw-entry .sw-glance>div{padding:.85rem 1rem;border:1px solid rgba(128,128,128,.28);border-radius:10px}
.sw-entry .sw-glance strong{display:block;margin-bottom:.2rem}
.sw-entry .sw-callout{padding:1rem 1.1rem;margin:1.25rem 0;border-left:4px solid currentColor;background:rgba(128,128,128,.08)}
.sw-entry .sw-grid-2{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
.sw-entry .sw-stat{padding:1rem;border:1px solid rgba(128,128,128,.3);border-radius:12px;margin:.75rem 0}
.sw-entry .sw-stat h3,.sw-entry .sw-stat h4{margin-top:.2rem}
.sw-entry table{width:100%;border-collapse:collapse}
.sw-entry th,.sw-entry td{padding:.45rem .55rem;border-bottom:1px solid rgba(128,128,128,.25);vertical-align:top}
.sw-entry .sw-ability{text-align:center}
.sw-entry .sw-tabs{margin:1.5rem 0}
.sw-entry .sw-tabs>input{position:absolute;opacity:0;pointer-events:none}
.sw-entry .sw-tab-labels{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:.85rem}
.sw-entry .sw-tab-labels label{cursor:pointer;padding:.6rem .9rem;border:1px solid rgba(128,128,128,.35);border-radius:999px;font-weight:700}
.sw-entry .sw-panel{display:none}
#elder-55:checked~.sw-tab-labels label[for="elder-55"],
#elder-pf:checked~.sw-tab-labels label[for="elder-pf"],
#elder-35:checked~.sw-tab-labels label[for="elder-35"]{outline:2px solid currentColor;outline-offset:2px}
#elder-55:checked~.sw-panels .sw-55,
#elder-pf:checked~.sw-panels .sw-pf,
#elder-35:checked~.sw-panels .sw-35{display:block}
.sw-entry .sw-muted{opacity:.82}
.sw-entry .sw-hooks td:first-child{font-weight:700;width:28%}
.sw-entry .sw-license{margin-top:1rem}
.sw-entry .sw-hero{margin:0 0 1.35rem}
.sw-entry .sw-hero img{display:block;width:100%;aspect-ratio:16/9;object-fit:cover;border-radius:14px}
.sw-entry .sw-figure{margin:1.35rem 0}
.sw-entry .sw-figure img{display:block;width:100%;border-radius:12px}
.sw-entry .sw-figure figcaption{margin:.5rem 0 0;font-size:.92rem;opacity:.82}
.sw-entry .sw-lightbox{display:none;position:fixed;inset:0;z-index:99999;background:rgba(0,0,0,.92);padding:2rem;align-items:center;justify-content:center}
.sw-entry .sw-lightbox:target{display:flex}
.sw-entry .sw-lightbox img{max-width:min(96vw,1500px);max-height:90vh;width:auto;height:auto;border-radius:8px}
.sw-entry .sw-lightbox-close{position:absolute;top:1rem;right:1.25rem;font-size:2rem;line-height:1;color:#fff;text-decoration:none}
@media(max-width:760px){
 .sw-entry .sw-glance,.sw-entry .sw-grid-2{grid-template-columns:1fr}
 .sw-entry{width:calc(100% - 24px)}
 .sw-entry .sw-stat{overflow-x:auto}
}


/* migrated from Treant legacy page-local CSS */

.sw-entry{
  max-width:1180px;
  width:calc(100% - 32px);
  margin:0 auto;
  line-height:1.68;
}
.sw-entry *{box-sizing:border-box}
.sw-entry h1,
.sw-entry h2,
.sw-entry h3,
.sw-entry h4{line-height:1.22}
.sw-entry h1{text-align:center;margin:0 0 1rem}
.sw-entry h2{margin-top:2.2rem}
.sw-entry h3{margin-top:1.55rem}
.sw-entry a{text-underline-offset:2px}
.sw-lead{
  font-size:1.12rem;
  max-width:920px;
  margin:1.25rem auto 1.5rem;
}
.sw-hero,
.sw-figure{
  margin:1.25rem auto 1.6rem;
  text-align:center;
}
.sw-hero img,
.sw-figure img{
  display:block;
  width:100%;
  height:auto;
  border-radius:10px;
}
.sw-figure{max-width:960px}
.sw-hero figcaption,
.sw-figure figcaption{
  margin-top:.55rem;
  font-size:.92rem;
  opacity:.82;
}
.sw-image-slot{
  min-height:360px;
  display:flex;
  align-items:center;
  justify-content:center;
  text-align:center;
  padding:2rem;
  margin:1.1rem 0 1.6rem;
  border:1px dashed currentColor;
  border-radius:10px;
  opacity:.72;
}
.sw-image-slot strong{display:block;font-size:1.1rem;margin-bottom:.35rem}
.sw-card{
  border:1px solid rgba(127,127,127,.35);
  border-radius:10px;
  padding:1.1rem 1.2rem;
  margin:1.25rem 0;
}
.sw-at-glance{
  width:100%;
  border-collapse:collapse;
  margin:1.15rem 0 1.7rem;
}
.sw-at-glance th,
.sw-at-glance td{
  text-align:left;
  vertical-align:top;
  padding:.68rem .75rem;
  border-bottom:1px solid rgba(127,127,127,.28);
}
.sw-at-glance th{width:28%}
.sw-rules-tabs{
  margin:1.25rem 0 1.8rem;
}
.sw-rules-tabs>input{
  position:absolute;
  opacity:0;
  pointer-events:none;
}
.sw-tab-labels{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
}
.sw-tab-labels label{
  display:flex;
  align-items:center;
  justify-content:center;
  min-height:48px;
  padding:.65rem .5rem;
  margin:0;
  border:1px solid rgba(127,127,127,.38);
  border-bottom:0;
  cursor:pointer;
  font-weight:700;
  text-align:center;
}
.sw-tab-labels label+label{border-left:0}
#sw-treant-55e:checked~.sw-tab-labels label[for="sw-treant-55e"],
#sw-treant-pf1:checked~.sw-tab-labels label[for="sw-treant-pf1"],
#sw-treant-35:checked~.sw-tab-labels label[for="sw-treant-35"]{
  border-bottom:3px solid currentColor;
}
.sw-tab-labels label:focus-visible,
.sw-entry a:focus-visible{
  outline:3px solid currentColor;
  outline-offset:3px;
}
.sw-tab-panels{
  border:1px solid rgba(127,127,127,.38);
  border-top:0;
  padding:1.2rem;
}
.sw-panel{display:none}
#sw-treant-55e:checked~.sw-tab-panels .sw-panel-55e{display:block}
#sw-treant-pf1:checked~.sw-tab-panels .sw-panel-pf1{display:block}
#sw-treant-35:checked~.sw-tab-panels .sw-panel-35{display:block}
.sw-statblock{
  max-width:960px;
  margin:0 auto;
}
.sw-statblock .sw-creature-line{
  font-style:italic;
  margin-top:-.35rem;
}
.sw-statblock hr{
  border:0;
  border-top:1px solid rgba(127,127,127,.32);
  margin:1rem 0;
}
.sw-ability-grid{
  display:grid;
  grid-template-columns:repeat(6,1fr);
  gap:.45rem;
  margin:1rem 0;
}
.sw-ability{
  border:1px solid rgba(127,127,127,.35);
  border-radius:7px;
  padding:.55rem .35rem;
  text-align:center;
}
.sw-ability strong,
.sw-ability span{display:block}
.sw-stat-table{
  width:100%;
  border-collapse:collapse;
  margin:.7rem 0 1rem;
}
.sw-stat-table th,
.sw-stat-table td{
  text-align:left;
  vertical-align:top;
  padding:.48rem .55rem;
  border-bottom:1px solid rgba(127,127,127,.25);
}
.sw-stat-table th{width:27%}
.sw-source-note,
.sw-campaign-note{
  font-size:.94rem;
  padding:.85rem 1rem;
  margin:1rem 0;
  border-left:4px solid currentColor;
  background:rgba(127,127,127,.08);
}
.sw-columns{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:1rem;
  margin:1rem 0;
}
.sw-columns .sw-card{margin:0}
.sw-hook{
  margin:1rem 0;
  padding-bottom:.8rem;
  border-bottom:1px solid rgba(127,127,127,.22);
}
.sw-hook:last-child{border-bottom:0}
.sw-related{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:.8rem;
  margin:1rem 0;
}
.sw-related a{
  display:block;
  padding:.85rem 1rem;
  border:1px solid rgba(127,127,127,.32);
  border-radius:8px;
  text-decoration:none;
}
.sw-related a:hover,
.sw-related a:focus{text-decoration:underline}
.sw-source-list li{margin:.45rem 0}
.sw-small{font-size:.92rem}
.sw-entry{overflow-wrap:anywhere}
.sw-video-wrap{max-width:920px;margin:1.1rem auto 1.8rem}
.sw-video{position:relative;width:100%;padding-top:56.25%;overflow:hidden;border-radius:10px}
.sw-video iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.sw-lightbox{
  display:none;
  position:fixed;
  inset:0;
  z-index:9999;
  padding:3vw;
  background:rgba(0,0,0,.9);
  align-items:center;
  justify-content:center;
}
.sw-lightbox:target{display:flex}
.sw-lightbox img{
  max-width:94vw;
  max-height:88vh;
  width:auto;
  height:auto;
}
.sw-lightbox-close{
  position:absolute;
  top:1rem;
  right:1.25rem;
  font-size:2rem;
  color:#fff !important;
  text-decoration:none;
}
@media (max-width:760px){
  .sw-entry{width:calc(100% - 22px)}
  .sw-image-slot{min-height:230px}
  .sw-ability-grid{grid-template-columns:repeat(3,1fr)}
  .sw-columns,
  .sw-related{grid-template-columns:1fr}
  .sw-at-glance th,
  .sw-stat-table th{width:38%}
  .sw-tab-labels label{font-size:.88rem;padding:.6rem .25rem}
  .sw-tab-panels{padding:.9rem}
}


/* --- WPWriter addition --- */

/* MONSTER WORKFLOW 3.1 — final cascade lock */
html body .sw-entry.sw-monster-entry .sw-tabs > .sw-tab-labels {
  display:grid !important;
  gap:.65rem !important;
}
html body .sw-entry.sw-monster-entry .sw-tabs:has(> .sw-tab-labels > label:nth-child(1):last-child) > .sw-tab-labels{grid-template-columns:1fr !important}
html body .sw-entry.sw-monster-entry .sw-tabs:has(> .sw-tab-labels > label:nth-child(2):last-child) > .sw-tab-labels{grid-template-columns:repeat(2,minmax(0,1fr)) !important}
html body .sw-entry.sw-monster-entry .sw-tabs:has(> .sw-tab-labels > label:nth-child(3):last-child) > .sw-tab-labels{grid-template-columns:repeat(3,minmax(0,1fr)) !important}
html body .sw-entry.sw-monster-entry .sw-tabs:has(> .sw-tab-labels > label:nth-child(4):last-child) > .sw-tab-labels{grid-template-columns:repeat(4,minmax(0,1fr)) !important}
html body .sw-entry.sw-monster-entry .sw-tabs > .sw-tab-labels > label{display:flex !important;visibility:visible !important;opacity:1 !important}

html body .sw-entry.sw-monster-entry .sw-tabs > .sw-tab-panels > .sw-tab-panel,
html body .sw-entry.sw-monster-entry .sw-tabs > .sw-panels > .sw-panel{
  display:none !important;visibility:hidden !important;height:0 !important;min-height:0 !important;margin:0 !important;padding:0 !important;overflow:hidden !important;border:0 !important
}

html body .sw-entry.sw-monster-entry .sw-tabs > :is(input[id$="-55"],input[id$="-55e"],input[id$="-2024"]):checked ~ .sw-tab-panels > :is(.sw-tab-panel[id$="-55"],.sw-tab-panel[id$="-55e"],.sw-tab-panel[id$="-2024"]),
html body .sw-entry.sw-monster-entry .sw-tabs > :is(input[id$="-5e"],input[id$="-2014"]):checked ~ .sw-tab-panels > :is(.sw-tab-panel[id$="-5e"],.sw-tab-panel[id$="-2014"]),
html body .sw-entry.sw-monster-entry .sw-tabs > :is(input[id$="-pf"],input[id$="-pf1"]):checked ~ .sw-tab-panels > :is(.sw-tab-panel[id$="-pf"],.sw-tab-panel[id$="-pf1"]),
html body .sw-entry.sw-monster-entry .sw-tabs > input[id$="-35"]:checked ~ .sw-tab-panels > .sw-tab-panel[id$="-35"],
html body .sw-entry.sw-monster-entry .sw-tabs > :is(input[id$="-55"],input[id$="-55e"],input[id$="-2024"]):checked ~ .sw-panels > :is(.sw-55,.sw-55e,.sw-2024),
html body .sw-entry.sw-monster-entry .sw-tabs > :is(input[id$="-5e"],input[id$="-2014"]):checked ~ .sw-panels > :is(.sw-5e,.sw-2014),
html body .sw-entry.sw-monster-entry .sw-tabs > :is(input[id$="-pf"],input[id$="-pf1"]):checked ~ .sw-panels > :is(.sw-pf,.sw-pf1),
html body .sw-entry.sw-monster-entry .sw-tabs > input[id$="-35"]:checked ~ .sw-panels > .sw-35{
  display:block !important;visibility:visible !important;height:auto !important;min-height:0 !important;margin:0 0 1.5rem !important;padding:clamp(1rem,2vw,1.45rem) !important;overflow:visible !important;border:1px solid rgba(230,198,142,.34) !important;border-top:3px solid #e6c68e !important;border-radius:8px !important;background:#19191e !important
}

html body .sw-entry.sw-monster-entry .sw-monster-hero h1,
html body .sw-entry.sw-monster-entry h1.sw-monster-title-long{
  overflow-wrap:normal !important;word-break:normal !important;hyphens:none !important
}
@media(max-width:780px){
  html body .sw-entry.sw-monster-entry .sw-tabs > .sw-tab-labels{grid-template-columns:repeat(2,minmax(0,1fr)) !important}
}
@media(max-width:520px){
  html body .sw-entry.sw-monster-entry .sw-tabs > .sw-tab-labels{grid-template-columns:1fr !important}
}
/* END MONSTER WORKFLOW 3.1 */


/* --- WPWriter addition --- */

/* MONSTER WORKFLOW 3.2 — supports both current and legacy tab wrappers */
html body .sw-entry.sw-monster-entry :is(.sw-tabs,.sw-rules-tabs) > input[type="radio"]{
  position:absolute !important;inline-size:1px !important;block-size:1px !important;margin:-1px !important;padding:0 !important;
  overflow:hidden !important;clip:rect(0 0 0 0) !important;clip-path:inset(50%) !important;white-space:nowrap !important;border:0 !important;opacity:0 !important
}
html body .sw-entry.sw-monster-entry :is(.sw-tabs,.sw-rules-tabs) > .sw-tab-labels{
  display:grid !important;gap:.65rem !important;width:100% !important;margin:0 0 1rem !important
}
html body .sw-entry.sw-monster-entry :is(.sw-tabs,.sw-rules-tabs):has(> .sw-tab-labels > label:nth-child(1):last-child) > .sw-tab-labels{grid-template-columns:1fr !important}
html body .sw-entry.sw-monster-entry :is(.sw-tabs,.sw-rules-tabs):has(> .sw-tab-labels > label:nth-child(2):last-child) > .sw-tab-labels{grid-template-columns:repeat(2,minmax(0,1fr)) !important}
html body .sw-entry.sw-monster-entry :is(.sw-tabs,.sw-rules-tabs):has(> .sw-tab-labels > label:nth-child(3):last-child) > .sw-tab-labels{grid-template-columns:repeat(3,minmax(0,1fr)) !important}
html body .sw-entry.sw-monster-entry :is(.sw-tabs,.sw-rules-tabs):has(> .sw-tab-labels > label:nth-child(4):last-child) > .sw-tab-labels{grid-template-columns:repeat(4,minmax(0,1fr)) !important}
html body .sw-entry.sw-monster-entry :is(.sw-tabs,.sw-rules-tabs) > .sw-tab-labels > label{
  display:flex !important;visibility:visible !important;opacity:1 !important;flex-direction:column !important;justify-content:center !important;align-items:center !important;
  min-width:0 !important;min-height:76px !important;padding:.72rem .8rem !important;text-align:center !important;cursor:pointer !important;
  border:1px solid rgba(230,198,142,.42) !important;border-radius:7px !important;background:#222127 !important
}

/* All known panel containers and panel class generations. */
html body .sw-entry.sw-monster-entry :is(.sw-tabs,.sw-rules-tabs) > .sw-tab-panels > :is(.sw-tab-panel,.sw-panel),
html body .sw-entry.sw-monster-entry :is(.sw-tabs,.sw-rules-tabs) > .sw-panels > .sw-panel{
  display:none !important;visibility:hidden !important;height:0 !important;min-height:0 !important;margin:0 !important;padding:0 !important;overflow:hidden !important;border:0 !important
}

/* 5.5e / 2024 */
html body .sw-entry.sw-monster-entry :is(.sw-tabs,.sw-rules-tabs) > :is(input[id$="-55"],input[id$="-55e"],input[id$="-2024"]):checked ~ .sw-tab-panels > :is(.sw-tab-panel[id$="-55"],.sw-tab-panel[id$="-55e"],.sw-tab-panel[id$="-2024"],.sw-panel-55,.sw-panel-55e,.sw-panel-2024),
html body .sw-entry.sw-monster-entry :is(.sw-tabs,.sw-rules-tabs) > :is(input[id$="-55"],input[id$="-55e"],input[id$="-2024"]):checked ~ .sw-panels > :is(.sw-55,.sw-55e,.sw-2024,.sw-panel-55,.sw-panel-55e,.sw-panel-2024),
/* 5e / 2014 */
html body .sw-entry.sw-monster-entry :is(.sw-tabs,.sw-rules-tabs) > :is(input[id$="-5e"],input[id$="-2014"]):checked ~ .sw-tab-panels > :is(.sw-tab-panel[id$="-5e"],.sw-tab-panel[id$="-2014"],.sw-panel-5e,.sw-panel-2014),
html body .sw-entry.sw-monster-entry :is(.sw-tabs,.sw-rules-tabs) > :is(input[id$="-5e"],input[id$="-2014"]):checked ~ .sw-panels > :is(.sw-5e,.sw-2014,.sw-panel-5e,.sw-panel-2014),
/* PF1e */
html body .sw-entry.sw-monster-entry :is(.sw-tabs,.sw-rules-tabs) > :is(input[id$="-pf"],input[id$="-pf1"]):checked ~ .sw-tab-panels > :is(.sw-tab-panel[id$="-pf"],.sw-tab-panel[id$="-pf1"],.sw-panel-pf,.sw-panel-pf1),
html body .sw-entry.sw-monster-entry :is(.sw-tabs,.sw-rules-tabs) > :is(input[id$="-pf"],input[id$="-pf1"]):checked ~ .sw-panels > :is(.sw-pf,.sw-pf1,.sw-panel-pf,.sw-panel-pf1),
/* 3.5e */
html body .sw-entry.sw-monster-entry :is(.sw-tabs,.sw-rules-tabs) > input[id$="-35"]:checked ~ .sw-tab-panels > :is(.sw-tab-panel[id$="-35"],.sw-panel-35),
html body .sw-entry.sw-monster-entry :is(.sw-tabs,.sw-rules-tabs) > input[id$="-35"]:checked ~ .sw-panels > :is(.sw-35,.sw-panel-35){
  display:block !important;visibility:visible !important;height:auto !important;min-height:0 !important;margin:0 0 1.5rem !important;
  padding:clamp(1rem,2vw,1.45rem) !important;overflow:visible !important;border:1px solid rgba(230,198,142,.34) !important;
  border-top:3px solid #e6c68e !important;border-radius:8px !important;background:#19191e !important
}

/* Active controls for both wrappers. */
html body .sw-entry.sw-monster-entry :is(.sw-tabs,.sw-rules-tabs) > :is(input[id$="-55"],input[id$="-55e"],input[id$="-2024"]):checked ~ .sw-tab-labels > :is(label[for$="-55"],label[for$="-55e"],label[for$="-2024"]),
html body .sw-entry.sw-monster-entry :is(.sw-tabs,.sw-rules-tabs) > :is(input[id$="-5e"],input[id$="-2014"]):checked ~ .sw-tab-labels > :is(label[for$="-5e"],label[for$="-2014"]),
html body .sw-entry.sw-monster-entry :is(.sw-tabs,.sw-rules-tabs) > :is(input[id$="-pf"],input[id$="-pf1"]):checked ~ .sw-tab-labels > :is(label[for$="-pf"],label[for$="-pf1"]),
html body .sw-entry.sw-monster-entry :is(.sw-tabs,.sw-rules-tabs) > input[id$="-35"]:checked ~ .sw-tab-labels > label[for$="-35"]{
  border-color:#efd18d !important;box-shadow:inset 0 0 0 1px #efd18d,0 0 0 2px rgba(239,209,141,.16) !important
}

@media(max-width:780px){
  html body .sw-entry.sw-monster-entry :is(.sw-tabs,.sw-rules-tabs) > .sw-tab-labels{grid-template-columns:repeat(2,minmax(0,1fr)) !important}
}
@media(max-width:520px){
  html body .sw-entry.sw-monster-entry :is(.sw-tabs,.sw-rules-tabs) > .sw-tab-labels{grid-template-columns:1fr !important}
}
/* END MONSTER WORKFLOW 3.2 */


/* --- WPWriter addition --- */
/* SpiralWorlds deity tabs: three-edition layout */
html body .sw-entry.sw-entry .sw-tabs.sw-tabs-3 > .sw-tab-labels {
  grid-template-columns: repeat(3,minmax(0,1fr)) !important;
}
@media (max-width:780px) {
  html body .sw-entry.sw-entry .sw-tabs.sw-tabs-3 > .sw-tab-labels {
    grid-template-columns: repeat(2,minmax(0,1fr)) !important;
  }
}
@media (max-width:520px) {
  html body .sw-entry.sw-entry .sw-tabs.sw-tabs-3 > .sw-tab-labels {
    grid-template-columns: 1fr !important;
  }
}

/* --- WPWriter addition --- */

/* ============================================================
   MONSTER WORKFLOW 3.3 — AT A GLANCE REPAIR
   Prevent legacy .sw-glance grid rules from turning the outer
   section into columns and crushing the actual facts grid.
   ============================================================ */

html body .sw-entry.sw-monster-entry section.sw-monster-glance {
  display: block !important;
  width: 100% !important;
  max-width: 1180px !important;
  margin: 1.5rem auto 2rem !important;
  padding: clamp(1rem, 2vw, 1.35rem) !important;
  box-sizing: border-box !important;
}

html body .sw-entry.sw-monster-entry section.sw-monster-glance > h2 {
  display: block !important;
  width: 100% !important;
  max-width: none !important;
  margin: 0 0 1rem !important;
}

html body .sw-entry.sw-monster-entry section.sw-monster-glance > .sw-glance-grid {
  display: grid !important;
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  gap: .8rem !important;
  width: 100% !important;
  max-width: none !important;
  margin: 0 !important;
  padding: 0 !important;
}

html body .sw-entry.sw-monster-entry section.sw-monster-glance > .sw-glance-grid > div {
  display: block !important;
  min-width: 0 !important;
  width: auto !important;
  padding: .9rem 1rem !important;
  margin: 0 !important;
  border: 1px solid rgba(230,198,142,.24) !important;
  border-radius: 8px !important;
  background: rgba(255,255,255,.025) !important;
}

html body .sw-entry.sw-monster-entry section.sw-monster-glance > .sw-glance-grid > div > strong {
  display: block !important;
  margin: 0 0 .28rem !important;
  color: #d9ad4f !important;
  font-size: .78rem !important;
  line-height: 1.25 !important;
  letter-spacing: .02em !important;
}

html body .sw-entry.sw-monster-entry section.sw-monster-glance > .sw-glance-grid > div > span {
  display: block !important;
  min-width: 0 !important;
  color: #f2ece3 !important;
  font-size: 1rem !important;
  line-height: 1.48 !important;
  overflow-wrap: normal !important;
  word-break: normal !important;
  hyphens: none !important;
}

/* Monsters whose At a Glance is itself the facts grid. */
html body .sw-entry.sw-monster-entry > .sw-glance:not(section) {
  width: 100% !important;
  max-width: 1180px !important;
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  gap: .8rem !important;
  margin: 1rem auto 2rem !important;
}

html body .sw-entry.sw-monster-entry > .sw-glance:not(section) > div {
  min-width: 0 !important;
  padding: .9rem 1rem !important;
}

/* If a legacy monster uses section.sw-glance without the
   sw-monster-glance class but contains a nested glance grid,
   treat it as an outer panel too. */
html body .sw-entry.sw-monster-entry section.sw-glance:has(> .sw-glance-grid) {
  display: block !important;
  width: 100% !important;
  max-width: 1180px !important;
}
html body .sw-entry.sw-monster-entry section.sw-glance:has(> .sw-glance-grid) > .sw-glance-grid {
  display: grid !important;
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  width: 100% !important;
  max-width: none !important;
  margin: 0 !important;
}

@media (max-width: 900px) {
  html body .sw-entry.sw-monster-entry section.sw-monster-glance > .sw-glance-grid,
  html body .sw-entry.sw-monster-entry section.sw-glance:has(> .sw-glance-grid) > .sw-glance-grid,
  html body .sw-entry.sw-monster-entry > .sw-glance:not(section) {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
}

@media (max-width: 620px) {
  html body .sw-entry.sw-monster-entry section.sw-monster-glance > .sw-glance-grid,
  html body .sw-entry.sw-monster-entry section.sw-glance:has(> .sw-glance-grid) > .sw-glance-grid,
  html body .sw-entry.sw-monster-entry > .sw-glance:not(section) {
    grid-template-columns: 1fr !important;
  }
}

/* END MONSTER WORKFLOW 3.3 — AT A GLANCE */


/* --- WPWriter addition --- */

/* MONSTER WORKFLOW 3.3.1 — all At-a-Glance wrapper elements */
html body .sw-entry.sw-monster-entry .sw-monster-glance:has(> .sw-glance-grid),
html body .sw-entry.sw-monster-entry .sw-glance:has(> .sw-glance-grid) {
  display: block !important;
  width: 100% !important;
  max-width: 1180px !important;
  margin: 1.5rem auto 2rem !important;
  padding: clamp(1rem,2vw,1.35rem) !important;
  box-sizing: border-box !important;
}

html body .sw-entry.sw-monster-entry .sw-monster-glance:has(> .sw-glance-grid) > h2,
html body .sw-entry.sw-monster-entry .sw-glance:has(> .sw-glance-grid) > h2 {
  display: block !important;
  width: 100% !important;
  max-width: none !important;
  margin: 0 0 1rem !important;
}

html body .sw-entry.sw-monster-entry .sw-monster-glance:has(> .sw-glance-grid) > .sw-glance-grid,
html body .sw-entry.sw-monster-entry .sw-glance:has(> .sw-glance-grid) > .sw-glance-grid {
  display: grid !important;
  grid-template-columns: repeat(3,minmax(0,1fr)) !important;
  gap: .8rem !important;
  width: 100% !important;
  max-width: none !important;
  margin: 0 !important;
  padding: 0 !important;
}

@media (max-width:900px) {
  html body .sw-entry.sw-monster-entry .sw-monster-glance:has(> .sw-glance-grid) > .sw-glance-grid,
  html body .sw-entry.sw-monster-entry .sw-glance:has(> .sw-glance-grid) > .sw-glance-grid {
    grid-template-columns: repeat(2,minmax(0,1fr)) !important;
  }
}
@media (max-width:620px) {
  html body .sw-entry.sw-monster-entry .sw-monster-glance:has(> .sw-glance-grid) > .sw-glance-grid,
  html body .sw-entry.sw-monster-entry .sw-glance:has(> .sw-glance-grid) > .sw-glance-grid {
    grid-template-columns: 1fr !important;
  }
}
/* END MONSTER WORKFLOW 3.3.1 */


/* --- WPWriter addition --- */

/* MONSTER WORKFLOW 3.4 — canonical At a Glance wrapper */
html body .sw-entry.sw-monster-entry .sw-monster-glance {
  display:block !important;
  width:100% !important;
  max-width:1180px !important;
  margin:1.5rem auto 2rem !important;
  padding:clamp(1rem,2vw,1.35rem) !important;
  border:1px solid rgba(230,198,142,.34) !important;
  border-radius:10px !important;
  background:rgba(42,34,24,.72) !important;
  box-sizing:border-box !important;
}
html body .sw-entry.sw-monster-entry .sw-monster-glance > h2 {
  display:block !important;
  width:100% !important;
  max-width:none !important;
  margin:0 0 1rem !important;
  padding:0 !important;
}
html body .sw-entry.sw-monster-entry .sw-monster-glance > .sw-glance-grid {
  display:grid !important;
  grid-template-columns:repeat(3,minmax(0,1fr)) !important;
  gap:.8rem !important;
  width:100% !important;
  max-width:none !important;
  margin:0 !important;
  padding:0 !important;
}
html body .sw-entry.sw-monster-entry .sw-monster-glance > .sw-glance-grid > div {
  display:block !important;
  min-width:0 !important;
  width:auto !important;
  margin:0 !important;
  padding:.9rem 1rem !important;
  border:1px solid rgba(230,198,142,.24) !important;
  border-radius:8px !important;
  background:rgba(0,0,0,.16) !important;
  box-sizing:border-box !important;
}
html body .sw-entry.sw-monster-entry .sw-monster-glance > .sw-glance-grid > div > strong {
  display:block !important;
  margin:0 0 .3rem !important;
  color:#d9ad4f !important;
  font-size:.8rem !important;
  line-height:1.25 !important;
}
html body .sw-entry.sw-monster-entry .sw-monster-glance > .sw-glance-grid > div > span {
  display:block !important;
  min-width:0 !important;
  max-width:none !important;
  color:#f2ece3 !important;
  font-size:1rem !important;
  line-height:1.5 !important;
  white-space:normal !important;
  overflow-wrap:break-word !important;
  word-break:normal !important;
  hyphens:auto !important;
}
@media(max-width:900px){
  html body .sw-entry.sw-monster-entry .sw-monster-glance > .sw-glance-grid{
    grid-template-columns:repeat(2,minmax(0,1fr)) !important;
  }
}
@media(max-width:620px){
  html body .sw-entry.sw-monster-entry .sw-monster-glance > .sw-glance-grid{
    grid-template-columns:1fr !important;
  }
}
/* END MONSTER WORKFLOW 3.4 */


/* --- WPWriter addition --- */

/* MONSTER WORKFLOW — Diprotodon hero render QA fix */
html body .sw-entry.sw-monster-entry.sw-diprotodon .sw-monster-hero {
  display:grid !important;
  grid-template-columns:minmax(360px,.9fr) minmax(0,1.45fr) !important;
  gap:0 !important;
  align-items:center !important;
  overflow:hidden !important;
}

html body .sw-entry.sw-monster-entry.sw-diprotodon .sw-monster-hero-copy {
  min-width:0 !important;
  padding:clamp(1.5rem,2.4vw,2.6rem) !important;
  display:flex !important;
  flex-direction:column !important;
  justify-content:center !important;
}

html body .sw-entry.sw-monster-entry.sw-diprotodon .sw-monster-hero h1,
html body .sw-entry.sw-monster-entry.sw-diprotodon h1#diprotodon-title {
  margin:0 0 .8rem !important;
  max-width:100% !important;
  font-size:clamp(3rem,4.6vw,4.9rem) !important;
  line-height:.98 !important;
  letter-spacing:-.025em !important;
  white-space:normal !important;
  overflow-wrap:normal !important;
  word-break:normal !important;
  hyphens:none !important;
  text-wrap:balance !important;
}

html body .sw-entry.sw-monster-entry.sw-diprotodon .sw-monster-subtitle {
  margin:0 0 1rem !important;
  max-width:25ch !important;
  font-size:clamp(1.08rem,1.35vw,1.45rem) !important;
  line-height:1.38 !important;
  text-transform:none !important;
  letter-spacing:0 !important;
  white-space:normal !important;
  overflow-wrap:normal !important;
  word-break:normal !important;
  hyphens:none !important;
}

html body .sw-entry.sw-monster-entry.sw-diprotodon .sw-monster-tagline {
  margin:0 0 1.15rem !important;
  max-width:32ch !important;
  font-size:1rem !important;
  line-height:1.45 !important;
}

html body .sw-entry.sw-monster-entry.sw-diprotodon .sw-monster-tags {
  display:flex !important;
  flex-wrap:wrap !important;
  gap:.65rem !important;
  margin:0 !important;
}

html body .sw-entry.sw-monster-entry.sw-diprotodon .sw-monster-hero-media {
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  min-width:0 !important;
  padding:clamp(.7rem,1.2vw,1rem) !important;
  overflow:hidden !important;
  background:#0d0e0f !important;
}

html body .sw-entry.sw-monster-entry.sw-diprotodon .sw-monster-hero-media a {
  display:block !important;
  width:100% !important;
  height:auto !important;
}

html body .sw-entry.sw-monster-entry.sw-diprotodon .sw-monster-hero-media img {
  display:block !important;
  width:100% !important;
  height:auto !important;
  max-height:none !important;
  min-height:0 !important;
  aspect-ratio:16 / 9 !important;
  object-fit:contain !important;
  object-position:center center !important;
  margin:0 !important;
}

@media(max-width:1100px){
  html body .sw-entry.sw-monster-entry.sw-diprotodon .sw-monster-hero{
    grid-template-columns:minmax(330px,1fr) minmax(0,1.2fr) !important;
  }
  html body .sw-entry.sw-monster-entry.sw-diprotodon .sw-monster-hero h1,
  html body .sw-entry.sw-monster-entry.sw-diprotodon h1#diprotodon-title{
    font-size:clamp(2.8rem,5vw,4.2rem) !important;
  }
}

@media(max-width:820px){
  html body .sw-entry.sw-monster-entry.sw-diprotodon .sw-monster-hero{
    grid-template-columns:1fr !important;
    align-items:start !important;
  }
  html body .sw-entry.sw-monster-entry.sw-diprotodon .sw-monster-hero-copy{
    order:1 !important;
  }
  html body .sw-entry.sw-monster-entry.sw-diprotodon .sw-monster-hero-media{
    order:2 !important;
    padding:0 !important;
  }
  html body .sw-entry.sw-monster-entry.sw-diprotodon .sw-monster-subtitle,
  html body .sw-entry.sw-monster-entry.sw-diprotodon .sw-monster-tagline{
    max-width:none !important;
  }
  html body .sw-entry.sw-monster-entry.sw-diprotodon .sw-monster-hero-media img{
    width:100% !important;
    height:auto !important;
    aspect-ratio:16 / 9 !important;
    object-fit:contain !important;
  }
}
/* END Diprotodon hero render QA fix */


/* --- WPWriter addition --- */

/* Outsider family illustrated cards */
.sw-bestiary-hub #families .sw-grid{align-items:stretch}
.sw-bestiary-hub #families .sw-family-card{display:flex;flex-direction:column;padding:0;overflow:hidden;min-height:100%}
.sw-bestiary-hub #families .sw-family-card .sw-card-image{display:block;width:100%;aspect-ratio:3/2;object-fit:cover;margin:0}
.sw-bestiary-hub #families .sw-family-card h3{margin:0;padding:1rem 1rem .35rem}
.sw-bestiary-hub #families .sw-family-card p{margin:0;padding:0 1rem 1rem}


/* --- WPWriter addition --- */

/* MONSTER WORKFLOW — Megalania hero render QA fix */
html body .sw-entry.sw-monster-entry.sw-megalania .sw-monster-hero {
  display:grid !important;
  grid-template-columns:minmax(390px,.95fr) minmax(0,1.45fr) !important;
  gap:0 !important;
  align-items:center !important;
  overflow:hidden !important;
}

html body .sw-entry.sw-monster-entry.sw-megalania .sw-monster-hero-copy {
  min-width:0 !important;
  padding:clamp(1.5rem,2.3vw,2.5rem) !important;
  display:flex !important;
  flex-direction:column !important;
  justify-content:center !important;
}

html body .sw-entry.sw-monster-entry.sw-megalania .sw-monster-hero h1,
html body .sw-entry.sw-monster-entry.sw-megalania h1#megalania-title {
  margin:0 0 .8rem !important;
  max-width:100% !important;
  font-size:clamp(2.9rem,4vw,4.35rem) !important;
  line-height:.98 !important;
  letter-spacing:-.025em !important;
  white-space:normal !important;
  overflow-wrap:normal !important;
  word-break:normal !important;
  hyphens:none !important;
  text-wrap:balance !important;
  position:relative !important;
  z-index:1 !important;
}

html body .sw-entry.sw-monster-entry.sw-megalania .sw-monster-subtitle {
  margin:0 0 1rem !important;
  max-width:28ch !important;
  font-size:clamp(1.05rem,1.28vw,1.38rem) !important;
  line-height:1.42 !important;
  text-transform:none !important;
  letter-spacing:0 !important;
  white-space:normal !important;
  overflow-wrap:normal !important;
  word-break:normal !important;
  hyphens:none !important;
}

html body .sw-entry.sw-monster-entry.sw-megalania .sw-monster-tagline {
  margin:0 0 1.15rem !important;
  max-width:34ch !important;
  font-size:1rem !important;
  line-height:1.45 !important;
}

html body .sw-entry.sw-monster-entry.sw-megalania .sw-monster-tags {
  display:flex !important;
  flex-wrap:wrap !important;
  gap:.65rem !important;
  margin:0 !important;
}

html body .sw-entry.sw-monster-entry.sw-megalania .sw-monster-hero-media {
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  min-width:0 !important;
  overflow:hidden !important;
  padding:clamp(.7rem,1.1vw,1rem) !important;
  background:#0d0e0f !important;
}

html body .sw-entry.sw-monster-entry.sw-megalania .sw-monster-hero-media a {
  display:block !important;
  width:100% !important;
  height:auto !important;
}

html body .sw-entry.sw-monster-entry.sw-megalania .sw-monster-hero-media img {
  display:block !important;
  width:100% !important;
  height:auto !important;
  min-height:0 !important;
  max-height:none !important;
  aspect-ratio:16 / 9 !important;
  object-fit:contain !important;
  object-position:center center !important;
  margin:0 !important;
}

@media(max-width:1100px){
  html body .sw-entry.sw-monster-entry.sw-megalania .sw-monster-hero{
    grid-template-columns:minmax(350px,1fr) minmax(0,1.2fr) !important;
  }
  html body .sw-entry.sw-monster-entry.sw-megalania .sw-monster-hero h1,
  html body .sw-entry.sw-monster-entry.sw-megalania h1#megalania-title{
    font-size:clamp(2.7rem,4.6vw,3.9rem) !important;
  }
}

@media(max-width:820px){
  html body .sw-entry.sw-monster-entry.sw-megalania .sw-monster-hero{
    grid-template-columns:1fr !important;
    align-items:start !important;
  }
  html body .sw-entry.sw-monster-entry.sw-megalania .sw-monster-hero-copy{
    order:1 !important;
  }
  html body .sw-entry.sw-monster-entry.sw-megalania .sw-monster-hero-media{
    order:2 !important;
    padding:0 !important;
  }
  html body .sw-entry.sw-monster-entry.sw-megalania .sw-monster-subtitle,
  html body .sw-entry.sw-monster-entry.sw-megalania .sw-monster-tagline{
    max-width:none !important;
  }
  html body .sw-entry.sw-monster-entry.sw-megalania .sw-monster-hero-media img{
    width:100% !important;
    height:auto !important;
    aspect-ratio:16 / 9 !important;
    object-fit:contain !important;
    object-position:center center !important;
  }
}
/* END Megalania hero render QA fix */


/* --- WPWriter addition --- */

/* OUTSIDER FAMILY GRID — isolated from global .sw-card rules */
html body .sw-entry.sw-bestiary-hub #families.sw-outsider-families {
  margin-top: 2.5rem !important;
}
html body .sw-entry.sw-bestiary-hub #families.sw-outsider-families > h2 {
  margin: 0 0 .45rem !important;
}
html body .sw-entry.sw-bestiary-hub #families.sw-outsider-families > .sw-family-intro {
  max-width: 1050px !important;
  margin: 0 0 1.4rem !important;
}
html body .sw-entry.sw-bestiary-hub #families .sw-family-grid {
  display: grid !important;
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  gap: 1.25rem !important;
  align-items: stretch !important;
  width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
}
html body .sw-entry.sw-bestiary-hub #families .sw-family-tile {
  display: flex !important;
  flex-direction: column !important;
  min-width: 0 !important;
  min-height: 0 !important;
  height: auto !important;
  margin: 0 !important;
  padding: 0 !important;
  overflow: hidden !important;
  border: 1px solid #3f4550 !important;
  border-radius: 8px !important;
  background: #10151d !important;
  box-shadow: none !important;
}
html body .sw-entry.sw-bestiary-hub #families .sw-family-image-link {
  display: block !important;
  width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  line-height: 0 !important;
  text-decoration: none !important;
  overflow: hidden !important;
  flex: 0 0 auto !important;
}
html body .sw-entry.sw-bestiary-hub #families .sw-family-image-link img {
  display: block !important;
  position: static !important;
  float: none !important;
  width: 100% !important;
  max-width: none !important;
  height: auto !important;
  aspect-ratio: 16 / 9 !important;
  object-fit: cover !important;
  object-position: center !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
}
html body .sw-entry.sw-bestiary-hub #families .sw-family-copy {
  display: flex !important;
  flex-direction: column !important;
  flex: 1 1 auto !important;
  gap: .45rem !important;
  min-height: 0 !important;
  margin: 0 !important;
  padding: .95rem 1rem 1.05rem !important;
  background: #10151d !important;
}
html body .sw-entry.sw-bestiary-hub #families .sw-family-copy h3 {
  position: static !important;
  margin: 0 !important;
  padding: 0 0 .45rem !important;
  border-bottom: 1px solid rgba(230,198,142,.26) !important;
  line-height: 1.15 !important;
}
html body .sw-entry.sw-bestiary-hub #families .sw-family-copy h3 a {
  display: inline !important;
  position: static !important;
  margin: 0 !important;
  padding: 0 !important;
  color: var(--sw-c-link) !important;
  text-decoration: underline !important;
  text-underline-offset: .14em !important;
}
html body .sw-entry.sw-bestiary-hub #families .sw-family-copy p {
  position: static !important;
  margin: 0 !important;
  padding: 0 !important;
  line-height: 1.45 !important;
}
@media (max-width: 1050px) {
  html body .sw-entry.sw-bestiary-hub #families .sw-family-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
}
@media (max-width: 700px) {
  html body .sw-entry.sw-bestiary-hub #families .sw-family-grid {
    grid-template-columns: 1fr !important;
    gap: 1rem !important;
  }
}


/* --- WPWriter addition --- */

/* OUTSIDER LOWER SHOWCASE GRIDS — same visual system as Major Families */
html body .sw-entry.sw-bestiary-hub .sw-outsider-showcase .sw-showcase-grid {
  display: grid !important;
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  gap: 1.25rem !important;
  align-items: stretch !important;
  width: 100% !important;
  margin: 1.25rem 0 0 !important;
  padding: 0 !important;
}
html body .sw-entry.sw-bestiary-hub .sw-outsider-showcase .sw-showcase-tile {
  display: flex !important;
  flex-direction: column !important;
  min-width: 0 !important;
  min-height: 0 !important;
  height: auto !important;
  margin: 0 !important;
  padding: 0 !important;
  overflow: hidden !important;
  border: 1px solid #3f4550 !important;
  border-radius: 8px !important;
  background: #10151d !important;
  box-shadow: none !important;
}
html body .sw-entry.sw-bestiary-hub .sw-outsider-showcase .sw-showcase-image {
  display: block !important;
  position: static !important;
  width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  line-height: 0 !important;
  overflow: hidden !important;
  text-decoration: none !important;
  flex: 0 0 auto !important;
}
html body .sw-entry.sw-bestiary-hub .sw-outsider-showcase .sw-showcase-image img {
  display: block !important;
  position: static !important;
  float: none !important;
  width: 100% !important;
  max-width: none !important;
  height: auto !important;
  aspect-ratio: 16 / 9 !important;
  object-fit: cover !important;
  object-position: center !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
}
html body .sw-entry.sw-bestiary-hub .sw-outsider-showcase .sw-showcase-copy {
  display: flex !important;
  flex-direction: column !important;
  flex: 1 1 auto !important;
  gap: .45rem !important;
  margin: 0 !important;
  padding: .95rem 1rem 1.05rem !important;
  background: #10151d !important;
}
html body .sw-entry.sw-bestiary-hub .sw-outsider-showcase .sw-showcase-copy h3 {
  position: static !important;
  margin: 0 !important;
  padding: 0 0 .45rem !important;
  border-bottom: 1px solid rgba(230,198,142,.26) !important;
  line-height: 1.15 !important;
}
html body .sw-entry.sw-bestiary-hub .sw-outsider-showcase .sw-showcase-copy h3 a {
  position: static !important;
  display: inline !important;
  margin: 0 !important;
  padding: 0 !important;
  color: var(--sw-c-link) !important;
  text-decoration: underline !important;
  text-underline-offset: .14em !important;
}
html body .sw-entry.sw-bestiary-hub .sw-outsider-showcase .sw-showcase-copy p {
  position: static !important;
  margin: 0 !important;
  padding: 0 !important;
  line-height: 1.45 !important;
}
@media (max-width: 1050px) {
  html body .sw-entry.sw-bestiary-hub .sw-outsider-showcase .sw-showcase-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
}
@media (max-width: 700px) {
  html body .sw-entry.sw-bestiary-hub .sw-outsider-showcase .sw-showcase-grid {
    grid-template-columns: 1fr !important;
    gap: 1rem !important;
  }
}


/* --- WPWriter addition --- */

/* PRESTIGE CLASS AT-A-GLANCE HARDENING — 2026-09-30
   Fixes narrow/shrunk cards and mid-word breaking while keeping the rule global. */
body:not(.wp-admin) .sw-entry.sw-prestige-class > .sw-glance {
  display: block !important;
  width: min(930px, 100%) !important;
  max-width: 930px !important;
  min-width: 0 !important;
  margin: 1.6rem auto 2.2rem !important;
  padding: 1rem !important;
  box-sizing: border-box !important;
}

body:not(.wp-admin) .sw-entry.sw-prestige-class > .sw-glance > h2 {
  display: block !important;
  width: 100% !important;
  max-width: none !important;
  margin: 0 0 1rem !important;
}

body:not(.wp-admin) .sw-entry.sw-prestige-class > .sw-glance > .sw-glance-grid {
  display: grid !important;
  width: 100% !important;
  max-width: none !important;
  min-width: 0 !important;
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  gap: .85rem !important;
  margin: 0 !important;
  padding: 0 !important;
}

body:not(.wp-admin) .sw-entry.sw-prestige-class > .sw-glance > .sw-glance-grid > div {
  min-width: 0 !important;
  width: auto !important;
}

body:not(.wp-admin) .sw-entry.sw-prestige-class > .sw-glance :is(dt, dd, p, strong, a) {
  word-break: normal !important;
  overflow-wrap: normal !important;
  hyphens: none !important;
}

body:not(.wp-admin) .sw-entry.sw-prestige-class > .sw-glance .sw-glance-grid dt {
  white-space: normal !important;
}

@media (max-width: 900px) {
  body:not(.wp-admin) .sw-entry.sw-prestige-class > .sw-glance > .sw-glance-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
}

@media (max-width: 620px) {
  body:not(.wp-admin) .sw-entry.sw-prestige-class > .sw-glance > .sw-glance-grid {
    grid-template-columns: 1fr !important;
  }
}


/* --- WPWriter addition --- */

/* MONSTER WORKFLOW — Aoandon hero render QA fix */
html body .sw-entry.sw-monster-entry.sw-aoandon .sw-monster-hero {
  display:grid !important;
  grid-template-columns:minmax(360px,.92fr) minmax(0,1.48fr) !important;
  gap:0 !important;
  align-items:center !important;
  overflow:hidden !important;
}

html body .sw-entry.sw-monster-entry.sw-aoandon .sw-monster-hero-copy {
  min-width:0 !important;
  padding:clamp(1.5rem,2.3vw,2.5rem) !important;
  display:flex !important;
  flex-direction:column !important;
  justify-content:center !important;
}

html body .sw-entry.sw-monster-entry.sw-aoandon .sw-monster-hero h1,
html body .sw-entry.sw-monster-entry.sw-aoandon h1#aoandon-title {
  margin:0 0 .8rem !important;
  max-width:100% !important;
  font-size:clamp(3rem,4.3vw,4.7rem) !important;
  line-height:.98 !important;
  letter-spacing:-.02em !important;
  white-space:normal !important;
  overflow-wrap:normal !important;
  word-break:normal !important;
  hyphens:none !important;
}

html body .sw-entry.sw-monster-entry.sw-aoandon .sw-monster-subtitle {
  margin:0 0 1rem !important;
  max-width:29ch !important;
  font-size:clamp(1.05rem,1.3vw,1.4rem) !important;
  line-height:1.42 !important;
  text-transform:none !important;
  letter-spacing:0 !important;
  white-space:normal !important;
  overflow-wrap:normal !important;
  word-break:normal !important;
  hyphens:none !important;
}

html body .sw-entry.sw-monster-entry.sw-aoandon .sw-monster-tagline {
  margin:0 0 1.15rem !important;
  max-width:34ch !important;
  font-size:1rem !important;
  line-height:1.45 !important;
}

html body .sw-entry.sw-monster-entry.sw-aoandon .sw-monster-hero-media {
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  min-width:0 !important;
  overflow:hidden !important;
  padding:clamp(.7rem,1.1vw,1rem) !important;
  background:#0d0e0f !important;
}

html body .sw-entry.sw-monster-entry.sw-aoandon .sw-monster-hero-media a {
  display:block !important;
  width:100% !important;
  height:auto !important;
}

html body .sw-entry.sw-monster-entry.sw-aoandon .sw-monster-hero-media img {
  display:block !important;
  width:100% !important;
  height:auto !important;
  min-height:0 !important;
  max-height:none !important;
  aspect-ratio:1672 / 941 !important;
  object-fit:contain !important;
  object-position:center center !important;
  margin:0 !important;
}

@media(max-width:1100px){
  html body .sw-entry.sw-monster-entry.sw-aoandon .sw-monster-hero{
    grid-template-columns:minmax(330px,1fr) minmax(0,1.25fr) !important;
  }
  html body .sw-entry.sw-monster-entry.sw-aoandon .sw-monster-hero h1,
  html body .sw-entry.sw-monster-entry.sw-aoandon h1#aoandon-title{
    font-size:clamp(2.8rem,4.7vw,4.1rem) !important;
  }
}

@media(max-width:820px){
  html body .sw-entry.sw-monster-entry.sw-aoandon .sw-monster-hero{
    grid-template-columns:1fr !important;
    align-items:start !important;
  }
  html body .sw-entry.sw-monster-entry.sw-aoandon .sw-monster-hero-copy{
    order:1 !important;
  }
  html body .sw-entry.sw-monster-entry.sw-aoandon .sw-monster-hero-media{
    order:2 !important;
    padding:0 !important;
  }
  html body .sw-entry.sw-monster-entry.sw-aoandon .sw-monster-subtitle,
  html body .sw-entry.sw-monster-entry.sw-aoandon .sw-monster-tagline{
    max-width:none !important;
  }
  html body .sw-entry.sw-monster-entry.sw-aoandon .sw-monster-hero-media img{
    width:100% !important;
    height:auto !important;
    aspect-ratio:1672 / 941 !important;
    object-fit:contain !important;
    object-position:center center !important;
  }
}
/* END Aoandon hero render QA fix */


/* --- WPWriter addition --- */

/* AOANDON HERO HOTFIX — final rendered containment */
html body .site-content .sw-entry.sw-monster-entry.sw-aoandon .sw-monster-hero {
  display:grid !important;
  grid-template-columns:minmax(380px, 0.95fr) minmax(0, 1.35fr) !important;
  align-items:center !important;
  gap:0 !important;
  overflow:hidden !important;
}

html body .site-content .sw-entry.sw-monster-entry.sw-aoandon .sw-monster-hero-copy {
  min-width:0 !important;
  max-width:100% !important;
  padding:clamp(1.4rem,2vw,2.2rem) !important;
  overflow:hidden !important;
}

html body .site-content .sw-entry.sw-monster-entry.sw-aoandon .sw-monster-hero-copy h1#aoandon-title {
  display:block !important;
  width:auto !important;
  max-width:100% !important;
  margin:0 0 .75rem !important;
  padding:0 !important;
  font-size:clamp(2.8rem,3.8vw,4rem) !important;
  line-height:.98 !important;
  letter-spacing:-.02em !important;
  white-space:normal !important;
  overflow-wrap:normal !important;
  word-break:normal !important;
  hyphens:none !important;
  text-transform:none !important;
  position:relative !important;
  z-index:2 !important;
}

html body .site-content .sw-entry.sw-monster-entry.sw-aoandon .sw-monster-subtitle {
  display:block !important;
  max-width:27ch !important;
  margin:0 0 1rem !important;
  font-size:clamp(1rem,1.15vw,1.28rem) !important;
  line-height:1.45 !important;
  letter-spacing:0 !important;
  text-transform:none !important;
  font-variant:normal !important;
  white-space:normal !important;
  overflow-wrap:normal !important;
  word-break:normal !important;
  hyphens:none !important;
}

html body .site-content .sw-entry.sw-monster-entry.sw-aoandon .sw-monster-tagline {
  max-width:31ch !important;
  font-size:.98rem !important;
  line-height:1.45 !important;
}

html body .site-content .sw-entry.sw-monster-entry.sw-aoandon .sw-monster-hero-media {
  min-width:0 !important;
  overflow:hidden !important;
  padding:.8rem !important;
}

html body .site-content .sw-entry.sw-monster-entry.sw-aoandon .sw-monster-hero-media a {
  display:block !important;
  width:100% !important;
  height:auto !important;
}

html body .site-content .sw-entry.sw-monster-entry.sw-aoandon .sw-monster-hero-media img {
  display:block !important;
  width:100% !important;
  height:auto !important;
  min-height:0 !important;
  max-height:none !important;
  aspect-ratio:1672 / 941 !important;
  object-fit:contain !important;
  object-position:center center !important;
  margin:0 !important;
}

@media (max-width:1100px) {
  html body .site-content .sw-entry.sw-monster-entry.sw-aoandon .sw-monster-hero {
    grid-template-columns:minmax(340px,1fr) minmax(0,1.15fr) !important;
  }
  html body .site-content .sw-entry.sw-monster-entry.sw-aoandon .sw-monster-hero-copy h1#aoandon-title {
    font-size:clamp(2.6rem,4.2vw,3.6rem) !important;
  }
}

@media (max-width:820px) {
  html body .site-content .sw-entry.sw-monster-entry.sw-aoandon .sw-monster-hero {
    grid-template-columns:1fr !important;
  }
  html body .site-content .sw-entry.sw-monster-entry.sw-aoandon .sw-monster-hero-copy {
    overflow:visible !important;
  }
  html body .site-content .sw-entry.sw-monster-entry.sw-aoandon .sw-monster-subtitle,
  html body .site-content .sw-entry.sw-monster-entry.sw-aoandon .sw-monster-tagline {
    max-width:none !important;
  }
  html body .site-content .sw-entry.sw-monster-entry.sw-aoandon .sw-monster-hero-media {
    padding:0 !important;
  }
}
/* END AOANDON HERO HOTFIX */


/* --- WPWriter addition --- */

/* =========================================================
   AOANDON — FINAL MONSTER HERO
   Focal crop: face + horns + blue lantern
   ========================================================= */

html body .site-content
.sw-entry.sw-monster-entry.sw-aoandon
.sw-monster-hero {
  display:grid !important;
  grid-template-columns:minmax(360px,.9fr) minmax(0,1.5fr) !important;
  gap:0 !important;
  align-items:stretch !important;
  overflow:hidden !important;
}

html body .site-content
.sw-entry.sw-monster-entry.sw-aoandon
.sw-monster-hero-copy {
  min-width:0 !important;
  max-width:100% !important;
  padding:clamp(1.4rem,2vw,2.2rem) !important;
  display:flex !important;
  flex-direction:column !important;
  justify-content:center !important;
  overflow:hidden !important;
}

html body .site-content
.sw-entry.sw-monster-entry.sw-aoandon
.sw-kicker {
  margin-bottom:.8rem !important;
}

html body .site-content
.sw-entry.sw-monster-entry.sw-aoandon
h1#aoandon-title {
  display:block !important;
  width:auto !important;
  max-width:100% !important;
  margin:0 0 .75rem !important;
  padding:0 !important;
  font-size:clamp(2.8rem,3.8vw,4rem) !important;
  line-height:.98 !important;
  letter-spacing:-.02em !important;
  white-space:normal !important;
  overflow-wrap:normal !important;
  word-break:normal !important;
  hyphens:none !important;
}

html body .site-content
.sw-entry.sw-monster-entry.sw-aoandon
.sw-monster-subtitle {
  display:block !important;
  max-width:27ch !important;
  margin:0 0 1rem !important;
  font-size:clamp(1rem,1.15vw,1.25rem) !important;
  line-height:1.42 !important;
  text-transform:none !important;
  letter-spacing:0 !important;
  font-variant:normal !important;
  white-space:normal !important;
  overflow-wrap:normal !important;
  word-break:normal !important;
  hyphens:none !important;
}

html body .site-content
.sw-entry.sw-monster-entry.sw-aoandon
.sw-monster-tagline {
  max-width:31ch !important;
  margin:0 0 1.15rem !important;
  font-size:.98rem !important;
  line-height:1.45 !important;
}

html body .site-content
.sw-entry.sw-monster-entry.sw-aoandon
.sw-monster-tags {
  display:flex !important;
  flex-wrap:wrap !important;
  gap:.65rem !important;
  margin:0 !important;
}

html body .site-content
.sw-entry.sw-monster-entry.sw-aoandon
.sw-monster-hero-media {
  min-width:0 !important;
  display:flex !important;
  align-items:stretch !important;
  justify-content:stretch !important;
  overflow:hidden !important;
  padding:0 !important;
  background:#0d0e0f !important;
}

html body .site-content
.sw-entry.sw-monster-entry.sw-aoandon
.sw-monster-hero-media a {
  display:block !important;
  width:100% !important;
  height:100% !important;
}

html body .site-content
.sw-entry.sw-monster-entry.sw-aoandon
.sw-monster-hero-media img {
  display:block !important;
  width:100% !important;
  height:100% !important;
  min-height:560px !important;
  max-height:690px !important;
  aspect-ratio:auto !important;
  object-fit:cover !important;
  object-position:76% 47% !important;
  margin:0 !important;
}

@media(max-width:1100px){
  html body .site-content
  .sw-entry.sw-monster-entry.sw-aoandon
  .sw-monster-hero {
    grid-template-columns:minmax(335px,1fr) minmax(0,1.25fr) !important;
  }

  html body .site-content
  .sw-entry.sw-monster-entry.sw-aoandon
  h1#aoandon-title {
    font-size:clamp(2.6rem,4.2vw,3.6rem) !important;
  }

  html body .site-content
  .sw-entry.sw-monster-entry.sw-aoandon
  .sw-monster-hero-media img {
    min-height:500px !important;
    max-height:620px !important;
    object-position:76% 46% !important;
  }
}

@media(max-width:820px){
  html body .site-content
  .sw-entry.sw-monster-entry.sw-aoandon
  .sw-monster-hero {
    grid-template-columns:1fr !important;
    align-items:start !important;
  }

  html body .site-content
  .sw-entry.sw-monster-entry.sw-aoandon
  .sw-monster-hero-copy {
    order:1 !important;
    overflow:visible !important;
  }

  html body .site-content
  .sw-entry.sw-monster-entry.sw-aoandon
  .sw-monster-hero-media {
    order:2 !important;
    min-height:0 !important;
  }

  html body .site-content
  .sw-entry.sw-monster-entry.sw-aoandon
  .sw-monster-subtitle,
  html body .site-content
  .sw-entry.sw-monster-entry.sw-aoandon
  .sw-monster-tagline {
    max-width:none !important;
  }

  html body .site-content
  .sw-entry.sw-monster-entry.sw-aoandon
  .sw-monster-hero-media img {
    width:100% !important;
    height:auto !important;
    min-height:0 !important;
    max-height:none !important;
    aspect-ratio:16 / 10 !important;
    object-fit:cover !important;
    object-position:73% 43% !important;
  }
}

/* END AOANDON — FINAL MONSTER HERO */


/* --- WPWriter addition --- */

/* MONSTER WORKFLOW — Jakotsubaba historical-plate hero */
html body .site-content .sw-entry.sw-monster-entry.sw-jakotsubaba .sw-monster-hero{
  display:grid !important;
  grid-template-columns:minmax(390px,1.2fr) minmax(300px,.8fr) !important;
  gap:0 !important;
  align-items:center !important;
  overflow:hidden !important;
}
html body .site-content .sw-entry.sw-monster-entry.sw-jakotsubaba .sw-monster-hero-copy{
  min-width:0 !important;
  padding:clamp(1.5rem,2.3vw,2.5rem) !important;
}
html body .site-content .sw-entry.sw-monster-entry.sw-jakotsubaba h1#jakotsubaba-title{
  margin:0 0 .8rem !important;
  max-width:100% !important;
  font-size:clamp(2.8rem,4vw,4.2rem) !important;
  line-height:.98 !important;
  letter-spacing:-.02em !important;
  white-space:normal !important;
  overflow-wrap:normal !important;
  word-break:normal !important;
  hyphens:none !important;
}
html body .site-content .sw-entry.sw-monster-entry.sw-jakotsubaba .sw-monster-subtitle{
  max-width:31ch !important;
  margin:0 0 1rem !important;
  font-size:clamp(1.05rem,1.25vw,1.35rem) !important;
  line-height:1.42 !important;
  text-transform:none !important;
  letter-spacing:0 !important;
  word-break:normal !important;
  hyphens:none !important;
}
html body .site-content .sw-entry.sw-monster-entry.sw-jakotsubaba .sw-monster-tagline{
  max-width:34ch !important;
  font-size:1rem !important;
  line-height:1.45 !important;
}
html body .site-content .sw-entry.sw-monster-entry.sw-jakotsubaba .sw-monster-hero-media{
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  min-width:0 !important;
  min-height:560px !important;
  padding:1.4rem !important;
  overflow:hidden !important;
  background:rgba(8,9,10,.96) !important;
}
html body .site-content .sw-entry.sw-monster-entry.sw-jakotsubaba .sw-monster-hero-media a{
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  width:100% !important;
  height:100% !important;
}
html body .site-content .sw-entry.sw-monster-entry.sw-jakotsubaba .sw-monster-hero-media img{
  display:block !important;
  width:auto !important;
  height:auto !important;
  max-width:min(100%,378px) !important;
  max-height:532px !important;
  min-height:0 !important;
  object-fit:contain !important;
  object-position:center !important;
  margin:0 auto !important;
  border:1px solid rgba(230,198,142,.28) !important;
  box-shadow:0 14px 34px rgba(0,0,0,.42) !important;
}
@media(max-width:820px){
  html body .site-content .sw-entry.sw-monster-entry.sw-jakotsubaba .sw-monster-hero{
    grid-template-columns:1fr !important;
  }
  html body .site-content .sw-entry.sw-monster-entry.sw-jakotsubaba .sw-monster-hero-media{
    min-height:0 !important;
    padding:1rem !important;
  }
}
/* END Jakotsubaba historical-plate hero */


/* --- WPWriter addition --- */

/* =========================================================
   JAKOTSUBABA — FINAL MONSTER HERO
   Focal crop: hag + blue serpent + red serpent
   ========================================================= */

html body .site-content
.sw-entry.sw-monster-entry.sw-jakotsubaba
.sw-monster-hero {
  display:grid !important;
  grid-template-columns:minmax(370px,.9fr) minmax(0,1.5fr) !important;
  gap:0 !important;
  align-items:stretch !important;
  overflow:hidden !important;
}

html body .site-content
.sw-entry.sw-monster-entry.sw-jakotsubaba
.sw-monster-hero-copy {
  min-width:0 !important;
  max-width:100% !important;
  padding:clamp(1.4rem,2vw,2.2rem) !important;
  display:flex !important;
  flex-direction:column !important;
  justify-content:center !important;
  overflow:hidden !important;
}

html body .site-content
.sw-entry.sw-monster-entry.sw-jakotsubaba
h1#jakotsubaba-title {
  display:block !important;
  width:auto !important;
  max-width:100% !important;
  margin:0 0 .75rem !important;
  padding:0 !important;
  font-size:clamp(2.65rem,3.5vw,3.8rem) !important;
  line-height:.98 !important;
  letter-spacing:-.02em !important;
  white-space:normal !important;
  overflow-wrap:normal !important;
  word-break:normal !important;
  hyphens:none !important;
  text-transform:none !important;
}

html body .site-content
.sw-entry.sw-monster-entry.sw-jakotsubaba
.sw-monster-subtitle {
  display:block !important;
  max-width:29ch !important;
  margin:0 0 1rem !important;
  font-size:clamp(1rem,1.15vw,1.25rem) !important;
  line-height:1.42 !important;
  text-transform:none !important;
  letter-spacing:0 !important;
  font-variant:normal !important;
  white-space:normal !important;
  overflow-wrap:normal !important;
  word-break:normal !important;
  hyphens:none !important;
}

html body .site-content
.sw-entry.sw-monster-entry.sw-jakotsubaba
.sw-monster-tagline {
  max-width:32ch !important;
  margin:0 0 1.15rem !important;
  font-size:.98rem !important;
  line-height:1.45 !important;
}

html body .site-content
.sw-entry.sw-monster-entry.sw-jakotsubaba
.sw-monster-tags {
  display:flex !important;
  flex-wrap:wrap !important;
  gap:.65rem !important;
  margin:0 !important;
}

html body .site-content
.sw-entry.sw-monster-entry.sw-jakotsubaba
.sw-monster-hero-media {
  display:flex !important;
  align-items:stretch !important;
  justify-content:stretch !important;
  min-width:0 !important;
  min-height:0 !important;
  padding:0 !important;
  overflow:hidden !important;
  background:#0d0e0f !important;
}

html body .site-content
.sw-entry.sw-monster-entry.sw-jakotsubaba
.sw-monster-hero-media a {
  display:block !important;
  width:100% !important;
  height:100% !important;
}

html body .site-content
.sw-entry.sw-monster-entry.sw-jakotsubaba
.sw-monster-hero-media img {
  display:block !important;
  width:100% !important;
  height:100% !important;
  min-height:560px !important;
  max-height:690px !important;
  max-width:none !important;
  aspect-ratio:auto !important;
  object-fit:cover !important;
  object-position:76% 48% !important;
  margin:0 !important;
  border:0 !important;
  box-shadow:none !important;
}

@media(max-width:1100px){
  html body .site-content
  .sw-entry.sw-monster-entry.sw-jakotsubaba
  .sw-monster-hero {
    grid-template-columns:minmax(340px,1fr) minmax(0,1.25fr) !important;
  }

  html body .site-content
  .sw-entry.sw-monster-entry.sw-jakotsubaba
  h1#jakotsubaba-title {
    font-size:clamp(2.45rem,4vw,3.35rem) !important;
  }

  html body .site-content
  .sw-entry.sw-monster-entry.sw-jakotsubaba
  .sw-monster-hero-media img {
    min-height:500px !important;
    max-height:620px !important;
    object-position:76% 47% !important;
  }
}

@media(max-width:820px){
  html body .site-content
  .sw-entry.sw-monster-entry.sw-jakotsubaba
  .sw-monster-hero {
    grid-template-columns:1fr !important;
    align-items:start !important;
  }

  html body .site-content
  .sw-entry.sw-monster-entry.sw-jakotsubaba
  .sw-monster-hero-copy {
    order:1 !important;
    overflow:visible !important;
  }

  html body .site-content
  .sw-entry.sw-monster-entry.sw-jakotsubaba
  .sw-monster-hero-media {
    order:2 !important;
    min-height:0 !important;
  }

  html body .site-content
  .sw-entry.sw-monster-entry.sw-jakotsubaba
  .sw-monster-subtitle,
  html body .site-content
  .sw-entry.sw-monster-entry.sw-jakotsubaba
  .sw-monster-tagline {
    max-width:none !important;
  }

  html body .site-content
  .sw-entry.sw-monster-entry.sw-jakotsubaba
  .sw-monster-hero-media img {
    width:100% !important;
    height:auto !important;
    min-height:0 !important;
    max-height:none !important;
    aspect-ratio:16 / 10 !important;
    object-fit:cover !important;
    object-position:72% 45% !important;
  }
}

/* END JAKOTSUBABA — FINAL MONSTER HERO */


/* --- WPWriter addition --- */

/* MONSTER WORKFLOW — Jikininki temporary square-hero QA */
html body .site-content .sw-entry.sw-monster-entry.sw-jikininki .sw-monster-hero{
  display:grid !important;
  grid-template-columns:minmax(390px,1.15fr) minmax(340px,.85fr) !important;
  gap:0 !important;
  align-items:center !important;
  overflow:hidden !important;
}
html body .site-content .sw-entry.sw-monster-entry.sw-jikininki .sw-monster-hero-copy{
  min-width:0 !important;
  padding:clamp(1.5rem,2.3vw,2.5rem) !important;
}
html body .site-content .sw-entry.sw-monster-entry.sw-jikininki h1#jikininki-title{
  margin:0 0 .8rem !important;
  max-width:100% !important;
  font-size:clamp(2.9rem,4.1vw,4.4rem) !important;
  line-height:.98 !important;
  letter-spacing:-.02em !important;
  white-space:normal !important;
  overflow-wrap:normal !important;
  word-break:normal !important;
  hyphens:none !important;
}
html body .site-content .sw-entry.sw-monster-entry.sw-jikininki .sw-monster-subtitle{
  max-width:30ch !important;
  margin:0 0 1rem !important;
  font-size:clamp(1.05rem,1.25vw,1.35rem) !important;
  line-height:1.42 !important;
  text-transform:none !important;
  letter-spacing:0 !important;
  word-break:normal !important;
  hyphens:none !important;
}
html body .site-content .sw-entry.sw-monster-entry.sw-jikininki .sw-monster-tagline{
  max-width:33ch !important;
  font-size:1rem !important;
  line-height:1.45 !important;
}
html body .site-content .sw-entry.sw-monster-entry.sw-jikininki .sw-monster-hero-media{
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  min-width:0 !important;
  min-height:560px !important;
  padding:1.25rem !important;
  overflow:hidden !important;
  background:#0d0e0f !important;
}
html body .site-content .sw-entry.sw-monster-entry.sw-jikininki .sw-monster-hero-media a{
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  width:100% !important;
  height:100% !important;
}
html body .site-content .sw-entry.sw-monster-entry.sw-jikininki .sw-monster-hero-media img{
  display:block !important;
  width:auto !important;
  height:auto !important;
  max-width:min(100%,560px) !important;
  max-height:560px !important;
  min-height:0 !important;
  object-fit:contain !important;
  object-position:center !important;
  margin:0 auto !important;
}
@media(max-width:820px){
  html body .site-content .sw-entry.sw-monster-entry.sw-jikininki .sw-monster-hero{
    grid-template-columns:1fr !important;
  }
  html body .site-content .sw-entry.sw-monster-entry.sw-jikininki .sw-monster-hero-media{
    min-height:0 !important;
    padding:1rem !important;
  }
}
/* END Jikininki temporary square-hero QA */


/* --- WPWriter addition --- */
/* JIKININKI — final landscape hero + folklore art, Monster Workflow image QA */
html body .site-content .sw-entry.sw-monster-entry.sw-jikininki .sw-monster-hero{
  display:grid !important;
  grid-template-columns:minmax(360px,.9fr) minmax(0,1.35fr) !important;
  align-items:stretch !important;
  gap:0 !important;
  overflow:hidden !important;
}
html body .site-content .sw-entry.sw-monster-entry.sw-jikininki .sw-monster-hero-copy{
  min-width:0 !important;
  padding:clamp(1.5rem,2.4vw,2.6rem) !important;
  display:flex !important;
  flex-direction:column !important;
  justify-content:center !important;
}
html body .site-content .sw-entry.sw-monster-entry.sw-jikininki h1#jikininki-title{
  max-width:100% !important;
  margin:0 0 .8rem !important;
  font-size:clamp(2.8rem,4vw,4.25rem) !important;
  line-height:.98 !important;
  white-space:normal !important;
  overflow-wrap:normal !important;
  word-break:normal !important;
  hyphens:none !important;
}
html body .site-content .sw-entry.sw-monster-entry.sw-jikininki .sw-monster-subtitle{
  max-width:30ch !important;
  margin:0 0 1rem !important;
  font-size:clamp(1.05rem,1.25vw,1.35rem) !important;
  line-height:1.42 !important;
  text-transform:none !important;
  letter-spacing:0 !important;
  word-break:normal !important;
  hyphens:none !important;
}
html body .site-content .sw-entry.sw-monster-entry.sw-jikininki .sw-monster-tagline{
  max-width:34ch !important;
  font-size:1rem !important;
  line-height:1.45 !important;
}
html body .site-content .sw-entry.sw-monster-entry.sw-jikininki .sw-monster-hero-media{
  display:flex !important;
  align-items:stretch !important;
  justify-content:stretch !important;
  min-width:0 !important;
  min-height:520px !important;
  padding:0 !important;
  overflow:hidden !important;
  background:#0d0e0f !important;
}
html body .site-content .sw-entry.sw-monster-entry.sw-jikininki .sw-monster-hero-media a{
  display:block !important;
  width:100% !important;
  height:100% !important;
}
html body .site-content .sw-entry.sw-monster-entry.sw-jikininki .sw-monster-hero-media img{
  display:block !important;
  width:100% !important;
  height:100% !important;
  min-height:520px !important;
  max-width:none !important;
  max-height:650px !important;
  margin:0 !important;
  object-fit:cover !important;
  object-position:center center !important;
  border:0 !important;
  box-shadow:none !important;
}
html body .site-content .sw-entry.sw-monster-entry.sw-jikininki .sw-jikininki-folklore-art{
  width:100% !important;
  max-width:850px !important;
  margin:1.5rem auto !important;
}
html body .site-content .sw-entry.sw-monster-entry.sw-jikininki .sw-jikininki-folklore-art > a{
  width:100% !important;
  max-width:850px !important;
}
html body .site-content .sw-entry.sw-monster-entry.sw-jikininki .sw-jikininki-folklore-art img{
  width:100% !important;
  max-width:850px !important;
  height:auto !important;
  max-height:none !important;
  object-fit:contain !important;
}
@media(max-width:820px){
  html body .site-content .sw-entry.sw-monster-entry.sw-jikininki .sw-monster-hero{
    grid-template-columns:1fr !important;
  }
  html body .site-content .sw-entry.sw-monster-entry.sw-jikininki .sw-monster-hero-copy{order:1 !important;}
  html body .site-content .sw-entry.sw-monster-entry.sw-jikininki .sw-monster-hero-media{
    order:2 !important;
    min-height:0 !important;
  }
  html body .site-content .sw-entry.sw-monster-entry.sw-jikininki .sw-monster-hero-media img{
    width:100% !important;
    height:auto !important;
    min-height:0 !important;
    max-height:none !important;
    aspect-ratio:16/9 !important;
    object-fit:cover !important;
    object-position:center center !important;
  }
}
/* END JIKININKI final image QA */

/* --- WPWriter addition --- */

/* SPIRALWORLDS CANONICAL ENTRY TOP-SPACING REPAIR — 2026-09-30
   Global rule for canonical .sw-entry pages only. Removes Astra's oversized
   single-page top gap without introducing per-page CSS. */
body:not(.home):has(.entry-content .sw-entry) #primary {
  margin-top: 1.25rem !important;
  padding-top: 0 !important;
}

body:not(.home):has(.entry-content .sw-entry) article.ast-article-single {
  padding-top: 0 !important;
}

body:not(.home):has(.entry-content .sw-entry) .ast-breadcrumbs-wrapper {
  margin-top: 0 !important;
  padding-top: 0 !important;
  margin-bottom: .75rem !important;
}

body:not(.home):has(.entry-content .sw-entry) .entry-header.ast-no-title {
  margin: 0 !important;
  padding: 0 !important;
  min-height: 0 !important;
}

body:not(.home):has(.entry-content .sw-entry) .entry-content {
  margin-top: 0 !important;
  padding-top: 0 !important;
}

body:not(.home):has(.entry-content .sw-entry) .entry-content > h1.entry-title {
  margin-top: .35rem !important;
  margin-bottom: 1rem !important;
}

@media (max-width: 921px) {
  body:not(.home):has(.entry-content .sw-entry) #primary {
    margin-top: .75rem !important;
  }
}


/* --- WPWriter addition --- */

/* SPIRALWORLDS CANONICAL WORD-WRAP REPAIR — 2026-09-30
   Keep ordinary words intact. Only genuinely unbreakable technical strings
   may break to protect the layout. */
.sw-entry.sw-entry {
  overflow-wrap: normal !important;
  word-break: normal !important;
  hyphens: none !important;
}

.sw-entry.sw-entry :is(p, li, dd, dt, blockquote, figcaption, h1, h2, h3, h4, h5, h6, th, td) {
  overflow-wrap: normal !important;
  word-break: normal !important;
  hyphens: none !important;
}

.sw-entry.sw-entry :is(pre, code, kbd, samp) {
  overflow-wrap: anywhere !important;
  word-break: break-word !important;
}


/* --- WPWriter addition --- */

/* SPIRALWORLDS CANONICAL BREADCRUMB DE-DUPLICATION — 2026-10-01
   Canonical entries already display the page H1. Keep breadcrumb ancestry,
   but suppress the current-page title so the heading is not shown twice. */
body:not(.home):has(.entry-content .sw-entry) .ast-breadcrumbs .trail-end,
body:not(.home):has(.entry-content .sw-entry) .breadcrumb-trail .trail-end,
body:not(.home):has(.entry-content .sw-entry) .rank-math-breadcrumb .last,
body:not(.home):has(.entry-content .sw-entry) .rank-math-breadcrumb .current {
  display: none !important;
}


/* --- WPWriter addition --- */

/* Finish canonical breadcrumb de-duplication: remove the separator that
   previously pointed to the now-hidden current-page crumb. */
body:not(.home):has(.entry-content .sw-entry) .ast-breadcrumbs .trail-item:has(+ .trail-end)::after,
body:not(.home):has(.entry-content .sw-entry) .breadcrumb-trail .trail-item:has(+ .trail-end)::after,
body:not(.home):has(.entry-content .sw-entry) .ast-breadcrumbs .trail-item:has(+ .trail-end) > .ast-breadcrumbs-separator,
body:not(.home):has(.entry-content .sw-entry) .breadcrumb-trail .trail-item:has(+ .trail-end) > .ast-breadcrumbs-separator {
  display: none !important;
}


/* --- WPWriter addition --- */

/* SPIRALWORLDS CANONICAL TITLE DE-DUPLICATION — 2026-10-01
   Some canonical pages render Astra's normal entry title plus a second
   indexing-only H1. Keep the genuine visible page title and suppress the
   indexing duplicate. */
body:not(.home):has(.entry-content .sw-entry) h1.entry-title.sw-indexing-title {
  display: none !important;
}


/* --- WPWriter addition --- */

/* SPIRALWORLDS INDEXING H1 VISIBILITY FIX — 2026-10-01
   sw-indexing-title exists only as an indexing duplicate and must never be
   visually rendered. The real Astra entry-title remains visible. */
h1.sw-indexing-title,
.entry-content > h1.sw-indexing-title,
.entry-content h1.entry-title.sw-indexing-title {
  display: none !important;
  margin: 0 !important;
  padding: 0 !important;
  height: 0 !important;
  overflow: hidden !important;
}


/* --- WPWriter addition --- */

/* SPIRALWORLDS INDEXING TITLE HARD HIDE — 2026-10-01
   The indexing duplicate is rendered as a custom <heading> element, not H1. */
.sw-indexing-title,
heading.sw-indexing-title,
.entry-content > .sw-indexing-title {
  display: none !important;
  visibility: hidden !important;
  margin: 0 !important;
  padding: 0 !important;
  height: 0 !important;
  min-height: 0 !important;
  overflow: hidden !important;
}


/* --- WPWriter addition --- */

/* ============================================================
   SPIRALWORLDS GLOBAL AT-A-GLANCE CANONICAL — 2026-10-01
   One final rendering contract for location, monster, class,
   spell, deity and legacy At-a-Glance markup.
   ============================================================ */

/* Outer At-a-Glance panel: applies when the wrapper contains
   structured facts rather than being the facts grid itself. */
html body:not(.wp-admin) .sw-entry.sw-entry :is(
  .sw-at-a-glance,
  .sw-location-glance,
  .sw-monster-glance,
  section.sw-glance
):has(> :is(.sw-glance-grid, .sw-location-glance-grid, dl, table)) {
  display: block !important;
  width: min(930px, 100%) !important;
  max-width: 930px !important;
  min-width: 0 !important;
  margin: 1.5rem auto 2.2rem !important;
  padding: clamp(1rem, 2vw, 1.25rem) !important;
  border: 1px solid var(--sw-c-border, #55505e) !important;
  border-radius: 8px !important;
  background: var(--sw-c-panel, #1b1a20) !important;
  box-shadow: none !important;
  box-sizing: border-box !important;
}

/* Monsters use the full rules width. */
html body:not(.wp-admin) .sw-entry.sw-monster-entry .sw-monster-glance,
html body:not(.wp-admin) .sw-entry.sw-monster-entry section.sw-glance:has(> .sw-glance-grid) {
  width: 100% !important;
  max-width: 1180px !important;
}

/* In a location identity block the parent already controls the
   50:50 layout, so the glance panel fills only its own column. */
html body:not(.wp-admin) .sw-entry.sw-entry > :is(.sw-identity, .sw-location-identity) > :is(
  .sw-at-a-glance,
  .sw-glance,
  .sw-location-glance
) {
  display: block !important;
  width: 100% !important;
  max-width: none !important;
  min-width: 0 !important;
  margin: 0 !important;
  padding: clamp(.9rem, 1.6vw, 1.15rem) !important;
  border: 1px solid var(--sw-c-border, #55505e) !important;
  border-radius: 8px !important;
  background: var(--sw-c-panel, #1b1a20) !important;
  box-sizing: border-box !important;
}

/* Heading contract. */
html body:not(.wp-admin) .sw-entry.sw-entry :is(
  .sw-at-a-glance,
  .sw-location-glance,
  .sw-monster-glance,
  .sw-glance
) > h2 {
  display: block !important;
  width: 100% !important;
  max-width: none !important;
  margin: 0 0 1rem !important;
  padding: 0 !important;
}

/* Nested card/fact grids. */
html body:not(.wp-admin) .sw-entry.sw-entry :is(
  .sw-at-a-glance,
  .sw-location-glance,
  .sw-monster-glance,
  .sw-glance
) > :is(.sw-glance-grid, .sw-location-glance-grid) {
  display: grid !important;
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  gap: .8rem !important;
  width: 100% !important;
  max-width: none !important;
  min-width: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
}

/* Half-width location identity panels need fewer columns. */
html body:not(.wp-admin) .sw-entry.sw-entry > :is(.sw-identity, .sw-location-identity) > :is(
  .sw-at-a-glance,
  .sw-glance,
  .sw-location-glance
) > :is(.sw-glance-grid, .sw-location-glance-grid) {
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
}

/* Legacy markup where .sw-glance itself is the fact grid. */
html body:not(.wp-admin) .sw-entry.sw-entry > .sw-glance:not(section):not(:has(> :is(dl, table, .sw-glance-grid, .sw-location-glance-grid))) {
  display: grid !important;
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  gap: .8rem !important;
  width: min(930px, 100%) !important;
  max-width: 930px !important;
  min-width: 0 !important;
  margin: 1.5rem auto 2.2rem !important;
  padding: 0 !important;
  border: 0 !important;
  background: transparent !important;
}

/* Individual fact cards, regardless of which generation made them. */
html body:not(.wp-admin) .sw-entry.sw-entry :is(
  .sw-glance-grid,
  .sw-location-glance-grid,
  .sw-glance:not(section):not(:has(> :is(dl, table, .sw-glance-grid, .sw-location-glance-grid)))
) > :is(div, .sw-fact) {
  display: block !important;
  min-width: 0 !important;
  width: auto !important;
  margin: 0 !important;
  padding: .82rem .9rem !important;
  border: 1px solid var(--sw-c-border, #55505e) !important;
  border-radius: 6px !important;
  background: rgba(255,255,255,.025) !important;
  box-shadow: none !important;
}

html body:not(.wp-admin) .sw-entry.sw-entry :is(
  .sw-glance-grid,
  .sw-location-glance-grid,
  .sw-glance:not(section):not(:has(> :is(dl, table, .sw-glance-grid, .sw-location-glance-grid)))
) > :is(div, .sw-fact) > :is(strong, b, dt):first-child {
  display: block !important;
  margin: 0 0 .28rem !important;
  color: var(--sw-c-link, #e6c68e) !important;
  font-size: .82rem !important;
  line-height: 1.3 !important;
  font-weight: 700 !important;
}

/* Definition-list form: aligned label/value pairs without crushed text. */
html body:not(.wp-admin) .sw-entry.sw-entry :is(
  .sw-at-a-glance,
  .sw-location-glance,
  .sw-monster-glance,
  .sw-glance
) > dl:has(> dt) {
  display: grid !important;
  grid-template-columns: minmax(130px, 30%) minmax(0, 1fr) !important;
  gap: 0 1rem !important;
  width: 100% !important;
  max-width: none !important;
  margin: 0 !important;
  padding: 0 !important;
}

html body:not(.wp-admin) .sw-entry.sw-entry :is(
  .sw-at-a-glance,
  .sw-location-glance,
  .sw-monster-glance,
  .sw-glance
) > dl:has(> dt) > :is(dt, dd) {
  min-width: 0 !important;
  margin: 0 !important;
  padding: .55rem 0 !important;
  border-bottom: 1px solid rgba(230,198,142,.18) !important;
}

html body:not(.wp-admin) .sw-entry.sw-entry :is(
  .sw-at-a-glance,
  .sw-location-glance,
  .sw-monster-glance,
  .sw-glance
) > dl:has(> dt) > dt {
  color: var(--sw-c-link, #e6c68e) !important;
  font-weight: 700 !important;
}

/* Table form. */
html body:not(.wp-admin) .sw-entry.sw-entry :is(
  .sw-at-a-glance,
  .sw-location-glance,
  .sw-monster-glance,
  .sw-glance
) > table {
  display: table !important;
  width: 100% !important;
  max-width: 100% !important;
  table-layout: auto !important;
  border-collapse: collapse !important;
  margin: 0 !important;
}

html body:not(.wp-admin) .sw-entry.sw-entry :is(
  .sw-at-a-glance,
  .sw-location-glance,
  .sw-monster-glance,
  .sw-glance
) > table :is(th, td) {
  min-width: 0 !important;
  padding: .58rem .65rem !important;
  vertical-align: top !important;
  border-bottom: 1px solid rgba(230,198,142,.18) !important;
}

/* No mid-word shredding in any At-a-Glance format. */
html body:not(.wp-admin) .sw-entry.sw-entry :is(
  .sw-at-a-glance,
  .sw-location-glance,
  .sw-monster-glance,
  .sw-glance,
  .sw-glance-grid,
  .sw-location-glance-grid
) :is(p, span, strong, b, a, dt, dd, th, td) {
  min-width: 0 !important;
  word-break: normal !important;
  overflow-wrap: break-word !important;
  hyphens: none !important;
}

/* Responsive contract. */
@media (max-width: 900px) {
  html body:not(.wp-admin) .sw-entry.sw-entry :is(
    .sw-at-a-glance,
    .sw-location-glance,
    .sw-monster-glance,
    .sw-glance
  ) > :is(.sw-glance-grid, .sw-location-glance-grid),
  html body:not(.wp-admin) .sw-entry.sw-entry > .sw-glance:not(section):not(:has(> :is(dl, table, .sw-glance-grid, .sw-location-glance-grid))) {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
}

@media (max-width: 760px) {
  html body:not(.wp-admin) .sw-entry.sw-entry > :is(.sw-identity, .sw-location-identity) > :is(
    .sw-at-a-glance,
    .sw-glance,
    .sw-location-glance
  ) {
    width: 100% !important;
    max-width: none !important;
    margin: 0 !important;
  }

  html body:not(.wp-admin) .sw-entry.sw-entry :is(
    .sw-at-a-glance,
    .sw-location-glance,
    .sw-monster-glance,
    .sw-glance
  ) > dl:has(> dt) {
    grid-template-columns: 1fr !important;
    gap: 0 !important;
  }

  html body:not(.wp-admin) .sw-entry.sw-entry :is(
    .sw-at-a-glance,
    .sw-location-glance,
    .sw-monster-glance,
    .sw-glance
  ) > dl:has(> dt) > dt {
    padding-bottom: .12rem !important;
    border-bottom: 0 !important;
  }

  html body:not(.wp-admin) .sw-entry.sw-entry :is(
    .sw-at-a-glance,
    .sw-location-glance,
    .sw-monster-glance,
    .sw-glance
  ) > dl:has(> dt) > dd {
    padding-top: 0 !important;
  }
}

@media (max-width: 620px) {
  html body:not(.wp-admin) .sw-entry.sw-entry :is(
    .sw-at-a-glance,
    .sw-location-glance,
    .sw-monster-glance,
    .sw-glance
  ) > :is(.sw-glance-grid, .sw-location-glance-grid),
  html body:not(.wp-admin) .sw-entry.sw-entry > .sw-glance:not(section):not(:has(> :is(dl, table, .sw-glance-grid, .sw-location-glance-grid))) {
    grid-template-columns: 1fr !important;
  }
}

/* END SPIRALWORLDS GLOBAL AT-A-GLANCE CANONICAL */


/* --- WPWriter addition --- */
/* SHARED DOMAIN AND DEITY DIRECTORY TABLES — 2026-10-01 */
html body .sw-entry.sw-entry .sw-table-wrap:has(> .sw-directory-table) {
  overflow-x: visible !important;
}
html body .sw-entry.sw-entry table.sw-directory-table {
  width: 100% !important;
  min-width: 0 !important;
  table-layout: fixed !important;
}
html body .sw-entry.sw-entry .sw-directory-table th:first-child {
  width: 28%;
}
html body .sw-entry.sw-entry .sw-directory-table :is(th,td) {
  white-space: normal !important;
  overflow-wrap: break-word !important;
  word-break: normal !important;
}
@media (max-width: 600px) {
  html body .sw-entry.sw-entry .sw-directory-table thead { display: none !important; }
  html body .sw-entry.sw-entry .sw-directory-table,
  html body .sw-entry.sw-entry .sw-directory-table tbody,
  html body .sw-entry.sw-entry .sw-directory-table tr,
  html body .sw-entry.sw-entry .sw-directory-table :is(th,td) {
    display: block !important;
    width: 100% !important;
    min-width: 0 !important;
  }
  html body .sw-entry.sw-entry .sw-directory-table tr { margin-bottom: .85rem; }
  html body .sw-entry.sw-entry .sw-directory-table td { border-top: 0 !important; }
}

/* --- WPWriter addition --- */
/* Shared directory reading size */
html body .sw-entry.sw-entry .sw-directory-table :is(th,td) { font-size: max(1rem, 18px) !important; line-height: 1.55 !important; }


/* --- WPWriter addition --- */

/* GLOBAL CANONICAL ENTRY TITLE FIX — 2026-10-02
   Astra supplies the visible entry-header H1. The injected indexing H1 inside
   entry-content is a duplicate and must never render visually. */
html body:not(.wp-admin) .entry-content.clear > h1.entry-title.sw-indexing-title,
html body:not(.wp-admin) .entry-content > h1.sw-indexing-title,
html body:not(.wp-admin) h1.sw-indexing-title {
  display: none !important;
  visibility: hidden !important;
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  margin: -1px !important;
  padding: 0 !important;
  overflow: hidden !important;
  clip: rect(0 0 0 0) !important;
  white-space: nowrap !important;
  border: 0 !important;
}

/* SW Character Classes hub — 2026-10-02 */
.swclass{--bg:#070b0e;--panel:#0d1419;--panel2:#121b21;--text:#f5f0e6;--muted:#d7cec1;--gold:#d6a52d;--gold2:#f4d989;--line:rgba(214,165,45,.42);--soft:rgba(214,165,45,.18);color:var(--text);background:var(--bg);font:16px/1.62 Georgia,"Times New Roman",serif;padding:30px 0 56px}.page-id-23846 .entry-header,.page-id-23846 .entry-title{display:none!important}.swclass *{box-sizing:border-box}.swclass .in{max-width:1180px;width:calc(100% - 32px);margin:0 auto}.swclass h1,.swclass h2,.swclass h3{font-family:"Segoe UI",Tahoma,Arial,sans-serif;color:#fff;letter-spacing:-.02em}.swclass h1{font-size:clamp(2.6rem,5vw,4.7rem);line-height:1;margin:0 0 12px}.swclass h2{font-size:clamp(1.7rem,3vw,2.6rem);line-height:1.08;margin:0 0 12px}.swclass h3{font-size:1.14rem;margin:0 0 8px}.swclass p{margin:0 0 15px}.swclass a{color:var(--gold2);text-decoration:underline;text-underline-offset:2px}.swclass .kicker,.swclass .eyebrow{font:800 .74rem "Segoe UI",Tahoma,Arial,sans-serif;letter-spacing:.09em;text-transform:uppercase;color:var(--gold2)}.swclass .subtitle{font:700 1.08rem "Segoe UI",Tahoma,Arial,sans-serif;color:#e6ddd0}.swclass .lede{font-size:1.08rem;max-width:900px;color:#f0e8dc}.swclass .hero{margin:22px 0 28px;border:1px solid var(--line);background:#0b1014}.swclass .hero img{display:block;width:100%;aspect-ratio:16/9;object-fit:cover}.swclass .hero figcaption{padding:9px 12px;border-top:1px solid var(--soft);color:#e1d7ca;font-size:.8rem}.swclass section{padding:34px 0;border-top:1px solid var(--soft)}.swclass .rule{border-left:4px solid var(--gold);background:#17150f;padding:14px 17px;margin:17px 0}.swclass .roles{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.swclass .role,.swclass .class-card{border:1px solid var(--line);background:var(--panel);padding:16px}.swclass .role strong{display:block;color:var(--gold2);font:800 .76rem "Segoe UI",Tahoma,Arial,sans-serif;text-transform:uppercase;margin-bottom:4px}.swclass .class-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.swclass .class-card{display:flex;min-height:220px;flex-direction:column}.swclass .class-card p{color:var(--muted);font-size:.9rem}.swclass .class-card .type{display:inline-block;align-self:flex-start;margin-bottom:10px;padding:3px 8px;border:1px solid var(--line);border-radius:999px;color:var(--gold2);font:800 .64rem "Segoe UI",Tahoma,Arial,sans-serif;text-transform:uppercase;letter-spacing:.04em}.swclass .class-card .go{margin-top:auto;font:800 .75rem "Segoe UI",Tahoma,Arial,sans-serif}.swclass .tabs>input{position:absolute;opacity:0;pointer-events:none}.swclass .labels{display:flex;flex-wrap:wrap;gap:8px;margin:14px 0 10px}.swclass .labels label{cursor:pointer;border:1px solid var(--line);background:var(--panel);padding:10px 15px;border-radius:3px;font:800 .78rem "Segoe UI",Tahoma,Arial,sans-serif;text-transform:uppercase}.swclass .panels{border:1px solid var(--line);background:var(--panel)}.swclass .panel{display:none;padding:24px}.swclass #c55:checked~.labels label[for=c55],.swclass #cpf:checked~.labels label[for=cpf],.swclass #c35:checked~.labels label[for=c35]{background:linear-gradient(#f0cf76,#d6a52d);color:#171006}.swclass #c55:checked~.panels .s55,.swclass #cpf:checked~.panels .spf,.swclass #c35:checked~.panels .s35{display:block}.swclass table{width:100%;border-collapse:collapse;margin:14px 0}.swclass th,.swclass td{padding:9px 10px;border:1px solid rgba(214,165,45,.22);vertical-align:top;text-align:left}.swclass th{background:#151d22;color:#fff;font:800 .75rem "Segoe UI",Tahoma,Arial,sans-serif;text-transform:uppercase}.swclass .scroll{overflow-x:auto}.swclass .record{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 22px}.swclass .record div{padding:12px 0;border-top:1px solid var(--soft)}.swclass .record strong{display:block;color:var(--gold2);font:800 .76rem "Segoe UI",Tahoma,Arial,sans-serif;text-transform:uppercase;margin-bottom:3px}.swclass .check{columns:2;column-gap:30px;padding-left:1.2rem}.swclass .check li{break-inside:avoid;margin:0 0 9px}.swclass details{border:1px solid var(--line);background:#090e12;padding:14px 16px;margin-top:14px}.swclass summary{cursor:pointer;color:var(--gold2);font:800 .82rem "Segoe UI",Tahoma,Arial,sans-serif}.swclass .nav{display:flex;flex-wrap:wrap;gap:9px;margin-top:18px}.swclass .btn{display:inline-flex;padding:10px 15px;border:1px solid var(--gold);border-radius:3px;background:linear-gradient(#f0cf76,#d6a52d);color:#171006!important;text-decoration:none!important;font:900 .75rem "Segoe UI",Tahoma,Arial,sans-serif;text-transform:uppercase}.swclass .btn.alt{background:var(--panel);color:#fff!important}@media(max-width:900px){.swclass .roles{grid-template-columns:repeat(2,1fr)}.swclass .class-grid{grid-template-columns:repeat(2,1fr)}.swclass .record{grid-template-columns:1fr}.swclass .check{columns:1}}@media(max-width:560px){.swclass .roles,.swclass .class-grid{grid-template-columns:1fr}.swclass .labels{display:grid}.swclass .labels label{text-align:center}.swclass th,.swclass td{padding:8px}}



/* --- WPWriter addition --- */
/* no-op intentionally omitted */

/* --- WPWriter addition --- */
/* Drugs workflow batch via WPWriter */
/* Canonical tabs: legacy edition and source variants — 2026-10-02 */
html body .sw-entry.sw-entry .sw-tabs > input[id$="-3x"]:checked ~ .sw-tab-panels > .sw-tab-panel[id$="-3x"] ,
html body .sw-entry.sw-entry .sw-tabs > input[id$="-30"]:checked ~ .sw-tab-panels > .sw-tab-panel[id$="-30"] ,
html body .sw-entry.sw-entry .sw-tabs > input[id$="-community"]:checked ~ .sw-tab-panels > .sw-tab-panel[id$="-community"] ,
html body .sw-entry.sw-entry .sw-tabs > input[id$="-olympus"]:checked ~ .sw-tab-panels > .sw-tab-panel[id$="-olympus"] {
 display:block !important; visibility:visible !important; height:auto !important; min-height:0 !important; margin:0 0 1.4rem !important; padding:clamp(1rem,2vw,1.5rem) !important; overflow:visible !important; border:1px solid var(--sw-c-border) !important; border-top:3px solid var(--sw-c-link) !important; border-radius:8px !important; background:var(--sw-c-panel) !important; color:var(--sw-c-text) !important;
}
html body .sw-entry.sw-entry .sw-tabs > input[id$="-3x"]:checked ~ .sw-tab-labels > label[for$="-3x"] ,
html body .sw-entry.sw-entry .sw-tabs > input[id$="-30"]:checked ~ .sw-tab-labels > label[for$="-30"] ,
html body .sw-entry.sw-entry .sw-tabs > input[id$="-community"]:checked ~ .sw-tab-labels > label[for$="-community"] ,
html body .sw-entry.sw-entry .sw-tabs > input[id$="-olympus"]:checked ~ .sw-tab-labels > label[for$="-olympus"] {
 background:var(--sw-c-active) !important; border-color:var(--sw-c-active) !important; color:var(--sw-c-active-text) !important;
}


/* --- WPWriter addition --- */
/* noop */

/* --- WPWriter addition --- */
/* SpiralWorlds robust tab fallback: map radio order to panel order.
   This keeps legacy and rebuilt spell tabs working even when old panel IDs differ. */
html body .sw-entry.sw-entry .sw-tabs > input.sw-tab-radio[type="radio"]:checked ~ .sw-tab-panels > .sw-tab-panel {
  display: none !important;
  visibility: hidden !important;
  height: 0 !important;
  min-height: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  overflow: hidden !important;
  border: 0 !important;
}

html body .sw-entry.sw-entry .sw-tabs > input.sw-tab-radio:nth-of-type(1):checked ~ .sw-tab-panels > .sw-tab-panel:nth-of-type(1),
html body .sw-entry.sw-entry .sw-tabs > input.sw-tab-radio:nth-of-type(2):checked ~ .sw-tab-panels > .sw-tab-panel:nth-of-type(2),
html body .sw-entry.sw-entry .sw-tabs > input.sw-tab-radio:nth-of-type(3):checked ~ .sw-tab-panels > .sw-tab-panel:nth-of-type(3),
html body .sw-entry.sw-entry .sw-tabs > input.sw-tab-radio:nth-of-type(4):checked ~ .sw-tab-panels > .sw-tab-panel:nth-of-type(4),
html body .sw-entry.sw-entry .sw-tabs > input.sw-tab-radio:nth-of-type(5):checked ~ .sw-tab-panels > .sw-tab-panel:nth-of-type(5) {
  display: block !important;
  visibility: visible !important;
  height: auto !important;
  min-height: 0 !important;
  margin: 0 0 1.4rem !important;
  padding: clamp(1rem,2vw,1.5rem) !important;
  overflow: visible !important;
  border: 1px solid #55505e !important;
  border-top: 3px solid #e6c68e !important;
  border-radius: 8px !important;
  background: #1b1a20 !important;
  color: #e8e6eb !important;
}

html body .sw-entry.sw-entry .sw-tabs > input.sw-tab-radio:nth-of-type(1):checked ~ .sw-tab-labels > label:nth-of-type(1),
html body .sw-entry.sw-entry .sw-tabs > input.sw-tab-radio:nth-of-type(2):checked ~ .sw-tab-labels > label:nth-of-type(2),
html body .sw-entry.sw-entry .sw-tabs > input.sw-tab-radio:nth-of-type(3):checked ~ .sw-tab-labels > label:nth-of-type(3),
html body .sw-entry.sw-entry .sw-tabs > input.sw-tab-radio:nth-of-type(4):checked ~ .sw-tab-labels > label:nth-of-type(4),
html body .sw-entry.sw-entry .sw-tabs > input.sw-tab-radio:nth-of-type(5):checked ~ .sw-tab-labels > label:nth-of-type(5) {
  background: #e6c68e !important;
  border-color: #e6c68e !important;
  color: #17130c !important;
}

/* --- WPWriter addition --- */
/* SpiralWorlds NPC edition tabs — canonical 3-edition layout */
html body .sw-entry.sw-entry.sw-npc .sw-tabs > .sw-tab-labels {
  grid-template-columns: repeat(3,minmax(0,1fr)) !important;
}
@media (max-width:780px) {
  html body .sw-entry.sw-entry.sw-npc .sw-tabs > .sw-tab-labels {
    grid-template-columns: repeat(2,minmax(0,1fr)) !important;
  }
}
@media (max-width:520px) {
  html body .sw-entry.sw-entry.sw-npc .sw-tabs > .sw-tab-labels {
    grid-template-columns: 1fr !important;
  }
}

/* --- WPWriter addition --- */

/* Timeline hero title: visual title only; the WordPress page title remains the single H1. */
.sw-timeline-entry .sw-page-title {
  margin: .2em 0 .28em;
  color: #fff7e6;
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(2.4rem,6vw,4.8rem);
  font-weight: 700;
  line-height: 1.05;
}


/* --- WPWriter addition --- */

/* ============================================================
   SPIRALWORLDS HERO -> AT-A-GLANCE ORDER LOCK — 2026-10-06
   Global rendering rule: H1 -> main hero -> At a Glance -> lead/links/content.
   Covers modern .sw-entry pages while leaving location identity blocks intact.
   ============================================================ */

/* Pages whose hero lives inside a top-level header (common on Gods pages). */
html body:not(.wp-admin) .sw-entry.sw-entry:has(> header > .sw-hero):has(> :is(.sw-glance, .sw-at-a-glance, .sw-monster-glance)) {
  display: flex !important;
  flex-direction: column !important;
  align-items: stretch !important;
}

html body:not(.wp-admin) .sw-entry.sw-entry:has(> header > .sw-hero):has(> :is(.sw-glance, .sw-at-a-glance, .sw-monster-glance)) > header {
  display: contents !important;
}

html body:not(.wp-admin) .sw-entry.sw-entry:has(> header > .sw-hero):has(> :is(.sw-glance, .sw-at-a-glance, .sw-monster-glance)) > header > .sw-kicker {
  order: 10;
}

html body:not(.wp-admin) .sw-entry.sw-entry:has(> header > .sw-hero):has(> :is(.sw-glance, .sw-at-a-glance, .sw-monster-glance)) > header > :is(h1, .sw-entry-title, .sw-page-title, .sw-display-title) {
  order: 20;
}

html body:not(.wp-admin) .sw-entry.sw-entry:has(> header > .sw-hero):has(> :is(.sw-glance, .sw-at-a-glance, .sw-monster-glance)) > header > .sw-hero {
  order: 30;
}

html body:not(.wp-admin) .sw-entry.sw-entry:has(> header > .sw-hero):has(> :is(.sw-glance, .sw-at-a-glance, .sw-monster-glance)) > :is(.sw-glance, .sw-at-a-glance, .sw-monster-glance) {
  order: 40;
}

html body:not(.wp-admin) .sw-entry.sw-entry:has(> header > .sw-hero):has(> :is(.sw-glance, .sw-at-a-glance, .sw-monster-glance)) > header > :not(.sw-kicker):not(h1):not(.sw-entry-title):not(.sw-page-title):not(.sw-display-title):not(.sw-hero) {
  order: 50;
}

html body:not(.wp-admin) .sw-entry.sw-entry:has(> header > .sw-hero):has(> :is(.sw-glance, .sw-at-a-glance, .sw-monster-glance)) > :not(header):not(.sw-glance):not(.sw-at-a-glance):not(.sw-monster-glance) {
  order: 60;
}

/* Pages where H1, hero and At-a-Glance are already direct children. */
html body:not(.wp-admin) .sw-entry.sw-entry:has(> .sw-hero):has(> :is(.sw-glance, .sw-at-a-glance, .sw-monster-glance)) {
  display: flex !important;
  flex-direction: column !important;
  align-items: stretch !important;
}

html body:not(.wp-admin) .sw-entry.sw-entry:has(> .sw-hero):has(> :is(.sw-glance, .sw-at-a-glance, .sw-monster-glance)) > :is(.sw-kicker) {
  order: 10;
}

html body:not(.wp-admin) .sw-entry.sw-entry:has(> .sw-hero):has(> :is(.sw-glance, .sw-at-a-glance, .sw-monster-glance)) > :is(h1, .sw-entry-title, .sw-page-title, .sw-display-title) {
  order: 20;
}

html body:not(.wp-admin) .sw-entry.sw-entry:has(> .sw-hero):has(> :is(.sw-glance, .sw-at-a-glance, .sw-monster-glance)) > .sw-hero {
  order: 30;
}

html body:not(.wp-admin) .sw-entry.sw-entry:has(> .sw-hero):has(> :is(.sw-glance, .sw-at-a-glance, .sw-monster-glance)) > :is(.sw-glance, .sw-at-a-glance, .sw-monster-glance) {
  order: 40;
}

html body:not(.wp-admin) .sw-entry.sw-entry:has(> .sw-hero):has(> :is(.sw-glance, .sw-at-a-glance, .sw-monster-glance)) > :not(.sw-kicker):not(h1):not(.sw-entry-title):not(.sw-page-title):not(.sw-display-title):not(.sw-hero):not(.sw-glance):not(.sw-at-a-glance):not(.sw-monster-glance) {
  order: 60;
}

/* Wrapped-table At-a-Glance repair.
   Some legacy/Gods pages use .sw-table-wrap around the table; include that
   structure in the canonical panel contract and make the table fill it. */
html body:not(.wp-admin) .sw-entry.sw-entry :is(
  .sw-at-a-glance,
  .sw-location-glance,
  .sw-monster-glance,
  section.sw-glance
):has(> :is(.sw-table-wrap, .sw-scroll)) {
  display: block !important;
  width: min(930px, 100%) !important;
  max-width: 930px !important;
  min-width: 0 !important;
  margin: 1.5rem auto 2.2rem !important;
  padding: clamp(1rem, 2vw, 1.25rem) !important;
  border: 1px solid var(--sw-c-border, #55505e) !important;
  border-radius: 8px !important;
  background: var(--sw-c-panel, #1b1a20) !important;
  box-shadow: none !important;
  box-sizing: border-box !important;
}

html body:not(.wp-admin) .sw-entry.sw-entry :is(
  .sw-at-a-glance,
  .sw-location-glance,
  .sw-monster-glance,
  .sw-glance
) > :is(.sw-table-wrap, .sw-scroll) {
  display: block !important;
  width: 100% !important;
  max-width: 100% !important;
  min-width: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  overflow-x: auto !important;
}

html body:not(.wp-admin) .sw-entry.sw-entry :is(
  .sw-at-a-glance,
  .sw-location-glance,
  .sw-monster-glance,
  .sw-glance
) > :is(.sw-table-wrap, .sw-scroll) > table {
  display: table !important;
  width: 100% !important;
  max-width: 100% !important;
  min-width: 0 !important;
  table-layout: auto !important;
  border-collapse: collapse !important;
  margin: 0 !important;
}

html body:not(.wp-admin) .sw-entry.sw-entry :is(
  .sw-at-a-glance,
  .sw-location-glance,
  .sw-monster-glance,
  .sw-glance
) > :is(.sw-table-wrap, .sw-scroll) > table th {
  width: 30% !important;
  white-space: normal !important;
}

@media (max-width: 760px) {
  html body:not(.wp-admin) .sw-entry.sw-entry :is(
    .sw-at-a-glance,
    .sw-location-glance,
    .sw-monster-glance,
    .sw-glance
  ) > :is(.sw-table-wrap, .sw-scroll) > table th {
    width: 36% !important;
  }
}
/* END SPIRALWORLDS HERO -> AT-A-GLANCE ORDER LOCK */


/* --- WPWriter addition --- */

/* HERO -> GLANCE ORDER LOCK — direct-hero refinement, 2026-10-06
   On entries without an internal H1/header, contextual kickers stay after
   the hero + At-a-Glance pair rather than jumping above the hero. */
html body:not(.wp-admin) .sw-entry.sw-entry:has(> .sw-hero):has(> :is(.sw-glance, .sw-at-a-glance, .sw-monster-glance)) > .sw-kicker {
  order: 60 !important;
}

/* Deity/card-form At-a-Glance repair.
   Roman and other newer deity pages often use a nested .sw-card-grid. */
html body:not(.wp-admin) .sw-entry.sw-entry :is(
  .sw-at-a-glance,
  .sw-location-glance,
  .sw-monster-glance,
  section.sw-glance
):has(> :is(.sw-card-grid, .sw-cards, .sw-quick-grid)) {
  display: block !important;
  width: min(930px, 100%) !important;
  max-width: 930px !important;
  min-width: 0 !important;
  margin: 1.5rem auto 2.2rem !important;
  padding: clamp(1rem, 2vw, 1.25rem) !important;
  border: 1px solid var(--sw-c-border, #55505e) !important;
  border-radius: 8px !important;
  background: var(--sw-c-panel, #1b1a20) !important;
  box-shadow: none !important;
  box-sizing: border-box !important;
}

html body:not(.wp-admin) .sw-entry.sw-entry :is(
  .sw-at-a-glance,
  .sw-location-glance,
  .sw-monster-glance,
  .sw-glance
) > :is(.sw-card-grid, .sw-cards, .sw-quick-grid) {
  width: 100% !important;
  max-width: none !important;
  min-width: 0 !important;
  margin: 0 !important;
}
/* END direct-hero/card-form refinement */


/* --- WPWriter addition --- */


/* BEGIN Gods & Pantheons hub — migrated from page-level CSS */
.sw-gods-hub {
  --sw-black: #070706;
  --sw-black-soft: #0c0b09;
  --sw-panel: #12100d;
  --sw-panel-light: #191610;
  --sw-gold: #c9a45a;
  --sw-gold-bright: #e4c47a;
  --sw-gold-dark: #806127;
  --sw-cream: #f1e7d3;
  --sw-text: #d8cfbd;
  --sw-muted: #aaa08e;
  --sw-line: rgba(201, 164, 90, 0.28);
  --sw-line-strong: rgba(201, 164, 90, 0.56);
  background: var(--sw-black) !important;
  color: var(--sw-text) !important;
  font-family: Arial, Helvetica, sans-serif;
  font-size: 17px;
  line-height: 1.7;
  overflow: hidden;
}

.sw-gods-hub,
.sw-gods-hub * {
  box-sizing: border-box;
}

.sw-gods-hub h1,
.sw-gods-hub h2,
.sw-gods-hub h3,
.sw-gods-hub p,
.sw-gods-hub figure {
  margin-top: 0;
}

.sw-gods-hub h1,
.sw-gods-hub h2,
.sw-gods-hub h3 {
  color: var(--sw-cream) !important;
}

.sw-gods-hub a,
.sw-gods-hub a:visited {
  color: inherit !important;
}

.sw-gods-hub img {
  display: block;
  max-width: 100%;
}

.sw-gods-shell {
  margin: 0 auto;
  max-width: 1260px;
  padding-left: 30px;
  padding-right: 30px;
}

.sw-gods-section {
  border-top: 1px solid var(--sw-line);
  padding: 80px 0;
  scroll-margin-top: 32px;
}

.sw-gods-section--soft {
  background:
    linear-gradient(180deg, rgba(255,255,255,0.014), transparent 18rem),
    var(--sw-black-soft);
}

.sw-gods-section--pattern {
  background:
    linear-gradient(rgba(7,7,6,0.965), rgba(7,7,6,0.965)),
    repeating-linear-gradient(45deg, transparent, transparent 22px, rgba(201,164,90,0.025) 22px, rgba(201,164,90,0.025) 23px);
}

.sw-gods-kicker {
  color: var(--sw-gold-bright) !important;
  font-size: 0.74rem;
  font-weight: 700;
  letter-spacing: 0.22em;
  margin-bottom: 12px;
  text-transform: uppercase;
}

.sw-gods-heading {
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(2rem, 4.3vw, 3.55rem);
  font-weight: 500;
  letter-spacing: -0.03em;
  line-height: 1.08;
  margin-bottom: 0;
}

.sw-gods-heading::after {
  background: linear-gradient(90deg, var(--sw-gold), transparent);
  content: "";
  display: block;
  height: 2px;
  margin-top: 21px;
  width: 92px;
}

.sw-gods-intro {
  color: var(--sw-muted) !important;
  font-size: 1.04rem;
  margin: 23px 0 0;
  max-width: 830px;
}

/* HERO */
.sw-gods-hero {
  background:
    radial-gradient(circle at 22% 18%, rgba(201,164,90,0.12), transparent 31rem),
    #050504;
  border-bottom: 1px solid var(--sw-line-strong);
  position: relative;
}

.sw-gods-hero::after {
  background: linear-gradient(90deg, transparent, var(--sw-gold), transparent);
  bottom: 0;
  content: "";
  height: 2px;
  left: 8%;
  opacity: 0.7;
  position: absolute;
  width: 84%;
}

.sw-gods-hero__layout {
  align-items: center;
  display: grid;
  gap: 56px;
  grid-template-columns: minmax(0, 0.9fr) minmax(440px, 1.1fr);
  min-height: 670px;
  padding-bottom: 70px;
  padding-top: 70px;
}

.sw-gods-hero__sigil {
  align-items: center;
  border: 1px solid var(--sw-line-strong);
  border-radius: 50%;
  color: var(--sw-gold-bright) !important;
  display: flex;
  font-family: Georgia, "Times New Roman", serif;
  font-size: 2rem;
  height: 72px;
  justify-content: center;
  margin-bottom: 26px;
  position: relative;
  width: 72px;
}

.sw-gods-hero__sigil::before,
.sw-gods-hero__sigil::after {
  border: 1px solid rgba(201,164,90,0.23);
  border-radius: 50%;
  content: "";
  inset: 7px;
  position: absolute;
}

.sw-gods-hero__sigil::after {
  inset: 14px;
}

.sw-gods-hero h1 {
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(3.4rem, 6vw, 6.1rem);
  font-weight: 500;
  letter-spacing: -0.058em;
  line-height: 0.92;
  white-space: nowrap;
  margin-bottom: 0;
  text-shadow: 0 6px 30px rgba(0,0,0,0.72);
}

.sw-gods-hero__lead {
  color: var(--sw-cream) !important;
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(1.2rem, 2.4vw, 1.6rem);
  line-height: 1.45;
  margin: 26px 0 0;
  max-width: 670px;
}

.sw-gods-hero__body {
  color: #c9c0ae !important;
  margin: 18px 0 0;
  max-width: 680px;
}

.sw-gods-hero__art {
  background: #0b0907;
  border: 1px solid var(--sw-line-strong);
  box-shadow: 0 24px 70px rgba(0,0,0,0.52);
  margin: 0;
  padding: 10px;
  position: relative;
}

.sw-gods-hero__art::before {
  border: 1px solid rgba(228,196,122,0.34);
  content: "";
  inset: 19px;
  pointer-events: none;
  position: absolute;
  z-index: 2;
}

.sw-gods-hero__art img {
  aspect-ratio: 3 / 2;
  height: auto;
  object-fit: cover;
  width: 100%;
}

.sw-gods-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 13px;
  margin-top: 30px;
}

.sw-gods-button,
.sw-gods-button:visited {
  align-items: center;
  border: 1px solid var(--sw-gold) !important;
  display: inline-flex;
  font-size: 0.76rem;
  font-weight: 700;
  justify-content: center;
  letter-spacing: 0.12em;
  min-height: 48px;
  padding: 12px 22px;
  text-decoration: none !important;
  text-transform: uppercase;
  transition: background-color 180ms ease, border-color 180ms ease, color 180ms ease, transform 180ms ease;
}

.sw-gods-button--primary,
.sw-gods-button--primary:visited {
  background: var(--sw-gold);
  color: #100d08 !important;
}

.sw-gods-button--secondary,
.sw-gods-button--secondary:visited {
  background: transparent;
  color: var(--sw-cream) !important;
}

.sw-gods-button:hover,
.sw-gods-button:focus-visible {
  background: var(--sw-gold-bright) !important;
  border-color: var(--sw-gold-bright) !important;
  color: #100d08 !important;
  transform: translateY(-2px);
}

/* SECTION NAVIGATION */
.sw-gods-nav {
  background: #0a0907;
  border-bottom: 1px solid var(--sw-line);
}

.sw-gods-nav__inner {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.sw-gods-nav a,
.sw-gods-nav a:visited {
  border-left: 1px solid var(--sw-line);
  color: #c8bea9 !important;
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.13em;
  padding: 18px 14px;
  text-align: center;
  text-decoration: none !important;
  text-transform: uppercase;
}

.sw-gods-nav a:last-child {
  border-right: 1px solid var(--sw-line);
}

.sw-gods-nav a:hover,
.sw-gods-nav a:focus-visible {
  background: rgba(201,164,90,0.09);
  color: var(--sw-gold-bright) !important;
}

/* DIRECT COLLECTION INDEX */
.sw-gods-index {
  background:
    linear-gradient(110deg, rgba(201,164,90,0.08), transparent 50%),
    var(--sw-panel);
  border: 1px solid var(--sw-line-strong);
  margin-top: 38px;
  padding: 28px;
}

.sw-gods-index h3 {
  font-family: Georgia, "Times New Roman", serif;
  font-size: 1.45rem;
  font-weight: 500;
  margin-bottom: 18px;
}

.sw-gods-index__links {
  display: grid;
  gap: 10px;
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.sw-gods-index__links a,
.sw-gods-index__links a:visited {
  background: #0d0b09;
  border: 1px solid var(--sw-line);
  color: var(--sw-cream) !important;
  display: block;
  font-size: 0.88rem;
  font-weight: 700;
  padding: 12px 14px;
  text-decoration: none !important;
  transition: background-color 160ms ease, border-color 160ms ease, color 160ms ease, transform 160ms ease;
}

.sw-gods-index__links a:hover,
.sw-gods-index__links a:focus-visible {
  background: var(--sw-panel-light);
  border-color: var(--sw-line-strong);
  color: var(--sw-gold-bright) !important;
  transform: translateY(-2px);
}

/* COLLECTION CARDS */
.sw-gods-group {
  margin-top: 58px;
}

.sw-gods-group__head {
  margin-bottom: 26px;
}

.sw-gods-group__head h3 {
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(1.42rem, 2.7vw, 2rem);
  font-weight: 500;
  line-height: 1.2;
  margin-bottom: 8px;
}

.sw-gods-group__head p {
  color: var(--sw-muted) !important;
  margin-bottom: 0;
  max-width: 800px;
}

.sw-gods-grid {
  display: grid;
  gap: 20px;
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.sw-gods-card {
  background:
    linear-gradient(145deg, rgba(255,255,255,0.026), transparent 44%),
    var(--sw-panel);
  border: 1px solid var(--sw-line);
  box-shadow: 0 13px 34px rgba(0,0,0,0.24);
  display: flex;
  flex-direction: column;
  min-height: 285px;
  overflow: hidden;
  padding: 26px 24px 23px;
  position: relative;
}

.sw-gods-card::before {
  background: linear-gradient(90deg, var(--sw-gold-dark), var(--sw-gold-bright), transparent);
  content: "";
  height: 2px;
  left: 0;
  position: absolute;
  top: 0;
  width: 74%;
}

.sw-gods-card__top {
  align-items: center;
  display: flex;
  gap: 16px;
  justify-content: space-between;
  margin-bottom: 21px;
}

.sw-gods-card__sigil {
  align-items: center;
  border: 1px solid var(--sw-line-strong);
  border-radius: 50%;
  color: var(--sw-gold-bright) !important;
  display: flex;
  flex: 0 0 auto;
  font-family: Georgia, "Times New Roman", serif;
  font-size: 1.18rem;
  height: 46px;
  justify-content: center;
  width: 46px;
}

.sw-gods-card__label {
  color: #91856f !important;
  font-size: 0.62rem;
  font-weight: 700;
  letter-spacing: 0.12em;
  line-height: 1.35;
  text-align: right;
  text-transform: uppercase;
}

.sw-gods-card h3 {
  font-family: Georgia, "Times New Roman", serif;
  font-size: 1.34rem;
  font-weight: 500;
  line-height: 1.24;
  margin-bottom: 11px;
}

.sw-gods-card h3 a,
.sw-gods-card h3 a:visited {
  color: var(--sw-cream) !important;
  text-decoration: none !important;
}

.sw-gods-card h3 a:hover,
.sw-gods-card h3 a:focus-visible {
  color: var(--sw-gold-bright) !important;
}

.sw-gods-card p {
  color: var(--sw-muted) !important;
  font-size: 0.9rem;
  line-height: 1.61;
  margin-bottom: 22px;
}

.sw-gods-card__link,
.sw-gods-card__link:visited {
  color: var(--sw-gold-bright) !important;
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.12em;
  margin-top: auto;
  text-decoration: none !important;
  text-transform: uppercase;
}

.sw-gods-card__link:hover,
.sw-gods-card__link:focus-visible {
  color: var(--sw-cream) !important;
}

/* CONTEXT */
.sw-gods-context {
  display: grid;
  gap: 36px;
  grid-template-columns: minmax(0, 1.15fr) minmax(320px, 0.85fr);
  margin-top: 38px;
}

.sw-gods-context__text {
  background: var(--sw-panel);
  border: 1px solid var(--sw-line);
  padding: 30px;
}

.sw-gods-context__text h3 {
  font-family: Georgia, "Times New Roman", serif;
  font-size: 1.5rem;
  font-weight: 500;
  margin-bottom: 14px;
}

.sw-gods-context__text p {
  color: var(--sw-text) !important;
  margin-bottom: 16px;
}

.sw-gods-context__text p:last-child {
  margin-bottom: 0;
}

.sw-gods-principles {
  background:
    linear-gradient(140deg, rgba(201,164,90,0.08), transparent 50%),
    var(--sw-panel);
  border: 1px solid var(--sw-line-strong);
  padding: 30px;
}

.sw-gods-principles h3 {
  font-family: Georgia, "Times New Roman", serif;
  font-size: 1.45rem;
  font-weight: 500;
  margin-bottom: 14px;
}

.sw-gods-principles ul {
  margin: 0;
  padding-left: 19px;
}

.sw-gods-principles li {
  color: var(--sw-muted) !important;
  margin-bottom: 9px;
}

.sw-gods-principles li:last-child {
  margin-bottom: 0;
}

/* REFERENCES */
.sw-gods-reference-grid {
  display: grid;
  gap: 14px;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  margin-top: 38px;
}

.sw-gods-reference,
.sw-gods-reference:visited {
  align-items: center;
  background: var(--sw-panel);
  border: 1px solid var(--sw-line);
  display: grid;
  gap: 17px;
  grid-template-columns: 44px minmax(0, 1fr) auto;
  min-height: 95px;
  padding: 17px 19px;
  text-decoration: none !important;
  transition: background-color 170ms ease, border-color 170ms ease, transform 170ms ease;
}

.sw-gods-reference:hover,
.sw-gods-reference:focus-visible {
  background: var(--sw-panel-light);
  border-color: var(--sw-line-strong);
  transform: translateX(3px);
}

.sw-gods-reference__icon {
  align-items: center;
  border: 1px solid var(--sw-line);
  color: var(--sw-gold-bright) !important;
  display: flex;
  font-family: Georgia, "Times New Roman", serif;
  font-size: 1.05rem;
  height: 44px;
  justify-content: center;
  width: 44px;
}

.sw-gods-reference__source {
  color: #918570 !important;
  display: block;
  font-size: 0.62rem;
  font-weight: 700;
  letter-spacing: 0.11em;
  margin-bottom: 3px;
  text-transform: uppercase;
}

.sw-gods-reference h3 {
  font-family: Georgia, "Times New Roman", serif;
  font-size: 1rem;
  font-weight: 500;
  line-height: 1.32;
  margin-bottom: 0;
}

.sw-gods-reference__open {
  color: var(--sw-gold-bright) !important;
  font-size: 1rem;
}

/* VIDEOS — THUMBNAIL LINKS TO EXTERNAL YOUTUBE PAGES */
.sw-gods-video-grid {
  display: grid;
  gap: 22px;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  margin-top: 38px;
}

.sw-gods-video {
  background: var(--sw-panel);
  border: 1px solid var(--sw-line);
  box-shadow: 0 15px 38px rgba(0,0,0,0.28);
  overflow: hidden;
  transition: border-color 180ms ease, box-shadow 180ms ease, transform 180ms ease;
}

.sw-gods-video:hover,
.sw-gods-video:focus-within {
  border-color: var(--sw-line-strong);
  box-shadow: 0 22px 50px rgba(0,0,0,0.42);
  transform: translateY(-4px);
}

.sw-gods-video__image,
.sw-gods-video__image:visited {
  background: #000;
  display: block;
  overflow: hidden;
  position: relative;
}

.sw-gods-video__image::after {
  background: linear-gradient(180deg, transparent 52%, rgba(0,0,0,0.58));
  content: "";
  inset: 0;
  pointer-events: none;
  position: absolute;
}

.sw-gods-video__image img {
  aspect-ratio: 16 / 9;
  height: auto;
  object-fit: cover;
  transition: transform 220ms ease, filter 220ms ease;
  width: 100%;
}

.sw-gods-video:hover .sw-gods-video__image img,
.sw-gods-video:focus-within .sw-gods-video__image img {
  filter: brightness(1.06);
  transform: scale(1.025);
}

.sw-gods-video__play {
  align-items: center;
  background: rgba(7,7,6,0.84);
  border: 1px solid var(--sw-gold-bright);
  border-radius: 50%;
  color: var(--sw-gold-bright) !important;
  display: flex;
  font-size: 1.15rem;
  height: 56px;
  justify-content: center;
  left: 50%;
  padding-left: 3px;
  position: absolute;
  top: 50%;
  transform: translate(-50%, -50%);
  width: 56px;
  z-index: 2;
}

.sw-gods-video__body {
  padding: 23px 24px 25px;
}

.sw-gods-video__badge {
  color: #918570 !important;
  display: block;
  font-size: 0.63rem;
  font-weight: 700;
  letter-spacing: 0.12em;
  margin-bottom: 9px;
  text-transform: uppercase;
}

.sw-gods-video h3 {
  font-family: Georgia, "Times New Roman", serif;
  font-size: 1.35rem;
  font-weight: 500;
  line-height: 1.25;
  margin-bottom: 10px;
}

.sw-gods-video h3 a,
.sw-gods-video h3 a:visited {
  color: var(--sw-cream) !important;
  text-decoration: none !important;
}

.sw-gods-video h3 a:hover,
.sw-gods-video h3 a:focus-visible {
  color: var(--sw-gold-bright) !important;
}

.sw-gods-video p {
  color: var(--sw-muted) !important;
  font-size: 0.9rem;
  margin-bottom: 18px;
}

.sw-gods-video__watch,
.sw-gods-video__watch:visited {
  color: var(--sw-gold-bright) !important;
  font-size: 0.69rem;
  font-weight: 700;
  letter-spacing: 0.11em;
  text-decoration: none !important;
  text-transform: uppercase;
}

.sw-gods-video__watch:hover,
.sw-gods-video__watch:focus-visible {
  color: var(--sw-cream) !important;
}

.sw-gods-hub a:focus-visible {
  outline: 2px solid var(--sw-gold-bright);
  outline-offset: 3px;
}

@media (max-width: 1080px) {
  .sw-gods-hero__layout {
    gap: 38px;
    grid-template-columns: minmax(0, 1fr) minmax(370px, 0.9fr);
  }

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

@media (max-width: 820px) {
  .sw-gods-shell {
    padding-left: 21px;
    padding-right: 21px;
  }

  .sw-gods-section {
    padding: 64px 0;
  }

  .sw-gods-hero__layout {
    grid-template-columns: 1fr;
    min-height: auto;
    padding-bottom: 58px;
    padding-top: 62px;
  }

  .sw-gods-nav__inner {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .sw-gods-nav a,
  .sw-gods-nav a:last-child {
    border-bottom: 1px solid var(--sw-line);
    border-right: 1px solid var(--sw-line);
  }

  .sw-gods-index__links {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .sw-gods-context {
    grid-template-columns: 1fr;
  }

  .sw-gods-reference-grid,
  .sw-gods-video-grid {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 560px) {
  .sw-gods-hub {
    font-size: 16px;
  }

  .sw-gods-grid,
  .sw-gods-index__links {
    grid-template-columns: 1fr;
  }

  .sw-gods-card {
    min-height: 250px;
  }

  .sw-gods-actions {
    align-items: stretch;
    flex-direction: column;
  }

  .sw-gods-button {
    width: 100%;
  }

  .sw-gods-reference {
    grid-template-columns: 42px minmax(0, 1fr);
    padding: 16px;
  }

  .sw-gods-reference__open {
    display: none;
  }
}

@media (prefers-reduced-motion: reduce) {
  .sw-gods-hub *,
  .sw-gods-hub *::before,
  .sw-gods-hub *::after {
    scroll-behavior: auto !important;
    transition: none !important;
  }
}
/* END Gods & Pantheons hub */


/* --- WPWriter addition --- */


/* GNOMES — migrated from page-scoped CSS, 2026-10-06 */
/* =========================================================
   GNOMES — PLAYABLE PEOPLE
   Page-scoped CSS
   ========================================================= */

#sw-gnomes {
	--sw-panel: #fffaf0;
	--sw-panel-2: #eee3cf;
	--sw-border: #b99b68;
	--sw-text: #24211d;
	--sw-muted: #665d50;
	--sw-accent: #6e4f24;
	--sw-accent-2: #8b6837;
	--sw-link: #674616;
	--sw-shadow: rgba(0,0,0,.14);

	max-width: 1180px;
	width: calc(100% - 32px);
	margin: 0 auto;
	color: var(--sw-text);
	line-height: 1.72;
}

#sw-gnomes *,
#sw-gnomes *::before,
#sw-gnomes *::after {
	box-sizing: border-box;
}

#sw-gnomes h1,
#sw-gnomes h2,
#sw-gnomes h3,
#sw-gnomes h4 {
	line-height: 1.22;
	color: var(--sw-text);
}

#sw-gnomes h1 {
	margin: 0 0 1.1rem;
	font-size: clamp(2.1rem, 5vw, 3.6rem);
}

#sw-gnomes h2 {
	margin-top: 2.65rem;
	padding-bottom: .42rem;
	border-bottom: 1px solid var(--sw-border);
}

#sw-gnomes h3 {
	margin-top: 1.8rem;
}

#sw-gnomes h4 {
	margin-top: 1.4rem;
}

#sw-gnomes a {
	color: var(--sw-link);
	text-decoration-thickness: .08em;
	text-underline-offset: .15em;
}

#sw-gnomes .sw-lead {
	font-size: 1.12rem;
	margin: 1.45rem 0 1.8rem;
}

#sw-gnomes .sw-note,
#sw-gnomes .sw-rule-note {
	background: var(--sw-panel);
	border: 1px solid var(--sw-border);
	border-left: 5px solid var(--sw-accent-2);
	padding: 1rem 1.15rem;
	margin: 1.35rem 0;
	border-radius: 4px;
}

/* =========================================================
   IMAGES
   ========================================================= */

#sw-gnomes figure {
	margin: 1.5rem 0 2rem;
}

#sw-gnomes figure img {
	display: block;
	width: 100%;
	height: auto;
	border-radius: 5px;
	box-shadow: 0 4px 18px var(--sw-shadow);
}

#sw-gnomes figcaption {
	margin-top: .62rem;
	color: var(--sw-muted);
	font-size: .93rem;
	line-height: 1.5;
}

#sw-gnomes .sw-hero img {
	max-height: 760px;
	object-fit: cover;
}

#sw-gnomes .sw-supporting-image {
	max-width: 980px;
	margin-left: auto;
	margin-right: auto;
}

#sw-gnomes .sw-lightbox {
	display: none !important;
	position: fixed;
	inset: 0;
	z-index: 999999;
	padding: 3vh 3vw;
	background: rgba(0,0,0,.92);
	align-items: center;
	justify-content: center;
}

#sw-gnomes .sw-lightbox:target {
	display: flex !important;
}

#sw-gnomes .sw-lightbox img {
	max-width: 96vw;
	max-height: 88vh;
	width: auto;
	height: auto;
	object-fit: contain;
}

#sw-gnomes .sw-lightbox-close {
	position: fixed;
	top: 12px;
	right: 20px;
	z-index: 1000000;
	color: #fff !important;
	font-size: 2rem;
	text-decoration: none;
	line-height: 1;
	padding: .35rem .55rem;
}

/* =========================================================
   TABLES
   ========================================================= */

#sw-gnomes .sw-table-wrap {
	width: 100%;
	overflow-x: auto;
	margin: 1.2rem 0 1.8rem;
	-webkit-overflow-scrolling: touch;
}

#sw-gnomes table {
	width: 100%;
	min-width: 620px;
	border-collapse: collapse;
	background: var(--sw-panel);
	border: 1px solid var(--sw-border);
}

#sw-gnomes th,
#sw-gnomes td {
	padding: .72rem .82rem;
	vertical-align: top;
	border: 1px solid var(--sw-border);
	text-align: left;
}

#sw-gnomes th {
	background: var(--sw-panel-2);
	font-weight: 700;
}

#sw-gnomes tbody tr:nth-child(even) td {
	background: rgba(139,104,55,.055);
}

#sw-gnomes .sw-at-glance th:first-child {
	width: 25%;
}

/* =========================================================
   CSS-ONLY EDITION TABS
   ========================================================= */

#sw-gnomes .sw-tabs {
	margin: 1.4rem 0 2rem;
}

#sw-gnomes .sw-tab-input {
	position: absolute !important;
	width: 1px !important;
	height: 1px !important;
	padding: 0 !important;
	margin: -1px !important;
	overflow: hidden !important;
	clip: rect(0,0,0,0) !important;
	white-space: nowrap !important;
	border: 0 !important;
	opacity: 0 !important;
}

#sw-gnomes .sw-tab-labels {
	display: grid;
	grid-template-columns: repeat(4,minmax(0,1fr));
	gap: .45rem;
	margin-bottom: .65rem;
}

#sw-gnomes .sw-tab-labels label {
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: 52px;
	padding: .65rem .55rem;
	text-align: center;
	cursor: pointer;
	background: var(--sw-panel-2);
	border: 1px solid var(--sw-border);
	border-radius: 4px;
	font-weight: 700;
	line-height: 1.3;
}

#sw-gnomes .sw-tab-labels label:hover {
	filter: brightness(.98);
}

#sw-gnomes .sw-tab-panel {
	display: none !important;
	background: var(--sw-panel);
	border: 1px solid var(--sw-border);
	padding: clamp(1rem,3vw,1.6rem);
	border-radius: 4px;
}

#sw-gnome-tab-55:checked ~ .sw-tab-panels .sw-panel-55,
#sw-gnome-tab-5e:checked ~ .sw-tab-panels .sw-panel-5e,
#sw-gnome-tab-pf:checked ~ .sw-tab-panels .sw-panel-pf,
#sw-gnome-tab-35:checked ~ .sw-tab-panels .sw-panel-35 {
	display: block !important;
}

#sw-gnome-tab-55:checked ~ .sw-tab-labels label[for="sw-gnome-tab-55"],
#sw-gnome-tab-5e:checked ~ .sw-tab-labels label[for="sw-gnome-tab-5e"],
#sw-gnome-tab-pf:checked ~ .sw-tab-labels label[for="sw-gnome-tab-pf"],
#sw-gnome-tab-35:checked ~ .sw-tab-labels label[for="sw-gnome-tab-35"] {
	background: var(--sw-accent);
	color: #fff;
	border-color: var(--sw-accent);
}

#sw-gnomes .sw-stat-list {
	padding-left: 1.25rem;
}

#sw-gnomes .sw-stat-list li {
	margin-bottom: .55rem;
}

/* =========================================================
   ADVENTURE HOOKS
   ========================================================= */

#sw-gnomes .sw-hooks th:first-child {
	width: 27%;
}

/* =========================================================
   VIDEOS
   ========================================================= */

#sw-gnomes .sw-video-grid {
	display: grid;
	grid-template-columns: repeat(2,minmax(0,1fr));
	gap: 1rem;
	margin: 1.2rem 0;
}

#sw-gnomes .sw-video {
	background: var(--sw-panel);
	border: 1px solid var(--sw-border);
	padding: .8rem;
	border-radius: 4px;
}

#sw-gnomes .sw-video-frame {
	position: relative;
	width: 100%;
	padding-top: 56.25%;
	overflow: hidden;
	background: #000;
}

#sw-gnomes .sw-video-frame iframe {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	border: 0;
}

#sw-gnomes .sw-video p {
	margin-bottom: 0;
}

/* =========================================================
   FAQ / LICENSING
   ========================================================= */

#sw-gnomes details {
	background: var(--sw-panel);
	border: 1px solid var(--sw-border);
	border-radius: 4px;
	margin: .8rem 0;
	padding: .85rem 1rem;
}

#sw-gnomes summary {
	cursor: pointer;
	font-weight: 700;
}

#sw-gnomes .sw-license {
	font-size: .92rem;
	line-height: 1.58;
}

/* =========================================================
   RESPONSIVE
   ========================================================= */

@media (max-width:820px) {
	#sw-gnomes .sw-tab-labels {
		grid-template-columns: repeat(2,minmax(0,1fr));
	}

	#sw-gnomes .sw-video-grid {
		grid-template-columns: 1fr;
	}
}

@media (max-width:520px) {
	#sw-gnomes {
		width: calc(100% - 20px);
	}

	#sw-gnomes .sw-tab-labels {
		grid-template-columns: 1fr;
	}
}

/* =========================================================
   DARK MODE
   ========================================================= */

@media (prefers-color-scheme:dark) {
	#sw-gnomes {
		--sw-panel: #211f1b;
		--sw-panel-2: #302b23;
		--sw-border: #76613f;
		--sw-text: #f0e9dd;
		--sw-muted: #c9bda9;
		--sw-accent: #8c6734;
		--sw-accent-2: #bc945b;
		--sw-link: #e1bb7a;
	}
}

.astra-dark-mode-enable #sw-gnomes {
	--sw-panel: #211f1b;
	--sw-panel-2: #302b23;
	--sw-border: #76613f;
	--sw-text: #f0e9dd;
	--sw-muted: #c9bda9;
	--sw-accent: #8c6734;
	--sw-accent-2: #bc945b;
	--sw-link: #e1bb7a;
}
/* END GNOMES */


/* --- WPWriter addition --- */


/* LIMBO — migrated from page-scoped CSS, 2026-10-06 */
/* =========================================================
   SPIRALWORLDS — LIMBO
   The Unfixed Realm
   FINAL BESTIARY-INTEGRATED PUBLICATION BUILD
   ========================================================= */

.sw-limbo {
	--sw-bg: #080a0f;
	--sw-bg-soft: #0e121a;
	--sw-panel: #111722;
	--sw-panel-2: #171d29;
	--sw-gold: #d7b65e;
	--sw-gold-soft: #f0d991;
	--sw-purple: #a38ac8;
	--sw-blue: #82b8cf;
	--sw-text: #e8e7e2;
	--sw-muted: #aeb2ba;
	--sw-border: rgba(215,182,94,.27);
	--sw-border-soft: rgba(255,255,255,.09);
	--sw-radius: 16px;
	--sw-shadow: 0 18px 44px rgba(0,0,0,.28);

	background:
		radial-gradient(circle at 12% 4%, rgba(105,72,150,.13), transparent 30rem),
		radial-gradient(circle at 93% 17%, rgba(47,126,155,.10), transparent 32rem),
		linear-gradient(180deg, #080a0f 0%, #0b0e14 46%, #080a0f 100%);
	color: var(--sw-text);
	font-family: "Quicksand", system-ui, sans-serif;
	line-height: 1.72;
	padding: clamp(14px,3vw,40px);
	border-radius: 18px;
	overflow: hidden;
}

.sw-limbo *,
.sw-limbo *::before,
.sw-limbo *::after {
	box-sizing: border-box;
}

.sw-limbo .sw-shell {
	max-width: 1180px;
	margin: 0 auto;
}

.sw-limbo a {
	color: var(--sw-gold-soft);
	text-decoration-thickness: 1px;
	text-underline-offset: 3px;
}

.sw-limbo a:hover,
.sw-limbo a:focus {
	color: #fff2c5;
}

.sw-limbo h1,
.sw-limbo h2,
.sw-limbo h3,
.sw-limbo h4 {
	color: #fff;
	line-height: 1.15;
	margin-top: 0;
}

.sw-limbo h1 {
	font-size: clamp(2.45rem,6vw,4.8rem);
	font-weight: 500;
	letter-spacing: -.035em;
	margin-bottom: 15px;
}

.sw-limbo h2 {
	font-size: clamp(1.65rem,3.2vw,2.4rem);
	font-weight: 600;
	margin-bottom: 17px;
}

.sw-limbo h3 {
	font-size: clamp(1.14rem,2vw,1.42rem);
	font-weight: 650;
	margin-bottom: 9px;
}

.sw-limbo h4 {
	font-size: .95rem;
	font-weight: 700;
	letter-spacing: .085em;
	text-transform: uppercase;
	color: var(--sw-gold-soft);
	margin-bottom: 8px;
}

.sw-limbo p {
	margin: 0 0 1.1em;
}

.sw-limbo ul,
.sw-limbo ol {
	margin-top: 0;
	padding-left: 1.25rem;
}

.sw-limbo li + li {
	margin-top: .38rem;
}

.sw-limbo strong {
	color: #fff;
}

.sw-limbo .sw-eyebrow {
	color: var(--sw-gold);
	font-size: .74rem;
	font-weight: 700;
	letter-spacing: .15em;
	text-transform: uppercase;
	margin-bottom: 11px;
}

.sw-limbo .sw-eyebrow a {
	color: var(--sw-gold);
	text-decoration: none;
	font-weight: 700;
}

.sw-limbo .sw-eyebrow a:hover,
.sw-limbo .sw-eyebrow a:focus {
	color: var(--sw-gold-soft);
	text-decoration: underline;
	text-underline-offset: 3px;
}

.sw-limbo .sw-eyebrow-separator {
	display: inline-block;
	margin: 0 .35em;
	color: rgba(240,217,145,.58);
}

.sw-limbo .sw-lead {
	max-width: 890px;
	font-size: clamp(1.08rem,2vw,1.34rem);
	color: #d8d9dc;
	margin-bottom: 22px;
}

/* ================= HERO ================= */

.sw-limbo .sw-hero {
	position: relative;
	padding: clamp(25px,5vw,56px);
	border: 1px solid var(--sw-border);
	border-radius: 22px;
	background:
		linear-gradient(135deg,rgba(22,29,42,.96),rgba(9,13,19,.95));
	box-shadow: var(--sw-shadow);
	margin-bottom: 22px;
	overflow: hidden;
}

.sw-limbo .sw-hero::after {
	content: "";
	position: absolute;
	width: 330px;
	height: 330px;
	right: -145px;
	top: -155px;
	border: 1px solid rgba(215,182,94,.17);
	border-radius: 43% 57% 66% 34% / 35% 44% 56% 65%;
	transform: rotate(27deg);
	box-shadow:
		0 0 0 30px rgba(215,182,94,.02),
		0 0 0 65px rgba(130,184,207,.014);
	pointer-events: none;
}

.sw-limbo .sw-hero-quote {
	max-width: 800px;
	padding: 15px 19px;
	border-left: 3px solid var(--sw-gold);
	background: rgba(0,0,0,.18);
	border-radius: 0 10px 10px 0;
	font-size: 1.04rem;
	color: #f1eee6;
}

/* ================= IMAGES ================= */

.sw-limbo .sw-figure {
	margin: 24px 0;
}

.sw-limbo .sw-image-frame {
	overflow: hidden;
	border-radius: 14px;
	border: 1px solid var(--sw-border);
	background: #05070b;
	box-shadow: 0 15px 35px rgba(0,0,0,.24);
}

.sw-limbo .sw-image-frame img {
	display: block;
	width: 100%;
	height: auto;
}

.sw-limbo .sw-hero-image img {
	aspect-ratio: 3 / 2;
	object-fit: cover;
}

.sw-limbo .sw-sigil-image img {
	aspect-ratio: 1 / 1;
	object-fit: cover;
}

.sw-limbo .sw-chart-image img {
	aspect-ratio: 4 / 3;
	object-fit: cover;
}

.sw-limbo figcaption {
	padding: 10px 3px 0;
	font-size: .82rem;
	line-height: 1.5;
	color: var(--sw-muted);
}

/* ================= PROFILE ================= */

.sw-limbo .sw-profile-wrap {
	display: grid;
	grid-template-columns: minmax(0,1.6fr) minmax(240px,.7fr);
	gap: 18px;
	align-items: stretch;
	margin-top: 22px;
}

.sw-limbo .sw-profile {
	display: grid;
	grid-template-columns: repeat(3,minmax(0,1fr));
	gap: 9px;
}

.sw-limbo .sw-profile-item {
	padding: 13px 14px;
	background: rgba(255,255,255,.034);
	border: 1px solid var(--sw-border-soft);
	border-radius: 10px;
}

.sw-limbo .sw-profile-label {
	display: block;
	font-size: .65rem;
	text-transform: uppercase;
	letter-spacing: .09em;
	color: var(--sw-gold);
	margin-bottom: 4px;
}

.sw-limbo .sw-profile-value {
	display: block;
	color: #fff;
	font-size: .9rem;
}

.sw-limbo .sw-sigil-card {
	padding: 13px;
	background: rgba(255,255,255,.025);
	border: 1px solid var(--sw-border-soft);
	border-radius: 12px;
}

.sw-limbo .sw-sigil-card h3 {
	font-size: 1.02rem;
	margin: 10px 0 5px;
}

.sw-limbo .sw-sigil-card p {
	font-size: .82rem;
	color: var(--sw-muted);
	margin-bottom: 0;
}

/* ================= NAV ================= */

.sw-limbo .sw-jump {
	display: flex;
	flex-wrap: wrap;
	gap: 7px;
	padding: 12px;
	margin: 0 0 24px;
	background: rgba(255,255,255,.022);
	border: 1px solid var(--sw-border-soft);
	border-radius: 12px;
}

.sw-limbo .sw-jump a {
	display: inline-block;
	padding: 6px 10px;
	background: rgba(215,182,94,.06);
	border: 1px solid rgba(215,182,94,.16);
	border-radius: 999px;
	text-decoration: none;
	font-size: .8rem;
}

/* ================= SECTIONS ================= */

.sw-limbo .sw-section {
	margin-top: 27px;
	padding: clamp(20px,4vw,37px);
	background: linear-gradient(
		180deg,
		rgba(18,23,34,.94),
		rgba(12,16,24,.95)
	);
	border: 1px solid var(--sw-border-soft);
	border-radius: var(--sw-radius);
	box-shadow: 0 10px 30px rgba(0,0,0,.14);
}

.sw-limbo .sw-section-intro {
	max-width: 890px;
	color: #d2d3d7;
	margin-bottom: 19px;
}

.sw-limbo .sw-callout {
	padding: 17px 19px;
	margin: 19px 0;
	background: rgba(215,182,94,.055);
	border: 1px solid var(--sw-border);
	border-radius: 12px;
}

.sw-limbo .sw-callout p:last-child,
.sw-limbo .sw-callout ul:last-child {
	margin-bottom: 0;
}

.sw-limbo .sw-rule {
	border: 0;
	border-top: 1px solid var(--sw-border-soft);
	margin: 25px 0;
}

/* ================= CARDS ================= */

.sw-limbo .sw-grid-2,
.sw-limbo .sw-grid-3,
.sw-limbo .sw-grid-4 {
	display: grid;
	gap: 13px;
}

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

.sw-limbo .sw-grid-3 {
	grid-template-columns: repeat(3,minmax(0,1fr));
}

.sw-limbo .sw-grid-4 {
	grid-template-columns: repeat(4,minmax(0,1fr));
}

.sw-limbo .sw-card {
	padding: 17px;
	background: rgba(255,255,255,.024);
	border: 1px solid var(--sw-border-soft);
	border-radius: 11px;
}

.sw-limbo .sw-card p:last-child,
.sw-limbo .sw-card ul:last-child {
	margin-bottom: 0;
}

.sw-limbo .sw-card-kicker {
	color: var(--sw-gold);
	font-size: .69rem;
	text-transform: uppercase;
	letter-spacing: .1em;
	font-weight: 700;
	margin-bottom: 7px;
}

/* ================= TABS ================= */

.sw-limbo .sw-tabs {
	margin-top: 17px;
}

.sw-limbo .sw-tab-buttons {
	display: flex;
	flex-wrap: wrap;
	gap: 7px;
	margin-bottom: 14px;
}

.sw-limbo .sw-tab-button {
	appearance: none;
	border: 1px solid var(--sw-border);
	background: #10151e;
	color: #ddd;
	padding: 10px 14px;
	border-radius: 9px;
	cursor: pointer;
	font: inherit;
	font-size: .84rem;
	font-weight: 650;
}

.sw-limbo .sw-tab-button:hover,
.sw-limbo .sw-tab-button:focus-visible,
.sw-limbo .sw-tab-button.is-active {
	background: var(--sw-gold);
	border-color: var(--sw-gold);
	color: #111;
}

.sw-limbo .sw-tab-panel {
	padding: 19px;
	margin-bottom: 11px;
	background: rgba(0,0,0,.16);
	border: 1px solid var(--sw-border-soft);
	border-radius: 11px;
}

.sw-limbo.sw-js .sw-tab-panel {
	display: none;
}

.sw-limbo.sw-js .sw-tab-panel.is-active {
	display: block;
}

/* ================= TABLES ================= */

.sw-limbo .sw-table-wrap {
	overflow-x: auto;
	margin: 15px 0 18px;
}

.sw-limbo .sw-rule-table {
	width: 100%;
	min-width: 590px;
	border-collapse: collapse;
	font-size: .89rem;
}

.sw-limbo .sw-rule-table th,
.sw-limbo .sw-rule-table td {
	padding: 10px 11px;
	border: 1px solid var(--sw-border-soft);
	text-align: left;
	vertical-align: top;
}

.sw-limbo .sw-rule-table th {
	color: var(--sw-gold-soft);
	background: rgba(215,182,94,.05);
	font-weight: 650;
}

/* ================= TIMELINE ================= */

.sw-limbo .sw-timeline {
	position: relative;
	padding-left: 25px;
	margin-top: 21px;
}

.sw-limbo .sw-timeline::before {
	content: "";
	position: absolute;
	left: 6px;
	top: 6px;
	bottom: 4px;
	width: 1px;
	background: linear-gradient(
		var(--sw-gold),
		rgba(215,182,94,.08)
	);
}

.sw-limbo .sw-time-item {
	position: relative;
	padding: 0 0 23px 12px;
}

.sw-limbo .sw-time-item:last-child {
	padding-bottom: 0;
}

.sw-limbo .sw-time-item::before {
	content: "";
	position: absolute;
	left: -24px;
	top: 6px;
	width: 11px;
	height: 11px;
	border-radius: 50%;
	background: var(--sw-gold);
	box-shadow: 0 0 0 4px rgba(215,182,94,.11);
}

.sw-limbo .sw-time-label {
	color: var(--sw-gold);
	font-size: .72rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: .1em;
	margin-bottom: 5px;
}

/* ================= REGIONS ================= */

.sw-limbo .sw-region-head {
	display: flex;
	align-items: flex-start;
	gap: 13px;
	margin-bottom: 16px;
}

.sw-limbo .sw-region-number {
	flex: 0 0 auto;
	width: 38px;
	height: 38px;
	display: grid;
	place-items: center;
	border-radius: 9px;
	background: rgba(215,182,94,.09);
	border: 1px solid var(--sw-border);
	color: var(--sw-gold-soft);
	font-weight: 700;
}

.sw-limbo .sw-feature-list {
	display: grid;
	grid-template-columns: repeat(2,minmax(0,1fr));
	gap: 9px;
	margin: 17px 0;
}

.sw-limbo .sw-feature {
	padding: 12px 13px;
	border-left: 2px solid rgba(215,182,94,.62);
	background: rgba(255,255,255,.023);
}

.sw-limbo .sw-feature strong {
	display: block;
	margin-bottom: 4px;
}

/* ================= FLUX ================= */

.sw-limbo .sw-flux {
	display: grid;
	grid-template-columns: repeat(2,minmax(0,1fr));
	gap: 8px;
	margin-top: 14px;
}

.sw-limbo .sw-flux > div {
	padding: 12px 13px;
	background: rgba(255,255,255,.023);
	border: 1px solid var(--sw-border-soft);
	border-radius: 9px;
}

.sw-limbo .sw-flux strong {
	color: var(--sw-gold-soft);
}

/* ================= ADVENTURE HOOKS ================= */

.sw-limbo .sw-hooks {
	display: grid;
	grid-template-columns: repeat(2,minmax(0,1fr));
	gap: 11px;
	counter-reset: limbohook;
}

.sw-limbo .sw-hook {
	counter-increment: limbohook;
	position: relative;
	padding: 17px 17px 17px 53px;
	background: rgba(255,255,255,.023);
	border: 1px solid var(--sw-border-soft);
	border-radius: 11px;
}

.sw-limbo .sw-hook::before {
	content: counter(limbohook,decimal-leading-zero);
	position: absolute;
	left: 15px;
	top: 16px;
	color: var(--sw-gold);
	font-weight: 700;
	font-size: .87rem;
}

/* ================= VIDEO ================= */

.sw-limbo .sw-video {
	position: relative;
	aspect-ratio: 16 / 9;
	overflow: hidden;
	border-radius: 12px;
	background: #000;
	border: 1px solid var(--sw-border-soft);
	margin-top: 14px;
}

.sw-limbo .sw-video iframe {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	border: 0;
}

/* ================= RELATED ================= */

.sw-limbo .sw-related {
	display: grid;
	grid-template-columns: repeat(3,minmax(0,1fr));
	gap: 9px;
}

.sw-limbo .sw-related a {
	display: block;
	height: 100%;
	padding: 14px;
	text-decoration: none;
	background: rgba(255,255,255,.023);
	border: 1px solid var(--sw-border-soft);
	border-radius: 9px;
}

.sw-limbo .sw-related a:hover,
.sw-limbo .sw-related a:focus {
	background: rgba(215,182,94,.055);
	border-color: var(--sw-border);
}

.sw-limbo .sw-related strong {
	display: block;
	color: var(--sw-gold-soft);
	margin-bottom: 3px;
}

.sw-limbo .sw-related span {
	display: block;
	font-size: .82rem;
	color: var(--sw-muted);
}

/* ================= FAQ ================= */

.sw-limbo details {
	background: rgba(255,255,255,.021);
	border: 1px solid var(--sw-border-soft);
	border-radius: 9px;
	padding: 0 14px;
	margin-bottom: 7px;
}

.sw-limbo summary {
	cursor: pointer;
	padding: 12px 0;
	color: #fff;
	font-weight: 650;
}

.sw-limbo details p {
	padding-bottom: 12px;
	color: #d3d4d7;
}

/* ================= RESPONSIVE ================= */

@media (max-width: 900px) {

	.sw-limbo .sw-profile-wrap {
		grid-template-columns: 1fr;
	}

	.sw-limbo .sw-profile {
		grid-template-columns: repeat(2,minmax(0,1fr));
	}

	.sw-limbo .sw-sigil-card {
		max-width: 430px;
	}

	.sw-limbo .sw-grid-3,
	.sw-limbo .sw-related {
		grid-template-columns: repeat(2,minmax(0,1fr));
	}
}

@media (max-width: 650px) {

	.sw-limbo {
		padding: 11px;
		border-radius: 10px;
	}

	.sw-limbo .sw-hero,
	.sw-limbo .sw-section {
		padding: 19px 15px;
	}

	.sw-limbo .sw-profile,
	.sw-limbo .sw-grid-2,
	.sw-limbo .sw-grid-3,
	.sw-limbo .sw-grid-4,
	.sw-limbo .sw-feature-list,
	.sw-limbo .sw-flux,
	.sw-limbo .sw-hooks,
	.sw-limbo .sw-related {
		grid-template-columns: 1fr;
	}

	.sw-limbo .sw-tab-button {
		flex: 1 1 auto;
	}
}
/* END LIMBO */


/* --- WPWriter addition --- */


/* ASTRAL PLANE — migrated from page-scoped CSS, 2026-10-06 */
/* =========================================================
   SPIRALWORLDS — ASTRAL PLANE
   Dark Chronicle / Silver Expanse
   Page-scoped to .sw-astral
   No JavaScript required
   ========================================================= */

.sw-astral {
	--astral-bg: #070a12;
	--astral-bg-soft: #0b101c;
	--astral-panel: rgba(18, 24, 40, 0.88);
	--astral-panel-soft: rgba(27, 34, 55, 0.68);

	--astral-text: #e7ebf3;
	--astral-muted: #aab3c5;
	--astral-silver: #dce2ee;
	--astral-bright: #f8faff;

	--astral-violet: #aaa4d9;
	--astral-violet-soft: rgba(170, 164, 217, 0.14);
	--astral-blue: #94b9da;
	--astral-gold: #c5af79;

	--astral-line: rgba(207, 217, 239, 0.17);
	--astral-line-strong: rgba(207, 217, 239, 0.32);

	--astral-radius: 16px;
	--astral-shadow: 0 22px 58px rgba(0, 0, 0, 0.34);

	position: relative;
	max-width: 1180px;
	margin: 0 auto;
	padding: clamp(18px, 3vw, 38px);
	color: var(--astral-text);
	background:
		radial-gradient(
			circle at 84% 4%,
			rgba(143, 138, 205, 0.14),
			transparent 31%
		),
		radial-gradient(
			circle at 11% 31%,
			rgba(105, 157, 198, 0.09),
			transparent 29%
		),
		linear-gradient(
			180deg,
			#080b14 0%,
			#0a0e19 46%,
			#070a12 100%
		);
	border: 1px solid rgba(213, 221, 241, 0.10);
	border-radius: 18px;
	box-shadow: var(--astral-shadow);
	overflow: hidden;
	font-size: 17px;
	line-height: 1.72;
}

/* =========================================================
   BASE TYPOGRAPHY
   ========================================================= */

.sw-astral,
.sw-astral p,
.sw-astral li,
.sw-astral td,
.sw-astral th {
	color: var(--astral-text);
}

.sw-astral p {
	margin: 0 0 1.08em;
}

.sw-astral p:last-child {
	margin-bottom: 0;
}

.sw-astral strong {
	color: var(--astral-bright);
	font-weight: 700;
}

.sw-astral em {
	color: #d4d9e6;
}

.sw-astral a {
	color: #bed6ed;
	text-decoration-color: rgba(190, 214, 237, 0.38);
	text-decoration-thickness: 1px;
	text-underline-offset: 3px;
	transition:
		color 0.18s ease,
		border-color 0.18s ease,
		background-color 0.18s ease,
		text-decoration-color 0.18s ease;
}

.sw-astral a:hover,
.sw-astral a:focus {
	color: #ffffff;
	text-decoration-color: var(--astral-violet);
}

.sw-astral h1,
.sw-astral h2,
.sw-astral h3,
.sw-astral h4 {
	font-family: "Quicksand", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
	color: var(--astral-bright);
	text-wrap: balance;
}

.sw-astral h1 {
	max-width: 960px;
	margin: 0 0 18px;
	font-size: clamp(2.35rem, 5.2vw, 4.4rem);
	line-height: 1.03;
	font-weight: 600;
	letter-spacing: -0.045em;
}

.sw-astral h2 {
	margin: 0 0 22px;
	font-size: clamp(1.7rem, 3.5vw, 2.55rem);
	line-height: 1.15;
	font-weight: 620;
	letter-spacing: -0.03em;
}

.sw-astral h3 {
	margin: 1.15em 0 0.5em;
	font-size: clamp(1.17rem, 2.2vw, 1.48rem);
	line-height: 1.28;
	font-weight: 650;
	letter-spacing: -0.018em;
	color: #eef2fa;
}

.sw-astral h4 {
	margin: 1.1em 0 0.45em;
	font-size: 1.06rem;
	font-weight: 700;
}

.sw-astral ul,
.sw-astral ol {
	padding-left: 1.4em;
}

.sw-astral li {
	margin-bottom: 0.4em;
}

.sw-astral li::marker {
	color: var(--astral-violet);
}

/* =========================================================
   HERO
   ========================================================= */

.sw-astral .sw-hero {
	position: relative;
	padding:
		clamp(38px, 6vw, 74px)
		clamp(23px, 5vw, 60px)
		clamp(32px, 5vw, 58px);
	margin:
		calc(clamp(18px, 3vw, 38px) * -1)
		calc(clamp(18px, 3vw, 38px) * -1)
		0;
	background:
		linear-gradient(
			120deg,
			rgba(6, 9, 18, 0.97),
			rgba(17, 23, 39, 0.90)
		);
	border-bottom: 1px solid var(--astral-line);
	overflow: hidden;
}

.sw-astral .sw-hero::before {
	content: "";
	position: absolute;
	inset: -45% -15% auto 37%;
	height: 450px;
	pointer-events: none;
	background:
		radial-gradient(
			ellipse,
			rgba(209, 217, 242, 0.13),
			rgba(155, 149, 209, 0.07) 38%,
			transparent 70%
		);
	transform: rotate(-8deg);
}

.sw-astral .sw-hero > * {
	position: relative;
	z-index: 1;
}

.sw-astral .sw-kicker,
.sw-astral .sw-eyebrow {
	display: inline-block;
	margin: 0 0 15px;
	color: var(--astral-violet);
	font-family: "Quicksand", system-ui, sans-serif;
	font-size: 0.76rem;
	font-weight: 700;
	line-height: 1.4;
	letter-spacing: 0.16em;
	text-transform: uppercase;
}

.sw-astral .sw-lead {
	max-width: 850px;
	margin-bottom: 24px;
	color: #d0d6e3;
	font-size: clamp(1.05rem, 2vw, 1.25rem);
	line-height: 1.68;
}

.sw-astral .sw-actions {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	margin: 24px 0 0;
}

.sw-astral .sw-button,
.sw-astral a.sw-button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 44px;
	padding: 10px 17px;
	border: 1px solid rgba(207, 217, 240, 0.27);
	border-radius: 999px;
	color: #f7f9ff;
	background:
		linear-gradient(
			180deg,
			rgba(132, 142, 181, 0.17),
			rgba(76, 86, 122, 0.09)
		);
	box-shadow: inset 0 1px rgba(255, 255, 255, 0.04);
	text-decoration: none;
	font-family: "Quicksand", system-ui, sans-serif;
	font-size: 0.87rem;
	font-weight: 650;
}

.sw-astral .sw-button:hover,
.sw-astral .sw-button:focus {
	border-color: rgba(222, 229, 249, 0.48);
	background:
		linear-gradient(
			180deg,
			rgba(151, 157, 205, 0.25),
			rgba(94, 102, 145, 0.14)
		);
}

/* =========================================================
   HERO IMAGE
   ========================================================= */

.sw-astral .sw-hero-image {
	margin:
		0
		calc(clamp(18px, 3vw, 38px) * -1)
		0;
	background: #050811;
}

.sw-astral .sw-hero-image img {
	display: block;
	width: 100%;
	height: auto;
	max-height: 720px;
	object-fit: cover;
}

.sw-astral .sw-hero-image figcaption {
	padding: 11px clamp(18px, 3vw, 38px) 13px;
	border-bottom: 1px solid var(--astral-line);
	color: var(--astral-muted);
	font-size: 0.79rem;
	line-height: 1.5;
}

/* =========================================================
   JUMP NAVIGATION
   ========================================================= */

.sw-astral .sw-jump-nav {
	display: flex;
	flex-wrap: wrap;
	gap: 7px;
	padding: 15px;
	margin: 25px 0 8px;
	background: rgba(5, 8, 15, 0.58);
	border: 1px solid var(--astral-line);
	border-radius: 14px;
}

.sw-astral .sw-jump-nav a {
	display: inline-flex;
	padding: 7px 11px;
	border: 1px solid transparent;
	border-radius: 999px;
	color: #bcc6d8;
	text-decoration: none;
	font-family: "Quicksand", system-ui, sans-serif;
	font-size: 0.77rem;
	font-weight: 620;
	line-height: 1.2;
}

.sw-astral .sw-jump-nav a:hover,
.sw-astral .sw-jump-nav a:focus {
	color: #ffffff;
	background: var(--astral-violet-soft);
	border-color: rgba(178, 170, 222, 0.21);
}

/* =========================================================
   SECTIONS
   ========================================================= */

.sw-astral .sw-section {
	position: relative;
	padding: clamp(36px, 5vw, 58px) 0;
	border-top: 1px solid var(--astral-line);
	scroll-margin-top: 90px;
}

.sw-astral .sw-section:first-of-type {
	border-top: 0;
}

.sw-astral .sw-section-label {
	display: inline-block;
	margin-bottom: 10px;
	color: var(--astral-violet);
	font-family: "Quicksand", system-ui, sans-serif;
	font-size: 0.73rem;
	font-weight: 700;
	letter-spacing: 0.15em;
	text-transform: uppercase;
}

/* =========================================================
   GENERIC PANELS / CARDS / GRIDS
   ========================================================= */

.sw-astral .sw-card,
.sw-astral .sw-panel,
.sw-astral .sw-fact-card {
	padding: clamp(18px, 3vw, 26px);
	background:
		linear-gradient(
			145deg,
			rgba(27, 34, 54, 0.82),
			rgba(12, 17, 29, 0.82)
		);
	border: 1px solid var(--astral-line);
	border-radius: var(--astral-radius);
	box-shadow: 0 12px 34px rgba(0, 0, 0, 0.18);
}

.sw-astral .sw-card h3:first-child,
.sw-astral .sw-panel h3:first-child {
	margin-top: 0;
}

.sw-astral .sw-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 16px;
}

.sw-astral .sw-grid-3 {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 15px;
}

/* =========================================================
   FACT GRID
   ========================================================= */

.sw-astral .sw-facts {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 1px;
	overflow: hidden;
	margin: 24px 0;
	background: var(--astral-line);
	border: 1px solid var(--astral-line);
	border-radius: 14px;
}

.sw-astral .sw-fact {
	min-width: 0;
	padding: 17px 19px;
	background: rgba(11, 15, 26, 0.96);
}

.sw-astral .sw-fact-label {
	display: block;
	margin-bottom: 5px;
	color: var(--astral-violet);
	font-family: "Quicksand", system-ui, sans-serif;
	font-size: 0.7rem;
	font-weight: 700;
	letter-spacing: 0.09em;
	text-transform: uppercase;
}

.sw-astral .sw-fact-value {
	color: var(--astral-bright);
	font-size: 0.97rem;
	line-height: 1.55;
}

/* =========================================================
   IMAGES
   ========================================================= */

.sw-astral figure {
	margin: 28px 0 32px;
}

.sw-astral figure img,
.sw-astral .sw-image img {
	display: block;
	width: 100%;
	height: auto;
	border: 1px solid rgba(205, 214, 236, 0.16);
	border-radius: 15px;
	box-shadow: 0 18px 48px rgba(0, 0, 0, 0.32);
}

.sw-astral figcaption {
	padding: 10px 4px 0;
	color: var(--astral-muted);
	font-size: 0.79rem;
	line-height: 1.55;
}

.sw-astral .sw-sigil {
	display: grid;
	grid-template-columns: minmax(190px, 310px) minmax(0, 1fr);
	gap: clamp(22px, 4vw, 38px);
	align-items: center;
	margin: 30px 0;
	padding: clamp(18px, 3vw, 28px);
	background: rgba(12, 17, 29, 0.7);
	border: 1px solid var(--astral-line);
	border-radius: var(--astral-radius);
}

.sw-astral .sw-sigil figure {
	margin: 0;
}

.sw-astral .sw-sigil img {
	aspect-ratio: 1 / 1;
	object-fit: cover;
}

/* =========================================================
   CHRONOLOGY
   ========================================================= */

.sw-astral .sw-eon-list {
	display: grid;
	gap: 14px;
	margin-top: 26px;
}

.sw-astral .sw-eon {
	position: relative;
	padding: 22px 22px 22px 76px;
	background: rgba(16, 21, 35, 0.70);
	border: 1px solid var(--astral-line);
	border-radius: 14px;
}

.sw-astral .sw-eon::before {
	content: "";
	position: absolute;
	top: 23px;
	bottom: 23px;
	left: 49px;
	width: 1px;
	background:
		linear-gradient(
			var(--astral-violet),
			rgba(169, 160, 216, 0.08)
		);
}

.sw-astral .sw-eon-number {
	position: absolute;
	top: 20px;
	left: 18px;
	display: grid;
	place-items: center;
	width: 38px;
	height: 38px;
	border: 1px solid rgba(191, 197, 228, 0.30);
	border-radius: 50%;
	color: #e5e6f6;
	background: #101526;
	font-family: "Quicksand", system-ui, sans-serif;
	font-size: 0.69rem;
	font-weight: 700;
	text-align: center;
}

.sw-astral .sw-eon h3 {
	margin-top: 0;
}

/* =========================================================
   SIX LAWS
   ========================================================= */

.sw-astral .sw-law-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 14px;
	margin-top: 25px;
}

.sw-astral .sw-law {
	padding: 21px;
	background: rgba(15, 20, 33, 0.72);
	border: 1px solid var(--astral-line);
	border-radius: 14px;
}

.sw-astral .sw-law-number,
.sw-astral .sw-region-tag {
	display: inline-block;
	margin-bottom: 7px;
	color: var(--astral-blue);
	font-family: "Quicksand", system-ui, sans-serif;
	font-size: 0.69rem;
	font-weight: 700;
	letter-spacing: 0.11em;
	text-transform: uppercase;
}

.sw-astral .sw-law h3 {
	margin-top: 0;
}

/* =========================================================
   CALLOUTS
   ========================================================= */

.sw-astral .sw-callout,
.sw-astral blockquote {
	margin: 28px 0;
	padding: 21px 23px;
	color: #d9deea;
	background:
		linear-gradient(
			135deg,
			rgba(165, 158, 210, 0.09),
			rgba(31, 38, 60, 0.38)
		);
	border: 1px solid rgba(185, 184, 220, 0.18);
	border-left: 3px solid var(--astral-violet);
	border-radius: 0 14px 14px 0;
}

.sw-astral .sw-callout strong {
	color: #f6f7ff;
}

/* =========================================================
   REGIONS
   ========================================================= */

.sw-astral .sw-region-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 15px;
	margin: 24px 0;
}

.sw-astral .sw-region {
	position: relative;
	padding: 22px;
	background:
		linear-gradient(
			145deg,
			rgba(25, 31, 50, 0.73),
			rgba(10, 14, 24, 0.73)
		);
	border: 1px solid var(--astral-line);
	border-radius: 15px;
}

.sw-astral .sw-region h3 {
	margin-top: 0;
}

.sw-astral .sw-region::after {
	content: "";
	position: absolute;
	inset: 0;
	pointer-events: none;
	border-radius: inherit;
	box-shadow: inset 0 1px rgba(255, 255, 255, 0.025);
}

.sw-astral .sw-region-wide {
	grid-column: 1 / -1;
}

/* =========================================================
   TABLES
   ========================================================= */

.sw-astral .sw-table-wrap {
	max-width: 100%;
	margin: 22px 0 28px;
	overflow-x: auto;
	border: 1px solid var(--astral-line);
	border-radius: 14px;
	-webkit-overflow-scrolling: touch;
}

.sw-astral table {
	width: 100%;
	min-width: 680px;
	margin: 0;
	border-collapse: collapse;
	background: rgba(9, 13, 23, 0.92);
	font-size: 0.91rem;
}

.sw-astral th {
	padding: 13px 15px;
	color: #eef1fa;
	background: rgba(37, 43, 64, 0.80);
	border-bottom: 1px solid var(--astral-line-strong);
	font-family: "Quicksand", system-ui, sans-serif;
	font-size: 0.74rem;
	font-weight: 700;
	letter-spacing: 0.035em;
	text-align: left;
}

.sw-astral td {
	padding: 13px 15px;
	vertical-align: top;
	border-bottom: 1px solid rgba(202, 212, 234, 0.09);
}

.sw-astral tbody tr:last-child td {
	border-bottom: 0;
}

.sw-astral tbody tr:hover td {
	background: rgba(158, 160, 207, 0.055);
}

/* =========================================================
   EDITION TABS — CSS ONLY
   ========================================================= */

.sw-astral .sw-tab-input {
	position: absolute !important;
	width: 1px !important;
	height: 1px !important;
	padding: 0 !important;
	margin: -1px !important;
	overflow: hidden !important;
	clip: rect(0, 0, 0, 0) !important;
	white-space: nowrap !important;
	border: 0 !important;
	clip-path: inset(50%) !important;
}

.sw-astral .sw-tab-shell {
	margin: 26px 0;
}

.sw-astral .sw-tab-list {
	display: flex;
	flex-wrap: wrap;
	gap: 7px;
	padding: 7px;
	background: rgba(7, 10, 18, 0.82);
	border: 1px solid var(--astral-line);
	border-radius: 13px;
}

.sw-astral .sw-tab-list label {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 42px;
	padding: 10px 14px;
	border: 1px solid transparent;
	border-radius: 9px;
	color: #aeb7c9;
	background: transparent;
	font-family: "Quicksand", system-ui, sans-serif;
	font-size: 0.82rem;
	font-weight: 650;
	line-height: 1.2;
	cursor: pointer;
}

.sw-astral .sw-tab-list label:hover {
	color: #ffffff;
	background: rgba(158, 160, 207, 0.10);
}

.sw-astral .sw-tab-panel {
	display: none;
	padding: clamp(20px, 3vw, 29px);
	margin-top: 10px;
	background: rgba(13, 18, 30, 0.78);
	border: 1px solid var(--astral-line);
	border-radius: 14px;
}

.sw-astral #astral-tab-2024:checked ~ .sw-tab-shell .sw-panel-2024,
.sw-astral #astral-tab-pf1:checked ~ .sw-tab-shell .sw-panel-pf1,
.sw-astral #astral-tab-35:checked ~ .sw-tab-shell .sw-panel-35 {
	display: block;
}

.sw-astral #astral-tab-2024:checked ~ .sw-tab-shell label[for="astral-tab-2024"],
.sw-astral #astral-tab-pf1:checked ~ .sw-tab-shell label[for="astral-tab-pf1"],
.sw-astral #astral-tab-35:checked ~ .sw-tab-shell label[for="astral-tab-35"] {
	color: #ffffff;
	background:
		linear-gradient(
			180deg,
			rgba(164, 164, 211, 0.23),
			rgba(105, 108, 151, 0.12)
		);
	border-color: rgba(200, 205, 231, 0.19);
}

.sw-astral #astral-tab-2024:focus-visible ~ .sw-tab-shell label[for="astral-tab-2024"],
.sw-astral #astral-tab-pf1:focus-visible ~ .sw-tab-shell label[for="astral-tab-pf1"],
.sw-astral #astral-tab-35:focus-visible ~ .sw-tab-shell label[for="astral-tab-35"] {
	outline: 2px solid #d7d4f3;
	outline-offset: 3px;
}

/* =========================================================
   RULE FACTS
   ========================================================= */

.sw-astral .sw-rules-facts {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 1px;
	margin: 20px 0 26px;
	overflow: hidden;
	background: var(--astral-line);
	border: 1px solid var(--astral-line);
	border-radius: 12px;
}

.sw-astral .sw-rules-fact {
	padding: 14px 16px;
	background: rgba(8, 12, 21, 0.91);
}

.sw-astral .sw-rules-fact strong {
	display: block;
	margin-bottom: 3px;
	color: var(--astral-violet);
	font-family: "Quicksand", system-ui, sans-serif;
	font-size: 0.7rem;
	letter-spacing: 0.06em;
	text-transform: uppercase;
}

/* =========================================================
   INHABITANTS / ADVENTURE HOOKS / FAQ
   ========================================================= */

.sw-astral .sw-entry,
.sw-astral .sw-hook,
.sw-astral .sw-faq-item {
	padding: 19px 21px;
	margin: 0 0 11px;
	background: rgba(16, 21, 35, 0.62);
	border-left: 2px solid rgba(169, 160, 216, 0.55);
	border-radius: 0 12px 12px 0;
}

.sw-astral .sw-entry h3,
.sw-astral .sw-hook h3,
.sw-astral .sw-faq-item h3 {
	margin-top: 0;
}

.sw-astral .sw-faq-question {
	color: var(--astral-bright);
	font-family: "Quicksand", system-ui, sans-serif;
	font-weight: 700;
}

/* =========================================================
   SOURCES
   ========================================================= */

.sw-astral .sw-sources {
	padding: 22px;
	margin-top: 24px;
	background: rgba(6, 9, 16, 0.55);
	border: 1px solid var(--astral-line);
	border-radius: 14px;
}

.sw-astral .sw-sources h3 {
	margin-top: 0;
}

.sw-astral .sw-sources ul {
	margin-bottom: 0;
}

/* =========================================================
   VIDEO CARDS
   ========================================================= */

.sw-astral .sw-video-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 15px;
	margin-top: 23px;
}

.sw-astral .sw-video-card {
	overflow: hidden;
	background: rgba(13, 18, 29, 0.84);
	border: 1px solid var(--astral-line);
	border-radius: 14px;
}

.sw-astral .sw-video-card > a {
	display: block;
	text-decoration: none;
}

.sw-astral .sw-video-card img {
	display: block;
	width: 100%;
	height: auto;
	aspect-ratio: 16 / 9;
	object-fit: cover;
	border: 0;
	border-radius: 0;
	box-shadow: none;
	transition: opacity 0.18s ease;
}

.sw-astral .sw-video-card > a:hover img {
	opacity: 0.86;
}

.sw-astral .sw-video-copy {
	padding: 16px 17px 18px;
}

.sw-astral .sw-video-copy strong {
	display: block;
	margin-bottom: 6px;
	font-family: "Quicksand", system-ui, sans-serif;
	font-size: 1rem;
}

.sw-astral .sw-video-copy p {
	color: var(--astral-muted);
	font-size: 0.88rem;
}

/* =========================================================
   FINAL CONTINUE PANEL
   ========================================================= */

.sw-astral .sw-continue {
	position: relative;
	padding: clamp(28px, 5vw, 48px);
	margin-top: 4px;
	text-align: center;
	background:
		radial-gradient(
			circle at 50% 0,
			rgba(163, 159, 211, 0.13),
			transparent 52%
		),
		rgba(10, 14, 24, 0.82);
	border: 1px solid var(--astral-line);
	border-radius: 16px;
}

.sw-astral .sw-continue h2,
.sw-astral .sw-continue h3 {
	max-width: 850px;
	margin-left: auto;
	margin-right: auto;
}

.sw-astral .sw-continue p {
	max-width: 760px;
	margin-left: auto;
	margin-right: auto;
	color: #bdc5d5;
}

.sw-astral .sw-continue .sw-actions {
	justify-content: center;
}

/* =========================================================
   ACCESSIBILITY
   ========================================================= */

.sw-astral a:focus-visible,
.sw-astral label:focus-visible {
	outline: 2px solid #d7d4f3;
	outline-offset: 3px;
}

/* =========================================================
   TABLET
   ========================================================= */

@media (max-width: 860px) {
	.sw-astral .sw-grid,
	.sw-astral .sw-grid-3,
	.sw-astral .sw-region-grid,
	.sw-astral .sw-law-grid,
	.sw-astral .sw-video-grid {
		grid-template-columns: 1fr;
	}

	.sw-astral .sw-region-wide {
		grid-column: auto;
	}

	.sw-astral .sw-facts,
	.sw-astral .sw-rules-facts {
		grid-template-columns: 1fr;
	}

	.sw-astral .sw-sigil {
		grid-template-columns: 220px minmax(0, 1fr);
	}

	.sw-astral .sw-eon {
		padding-left: 68px;
	}
}

/* =========================================================
   MOBILE
   ========================================================= */

@media (max-width: 620px) {
	.sw-astral {
		padding: 16px;
		border-radius: 12px;
		font-size: 16px;
		line-height: 1.67;
	}

	.sw-astral .sw-hero {
		margin: -16px -16px 0;
		padding: 30px 18px 32px;
	}

	.sw-astral .sw-hero-image {
		margin: 0 -16px;
	}

	.sw-astral .sw-hero-image figcaption {
		padding-left: 16px;
		padding-right: 16px;
	}

	.sw-astral h1 {
		font-size: clamp(2rem, 10vw, 2.8rem);
	}

	.sw-astral h2 {
		font-size: clamp(1.5rem, 7vw, 2rem);
	}

	.sw-astral .sw-section {
		padding: 34px 0;
	}

	.sw-astral .sw-jump-nav {
		gap: 5px;
		padding: 10px;
	}

	.sw-astral .sw-jump-nav a {
		font-size: 0.72rem;
		padding: 6px 9px;
	}

	.sw-astral .sw-actions {
		display: grid;
		grid-template-columns: 1fr;
	}

	.sw-astral .sw-button {
		width: 100%;
	}

	.sw-astral .sw-sigil {
		grid-template-columns: 1fr;
	}

	.sw-astral .sw-sigil figure {
		max-width: 260px;
		margin: 0 auto;
	}

	.sw-astral .sw-eon {
		padding: 19px;
	}

	.sw-astral .sw-eon::before {
		display: none;
	}

	.sw-astral .sw-eon-number {
		position: static;
		display: inline-block;
		width: auto;
		height: auto;
		margin-bottom: 9px;
		padding: 4px 9px;
		border-radius: 999px;
	}

	.sw-astral .sw-tab-list {
		display: grid;
		grid-template-columns: 1fr;
	}

	.sw-astral .sw-tab-list label {
		width: 100%;
		text-align: center;
	}

	.sw-astral table {
		min-width: 620px;
	}
}

/* =========================================================
   REDUCED MOTION
   ========================================================= */

@media (prefers-reduced-motion: reduce) {
	.sw-astral *,
	.sw-astral *::before,
	.sw-astral *::after {
		scroll-behavior: auto !important;
		transition-duration: 0.01ms !important;
	}
}
/* END ASTRAL PLANE */


/* --- WPWriter addition --- */


/* ELEMENTAL PLANE OF FIRE — migrated from page-scoped CSS, 2026-10-06 */
/* =========================================================
   SPIRALWORLDS — ELEMENTAL PLANE OF FIRE
   FINAL PUBLICATION BUILD
   Square sigil + scoped dark layout + thumbnail videos
   ========================================================= */

.sw-fire-plane {
	--sw-bg: #090b0f;
	--sw-bg-soft: #0d1015;
	--sw-panel: #12161c;
	--sw-panel-2: #171c23;

	--sw-border: rgba(213,166,74,.30);
	--sw-border-strong: rgba(225,176,73,.62);

	--sw-gold: #e1b049;
	--sw-gold-bright: #f0c35d;
	--sw-flame: #d55a28;
	--sw-flame-soft: #ed8442;

	--sw-text: #eee9df;
	--sw-text-strong: #fffaf0;
	--sw-muted: #bdb7ad;

	--sw-radius: 14px;
	--sw-shadow: 0 14px 34px rgba(0,0,0,.28);

	background:
		radial-gradient(
			circle at 85% 4%,
			rgba(171,64,27,.08),
			transparent 25rem
		),
		var(--sw-bg);

	color: var(--sw-text);

	border: 1px solid rgba(225,176,73,.12);
	border-radius: 16px;

	padding:
		clamp(1rem,2.5vw,2rem)
		clamp(1rem,3vw,2.35rem)
		clamp(2rem,4vw,3.4rem);

	line-height: 1.68;
	overflow: hidden;
}

.sw-fire-plane *,
.sw-fire-plane *::before,
.sw-fire-plane *::after {
	box-sizing: border-box;
}

.sw-fire-plane section,
.sw-fire-plane article,
.sw-fire-plane nav,
.sw-fire-plane div {
	color: inherit;
}

.sw-fire-plane p,
.sw-fire-plane li,
.sw-fire-plane td {
	color: var(--sw-text);
}

.sw-fire-plane strong {
	color: var(--sw-text-strong);
}

.sw-fire-plane a {
	color: var(--sw-gold);
	text-decoration-color: rgba(225,176,73,.55);
	text-underline-offset: 3px;
}

.sw-fire-plane a:hover,
.sw-fire-plane a:focus-visible {
	color: var(--sw-gold-bright);
	text-decoration-color: currentColor;
}

.sw-fire-plane h2,
.sw-fire-plane h3,
.sw-fire-plane h4 {
	color: var(--sw-gold);
	line-height: 1.2;
	margin-top: 0;
}

.sw-fire-plane h2 {
	font-size: clamp(1.8rem,3.5vw,2.55rem);
	margin-bottom: .65rem;
}

.sw-fire-plane h3 {
	font-size: clamp(1.25rem,2.4vw,1.7rem);
	margin-bottom: .65rem;
}

.sw-fire-plane h4 {
	font-size: 1.08rem;
	margin-bottom: .45rem;
}

.sw-fire-plane p:last-child {
	margin-bottom: 0;
}

/* =========================================================
   PLANAR INTRO
   ========================================================= */

.sw-fire-plane .sw-plane-intro {
	display: grid;
	grid-template-columns: minmax(0,1fr) 240px;
	gap: clamp(1.35rem,3vw,2.6rem);
	align-items: center;

	background:
		linear-gradient(
			135deg,
			rgba(213,90,40,.08),
			rgba(225,176,73,.025)
		),
		var(--sw-panel);

	border: 1px solid var(--sw-border);
	border-radius: var(--sw-radius);

	padding: clamp(1.25rem,3vw,2rem);

	box-shadow: var(--sw-shadow);
	margin-bottom: 1.25rem;
}

.sw-fire-plane .sw-intro-copy {
	min-width: 0;
}

.sw-fire-plane .sw-kicker {
	display: inline-block;

	color: var(--sw-flame-soft);

	font-size: .76rem;
	font-weight: 700;

	text-transform: uppercase;
	letter-spacing: .13em;

	margin-bottom: .55rem;
}

.sw-fire-plane .sw-intro-title {
	color: var(--sw-gold-bright);

	font-size: clamp(1.7rem,3.3vw,2.45rem);
	line-height: 1.13;

	margin: 0 0 .7rem;
}

.sw-fire-plane .sw-intro-lede {
	max-width: 800px;

	font-size: 1.08rem;
	line-height: 1.66;

	color: var(--sw-text-strong);

	margin: 0;
}

/* =========================================================
   SQUARE PLANAR SIGIL
   ========================================================= */

.sw-fire-plane .sw-sigil-wrap {
	width: 240px;
	height: 240px;

	display: flex;
	align-items: center;
	justify-content: center;

	margin: 0 auto;
}

.sw-fire-plane .sw-sigil-frame {
	display: block;

	width: 220px !important;
	height: 220px !important;

	min-width: 220px !important;
	min-height: 220px !important;

	max-width: 220px !important;
	max-height: 220px !important;

	aspect-ratio: 1 / 1 !important;

	background: #0b0d11;

	border: 1px solid var(--sw-border-strong);
	border-radius: 12px;

	box-shadow:
		0 14px 32px rgba(0,0,0,.42),
		0 0 0 5px rgba(225,176,73,.035);

	overflow: hidden;
}

.sw-fire-plane img.sw-sigil {
	display: block !important;

	width: 220px !important;
	height: 220px !important;

	min-width: 220px !important;
	min-height: 220px !important;

	max-width: 220px !important;
	max-height: 220px !important;

	aspect-ratio: 1 / 1 !important;

	object-fit: contain !important;
	object-position: center center !important;

	margin: 0 !important;
	padding: 0 !important;

	border: 0 !important;
	border-radius: 0 !important;

	box-shadow: none !important;

	background: #0b0d11;
}

/* =========================================================
   PROFILE
   ========================================================= */

.sw-fire-plane .sw-profile {
	display: grid;
	grid-template-columns: repeat(2,minmax(0,1fr));

	gap: .25rem 1.6rem;

	background: var(--sw-panel);

	border: 1px solid var(--sw-border);
	border-radius: var(--sw-radius);

	padding: 1.05rem 1.25rem;

	margin: 0 0 1rem;
}

.sw-fire-plane .sw-profile-item {
	padding: .58rem 0;

	border-bottom: 1px solid rgba(225,176,73,.12);

	color: var(--sw-text);
}

.sw-fire-plane .sw-profile-item strong {
	display: block;

	color: var(--sw-gold);

	font-size: .84rem;
	line-height: 1.3;

	letter-spacing: .02em;

	margin-bottom: .16rem;
}

/* =========================================================
   NAVIGATION
   ========================================================= */

.sw-fire-plane .sw-plane-links {
	display: flex;
	flex-wrap: wrap;

	gap: .55rem;

	margin: 0 0 2rem;
}

.sw-fire-plane .sw-plane-links a {
	display: inline-flex;
	align-items: center;

	min-height: 42px;

	padding: .52rem .78rem;

	background: rgba(225,176,73,.045);

	border: 1px solid rgba(225,176,73,.31);
	border-radius: 999px;

	color: var(--sw-gold);

	text-decoration: none;

	font-size: .91rem;
}

.sw-fire-plane .sw-plane-links a:hover,
.sw-fire-plane .sw-plane-links a:focus-visible {
	background: rgba(225,176,73,.12);
	border-color: var(--sw-border-strong);
}

/* =========================================================
   SECTIONS
   ========================================================= */

.sw-fire-plane .sw-section {
	margin: 2.6rem 0;
}

.sw-fire-plane .sw-section:last-child {
	margin-bottom: 0;
}

.sw-fire-plane .sw-section-title {
	margin-bottom: 1.2rem;

	padding-bottom: .55rem;

	border-bottom: 1px solid var(--sw-border);
}

.sw-fire-plane .sw-lede {
	max-width: 980px;

	font-size: 1.12rem;
	line-height: 1.7;

	color: var(--sw-text-strong);

	margin-bottom: 1.25rem;
}

.sw-fire-plane .sw-muted {
	color: var(--sw-muted);
}

/* =========================================================
   CALLOUTS
   ========================================================= */

.sw-fire-plane .sw-callout {
	background:
		linear-gradient(
			135deg,
			rgba(213,90,40,.095),
			rgba(225,176,73,.035)
		),
		var(--sw-panel);

	border: 1px solid var(--sw-border);
	border-left: 4px solid var(--sw-flame);

	border-radius: var(--sw-radius);

	padding: 1.05rem 1.15rem;

	margin: 1.35rem 0;

	box-shadow: 0 9px 24px rgba(0,0,0,.18);
}

.sw-fire-plane .sw-callout strong {
	color: var(--sw-gold-bright);
}

/* =========================================================
   FIGURES
   ========================================================= */

.sw-fire-plane figure {
	margin: 1.45rem 0;
}

.sw-fire-plane figure img {
	display: block;

	width: 100%;
	height: auto;

	border: 1px solid var(--sw-border);
	border-radius: var(--sw-radius);

	box-shadow: var(--sw-shadow);
}

.sw-fire-plane figcaption {
	padding-top: .5rem;

	color: var(--sw-muted);

	font-size: .87rem;
	line-height: 1.5;
}

/* =========================================================
   REGION CARDS
   ========================================================= */

.sw-fire-plane .sw-region-grid {
	display: grid;
	grid-template-columns: repeat(2,minmax(0,1fr));

	gap: 1.15rem;
}

.sw-fire-plane .sw-region {
	background: var(--sw-panel);

	border: 1px solid var(--sw-border);
	border-radius: var(--sw-radius);

	overflow: hidden;

	box-shadow: 0 10px 30px rgba(0,0,0,.22);
}

.sw-fire-plane .sw-region figure {
	margin: 0;
}

.sw-fire-plane .sw-region figure img {
	width: 100%;

	aspect-ratio: 3 / 2;
	object-fit: cover;

	border: 0;
	border-bottom: 1px solid var(--sw-border);
	border-radius: 0;

	box-shadow: none;
}

.sw-fire-plane .sw-region-body {
	padding: 1.08rem 1.15rem 1.2rem;
}

.sw-fire-plane .sw-region-body p {
	margin-bottom: .78rem;
}

.sw-fire-plane .sw-region-meta {
	padding-top: .72rem;
	margin-top: .9rem;

	border-top: 1px solid rgba(225,176,73,.13);

	color: var(--sw-muted);

	font-size: .89rem;
}

.sw-fire-plane .sw-region-meta strong {
	color: var(--sw-gold);
}

/* =========================================================
   CARD GRIDS
   ========================================================= */

.sw-fire-plane .sw-law-grid,
.sw-fire-plane .sw-power-grid,
.sw-fire-plane .sw-hook-grid {
	display: grid;
	grid-template-columns: repeat(3,minmax(0,1fr));

	gap: 1rem;
}

.sw-fire-plane .sw-law,
.sw-fire-plane .sw-power,
.sw-fire-plane .sw-hook {
	background: var(--sw-panel);

	border: 1px solid var(--sw-border);
	border-radius: var(--sw-radius);

	padding: 1rem 1.05rem;

	box-shadow: 0 8px 22px rgba(0,0,0,.15);
}

.sw-fire-plane .sw-law h3,
.sw-fire-plane .sw-power h3,
.sw-fire-plane .sw-hook h3 {
	font-size: 1.1rem;
	margin-bottom: .5rem;
}

/* =========================================================
   QUICK RULES
   ========================================================= */

.sw-fire-plane .sw-quick-rules {
	display: grid;
	grid-template-columns: repeat(2,minmax(0,1fr));

	gap: .65rem;

	list-style: none;

	padding: 0;
	margin: 1rem 0 0;
}

.sw-fire-plane .sw-quick-rules li {
	position: relative;

	background: var(--sw-panel);

	border: 1px solid var(--sw-border);
	border-radius: 10px;

	padding: .72rem .82rem .72rem 2rem;
}

.sw-fire-plane .sw-quick-rules li::before {
	content: "◆";

	position: absolute;

	left: .75rem;
	top: .75rem;

	color: var(--sw-flame-soft);

	font-size: .72rem;
}

/* =========================================================
   TABLES
   ========================================================= */

.sw-fire-plane .sw-table-wrap {
	overflow-x: auto;

	margin: 1rem 0;

	border: 1px solid var(--sw-border);
	border-radius: var(--sw-radius);
}

.sw-fire-plane table {
	width: 100%;

	min-width: 660px;

	border-collapse: collapse;

	background: var(--sw-panel);

	margin: 0;
}

.sw-fire-plane th,
.sw-fire-plane td {
	padding: .72rem .78rem;

	text-align: left;
	vertical-align: top;

	border-bottom: 1px solid rgba(225,176,73,.14);
}

.sw-fire-plane th {
	background: rgba(225,176,73,.09);

	color: var(--sw-gold);
}

.sw-fire-plane tr:last-child td {
	border-bottom: 0;
}

/* =========================================================
   EDITION TABS
   ========================================================= */

.sw-fire-plane .sw-tabs {
	margin-top: 1.1rem;
}

.sw-fire-plane .sw-tab-controls {
	display: flex;
	flex-wrap: wrap;

	gap: .5rem;

	margin-bottom: .9rem;
}

.sw-fire-plane .sw-tab-button {
	appearance: none;

	background: var(--sw-panel);

	border: 1px solid var(--sw-border);
	border-radius: 999px;

	color: var(--sw-text);

	padding: .56rem .9rem;

	font: inherit;
	font-weight: 700;

	cursor: pointer;
}

.sw-fire-plane .sw-tab-button:hover,
.sw-fire-plane .sw-tab-button:focus-visible {
	border-color: var(--sw-border-strong);
}

.sw-fire-plane .sw-tab-button[aria-selected="true"] {
	background: var(--sw-gold);
	border-color: var(--sw-gold);

	color: #17110a;
}

.sw-fire-plane .sw-tab-panel {
	background: var(--sw-panel);

	border: 1px solid var(--sw-border);
	border-radius: var(--sw-radius);

	padding: 1.15rem;

	margin-bottom: 1rem;
}

.sw-fire-plane.js-tabs .sw-tab-panel[hidden] {
	display: none;
}

/* =========================================================
   VIDEO GUIDES
   Thumbnail-first: iframe is created only after click.
   ========================================================= */

.sw-fire-plane .sw-video-grid {
	display: grid;
	grid-template-columns: repeat(3,minmax(0,1fr));

	gap: 1rem;
}

.sw-fire-plane .sw-video {
	background: var(--sw-panel);

	border: 1px solid var(--sw-border);
	border-radius: var(--sw-radius);

	overflow: hidden;

	box-shadow: 0 10px 26px rgba(0,0,0,.22);
}

.sw-fire-plane .sw-video-launcher {
	position: relative;

	display: block;

	width: 100%;
	aspect-ratio: 16 / 9;

	padding: 0;
	margin: 0;

	background: #000;

	border: 0;

	cursor: pointer;

	overflow: hidden;

	font: inherit;
	color: inherit;
}

.sw-fire-plane .sw-video-launcher img {
	display: block !important;

	width: 100% !important;
	height: 100% !important;

	max-width: none !important;

	object-fit: cover !important;
	object-position: center !important;

	margin: 0 !important;
	padding: 0 !important;

	border: 0 !important;
	border-radius: 0 !important;

	box-shadow: none !important;

	transition:
		transform .25s ease,
		opacity .25s ease;
}

.sw-fire-plane .sw-video-launcher::after {
	content: "";

	position: absolute;
	inset: 0;

	background:
		linear-gradient(
			180deg,
			rgba(0,0,0,.03),
			rgba(0,0,0,.24)
		);

	pointer-events: none;
}

.sw-fire-plane .sw-video-launcher:hover img,
.sw-fire-plane .sw-video-launcher:focus-visible img {
	transform: scale(1.025);
	opacity: .88;
}

.sw-fire-plane .sw-video-play {
	position: absolute;

	z-index: 3;

	left: 50%;
	top: 50%;

	width: 68px;
	height: 48px;

	transform: translate(-50%,-50%);

	display: flex;
	align-items: center;
	justify-content: center;

	background: rgba(197,38,32,.96);

	border-radius: 13px;

	box-shadow: 0 6px 22px rgba(0,0,0,.48);

	pointer-events: none;
}

.sw-fire-plane .sw-video-play::before {
	content: "";

	display: block;

	width: 0;
	height: 0;

	margin-left: 4px;

	border-top: 10px solid transparent;
	border-bottom: 10px solid transparent;
	border-left: 17px solid #fff;
}

.sw-fire-plane .sw-video-launcher:focus-visible {
	outline: 3px solid var(--sw-gold-bright);
	outline-offset: -3px;
}

.sw-fire-plane .sw-video-frame {
	position: relative;

	width: 100%;
	aspect-ratio: 16 / 9;

	background: #000;
}

.sw-fire-plane .sw-video-frame iframe {
	position: absolute;
	inset: 0;

	display: block;

	width: 100%;
	height: 100%;

	margin: 0;
	padding: 0;

	border: 0;
}

.sw-fire-plane .sw-video-copy {
	padding: .82rem .9rem .9rem;
}

.sw-fire-plane .sw-video-copy strong {
	display: block;

	color: var(--sw-gold);

	font-size: .98rem;
	line-height: 1.4;

	margin-bottom: .28rem;
}

.sw-fire-plane .sw-video-copy p {
	margin: 0;
	padding: 0;

	color: var(--sw-muted);

	font-size: .89rem;
	line-height: 1.55;
}

/* =========================================================
   RELATED LINKS
   ========================================================= */

.sw-fire-plane .sw-related {
	display: grid;
	grid-template-columns: repeat(2,minmax(0,1fr));

	gap: .6rem .9rem;

	list-style: none;

	padding: 0;
	margin: 0;
}

.sw-fire-plane .sw-related li {
	background: var(--sw-panel);

	border: 1px solid var(--sw-border);
	border-radius: 9px;

	padding: .62rem .76rem;
}

/* =========================================================
   RESPONSIVE
   ========================================================= */

@media (max-width: 960px) {

	.sw-fire-plane .sw-plane-intro {
		grid-template-columns: minmax(0,1fr) 220px;
	}

	.sw-fire-plane .sw-sigil-wrap {
		width: 220px;
		height: 220px;
	}

	.sw-fire-plane .sw-law-grid,
	.sw-fire-plane .sw-power-grid,
	.sw-fire-plane .sw-hook-grid,
	.sw-fire-plane .sw-video-grid {
		grid-template-columns: repeat(2,minmax(0,1fr));
	}

}

@media (max-width: 760px) {

	.sw-fire-plane {
		border-radius: 12px;
	}

	.sw-fire-plane .sw-plane-intro {
		grid-template-columns: 1fr;
	}

	.sw-fire-plane .sw-sigil-wrap {
		order: -1;

		width: 200px;
		height: 200px;
	}

	.sw-fire-plane .sw-sigil-frame,
	.sw-fire-plane img.sw-sigil {
		width: 200px !important;
		height: 200px !important;

		min-width: 200px !important;
		min-height: 200px !important;

		max-width: 200px !important;
		max-height: 200px !important;
	}

	.sw-fire-plane .sw-profile,
	.sw-fire-plane .sw-region-grid,
	.sw-fire-plane .sw-law-grid,
	.sw-fire-plane .sw-power-grid,
	.sw-fire-plane .sw-hook-grid,
	.sw-fire-plane .sw-video-grid,
	.sw-fire-plane .sw-quick-rules,
	.sw-fire-plane .sw-related {
		grid-template-columns: 1fr;
	}

}

@media (max-width: 480px) {

	.sw-fire-plane {
		padding:
			1rem
			.85rem
			2rem;
	}

	.sw-fire-plane .sw-plane-intro {
		padding: 1rem;
	}

	.sw-fire-plane .sw-profile {
		padding: .9rem 1rem;
	}

	.sw-fire-plane .sw-plane-links a {
		width: 100%;
		justify-content: center;
	}

	.sw-fire-plane .sw-tab-button {
		flex: 1 1 100%;
		text-align: center;
	}

}
/* END ELEMENTAL PLANE OF FIRE */


/* --- WPWriter addition --- */


/* ARCADIA — migrated from page-scoped CSS, 2026-10-06 */
/* =========================================================
   SPIRALWORLDS — ARCADIA
   Publication-lock scoped styles
   ========================================================= */

.sw-arcadia{
	--sw-bg:#0c1210;
	--sw-bg-soft:#121b17;
	--sw-panel:#16211c;
	--sw-panel-2:#1b2922;
	--sw-green:#31533f;
	--sw-green-soft:#79957f;
	--sw-gold:#d5b36a;
	--sw-gold-soft:#ead7a3;
	--sw-blue:#89adba;
	--sw-cream:#f1ead8;
	--sw-text:#e9e5da;
	--sw-muted:#bbb8ad;
	--sw-line:rgba(213,179,106,.34);
	--sw-shadow:0 16px 45px rgba(0,0,0,.27);

	background:
		radial-gradient(circle at 50% 0%,rgba(64,101,76,.16),transparent 34rem),
		var(--sw-bg);
	color:var(--sw-text);
	border:1px solid rgba(213,179,106,.18);
	border-radius:22px;
	overflow:hidden;
	font-size:17px;
	line-height:1.72;
}

.sw-arcadia *{
	box-sizing:border-box;
}

.sw-arcadia a{
	color:var(--sw-gold-soft);
	text-decoration-color:rgba(234,215,163,.45);
	text-underline-offset:3px;
}

.sw-arcadia a:hover{
	color:#fff3c9;
	text-decoration-color:#fff3c9;
}

.sw-arcadia img{
	display:block;
	max-width:100%;
	height:auto;
}

.sw-arcadia .sw-wrap{
	width:min(1160px,calc(100% - 38px));
	margin:0 auto;
}

.sw-arcadia h1,
.sw-arcadia h2,
.sw-arcadia h3,
.sw-arcadia h4{
	font-family:Georgia,"Times New Roman",serif;
	color:var(--sw-cream);
	line-height:1.17;
	margin-top:0;
}

.sw-arcadia h1{
	font-size:clamp(2.35rem,5.7vw,4.7rem);
	font-weight:500;
	letter-spacing:-.025em;
	margin-bottom:18px;
}

.sw-arcadia h2{
	font-size:clamp(1.75rem,3.6vw,2.65rem);
	font-weight:500;
	margin-bottom:20px;
}

.sw-arcadia h3{
	font-size:clamp(1.28rem,2.4vw,1.7rem);
	font-weight:600;
	margin-bottom:10px;
	color:var(--sw-gold-soft);
}

.sw-arcadia h4{
	font-size:1.08rem;
	color:var(--sw-gold-soft);
	margin-bottom:8px;
}

.sw-arcadia p{
	margin:0 0 17px;
}

.sw-arcadia strong{
	color:#fff7e1;
}

.sw-arcadia .sw-eyebrow{
	display:inline-flex;
	align-items:center;
	gap:8px;
	color:var(--sw-gold);
	font-size:.78rem;
	font-weight:800;
	letter-spacing:.16em;
	text-transform:uppercase;
	margin-bottom:15px;
}

.sw-arcadia .sw-eyebrow:before{
	content:"";
	display:inline-block;
	width:28px;
	height:1px;
	background:var(--sw-gold);
}

.sw-arcadia .sw-lead{
	max-width:850px;
	font-family:Georgia,"Times New Roman",serif;
	font-size:clamp(1.13rem,2vw,1.34rem);
	line-height:1.62;
	color:#efe9da;
}

.sw-arcadia .sw-hero{
	padding:58px 0 34px;
}

.sw-arcadia .sw-hero-grid{
	display:grid;
	grid-template-columns:minmax(0,1.5fr) minmax(220px,.6fr);
	gap:42px;
	align-items:center;
}

.sw-arcadia .sw-sigil{
	max-width:345px;
	margin-left:auto;
	padding:15px;
	border-radius:50%;
	background:radial-gradient(circle,rgba(213,179,106,.12),transparent 68%);
}

.sw-arcadia .sw-sigil img{
	border-radius:50%;
	filter:drop-shadow(0 18px 22px rgba(0,0,0,.32));
}

.sw-arcadia .sw-main-image{
	margin:34px 0 0;
	border-radius:18px;
	overflow:hidden;
	border:1px solid rgba(213,179,106,.28);
	background:#0b0f0d;
	box-shadow:var(--sw-shadow);
}

.sw-arcadia .sw-main-image img{
	width:100%;
	aspect-ratio:3/2;
	object-fit:cover;
}

.sw-arcadia figcaption{
	padding:11px 15px 13px;
	background:rgba(9,14,11,.94);
	color:var(--sw-muted);
	font-size:.88rem;
	line-height:1.5;
}

.sw-arcadia .sw-anchor-nav{
	display:flex;
	flex-wrap:wrap;
	gap:8px;
	padding:20px 0 0;
}

.sw-arcadia .sw-anchor-nav a{
	display:inline-block;
	padding:8px 12px;
	border:1px solid var(--sw-line);
	border-radius:999px;
	background:rgba(213,179,106,.045);
	color:#e8dcc0;
	font-size:.82rem;
	font-weight:700;
	text-decoration:none;
}

.sw-arcadia .sw-anchor-nav a:hover{
	background:rgba(213,179,106,.12);
	border-color:rgba(213,179,106,.7);
	color:#fff5d8;
}

.sw-arcadia .sw-section{
	padding:54px 0;
	border-top:1px solid rgba(213,179,106,.16);
}

.sw-arcadia .sw-section-intro{
	max-width:870px;
	margin-bottom:27px;
	color:#d8d6cc;
}

.sw-arcadia .sw-grid{
	display:grid;
	grid-template-columns:repeat(2,minmax(0,1fr));
	gap:18px;
}

.sw-arcadia .sw-grid-3{
	display:grid;
	grid-template-columns:repeat(3,minmax(0,1fr));
	gap:18px;
}

.sw-arcadia .sw-card{
	background:
		linear-gradient(145deg,rgba(255,255,255,.025),transparent 40%),
		var(--sw-panel);
	border:1px solid rgba(213,179,106,.19);
	border-radius:15px;
	padding:22px;
}

.sw-arcadia .sw-card p:last-child,
.sw-arcadia .sw-card ul:last-child{
	margin-bottom:0;
}

.sw-arcadia .sw-profile{
	display:grid;
	grid-template-columns:repeat(2,minmax(0,1fr));
	gap:1px;
	border:1px solid var(--sw-line);
	border-radius:15px;
	overflow:hidden;
	background:rgba(213,179,106,.15);
}

.sw-arcadia .sw-profile-item{
	background:var(--sw-panel);
	padding:15px 18px;
}

.sw-arcadia .sw-profile-label{
	display:block;
	color:var(--sw-gold);
	font-size:.7rem;
	font-weight:800;
	text-transform:uppercase;
	letter-spacing:.11em;
	margin-bottom:4px;
}

.sw-arcadia .sw-profile-value{
	color:#eee9dd;
	line-height:1.45;
}

.sw-arcadia .sw-callout{
	margin:26px 0;
	padding:22px 24px;
	border-left:4px solid var(--sw-gold);
	border-radius:0 13px 13px 0;
	background:
		linear-gradient(90deg,rgba(213,179,106,.1),rgba(213,179,106,.025)),
		var(--sw-panel);
}

.sw-arcadia .sw-callout p:last-child{
	margin-bottom:0;
}

.sw-arcadia .sw-rule-list,
.sw-arcadia .sw-list{
	margin:0;
	padding-left:1.25rem;
}

.sw-arcadia .sw-rule-list li,
.sw-arcadia .sw-list li{
	margin:.45rem 0;
}

.sw-arcadia .sw-region{
	padding:20px 0;
	border-bottom:1px solid rgba(213,179,106,.12);
}

.sw-arcadia .sw-region:last-child{
	border-bottom:0;
}

.sw-arcadia .sw-image-grid{
	display:grid;
	grid-template-columns:repeat(2,minmax(0,1fr));
	gap:17px;
	margin-top:25px;
}

.sw-arcadia .sw-image-grid figure,
.sw-arcadia .sw-feature-image{
	margin:0;
	border:1px solid rgba(213,179,106,.2);
	border-radius:15px;
	overflow:hidden;
	background:#0d1310;
}

.sw-arcadia .sw-image-grid img{
	width:100%;
	aspect-ratio:3/2;
	object-fit:cover;
}

.sw-arcadia .sw-feature-image{
	margin:25px 0;
	box-shadow:var(--sw-shadow);
}

.sw-arcadia .sw-feature-image img{
	width:100%;
	object-fit:cover;
}

.sw-arcadia .sw-realm{
	margin-top:38px;
	padding:30px;
	background:
		linear-gradient(135deg,rgba(213,179,106,.08),transparent 40%),
		var(--sw-bg-soft);
	border:1px solid rgba(213,179,106,.3);
	border-radius:19px;
}

.sw-arcadia .sw-realm-tag{
	display:inline-block;
	margin-bottom:12px;
	padding:6px 10px;
	border-radius:999px;
	background:rgba(213,179,106,.11);
	color:var(--sw-gold-soft);
	border:1px solid rgba(213,179,106,.25);
	font-size:.72rem;
	font-weight:800;
	letter-spacing:.09em;
	text-transform:uppercase;
}

.sw-arcadia .sw-mini-profile{
	display:grid;
	grid-template-columns:repeat(4,minmax(0,1fr));
	gap:10px;
	margin:22px 0;
}

.sw-arcadia .sw-mini{
	padding:14px;
	background:rgba(0,0,0,.16);
	border:1px solid rgba(213,179,106,.14);
	border-radius:11px;
}

.sw-arcadia .sw-mini b{
	display:block;
	color:var(--sw-gold);
	font-size:.67rem;
	text-transform:uppercase;
	letter-spacing:.09em;
	margin-bottom:4px;
}

.sw-arcadia .sw-route{
	display:flex;
	gap:12px;
	align-items:flex-start;
	margin:12px 0;
}

.sw-arcadia .sw-route-mark{
	flex:0 0 29px;
	width:29px;
	height:29px;
	border-radius:50%;
	display:flex;
	align-items:center;
	justify-content:center;
	background:rgba(213,179,106,.11);
	border:1px solid rgba(213,179,106,.28);
	color:var(--sw-gold);
	font-weight:900;
}

.sw-arcadia .sw-hook{
	display:grid;
	grid-template-columns:42px 1fr;
	gap:14px;
	padding:18px 0;
	border-bottom:1px solid rgba(213,179,106,.12);
}

.sw-arcadia .sw-hook:last-child{
	border-bottom:0;
}

.sw-arcadia .sw-hook-num{
	width:36px;
	height:36px;
	border-radius:50%;
	display:flex;
	align-items:center;
	justify-content:center;
	background:var(--sw-gold);
	color:#101410;
	font-family:Georgia,"Times New Roman",serif;
	font-weight:700;
}

.sw-arcadia .sw-hook h3{
	margin:3px 0 6px;
	font-size:1.15rem;
}

/* =========================================================
   PURE CSS EDITION TABS
   ========================================================= */

.sw-arcadia .sw-tab-radio{
	position:absolute;
	width:1px;
	height:1px;
	opacity:.001;
	overflow:hidden;
}

.sw-arcadia .sw-tab-labels{
	display:flex;
	flex-wrap:wrap;
	gap:8px;
	margin:0 0 15px;
}

.sw-arcadia .sw-tab-labels label{
	cursor:pointer;
	padding:10px 15px;
	border:1px solid var(--sw-line);
	border-radius:10px;
	background:var(--sw-panel);
	color:#e5dfd0;
	font-weight:800;
	font-size:.87rem;
}

.sw-arcadia .sw-tab-panels > div{
	;
	background:var(--sw-panel);
	border:1px solid rgba(213,179,106,.2);
	border-radius:15px;
	padding:24px;
}

#arcadia-55:checked ~ .sw-tab-labels label[for="arcadia-55"],
#arcadia-pf:checked ~ .sw-tab-labels label[for="arcadia-pf"],
#arcadia-35:checked ~ .sw-tab-labels label[for="arcadia-35"]{
	background:var(--sw-gold);
	color:#141711;
	border-color:var(--sw-gold);
}

#arcadia-55:checked ~ .sw-tab-panels .sw-panel-55,
#arcadia-pf:checked ~ .sw-tab-panels .sw-panel-pf,
#arcadia-35:checked ~ .sw-tab-panels .sw-panel-35{
	display:block;
}

.sw-arcadia .sw-mech{
	margin:18px 0 0;
	padding-top:17px;
	border-top:1px solid rgba(213,179,106,.14);
}

.sw-arcadia .sw-mech:first-child{
	margin-top:0;
	padding-top:0;
	border-top:0;
}

.sw-arcadia .sw-related{
	display:grid;
	grid-template-columns:repeat(3,minmax(0,1fr));
	gap:13px;
}

.sw-arcadia .sw-related a{
	display:block;
	height:100%;
	padding:18px;
	border-radius:13px;
	background:var(--sw-panel);
	border:1px solid rgba(213,179,106,.19);
	text-decoration:none;
}

.sw-arcadia .sw-related a:hover{
	border-color:rgba(213,179,106,.62);
	background:var(--sw-panel-2);
}

.sw-arcadia .sw-related b{
	display:block;
	color:var(--sw-gold-soft);
	font-family:Georgia,"Times New Roman",serif;
	font-size:1.06rem;
	margin-bottom:5px;
}

.sw-arcadia .sw-related span{
	color:var(--sw-muted);
	font-size:.87rem;
	line-height:1.45;
}

.sw-arcadia .sw-sources{
	margin-top:25px;
	padding-top:20px;
	border-top:1px solid rgba(213,179,106,.14);
}

.sw-arcadia .sw-sources a{
	display:block;
	margin:8px 0;
	font-size:.9rem;
}

@media(max-width:850px){

	.sw-arcadia .sw-hero-grid{
		grid-template-columns:1fr;
	}

	.sw-arcadia .sw-sigil{
		max-width:270px;
		margin:0 auto;
	}

	.sw-arcadia .sw-grid-3,
	.sw-arcadia .sw-related{
		grid-template-columns:1fr 1fr;
	}

	.sw-arcadia .sw-mini-profile{
		grid-template-columns:1fr 1fr;
	}
}

@media(max-width:620px){

	.sw-arcadia{
		border-radius:14px;
	}

	.sw-arcadia .sw-wrap{
		width:min(100% - 24px,1160px);
	}

	.sw-arcadia .sw-hero{
		padding-top:38px;
	}

	.sw-arcadia .sw-section{
		padding:42px 0;
	}

	.sw-arcadia .sw-grid,
	.sw-arcadia .sw-grid-3,
	.sw-arcadia .sw-image-grid,
	.sw-arcadia .sw-related,
	.sw-arcadia .sw-profile{
		grid-template-columns:1fr;
	}

	.sw-arcadia .sw-realm{
		padding:21px;
	}

	.sw-arcadia .sw-mini-profile{
		grid-template-columns:1fr;
	}
}
/* END ARCADIA */


/* --- WPWriter addition --- */


/* PANDEMONIUM — migrated from page-scoped CSS, 2026-10-06 */
/* =========================================================
   PANDEMONIUM — SCOPED PAGE CSS
   ========================================================= */

.sw-pandemonium{
	--swp-bg:#080a0f;
	--swp-panel:#10131a;
	--swp-panel-2:#151922;
	--swp-panel-3:#0c0f15;
	--swp-text:#e8e2d7;
	--swp-muted:#aaa59c;
	--swp-gold:#c9a65d;
	--swp-gold-2:#e0c47f;
	--swp-line:rgba(201,166,93,.28);
	--swp-line-soft:rgba(255,255,255,.075);

	background:
		radial-gradient(circle at 50% 0%,rgba(87,94,114,.13),transparent 36rem),
		linear-gradient(180deg,#080a0f 0%,#0b0d12 52%,#080a0f 100%);
	color:var(--swp-text);
	line-height:1.72;
	padding:clamp(18px,3vw,38px);
	border:1px solid rgba(255,255,255,.045);
	border-radius:18px;
	box-shadow:0 18px 48px rgba(0,0,0,.34);
	overflow:hidden;
}

.sw-pandemonium *,
.sw-pandemonium *::before,
.sw-pandemonium *::after{
	box-sizing:border-box;
}

.sw-pandemonium a{
	color:var(--swp-gold-2);
	text-decoration-color:rgba(224,196,127,.38);
	text-underline-offset:3px;
}

.sw-pandemonium a:hover,
.sw-pandemonium a:focus{
	color:#ffe4a5;
	text-decoration-color:#ffe4a5;
}

.sw-pandemonium h1,
.sw-pandemonium h2,
.sw-pandemonium h3,
.sw-pandemonium h4{
	color:#f2e7cf;
	line-height:1.2;
	scroll-margin-top:110px;
}

.sw-pandemonium h1{
	font-size:clamp(2.15rem,5vw,4rem);
	font-weight:500;
	margin:0;
}

.sw-pandemonium h2{
	font-size:clamp(1.55rem,3.2vw,2.3rem);
	font-weight:600;
	margin:3.2rem 0 1rem;
	padding-bottom:.55rem;
	border-bottom:1px solid var(--swp-line);
}

.sw-pandemonium h3{
	font-size:clamp(1.2rem,2.4vw,1.62rem);
	margin:2.15rem 0 .7rem;
}

.sw-pandemonium h4{
	font-size:1.08rem;
	margin:1.5rem 0 .45rem;
	color:#e7cf97;
}

.sw-pandemonium p{
	margin:.78rem 0;
}

.sw-pandemonium ul,
.sw-pandemonium ol{
	padding-left:1.35rem;
}

.sw-pandemonium li{
	margin:.32rem 0;
}

/* HERO */

.swp-kicker{
	color:var(--swp-gold);
	font-size:.77rem;
	font-weight:700;
	letter-spacing:.16em;
	text-transform:uppercase;
	margin:0 0 .55rem;
}

.swp-lead{
	max-width:64rem;
	font-size:clamp(1.06rem,2vw,1.3rem);
	color:#ddd6ca;
	margin:1rem 0 1.25rem;
}

.swp-hero{
	display:grid;
	grid-template-columns:minmax(0,1.15fr) minmax(280px,.85fr);
	gap:clamp(24px,4vw,46px);
	align-items:center;
}

.swp-hero-image{
	margin:0;
}

.swp-hero-image img{
	display:block;
	width:100%;
	height:auto;
	border:1px solid var(--swp-line);
	border-radius:15px;
	box-shadow:0 16px 38px rgba(0,0,0,.42);
}

/* PROFILE */

.swp-profile{
	display:grid;
	grid-template-columns:repeat(2,minmax(0,1fr));
	gap:10px 18px;
	margin:1.4rem 0 0;
	padding:1.1rem 1.2rem;
	background:
		linear-gradient(135deg,rgba(201,166,93,.085),rgba(255,255,255,.016));
	border:1px solid var(--swp-line);
	border-radius:14px;
}

.swp-profile dt{
	color:var(--swp-gold);
	font-size:.72rem;
	font-weight:700;
	letter-spacing:.07em;
	text-transform:uppercase;
}

.swp-profile dd{
	margin:.15rem 0 0;
}

/* NAV */

.swp-local-nav{
	position:sticky;
	top:70px;
	z-index:20;
	display:flex;
	flex-wrap:wrap;
	gap:5px;
	margin:1.7rem 0 2rem;
	padding:8px;
	background:rgba(8,10,15,.95);
	border:1px solid var(--swp-line);
	border-radius:11px;
	box-shadow:0 8px 24px rgba(0,0,0,.3);
	backdrop-filter:blur(10px);
}

.swp-local-nav a{
	display:inline-flex;
	align-items:center;
	min-height:34px;
	padding:6px 9px;
	border-radius:7px;
	text-decoration:none;
	color:#d8d2c7;
	font-size:.82rem;
}

.swp-local-nav a:hover,
.swp-local-nav a:focus{
	background:rgba(201,166,93,.13);
	color:#ffe2a0;
}

/* CALLOUTS */

.swp-callout,
.swp-law,
.swp-note{
	margin:1.3rem 0;
	padding:1rem 1.15rem;
	background:var(--swp-panel);
	border:1px solid var(--swp-line-soft);
	border-left:3px solid var(--swp-gold);
	border-radius:10px;
}

.swp-callout strong,
.swp-law strong{
	color:#f0dba9;
}

.swp-quote{
	margin:1.35rem 0;
	padding:1rem 1.2rem;
	background:rgba(201,166,93,.055);
	border-left:3px solid var(--swp-gold);
	border-radius:0 9px 9px 0;
	color:#ddd5c7;
	font-style:italic;
}

/* LAYER QUICK CARDS */

.swp-layer-grid{
	display:grid;
	grid-template-columns:repeat(4,minmax(0,1fr));
	gap:12px;
	margin:1.35rem 0 2rem;
}

.swp-layer-card{
	display:block;
	padding:1rem;
	background:linear-gradient(180deg,var(--swp-panel),var(--swp-panel-3));
	border:1px solid var(--swp-line-soft);
	border-radius:12px;
	text-decoration:none !important;
}

.swp-layer-card:hover{
	border-color:var(--swp-line);
	transform:translateY(-1px);
}

.swp-layer-card strong{
	display:block;
	color:#efdba8;
	margin-bottom:.25rem;
}

.swp-layer-card span{
	color:var(--swp-muted);
	font-size:.89rem;
}

/* FIGURES */

.swp-figure{
	margin:1.5rem 0 1.8rem;
}

.swp-figure img{
	display:block;
	width:100%;
	height:auto;
	border:1px solid var(--swp-line-soft);
	border-radius:13px;
	box-shadow:0 12px 30px rgba(0,0,0,.28);
}

.swp-figure figcaption{
	margin-top:.55rem;
	color:var(--swp-muted);
	font-size:.86rem;
	line-height:1.5;
}

.swp-map{
	padding:7px;
	background:#090b0f;
	border:1px solid var(--swp-line);
	border-radius:15px;
}

.swp-map img{
	border-radius:10px;
}

/* LAYER INTRO */

.swp-layer-intro{
	margin:1.1rem 0 2rem;
	padding:1.2rem 1.3rem;
	background:
		linear-gradient(135deg,rgba(201,166,93,.06),rgba(255,255,255,.018));
	border:1px solid var(--swp-line-soft);
	border-radius:13px;
}

.swp-layer-intro p:first-child{
	margin-top:0;
}

.swp-layer-intro p:last-child{
	margin-bottom:0;
}

/* REGIONS */

.swp-region{
	margin:2rem 0 2.5rem;
	padding:1.25rem;
	background:
		linear-gradient(180deg,var(--swp-panel),var(--swp-panel-3));
	border:1px solid var(--swp-line-soft);
	border-radius:14px;
}

.swp-region > h3{
	margin:.05rem 0 .8rem;
}

.swp-region .swp-figure{
	margin:1rem 0 1.2rem;
}

.swp-region-note{
	margin-top:1rem;
	padding:.85rem 1rem;
	background:rgba(255,255,255,.025);
	border-left:2px solid var(--swp-gold);
}

/* TABLES */

.swp-table-wrap{
	width:100%;
	overflow-x:auto;
	margin:1.2rem 0 1.7rem;
	border:1px solid var(--swp-line-soft);
	border-radius:12px;
}

.sw-pandemonium table{
	width:100%;
	min-width:640px;
	border-collapse:collapse;
	background:var(--swp-panel-3);
}

.sw-pandemonium th,
.sw-pandemonium td{
	padding:.78rem .85rem;
	border-bottom:1px solid rgba(255,255,255,.065);
	text-align:left;
	vertical-align:top;
}

.sw-pandemonium th{
	color:#e9d4a3;
	background:rgba(201,166,93,.08);
	font-size:.81rem;
	letter-spacing:.04em;
	text-transform:uppercase;
}

/* TABS */

.swp-tabs{
	margin:1.4rem 0;
}

.swp-tab-buttons{
	display:flex;
	flex-wrap:wrap;
	gap:8px;
	margin-bottom:13px;
}

.swp-tab-button{
	appearance:none;
	padding:.7rem 1rem;
	background:var(--swp-panel);
	color:#ddd5c8;
	border:1px solid var(--swp-line);
	border-radius:9px;
	cursor:pointer;
	font:inherit;
	font-weight:700;
}

.swp-tab-button:hover,
.swp-tab-button:focus{
	color:#ffe3a4;
	border-color:var(--swp-gold);
}

.swp-tab-button[aria-selected="true"]{
	background:rgba(201,166,93,.15);
	color:#ffe3a4;
	border-color:var(--swp-gold);
}

.swp-tab-panel{
	padding:1.15rem;
	background:var(--swp-panel-3);
	border:1px solid var(--swp-line-soft);
	border-radius:12px;
}

.swp-tabs--js .swp-tab-panel{
	display:none;
}

.swp-tabs--js .swp-tab-panel.is-active{
	display:block;
}

/* RULE BLOCK */

.swp-rule{
	padding:.85rem 0 1rem;
	border-bottom:1px solid rgba(255,255,255,.07);
}

.swp-rule:last-child{
	border-bottom:0;
}

.swp-rule h4{
	margin:.15rem 0 .45rem;
}

/* VIDEOS */

.swp-video-grid{
	display:grid;
	grid-template-columns:repeat(2,minmax(0,1fr));
	gap:18px;
	margin:1.35rem 0;
}

.swp-video{
	overflow:hidden;
	background:var(--swp-panel);
	border:1px solid var(--swp-line-soft);
	border-radius:13px;
}

.swp-video-embed{
	position:relative;
	width:100%;
	aspect-ratio:16 / 9;
	background:#000;
	overflow:hidden;
}

.swp-video-embed iframe{
	position:absolute;
	inset:0;
	display:block !important;
	width:100% !important;
	height:100% !important;
	min-height:100% !important;
	border:0 !important;
	visibility:visible !important;
	opacity:1 !important;
}

.swp-video-copy{
	padding:1rem;
}

.swp-video-copy h3{
	margin:0 0 .4rem;
	font-size:1.08rem;
}

.swp-video-link{
	display:inline-block;
	margin-top:.45rem;
}

/* FAQ */

.swp-faq details{
	margin:.65rem 0;
	padding:.85rem 1rem;
	background:var(--swp-panel);
	border:1px solid var(--swp-line-soft);
	border-radius:9px;
}

.swp-faq summary{
	color:#ead5a6;
	font-weight:700;
	cursor:pointer;
}

/* FOOTER */

.swp-footer-links{
	display:flex;
	flex-wrap:wrap;
	gap:9px;
	margin-top:2rem;
	padding-top:1.2rem;
	border-top:1px solid var(--swp-line);
}

.swp-footer-links a{
	display:inline-block;
	padding:.55rem .75rem;
	background:rgba(255,255,255,.035);
	border:1px solid var(--swp-line-soft);
	border-radius:8px;
	text-decoration:none;
}

/* RESPONSIVE */

@media (max-width:920px){
	.swp-hero{
		grid-template-columns:1fr;
	}

	.swp-hero-image{
		max-width:660px;
	}

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

@media (max-width:720px){
	.sw-pandemonium{
		padding:17px;
		border-radius:12px;
	}

	.swp-profile{
		grid-template-columns:1fr;
	}

	.swp-local-nav{
		position:static;
	}

	.swp-video-grid{
		grid-template-columns:1fr;
	}
}

@media (max-width:520px){
	.swp-layer-grid{
		grid-template-columns:1fr;
	}

	.swp-local-nav{
		display:grid;
		grid-template-columns:repeat(2,minmax(0,1fr));
	}
}
/* END PANDEMONIUM */


/* --- WPWriter addition --- */


/* COURT OF MIRACLES — scoped migration from page CSS, 2026-10-06 */
/* =========================================================
   SPIRALWORLDS — THE COURT OF MIRACLES
   Final publication build — 1454
   Astra / Spectra friendly
   CSS only — no JavaScript
   ========================================================= */

.sw-court-miracles {
  max-width: 1180px;
  width: calc(100% - 32px);
  margin: 0 auto;
  line-height: 1.7;
}

.sw-court-miracles * {
  box-sizing: border-box;
}

.sw-court-miracles h1 {
  margin: 0 0 18px;
  line-height: 1.12;
}

.sw-court-miracles h2 {
  margin-top: 46px;
  padding-bottom: 9px;
  border-bottom: 1px solid rgba(128,128,128,.36);
  line-height: 1.2;
}

.sw-court-miracles h3 {
  margin-top: 30px;
  line-height: 1.25;
}

.sw-court-miracles h4 {
  margin-top: 24px;
}

.sw-court-miracles p,
.sw-court-miracles li {
  max-width: 82ch;
}

.sw-court-miracles a {
  text-decoration-thickness: 1px;
  text-underline-offset: 3px;
}

.sw-kicker {
  margin: -5px 0 24px;
  font-size: 1.08rem;
  opacity: .86;
}

.sw-lead {
  font-size: 1.09rem;
}

.sw-hero,
.sw-map,
.sw-feature-image,
.sw-literary-image {
  margin: 22px 0 34px;
}

.sw-hero img,
.sw-map img,
.sw-feature-image img,
.sw-literary-image img {
  width: 100%;
  height: auto;
  display: block;
  border-radius: 8px;
}

.sw-image-link {
  display: block;
}

.sw-caption {
  margin-top: 8px;
  font-size: .91rem;
  opacity: .78;
}

/* =========================================================
   IDENTITY BLOCK
   ========================================================= */

.sw-identity {
  display: grid;
  grid-template-columns: minmax(0, 2fr) minmax(240px, 1fr);
  gap: 24px;
  align-items: start;
  margin: 28px 0 36px;
}

.sw-panel {
  border: 1px solid rgba(128,128,128,.36);
  border-radius: 8px;
  overflow: hidden;
  background: rgba(128,128,128,.055);
}

.sw-panel-title {
  margin: 0 !important;
  padding: 14px 18px !important;
  border: 0 !important;
  border-bottom: 1px solid rgba(128,128,128,.32) !important;
  font-size: 1.06rem;
  font-weight: 700;
}

.sw-panel-body {
  padding: 18px;
}

.sw-heraldry {
  text-align: center;
}

.sw-heraldry-frame {
  aspect-ratio: 1 / 1;
  width: 100%;
  max-width: 330px;
  margin: 0 auto 13px;
  overflow: hidden;
  border-radius: 8px;
}

.sw-heraldry-frame img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

/* =========================================================
   NOTES / CARDS
   ========================================================= */

.sw-note {
  margin: 24px 0;
  padding: 18px 20px;
  border-left: 4px solid currentColor;
  background: rgba(128,128,128,.09);
  border-radius: 0 7px 7px 0;
}

.sw-warning {
  margin: 24px 0;
  padding: 18px 20px;
  border: 1px solid rgba(128,128,128,.38);
  border-radius: 8px;
  background: rgba(128,128,128,.07);
}

.sw-grid-2,
.sw-grid-3 {
  display: grid;
  gap: 20px;
  margin: 22px 0;
}

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

.sw-grid-3 {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.sw-card {
  border: 1px solid rgba(128,128,128,.32);
  border-radius: 8px;
  padding: 18px;
  background: rgba(128,128,128,.05);
}

.sw-card h3,
.sw-card h4 {
  margin-top: 0;
}

/* =========================================================
   TABLES
   ========================================================= */

.sw-table-wrap {
  width: 100%;
  overflow-x: auto;
  margin: 20px 0 28px;
}

.sw-court-miracles table {
  width: 100%;
  border-collapse: collapse;
  min-width: 620px;
}

.sw-court-miracles th,
.sw-court-miracles td {
  border: 1px solid rgba(128,128,128,.36);
  padding: 11px 13px;
  vertical-align: top;
  text-align: left;
}

.sw-court-miracles th {
  background: rgba(128,128,128,.18);
  font-weight: 700;
}

.sw-court-miracles tbody tr:nth-child(even) {
  background: rgba(128,128,128,.055);
}

/* =========================================================
   HARD-LOCKED CSS-ONLY EDITION TABS
   WordPress / Astra safe
   Input → label → panel
   ========================================================= */

.sw-court-miracles .sw-tabs {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  column-gap: 12px;
  row-gap: 18px;
  margin: 28px 0 38px;
}

.sw-court-miracles .sw-tab-item {
  display: contents;
}

.sw-court-miracles .sw-tab-item > input {
  position: absolute;
  width: 1px;
  height: 1px;
  opacity: 0;
  pointer-events: none;
}

.sw-court-miracles .sw-tab-label {
  grid-row: 1;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 64px;
  padding: 12px 16px;
  border: 1px solid rgba(128,128,128,.42);
  border-radius: 9px;
  background: rgba(128,128,128,.08);
  font-weight: 700;
  text-align: center;
  transition:
    background .15s ease,
    color .15s ease,
    border-color .15s ease;
}

.sw-court-miracles .sw-tab-label-55 {
  grid-column: 1;
}

.sw-court-miracles .sw-tab-label-pf {
  grid-column: 2;
}

.sw-court-miracles .sw-tab-label-35 {
  grid-column: 3;
}

/* Force every rules panel closed first */

html body .sw-court-miracles .sw-tabs #court-panel-55,
html body .sw-court-miracles .sw-tabs #court-panel-pf,
html body .sw-court-miracles .sw-tabs #court-panel-35 {
  display: none !important;
  grid-column: 1 / -1;
  grid-row: 2;
  padding: 26px;
  border: 1px solid rgba(128,128,128,.42);
  border-top: 3px solid #e8c98e;
  border-radius: 10px;
  background: rgba(128,128,128,.035);
}

/* Show only the checked edition */

html body .sw-court-miracles
#court-tab-55:checked ~ #court-panel-55 {
  display: block !important;
}

html body .sw-court-miracles
#court-tab-pf:checked ~ #court-panel-pf {
  display: block !important;
}

html body .sw-court-miracles
#court-tab-35:checked ~ #court-panel-35 {
  display: block !important;
}

/* Explicitly keep unchecked editions closed */

html body .sw-court-miracles
#court-tab-55:not(:checked) ~ #court-panel-55 {
  display: none !important;
}

html body .sw-court-miracles
#court-tab-pf:not(:checked) ~ #court-panel-pf {
  display: none !important;
}

html body .sw-court-miracles
#court-tab-35:not(:checked) ~ #court-panel-35 {
  display: none !important;
}

/* Selected tab button */

.sw-tab-item > input:checked + .sw-tab-label {
  background: #e8c98e;
  color: #171717;
  border-color: #e8c98e;
}

.sw-tab-item > input:focus-visible + .sw-tab-label {
  outline: 3px solid currentColor;
  outline-offset: 3px;
}

/* =========================================================
   CSS-ONLY LIGHTBOX
   ========================================================= */

.sw-lightbox-view {
  position: fixed;
  inset: 0;
  z-index: 99999;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 24px;
  background: rgba(0,0,0,.94);
  opacity: 0;
  pointer-events: none;
  transition: opacity .18s ease;
}

.sw-lightbox-view:target {
  opacity: 1;
  pointer-events: auto;
}

.sw-lightbox-close {
  display: flex;
  width: 100%;
  height: 100%;
  align-items: center;
  justify-content: center;
  text-decoration: none;
}

.sw-lightbox-close img {
  max-width: 96vw;
  max-height: 92vh;
  width: auto;
  height: auto;
  border-radius: 6px;
  box-shadow: 0 8px 40px rgba(0,0,0,.65);
}

/* =========================================================
   VIDEO
   ========================================================= */

.sw-video {
  position: relative;
  width: 100%;
  padding-top: 56.25%;
  margin: 22px 0 32px;
  overflow: hidden;
  border-radius: 8px;
  background: #111;
}

.sw-video iframe {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  border: 0;
}

/* =========================================================
   HOOKS / NAVIGATION
   ========================================================= */

.sw-hook {
  margin: 20px 0;
  padding: 17px 19px;
  border: 1px solid rgba(128,128,128,.32);
  border-radius: 8px;
  background: rgba(128,128,128,.035);
}

.sw-hook h3 {
  margin-top: 0;
}

.sw-continue td:first-child {
  white-space: nowrap;
}

/* =========================================================
   MOBILE
   ========================================================= */

@media (max-width: 760px) {

  .sw-court-miracles {
    width: calc(100% - 24px);
  }

  .sw-identity,
  .sw-grid-2,
  .sw-grid-3 {
    grid-template-columns: 1fr;
  }

  .sw-heraldry-frame {
    max-width: 300px;
  }

  .sw-court-miracles .sw-tabs {
    grid-template-columns: 1fr;
    row-gap: 10px;
  }

  .sw-court-miracles .sw-tab-label {
    grid-column: 1 !important;
    grid-row: auto;
    min-height: 54px;
  }

  html body .sw-court-miracles .sw-tabs #court-panel-55,
  html body .sw-court-miracles .sw-tabs #court-panel-pf,
  html body .sw-court-miracles .sw-tabs #court-panel-35 {
    grid-column: 1;
    grid-row: auto;
    padding: 18px;
  }

  .sw-lightbox-view {
    padding: 10px;
  }
}
/* END COURT OF MIRACLES */


/* --- WPWriter addition --- */


/* HOMEPAGE — migrated from page-scoped CSS, 2026-10-06 */
.swh-home {
		--swh-black: #05080a;
		--swh-black-soft: #0a0f13;
		--swh-gold: #d6a52d;
		--swh-gold-light: #efd06f;
		--swh-cream: #f3ead5;
		--swh-text: #f5f1e8;
		--swh-muted: #c4bbb0;
		--swh-line: rgba(222, 174, 62, 0.72);
		--swh-serif: "Iowan Old Style", "Palatino Linotype", "Book Antiqua", Palatino, Georgia, serif;
		--swh-sans: "Segoe UI", Tahoma, Arial, sans-serif;
		position: relative;
		overflow: hidden;
		color: var(--swh-text);
		background: var(--swh-black);
		font-family: var(--swh-serif);
		font-size: 16px;
		line-height: 1.52;
	}

	.swh-home *,
	.swh-home *::before,
	.swh-home *::after {
		box-sizing: border-box;
	}

	.swh-home h1,
	.swh-home h2,
	.swh-home h3,
	.swh-home p {
		margin-top: 0;
	}

	.swh-home a {
		color: inherit;
	}

	.swh-shell {
		width: min(1500px, calc(100% - 36px));
		margin-inline: auto;
	}

	.swh-home a:focus-visible,
	.swh-home button:focus-visible,
	.swh-home input:focus-visible,
	.swh-home summary:focus-visible {
		outline: 3px solid #fff;
		outline-offset: 3px;
		box-shadow: 0 0 0 6px #9a6e0f;
	}

	.swh-site-header {
		position: sticky;
		z-index: 50;
		top: 0;
		border-bottom: 1px solid rgba(214, 165, 45, 0.2);
		background: rgba(4, 7, 9, 0.97);
		backdrop-filter: blur(9px);
	}

	.admin-bar .swh-site-header {
		top: 32px;
	}

	.swh-header-inner {
		display: grid;
		grid-template-columns: auto minmax(0, 1fr) auto;
		gap: 30px;
		align-items: center;
		min-height: 72px;
	}

	.swh-brand {
		display: inline-flex;
		align-items: center;
		gap: 12px;
		text-decoration: none;
		white-space: nowrap;
	}

	.swh-logo-mark {
		width: 46px;
		height: 46px;
		flex: 0 0 46px;
		color: var(--swh-gold);
		filter: drop-shadow(0 0 8px rgba(214, 165, 45, 0.18));
	}

	.swh-brand-copy strong {
		display: block;
		color: var(--swh-cream);
		font-size: clamp(1.25rem, 2vw, 1.8rem);
		font-weight: 700;
		letter-spacing: -0.025em;
		line-height: 1;
	}

	.swh-brand-copy span {
		display: block;
		margin-top: 5px;
		color: var(--swh-gold-light);
		font-size: 0.67rem;
		font-style: italic;
		letter-spacing: 0.02em;
	}

	.swh-main-nav {
		display: flex;
		gap: clamp(13px, 1.7vw, 27px);
		align-items: center;
		justify-content: center;
	}

	.swh-main-nav a,
	.swh-search-jump {
		color: #e9dfcb;
		font-family: var(--swh-sans);
		font-size: 0.75rem;
		font-weight: 700;
		letter-spacing: 0.055em;
		text-decoration: none;
		text-transform: uppercase;
		white-space: nowrap;
	}

	.swh-main-nav a:hover,
	.swh-main-nav a:focus-visible,
	.swh-search-jump:hover,
	.swh-search-jump:focus-visible {
		color: var(--swh-gold-light);
	}

	.swh-search-jump {
		display: inline-flex;
		gap: 8px;
		align-items: center;
	}

	.swh-mobile-nav {
		display: none;
		position: relative;
	}

	.swh-mobile-nav summary {
		display: inline-flex;
		width: 44px;
		height: 42px;
		align-items: center;
		justify-content: center;
		border: 1px solid var(--swh-line);
		border-radius: 3px;
		color: var(--swh-gold-light);
		cursor: pointer;
		list-style: none;
	}

	.swh-mobile-nav summary::-webkit-details-marker {
		display: none;
	}

	.swh-mobile-menu {
		position: absolute;
		top: calc(100% + 10px);
		right: 0;
		display: grid;
		width: min(310px, calc(100vw - 28px));
		padding: 10px;
		border: 1px solid var(--swh-line);
		border-radius: 4px;
		background: #080d11;
		box-shadow: 0 18px 45px rgba(0, 0, 0, 0.5);
	}

	.swh-mobile-menu a {
		padding: 11px 12px;
		border-bottom: 1px solid rgba(214, 165, 45, 0.14);
		color: var(--swh-cream);
		font-family: var(--swh-sans);
		font-size: 0.78rem;
		font-weight: 700;
		letter-spacing: 0.04em;
		text-decoration: none;
		text-transform: uppercase;
	}

	.swh-hero {
		position: relative;
		min-height: clamp(520px, 58vw, 690px);
		overflow: hidden;
		border-bottom: 1px solid rgba(214, 165, 45, 0.2);
		background: #111;
	}

	.swh-hero-media {
		position: absolute;
		inset: 0;
	}

	.swh-hero-media img {
		display: block;
		width: 100%;
		height: 100%;
		object-fit: cover;
		object-position: 52% center;
	}

	.swh-hero::before {
		content: "";
		position: absolute;
		z-index: 1;
		inset: 0;
		background:
			linear-gradient(
				90deg,
				rgba(2, 5, 7, 0.98) 0%,
				rgba(4, 7, 9, 0.93) 28%,
				rgba(5, 9, 12, 0.60) 50%,
				rgba(5, 9, 12, 0.12) 78%,
				rgba(5, 9, 12, 0.04) 100%
			),
			linear-gradient(
				180deg,
				rgba(0, 0, 0, 0.05) 45%,
				rgba(0, 0, 0, 0.76) 100%
			);
		pointer-events: none;
	}

	.swh-hero-inner {
		position: relative;
		z-index: 2;
		display: flex;
		min-height: inherit;
		align-items: center;
		padding-top: 44px;
		padding-bottom: 122px;
	}

	.swh-hero-copy {
		width: min(610px, 52%);
	}

	.swh-kicker {
		margin-bottom: 9px;
		color: var(--swh-gold-light);
		font-family: var(--swh-sans);
		font-size: 0.76rem;
		font-weight: 800;
		letter-spacing: 0.095em;
		text-transform: uppercase;
	}

	.swh-hero h1 {
		max-width: 620px;
		margin-bottom: 17px;
		color: #fff;
		font-size: clamp(3rem, 5.4vw, 5.3rem);
		font-weight: 700;
		letter-spacing: -0.045em;
		line-height: 0.94;
		text-shadow: 0 4px 24px rgba(0, 0, 0, 0.58);
	}

	.swh-hero-lede {
		max-width: 515px;
		margin-bottom: 22px;
		color: #f0eadf;
		font-size: clamp(1rem, 1.45vw, 1.18rem);
		line-height: 1.5;
		text-shadow: 0 2px 15px rgba(0, 0, 0, 0.6);
	}

	.swh-hero-buttons {
		display: flex;
		flex-wrap: wrap;
		gap: 12px;
	}

	.swh-button {
		display: inline-flex;
		min-height: 48px;
		align-items: center;
		justify-content: center;
		padding: 12px 22px;
		border: 1px solid var(--swh-gold);
		border-radius: 3px;
		font-family: var(--swh-sans);
		font-size: 0.78rem;
		font-weight: 800;
		letter-spacing: 0.055em;
		text-decoration: none;
		text-transform: uppercase;
		transition: transform 150ms ease, background 150ms ease, color 150ms ease;
	}

	.swh-button:hover,
	.swh-button:focus-visible {
		transform: translateY(-2px);
	}

	.swh-button-primary {
		color: #171006;
		background: linear-gradient(180deg, #f0ce73, #d4a334);
	}

	.swh-button-secondary {
		color: var(--swh-cream);
		background: rgba(4, 7, 9, 0.68);
	}

	.swh-proof-strip {
		position: absolute;
		z-index: 3;
		right: 0;
		bottom: 0;
		left: 0;
		border-top: 1px solid rgba(214, 165, 45, 0.16);
		background: rgba(3, 6, 8, 0.86);
		backdrop-filter: blur(8px);
	}

	.swh-proof-grid {
		display: grid;
		grid-template-columns: repeat(4, minmax(0, 1fr));
	}

	.swh-proof {
		display: grid;
		grid-template-columns: 42px minmax(0, 1fr);
		gap: 12px;
		align-items: center;
		min-height: 84px;
		padding: 12px 20px;
		border-right: 1px solid rgba(214, 165, 45, 0.16);
	}

	.swh-proof:last-child {
		border-right: 0;
	}

	.swh-proof-icon {
		display: grid;
		width: 38px;
		height: 38px;
		place-items: center;
		border: 1px solid var(--swh-gold);
		border-radius: 50%;
		color: var(--swh-gold-light);
		font-family: var(--swh-sans);
		font-size: 1rem;
		font-weight: 800;
	}

	.swh-proof span {
		color: #efe7d9;
		font-size: 0.91rem;
		line-height: 1.25;
	}

	.swh-worlds {
		padding: 14px 0 10px;
		background:
			radial-gradient(circle at 50% 0%, rgba(214, 165, 45, 0.08), transparent 34%),
			#05080a;
	}

	.swh-world-grid {
		display: grid;
		grid-template-columns: repeat(6, minmax(0, 1fr));
		gap: 10px;
	}

	.swh-world-card {
		position: relative;
		display: flex;
		min-height: 325px;
		flex-direction: column;
		overflow: hidden;
		border: 1px solid var(--swh-line);
		border-radius: 4px;
		background: #111;
		box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.035);
		text-decoration: none;
		transition: transform 160ms ease, border-color 160ms ease, box-shadow 160ms ease;
	}

	.swh-world-card:hover,
	.swh-world-card:focus-visible {
		z-index: 2;
		border-color: var(--swh-gold-light);
		box-shadow: 0 14px 34px rgba(0, 0, 0, 0.48);
		transform: translateY(-4px);
	}

	.swh-world-card img {
		position: absolute;
		inset: 0;
		width: 100%;
		height: 100%;
		object-fit: cover;
		transition: transform 260ms ease;
	}

	.swh-world-card:hover img,
	.swh-world-card:focus-visible img {
		transform: scale(1.035);
	}

	.swh-world-card::before {
		content: "";
		position: absolute;
		z-index: 1;
		inset: 0;
		background:
			linear-gradient(180deg, rgba(0, 0, 0, 0.06) 28%, rgba(0, 0, 0, 0.52) 60%, rgba(0, 0, 0, 0.96) 100%),
			linear-gradient(90deg, rgba(0, 0, 0, 0.2), transparent 54%);
	}

	.swh-card-top,
	.swh-card-bottom {
		position: relative;
		z-index: 2;
	}

	.swh-card-top {
		padding: 15px 15px 0;
	}

	.swh-card-number {
		display: block;
		margin-bottom: 2px;
		color: var(--swh-gold-light);
		font-size: 0.86rem;
		font-weight: 700;
		letter-spacing: 0.055em;
	}

	.swh-world-card h3 {
		margin-bottom: 0;
		color: #fff;
		font-size: clamp(1.3rem, 1.65vw, 1.85rem);
		font-weight: 700;
		letter-spacing: -0.025em;
		line-height: 1.02;
		text-shadow: 0 3px 16px rgba(0, 0, 0, 0.65);
	}

	.swh-card-bottom {
		display: grid;
		grid-template-columns: minmax(0, 1fr) 38px;
		gap: 12px;
		align-items: end;
		margin-top: auto;
		padding: 16px 15px 15px;
	}

	.swh-card-bottom p {
		margin-bottom: 0;
		color: #eee7dc;
		font-size: 0.84rem;
		line-height: 1.34;
	}

	.swh-card-arrow {
		display: grid;
		width: 36px;
		height: 36px;
		place-items: center;
		border: 1px solid var(--swh-gold);
		border-radius: 50%;
		color: var(--swh-gold-light);
		font-family: var(--swh-sans);
		font-size: 1.2rem;
	}

	.swh-resources {
		padding: 0 0 11px;
		background: #05080a;
	}

	.swh-resource-grid {
		display: grid;
		grid-template-columns: repeat(4, minmax(0, 1fr));
		gap: 10px;
	}

	.swh-resource-card {
		display: grid;
		grid-template-columns: 40% minmax(0, 1fr);
		min-height: 145px;
		overflow: hidden;
		border: 1px solid var(--swh-line);
		border-radius: 4px;
		background: var(--swh-resource-bg, linear-gradient(125deg, #0b2530, #071319));
		text-decoration: none;
		transition: transform 160ms ease, border-color 160ms ease;
	}

	.swh-resource-card:hover,
	.swh-resource-card:focus-visible {
		border-color: var(--swh-gold-light);
		transform: translateY(-3px);
	}

	.swh-resource-card img {
		width: 100%;
		height: 100%;
		object-fit: cover;
		border-right: 1px solid rgba(214, 165, 45, 0.3);
	}

	.swh-resource-copy {
		display: flex;
		min-width: 0;
		flex-direction: column;
		padding: 16px 16px 13px;
	}

	.swh-resource-copy h3 {
		margin-bottom: 6px;
		color: #fff;
		font-size: clamp(1.23rem, 1.45vw, 1.72rem);
		font-weight: 700;
		letter-spacing: -0.02em;
		line-height: 1.05;
	}

	.swh-resource-copy p {
		margin-bottom: 8px;
		color: #eee5d7;
		font-size: 0.8rem;
		line-height: 1.3;
	}

	.swh-resource-meta {
		margin-top: auto;
		color: var(--swh-gold-light);
		font-family: var(--swh-sans);
		font-size: 0.68rem;
		font-weight: 700;
		letter-spacing: 0.035em;
	}

	.swh-resource-arrow {
		align-self: flex-end;
		color: var(--swh-gold-light);
		font-family: var(--swh-sans);
		font-size: 1.15rem;
	}

	.swh-resource-player {
		--swh-resource-bg: linear-gradient(120deg, #082b3b, #07141b);
	}

	.swh-resource-gm {
		--swh-resource-bg: linear-gradient(120deg, #21351b, #0b150c);
	}

	.swh-resource-film {
		--swh-resource-bg: linear-gradient(120deg, #4a1716, #17090a);
	}

	.swh-resource-books {
		--swh-resource-bg: linear-gradient(120deg, #493019, #181007);
	}

	.swh-utility {
		padding: 0 0 11px;
		background: #05080a;
	}

	.swh-utility-grid {
		display: grid;
		grid-template-columns: minmax(0, 1.45fr) minmax(310px, 0.55fr);
		gap: 10px;
	}

	.swh-search-panel,
	.swh-support-panel {
		min-height: 120px;
		border: 1px solid var(--swh-line);
		border-radius: 4px;
	}

	.swh-search-panel {
		display: grid;
		grid-template-columns: minmax(200px, 0.65fr) minmax(320px, 1.35fr);
		gap: 24px;
		align-items: center;
		padding: 18px 24px;
		color: #21160a;
		background:
			radial-gradient(circle at 6% 50%, rgba(122, 76, 19, 0.14), transparent 18%),
			linear-gradient(90deg, #e6d2a5, #f0dfbb);
	}

	.swh-search-panel h2,
	.swh-support-panel h2 {
		margin-bottom: 4px;
		font-size: clamp(1.45rem, 2.1vw, 2.15rem);
		font-weight: 700;
		letter-spacing: -0.025em;
		line-height: 1.02;
	}

	.swh-search-panel p {
		margin-bottom: 0;
		font-size: 0.86rem;
	}

	.swh-search-form {
		display: grid;
		grid-template-columns: minmax(0, 1fr) 56px;
		border: 1px solid #8c611c;
		border-radius: 3px;
		background: rgba(255, 255, 255, 0.56);
	}

	.swh-search-form input {
		min-width: 0;
		min-height: 47px;
		padding: 10px 14px;
		border: 0;
		color: #22170b;
		background: transparent;
		font: inherit;
	}

	.swh-search-form button {
		border: 0;
		border-left: 1px solid #8c611c;
		color: #1a1005;
		background: linear-gradient(180deg, #efc85f, #d6a52d);
		font-size: 1.1rem;
		cursor: pointer;
	}

	.swh-support-panel {
		display: grid;
		grid-template-columns: minmax(0, 1fr) auto;
		gap: 18px;
		align-items: center;
		padding: 18px 22px;
		color: #f0e6d6;
		background:
			radial-gradient(circle at 86% 50%, rgba(214, 165, 45, 0.12), transparent 26%),
			linear-gradient(120deg, #1b1712, #090b0d);
	}

	.swh-support-panel p {
		margin-bottom: 0;
		color: #cabfaf;
		font-size: 0.82rem;
		line-height: 1.3;
	}

	.swh-support-link {
		display: inline-flex;
		min-height: 42px;
		align-items: center;
		justify-content: center;
		padding: 10px 15px;
		border: 1px solid var(--swh-gold);
		border-radius: 3px;
		color: #1b1105;
		background: linear-gradient(180deg, #efcd72, #d5a437);
		font-family: var(--swh-sans);
		font-size: 0.72rem;
		font-weight: 800;
		letter-spacing: 0.035em;
		text-decoration: none;
		text-transform: uppercase;
		white-space: nowrap;
	}

	.swh-footer {
		border-top: 1px solid rgba(214, 165, 45, 0.2);
		background: #060a0d;
	}

	.swh-footer-inner {
		display: grid;
		grid-template-columns: minmax(240px, 0.8fr) minmax(0, 1.2fr) auto;
		gap: 34px;
		align-items: center;
		min-height: 88px;
		padding-top: 15px;
		padding-bottom: 15px;
	}

	.swh-footer-copy {
		color: #bdb4a7;
		font-size: 0.78rem;
		line-height: 1.35;
	}

	.swh-footer-nav {
		display: flex;
		flex-wrap: wrap;
		gap: 8px 19px;
	}

	.swh-footer-nav a {
		color: #d7ccba;
		font-family: var(--swh-sans);
		font-size: 0.69rem;
		font-weight: 700;
		letter-spacing: 0.035em;
		text-decoration: none;
		text-transform: uppercase;
	}

	.swh-footer-nav a:hover,
	.swh-footer-nav a:focus-visible {
		color: var(--swh-gold-light);
	}

	.swh-copyright {
		color: #9f9689;
		font-size: 0.75rem;
		text-align: right;
		white-space: nowrap;
	}

	.swh-screen-reader {
		position: absolute !important;
		width: 1px;
		height: 1px;
		overflow: hidden;
		clip: rect(1px, 1px, 1px, 1px);
		clip-path: inset(50%);
		white-space: nowrap;
	}

	@media (max-width: 1280px) {
		.swh-main-nav {
			gap: 14px;
		}

		.swh-main-nav a {
			font-size: 0.69rem;
		}

		.swh-world-grid {
			grid-template-columns: repeat(3, minmax(0, 1fr));
		}

		.swh-world-card {
			min-height: 370px;
		}
	}

	@media (max-width: 980px) {
		.admin-bar .swh-site-header {
			top: 46px;
		}

		.swh-header-inner {
			grid-template-columns: minmax(0, 1fr) auto;
			min-height: 66px;
		}

		.swh-main-nav,
		.swh-search-jump {
			display: none;
		}

		.swh-mobile-nav {
			display: block;
		}

		.swh-hero {
			min-height: 660px;
		}

		.swh-hero-media img {
			object-position: 58% center;
		}

		.swh-hero::before {
			background:
				linear-gradient(
					90deg,
						rgba(2, 5, 7, 0.98) 0%,
						rgba(4, 7, 9, 0.93) 48%,
						rgba(4, 7, 9, 0.52) 76%,
						rgba(4, 7, 9, 0.2) 100%
				),
				linear-gradient(180deg, transparent 45%, rgba(0, 0, 0, 0.82) 100%);
		}

		.swh-hero-copy {
			width: min(600px, 82%);
		}

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

		.swh-proof:nth-child(2) {
			border-right: 0;
		}

		.swh-proof:nth-child(-n + 2) {
			border-bottom: 1px solid rgba(214, 165, 45, 0.16);
		}

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

		.swh-utility-grid,
		.swh-search-panel {
			grid-template-columns: 1fr;
		}
	}

	@media (max-width: 700px) {
		.swh-shell {
			width: min(100% - 20px, 1500px);
		}

		.swh-brand-copy strong {
			font-size: 1.28rem;
		}

		.swh-brand-copy span {
			display: none;
		}

		.swh-logo-mark {
			width: 40px;
			height: 40px;
			flex-basis: 40px;
		}

		.swh-hero {
			min-height: 720px;
		}

		.swh-hero-inner {
			align-items: flex-start;
			padding-top: 55px;
			padding-bottom: 185px;
		}

		.swh-hero-copy {
			width: 100%;
		}

		.swh-hero h1 {
			max-width: 520px;
			font-size: clamp(2.7rem, 13vw, 4.5rem);
		}

		.swh-proof {
			grid-template-columns: 34px minmax(0, 1fr);
			min-height: 72px;
			padding: 10px 11px;
		}

		.swh-proof-icon {
			width: 32px;
			height: 32px;
		}

		.swh-proof span {
			font-size: 0.78rem;
		}

		.swh-world-grid,
		.swh-resource-grid {
			grid-template-columns: repeat(2, minmax(0, 1fr));
		}

		.swh-world-card {
			min-height: 335px;
		}

		.swh-resource-card {
			grid-template-columns: 38% minmax(0, 1fr);
		}

		.swh-utility-grid {
			grid-template-columns: 1fr;
		}

		.swh-footer-inner {
			grid-template-columns: 1fr;
			gap: 14px;
		}

		.swh-copyright {
			text-align: left;
		}
	}

	@media (max-width: 480px) {
		.swh-world-grid,
		.swh-resource-grid,
		.swh-proof-grid {
			grid-template-columns: 1fr;
		}

		.swh-proof {
			border-right: 0;
			border-bottom: 1px solid rgba(214, 165, 45, 0.16);
		}

		.swh-hero {
			min-height: 850px;
		}

		.swh-hero-inner {
			padding-bottom: 310px;
		}

		.swh-world-card {
			min-height: 390px;
		}

		.swh-support-panel {
			grid-template-columns: 1fr;
		}
	}


	/* 4 August final corrective structure */
	.swh-skip-link {
		position: fixed;
		z-index: 1000;
		top: 10px;
		left: 10px;
		padding: 11px 15px;
		border: 2px solid var(--swh-gold-light);
		border-radius: 3px;
		color: #171006;
		background: #f3d77f;
		font-family: var(--swh-sans);
		font-size: 0.78rem;
		font-weight: 800;
		text-decoration: none;
		transform: translateY(-150%);
		transition: transform 140ms ease;
	}

	.swh-skip-link:focus {
		transform: translateY(0);
	}

	.swh-main {
		display: block;
	}

	.swh-section-head {
		display: flex;
		gap: 28px;
		align-items: end;
		justify-content: space-between;
		padding: 22px 0 14px;
	}

	.swh-section-head-copy {
		max-width: 720px;
	}

	.swh-section-eyebrow {
		display: block;
		margin-bottom: 5px;
		color: var(--swh-gold-light);
		font-family: var(--swh-sans);
		font-size: 0.7rem;
		font-weight: 800;
		letter-spacing: 0.09em;
		text-transform: uppercase;
	}

	.swh-section-head h2 {
		margin: 0;
		color: #fff;
		font-size: clamp(1.8rem, 3vw, 2.7rem);
		line-height: 1.02;
	}

	.swh-section-head p {
		max-width: 560px;
		margin: 0;
		color: var(--swh-muted);
		font-size: 0.93rem;
		line-height: 1.5;
	}

	.swh-search-band {
		padding: 10px 0 12px;
		border-bottom: 1px solid rgba(214, 165, 45, 0.14);
		background: #05080a;
	}

	.swh-search-band .swh-search-panel {
		width: 100%;
	}

	.swh-support-band {
		padding: 10px 0 12px;
		background: #05080a;
	}

	.swh-support-band .swh-support-panel {
		width: 100%;
	}

	/* Lighter final image treatment: preserve detail while retaining text contrast. */
	.swh-world-card::before {
		background:
			linear-gradient(180deg, rgba(0,0,0,0.02) 25%, rgba(0,0,0,0.34) 59%, rgba(0,0,0,0.88) 100%),
			linear-gradient(90deg, rgba(0,0,0,0.10), transparent 58%);
	}

	@media (max-width: 700px) {
		.swh-section-head {
			display: block;
			padding-top: 19px;
		}

		.swh-section-head p {
			margin-top: 8px;
		}
	}

	@media (prefers-reduced-motion: reduce) {
		.swh-home *,
		.swh-home *::before,
		.swh-home *::after {
			scroll-behavior: auto !important;
			transition-duration: 0.01ms !important;
		}
	}
/* END HOMEPAGE */


/* --- WPWriter addition --- */


/* PLAYER RESOURCES — migrated from page-scoped CSS, 2026-10-06 */
.swpr {
		--black: #040709;
		--black-soft: #080d11;
		--panel: #0d1419;
		--panel-raised: #111a20;
		--gold: #d6a52d;
		--gold-light: #f0cf76;
		--cream: #f4ecdd;
		--text: #f7f3eb;
		--muted: #c5bcaf;
		--line: rgba(214, 165, 45, 0.57);
		--line-soft: rgba(214, 165, 45, 0.18);
		--serif: "Iowan Old Style", "Palatino Linotype", "Book Antiqua", Palatino, Georgia, serif;
		--sans: "Segoe UI", Tahoma, Arial, sans-serif;
		position: relative;
		overflow: hidden;
		color: var(--text);
		background: var(--black);
		font-family: var(--serif);
		font-size: 16px;
		line-height: 1.52;
	}

	.swpr *,
	.swpr *::before,
	.swpr *::after {
		box-sizing: border-box;
	}

	.swpr h1,
	.swpr h2,
	.swpr h3,
	.swpr p {
		margin-top: 0;
	}

	.swpr h1,
	.swpr h2,
	.swpr h3,
	.swpr p,
	.swpr span,
	.swpr a,
	.swpr li {
		overflow-wrap: normal !important;
		word-break: normal !important;
		hyphens: none !important;
	}

	.swpr a {
		color: inherit;
	}

	.swpr a:focus-visible,
	.swpr input:focus-visible,
	.swpr button:focus-visible,
	.swpr summary:focus-visible {
		outline: 3px solid #fff;
		outline-offset: 3px;
		box-shadow: 0 0 0 6px #8b650e;
	}

	.swpr [id] {
		scroll-margin-top: 92px;
	}

	.swpr-shell {
		width: min(1440px, calc(100% - 36px));
		margin-inline: auto;
	}

	.swpr-header {
		position: sticky;
		z-index: 60;
		top: 0;
		border-bottom: 1px solid var(--line-soft);
		background: rgba(3, 6, 8, 0.97);
		backdrop-filter: blur(9px);
	}

	.admin-bar .swpr-header {
		top: 32px;
	}

	.swpr-header-inner {
		display: grid;
		grid-template-columns: auto minmax(0, 1fr) auto;
		gap: 28px;
		align-items: center;
		min-height: 72px;
	}

	.swpr-brand {
		display: inline-flex;
		gap: 11px;
		align-items: center;
		color: var(--cream);
		text-decoration: none;
		white-space: nowrap;
	}

	.swpr-mark {
		display: grid;
		width: 44px;
		height: 44px;
		flex: 0 0 44px;
		place-items: center;
		border: 1px solid var(--gold);
		border-radius: 50%;
		color: var(--gold-light);
		font-family: var(--serif);
		font-size: 1.8rem;
		line-height: 1;
	}

	.swpr-brand strong {
		display: block;
		font-family: var(--serif);
		font-size: 1.5rem;
		letter-spacing: -0.025em;
		line-height: 1;
	}

	.swpr-brand small {
		display: block;
		margin-top: 5px;
		color: var(--gold-light);
		font-size: 0.67rem;
		font-style: italic;
	}

	.swpr-nav {
		display: flex;
		gap: clamp(13px, 1.45vw, 24px);
		align-items: center;
		justify-content: center;
	}

	.swpr-nav a,
	.swpr-search-jump {
		color: #e8deca;
		font-family: var(--sans);
		font-size: 0.72rem;
		font-weight: 800;
		letter-spacing: 0.055em;
		text-decoration: none;
		text-transform: uppercase;
		white-space: nowrap;
	}

	.swpr-nav a:hover,
	.swpr-search-jump:hover {
		color: var(--gold-light);
	}

	.swpr-mobile {
		display: none;
		position: relative;
	}

	.swpr-mobile summary {
		display: grid;
		width: 44px;
		height: 42px;
		place-items: center;
		border: 1px solid var(--line);
		border-radius: 3px;
		color: var(--gold-light);
		cursor: pointer;
		list-style: none;
	}

	.swpr-mobile summary::-webkit-details-marker {
		display: none;
	}

	.swpr-mobile-menu {
		position: absolute;
		top: calc(100% + 10px);
		right: 0;
		display: grid;
		width: min(310px, calc(100vw - 28px));
		padding: 10px;
		border: 1px solid var(--line);
		border-radius: 4px;
		background: #080d11;
		box-shadow: 0 18px 45px rgba(0, 0, 0, 0.54);
	}

	.swpr-mobile-menu a {
		padding: 11px 12px;
		border-bottom: 1px solid var(--line-soft);
		font-family: var(--sans);
		font-size: 0.78rem;
		font-weight: 800;
		letter-spacing: 0.04em;
		text-decoration: none;
		text-transform: uppercase;
	}

	.swpr-hero {
		position: relative;
		min-height: clamp(590px, 62vw, 760px);
		overflow: hidden;
		border-bottom: 1px solid var(--line-soft);
		background: #111;
	}

	.swpr-hero::before {
		content: "";
		position: absolute;
		inset: 0;
		z-index: 0;
		background: url("https://spiralworlds.com/wp-content/uploads/2026/07/spiralworlds-home-players.webp") 61% center / cover no-repeat;
		filter: brightness(1.95) contrast(0.90) saturate(1.10);
		transform: scale(1.002);
	}

	.swpr-hero::after {
		content: "";
		position: absolute;
		inset: 0;
		z-index: 1;
		pointer-events: none;
		background:
			linear-gradient(90deg, rgba(3, 6, 8, 0.58) 0%, rgba(3, 6, 8, 0.42) 30%, rgba(3, 6, 8, 0.15) 54%, rgba(3, 6, 8, 0.03) 80%, rgba(3, 6, 8, 0.00) 100%),
			linear-gradient(180deg, rgba(0, 0, 0, 0.00) 52%, rgba(0, 0, 0, 0.22) 100%);
	}

	.swpr-hero-inner {
		display: flex;
		min-height: inherit;
		align-items: center;
		padding-top: 54px;
		padding-bottom: 132px;
	}

	.swpr-hero-copy {
		position: relative;
		z-index: 2;
		width: min(710px, 60%);
	}

	.swpr-kicker,
	.swpr-eyebrow {
		margin-bottom: 10px;
		color: var(--gold-light);
		font-family: var(--sans);
		font-size: 0.74rem;
		font-weight: 900;
		letter-spacing: 0.105em;
		text-transform: uppercase;
	}

	.swpr-hero h1 {
		max-width: 700px;
		margin: 0 0 18px !important;
		color: #fff !important;
		font-family: var(--sans) !important;
		font-size: clamp(3.2rem, 5.2vw, 5rem) !important;
		font-weight: 850 !important;
		letter-spacing: -0.045em !important;
		line-height: 0.95 !important;
		text-transform: none !important;
		text-shadow: 0 4px 24px rgba(0, 0, 0, 0.68);
	}

	.swpr-hero h1 span {
		display: block;
		white-space: nowrap;
	}

	.swpr-lede {
		max-width: 590px;
		margin-bottom: 25px;
		color: #f1eadf;
		font-size: clamp(1rem, 1.35vw, 1.14rem);
		line-height: 1.54;
		text-shadow: 0 2px 14px rgba(0, 0, 0, 0.75);
	}

	.swpr-actions {
		display: flex;
		flex-wrap: wrap;
		gap: 12px;
	}

	.swpr-button {
		display: inline-flex;
		min-height: 48px;
		align-items: center;
		justify-content: center;
		padding: 12px 21px;
		border: 1px solid var(--gold);
		border-radius: 3px;
		font-family: var(--sans);
		font-size: 0.75rem;
		font-weight: 900;
		letter-spacing: 0.055em;
		text-decoration: none;
		text-transform: uppercase;
		transition: transform 150ms ease, background 150ms ease;
	}

	.swpr-button:hover {
		transform: translateY(-2px);
	}

	.swpr-primary {
		color: #171006;
		background: linear-gradient(180deg, #f0cf76, #d4a333);
	}

	.swpr-secondary {
		color: var(--cream);
		background: rgba(4, 7, 9, 0.73);
	}

	.swpr-proof {
		position: absolute;
		z-index: 3;
		right: 0;
		bottom: 0;
		left: 0;
		border-top: 1px solid var(--line-soft);
		background: rgba(3, 6, 8, 0.9);
		backdrop-filter: blur(7px);
	}

	.swpr-proof-grid {
		display: grid;
		grid-template-columns: repeat(4, minmax(0, 1fr));
	}

	.swpr-proof-item {
		display: grid;
		grid-template-columns: 42px minmax(0, 1fr);
		gap: 12px;
		align-items: center;
		min-height: 84px;
		padding: 12px 20px;
		border-right: 1px solid var(--line-soft);
	}

	.swpr-proof-item:last-child {
		border-right: 0;
	}

	.swpr-proof-icon {
		display: grid;
		width: 38px;
		height: 38px;
		place-items: center;
		border: 1px solid var(--gold);
		border-radius: 50%;
		color: var(--gold-light);
		font-family: var(--sans);
		font-size: 1rem;
		font-weight: 900;
	}

	.swpr-proof-item span:last-child {
		color: #eee5d7;
		font-size: 0.89rem;
		line-height: 1.27;
	}

	.swpr-section {
		padding: clamp(56px, 7vw, 90px) 0;
		border-bottom: 1px solid var(--line-soft);
		background:
			radial-gradient(circle at 50% 0%, rgba(214, 165, 45, 0.055), transparent 32%),
			var(--black);
	}

	.swpr-section-alt {
		background:
			linear-gradient(90deg, rgba(214, 165, 45, 0.035), transparent 42%),
			var(--black-soft);
	}

	.swpr-section-head {
		display: grid;
		grid-template-columns: minmax(0, 0.58fr) minmax(320px, 0.42fr);
		gap: 48px;
		align-items: end;
		margin-bottom: 28px;
	}

	.swpr-section-head h2 {
		margin: 0 !important;
		color: #fff !important;
		font-family: var(--sans) !important;
		font-size: clamp(2rem, 3.25vw, 3.35rem) !important;
		font-weight: 850 !important;
		letter-spacing: -0.04em !important;
		line-height: 0.99 !important;
		text-transform: none !important;
	}

	.swpr-section-head p {
		margin-bottom: 0;
		color: var(--muted);
		font-size: 0.97rem;
		line-height: 1.53;
	}

	.swpr-builder {
		display: grid;
		grid-template-columns: minmax(0, 1.1fr) minmax(320px, 0.5fr);
		gap: 14px;
	}

	.swpr-builder-main,
	.swpr-builder-side {
		border: 1px solid var(--line);
		border-radius: 4px;
		background: var(--panel);
	}

	.swpr-builder-main {
		padding: clamp(24px, 3.5vw, 44px);
	}

	.swpr-builder-main h2 {
		margin: 0 0 12px !important;
		color: #fff !important;
		font-family: var(--sans) !important;
		font-size: clamp(2rem, 3.1vw, 3rem) !important;
		font-weight: 850 !important;
		letter-spacing: -0.04em !important;
		line-height: 1 !important;
	}

	.swpr-builder-main > p {
		max-width: 760px;
		margin-bottom: 26px;
		color: var(--muted);
	}

	.swpr-builder-list {
		display: grid;
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 10px 18px;
		counter-reset: player-step;
	}

	.swpr-builder-row {
		display: grid;
		grid-template-columns: 31px minmax(0, 1fr);
		gap: 11px;
		align-items: start;
		padding: 13px 0;
		border-top: 1px solid var(--line-soft);
		counter-increment: player-step;
	}

	.swpr-builder-row::before {
		content: counter(player-step);
		display: grid;
		width: 28px;
		height: 28px;
		place-items: center;
		border: 1px solid var(--gold);
		border-radius: 50%;
		color: var(--gold-light);
		font-family: var(--sans);
		font-size: 0.72rem;
		font-weight: 900;
	}

	.swpr-builder-row strong {
		display: block;
		margin-bottom: 3px;
		color: #fff;
		font-family: var(--sans);
		font-size: 0.91rem;
	}

	.swpr-builder-row span {
		color: var(--muted);
		font-size: 0.83rem;
		line-height: 1.4;
	}

	.swpr-builder-side {
		display: flex;
		flex-direction: column;
		padding: 25px 22px;
		background:
			linear-gradient(180deg, rgba(214, 165, 45, 0.065), transparent 58%),
			var(--panel);
	}

	.swpr-builder-side h3 {
		margin: 0 0 10px !important;
		color: #fff !important;
		font-family: var(--sans) !important;
		font-size: 1.42rem !important;
		font-weight: 850 !important;
		letter-spacing: -0.025em !important;
		line-height: 1.05 !important;
	}

	.swpr-builder-side p {
		color: var(--muted);
		font-size: 0.88rem;
	}

	.swpr-builder-side .swpr-button {
		width: 100%;
		margin-top: auto;
	}

	.swpr-core-grid {
		display: grid;
		grid-template-columns: repeat(5, minmax(0, 1fr));
		gap: 10px;
	}

	.swpr-core-card {
		display: flex;
		min-height: 245px;
		flex-direction: column;
		padding: 21px 19px 18px;
		border: 1px solid var(--line);
		border-radius: 4px;
		background:
			linear-gradient(145deg, rgba(214, 165, 45, 0.055), transparent 44%),
			var(--panel);
		text-decoration: none;
		transition: transform 150ms ease, border-color 150ms ease;
	}

	.swpr-core-card:hover {
		border-color: var(--gold-light);
		transform: translateY(-3px);
	}

	.swpr-core-icon {
		display: grid;
		width: 43px;
		height: 43px;
		margin-bottom: 22px;
		place-items: center;
		border: 1px solid var(--gold);
		border-radius: 50%;
		color: var(--gold-light);
		font-family: var(--sans);
		font-size: 1rem;
		font-weight: 900;
	}

	.swpr-core-card h3 {
		margin: 0 0 9px !important;
		color: #fff !important;
		font-family: var(--sans) !important;
		font-size: 1.28rem !important;
		font-weight: 850 !important;
		letter-spacing: -0.025em !important;
		line-height: 1.05 !important;
	}

	.swpr-core-card p {
		margin-bottom: 15px;
		color: var(--muted);
		font-size: 0.83rem;
		line-height: 1.42;
	}

	.swpr-card-arrow {
		margin-top: auto;
		color: var(--gold-light);
		font-family: var(--sans);
		font-size: 0.69rem;
		font-weight: 900;
		letter-spacing: 0.045em;
		text-transform: uppercase;
	}

	.swpr-race-grid {
		display: grid;
		grid-template-columns: repeat(3, minmax(0, 1fr));
		gap: 12px;
	}

	.swpr-race-card {
		display: flex;
		min-height: 275px;
		flex-direction: column;
		padding: 22px 20px 19px;
		border: 1px solid var(--line);
		border-radius: 4px;
		background: var(--panel);
		text-decoration: none;
		transition: transform 150ms ease, border-color 150ms ease, background 150ms ease;
	}

	.swpr-race-card:hover {
		border-color: var(--gold-light);
		background: var(--panel-raised);
		transform: translateY(-3px);
	}

	.swpr-race-card h3 {
		margin: 0 0 9px !important;
		color: #fff !important;
		font-family: var(--sans) !important;
		font-size: 1.4rem !important;
		font-weight: 850 !important;
		letter-spacing: -0.028em !important;
		line-height: 1.04 !important;
	}

	.swpr-race-card p {
		margin-bottom: 16px;
		color: var(--muted);
		font-size: 0.86rem;
		line-height: 1.44;
	}

	.swpr-race-questions {
		display: grid;
		gap: 6px;
		margin-top: auto;
	}

	.swpr-race-questions span {
		padding-top: 7px;
		border-top: 1px solid var(--line-soft);
		color: #e8dfd1;
		font-size: 0.78rem;
		line-height: 1.35;
	}

	.swpr-class-grid {
		display: grid;
		grid-template-columns: repeat(4, minmax(0, 1fr));
		gap: 10px;
	}

	.swpr-class-card {
		display: flex;
		min-height: 205px;
		flex-direction: column;
		padding: 19px 17px 16px;
		border: 1px solid rgba(214, 165, 45, 0.43);
		border-radius: 4px;
		background: var(--panel);
		text-decoration: none;
		transition: transform 150ms ease, border-color 150ms ease, background 150ms ease;
	}

	.swpr-class-card:hover {
		border-color: var(--gold-light);
		background: var(--panel-raised);
		transform: translateY(-3px);
	}

	.swpr-role {
		display: block;
		margin-bottom: 13px;
		color: var(--gold-light);
		font-family: var(--sans);
		font-size: 0.65rem;
		font-weight: 900;
		letter-spacing: 0.095em;
		text-transform: uppercase;
	}

	.swpr-class-card h3 {
		margin: 0 0 8px !important;
		color: #fff !important;
		font-family: var(--sans) !important;
		font-size: 1.17rem !important;
		font-weight: 850 !important;
		letter-spacing: -0.022em !important;
		line-height: 1.05 !important;
	}

	.swpr-class-card p {
		margin-bottom: 14px;
		color: var(--muted);
		font-size: 0.8rem;
		line-height: 1.4;
	}

	.swpr-class-card .swpr-card-arrow {
		margin-top: auto;
	}

	.swpr-advanced {
		display: grid;
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 14px;
		margin-top: 14px;
	}

	.swpr-advanced-card {
		display: grid;
		min-height: 190px;
		align-content: end;
		padding: 24px 22px;
		border: 1px solid var(--line);
		border-radius: 4px;
		background:
			linear-gradient(135deg, rgba(214, 165, 45, 0.08), transparent 48%),
			var(--panel);
		text-decoration: none;
		transition: transform 150ms ease, border-color 150ms ease;
	}

	.swpr-advanced-card:hover {
		border-color: var(--gold-light);
		transform: translateY(-3px);
	}

	.swpr-advanced-card h3 {
		margin: 0 0 8px !important;
		color: #fff !important;
		font-family: var(--sans) !important;
		font-size: 1.45rem !important;
		font-weight: 850 !important;
		letter-spacing: -0.028em !important;
		line-height: 1.05 !important;
	}

	.swpr-advanced-card p {
		margin-bottom: 0;
		color: var(--muted);
		font-size: 0.86rem;
		line-height: 1.43;
	}

	.swpr-equipment-grid {
		display: grid;
		grid-template-columns: repeat(4, minmax(0, 1fr));
		gap: 10px;
	}

	.swpr-equipment-card {
		display: flex;
		min-height: 205px;
		flex-direction: column;
		padding: 19px 17px 16px;
		border: 1px solid rgba(214, 165, 45, 0.43);
		border-radius: 4px;
		background: var(--panel);
		text-decoration: none;
		transition: transform 150ms ease, border-color 150ms ease, background 150ms ease;
	}

	.swpr-equipment-card:hover {
		border-color: var(--gold-light);
		background: var(--panel-raised);
		transform: translateY(-3px);
	}

	.swpr-equipment-card h3 {
		margin: 0 0 8px !important;
		color: #fff !important;
		font-family: var(--sans) !important;
		font-size: 1.14rem !important;
		font-weight: 850 !important;
		letter-spacing: -0.021em !important;
		line-height: 1.06 !important;
	}

	.swpr-equipment-card p {
		margin-bottom: 14px;
		color: var(--muted);
		font-size: 0.8rem;
		line-height: 1.4;
	}

	.swpr-equipment-card .swpr-card-arrow {
		margin-top: auto;
	}

	.swpr-ready-grid {
		display: grid;
		grid-template-columns: minmax(0, 0.82fr) minmax(300px, 0.38fr);
		gap: 14px;
	}

	.swpr-ready-main,
	.swpr-magic-card {
		border: 1px solid var(--line);
		border-radius: 4px;
		background: var(--panel);
	}

	.swpr-ready-main {
		padding: clamp(24px, 3.5vw, 42px);
	}

	.swpr-ready-main h2 {
		margin: 0 0 13px !important;
		color: #fff !important;
		font-family: var(--sans) !important;
		font-size: clamp(2rem, 3.1vw, 3rem) !important;
		font-weight: 850 !important;
		letter-spacing: -0.04em !important;
		line-height: 1 !important;
	}

	.swpr-ready-list {
		display: grid;
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 10px 20px;
		margin-top: 24px;
	}

	.swpr-ready-item {
		padding: 13px 0;
		border-top: 1px solid var(--line-soft);
	}

	.swpr-ready-item strong {
		display: block;
		margin-bottom: 4px;
		color: var(--gold-light);
		font-family: var(--sans);
		font-size: 0.74rem;
		font-weight: 900;
		letter-spacing: 0.055em;
		text-transform: uppercase;
	}

	.swpr-ready-item span {
		color: var(--muted);
		font-size: 0.84rem;
		line-height: 1.4;
	}

	.swpr-magic-card {
		position: relative;
		display: flex;
		min-height: 100%;
		flex-direction: column;
		justify-content: flex-end;
		overflow: hidden;
		padding: 25px 22px;
		background:
			linear-gradient(180deg, rgba(4, 7, 9, 0.17), rgba(4, 7, 9, 0.96) 70%),
			url("https://spiralworlds.com/wp-content/uploads/2026/07/spiralworlds-home-magic.webp") center / cover no-repeat,
			var(--panel);
	}

	.swpr-magic-card h3 {
		margin: 0 0 10px !important;
		color: #fff !important;
		font-family: var(--sans) !important;
		font-size: 1.48rem !important;
		font-weight: 850 !important;
		letter-spacing: -0.028em !important;
		line-height: 1.05 !important;
	}

	.swpr-magic-card p {
		color: #e9e0d2;
		font-size: 0.86rem;
		line-height: 1.43;
	}

	.swpr-magic-card .swpr-button {
		width: 100%;
		margin-top: 13px;
	}

	.swpr-search {
		padding: 18px 0;
		border-bottom: 1px solid var(--line-soft);
		background: #080d11;
	}

	.swpr-search-box {
		display: grid;
		grid-template-columns: minmax(220px, 0.48fr) minmax(320px, 0.52fr);
		gap: 28px;
		align-items: center;
		padding: 25px;
		border: 1px solid rgba(214, 165, 45, 0.42);
		border-radius: 4px;
		background: rgba(4, 7, 9, 0.84);
	}

	.swpr-search-box h2 {
		margin: 0 0 6px !important;
		color: #fff !important;
		font-family: var(--sans) !important;
		font-size: 1.6rem !important;
		font-weight: 850 !important;
		letter-spacing: -0.025em !important;
		line-height: 1.05 !important;
	}

	.swpr-search-box p {
		margin-bottom: 0;
		color: var(--muted);
		font-size: 0.9rem;
	}

	.swpr-search-form {
		display: grid;
		grid-template-columns: minmax(0, 1fr) auto;
	}

	.swpr-search-form input {
		min-width: 0;
		height: 50px;
		padding: 0 15px;
		border: 1px solid #715d32;
		border-right: 0;
		border-radius: 3px 0 0 3px;
		color: #17120a;
		background: #f7efe0;
		font-family: var(--sans);
		font-size: 0.95rem;
	}

	.swpr-search-form button {
		min-height: 50px;
		padding: 0 20px;
		border: 1px solid var(--gold);
		border-radius: 0 3px 3px 0;
		color: #171006;
		background: linear-gradient(180deg, #f0cf76, #d4a333);
		font-family: var(--sans);
		font-size: 0.75rem;
		font-weight: 900;
		letter-spacing: 0.055em;
		text-transform: uppercase;
		cursor: pointer;
	}

	.swpr-footer {
		padding: 30px 0;
		background: #030608;
	}

	.swpr-footer-grid {
		display: grid;
		grid-template-columns: minmax(240px, 1.15fr) repeat(2, minmax(160px, 0.42fr));
		gap: 40px;
	}

	.swpr-footer strong {
		display: block;
		margin-bottom: 7px;
		color: var(--cream);
		font-size: 1.15rem;
	}

	.swpr-footer p {
		margin-bottom: 0;
		color: #9f978d;
		font-family: var(--sans);
		font-size: 0.78rem;
	}

	.swpr-footer h2 {
		margin: 0 0 9px !important;
		color: var(--gold-light) !important;
		font-family: var(--sans) !important;
		font-size: 0.72rem !important;
		font-weight: 900 !important;
		letter-spacing: 0.08em !important;
		text-transform: uppercase !important;
	}

	.swpr-footer-links {
		display: grid;
		gap: 6px;
	}

	.swpr-footer-links a {
		color: #d9d1c5;
		font-family: var(--sans);
		font-size: 0.8rem;
		text-decoration: none;
	}

	.swpr-footer-links a:hover {
		color: var(--gold-light);
	}

	@media (max-width: 1240px) {
		.swpr-nav {
			display: none;
		}

		.swpr-mobile {
			display: block;
		}

		.swpr-header-inner {
			grid-template-columns: auto 1fr auto auto;
		}

		.swpr-core-grid {
			grid-template-columns: repeat(3, minmax(0, 1fr));
		}

		.swpr-class-grid,
		.swpr-equipment-grid {
			grid-template-columns: repeat(3, minmax(0, 1fr));
		}
	}

	@media (max-width: 900px) {
		.swpr-hero {
			min-height: 730px;
			background-position: 64% center;
		}

		.swpr-hero-copy {
			width: min(650px, 77%);
		}

		.swpr-proof-grid,
		.swpr-race-grid {
			grid-template-columns: repeat(2, minmax(0, 1fr));
		}

		.swpr-proof-item:nth-child(2) {
			border-right: 0;
		}

		.swpr-section-head,
		.swpr-builder,
		.swpr-ready-grid,
		.swpr-search-box {
			grid-template-columns: 1fr;
			gap: 19px;
		}

		.swpr-class-grid,
		.swpr-equipment-grid {
			grid-template-columns: repeat(2, minmax(0, 1fr));
		}

		.swpr-footer-grid {
			grid-template-columns: 1fr 1fr;
		}
	}

	@media (max-width: 640px) {
		.swpr-shell {
			width: min(100% - 24px, 1440px);
		}

		.swpr-search-jump {
			display: none;
		}

		.swpr-header-inner {
			grid-template-columns: minmax(0, 1fr) auto;
			gap: 14px;
		}

		.swpr-brand small {
			display: none;
		}

		.swpr-mark {
			width: 40px;
			height: 40px;
			flex-basis: 40px;
		}

		.swpr-hero {
			min-height: 805px;
			background:
				linear-gradient(180deg, rgba(3, 6, 8, 0.47) 0%, rgba(3, 6, 8, 0.68) 34%, rgba(3, 6, 8, 0.98) 76%),
				url("https://spiralworlds.com/wp-content/uploads/2026/07/spiralworlds-home-players.webp") 58% center / cover no-repeat,
				#111;
		}

		.swpr-hero-inner {
			align-items: flex-end;
			padding-top: 72px;
			padding-bottom: 250px;
		}

		.swpr-hero-copy {
			width: 100%;
		}

		.swpr-hero h1 {
			font-size: clamp(2.65rem, 12vw, 3.65rem) !important;
			line-height: 0.98 !important;
		}

		.swpr-hero h1 span {
			white-space: normal;
		}

		.swpr-button {
			width: 100%;
		}

		.swpr-proof-grid,
		.swpr-builder-list,
		.swpr-core-grid,
		.swpr-race-grid,
		.swpr-class-grid,
		.swpr-advanced,
		.swpr-equipment-grid,
		.swpr-ready-list,
		.swpr-footer-grid {
			grid-template-columns: 1fr;
		}

		.swpr-proof-item {
			min-height: 60px;
			border-right: 0;
			border-bottom: 1px solid var(--line-soft);
		}

		.swpr-search-form {
			grid-template-columns: 1fr;
			gap: 8px;
		}

		.swpr-search-form input,
		.swpr-search-form button {
			border: 1px solid #715d32;
			border-radius: 3px;
		}
	}

	@media (max-width: 782px) {
		.admin-bar .swpr-header {
			top: 46px;
		}
	}

	@media (prefers-reduced-motion: reduce) {
		.swpr *,
		.swpr *::before,
		.swpr *::after {
			scroll-behavior: auto !important;
			transition-duration: 0.01ms !important;
		}
	}


	/* =========================================================
	   RULES-SYSTEM AND PUBLICATION PASS
	   ========================================================= */

	.swpr-system-grid {
		display: grid;
		grid-template-columns: repeat(3, minmax(0, 1fr));
		gap: 12px;
	}

	.swpr-system-card {
		min-height: 255px;
		padding: 23px 21px 20px;
		border: 1px solid var(--line);
		border-radius: 4px;
		background:
			linear-gradient(145deg, rgba(214, 165, 45, 0.06), transparent 44%),
			var(--panel);
	}

	.swpr-system-label {
		display: inline-flex;
		margin-bottom: 22px;
		padding: 7px 10px;
		border: 1px solid rgba(214, 165, 45, 0.42);
		border-radius: 999px;
		color: var(--gold-light);
		font-family: var(--sans);
		font-size: 0.67rem;
		font-weight: 900;
		letter-spacing: 0.075em;
		text-transform: uppercase;
	}

	.swpr-system-card h3 {
		margin: 0 0 10px !important;
		color: #fff !important;
		font-family: var(--sans) !important;
		font-size: 1.4rem !important;
		font-weight: 850 !important;
		letter-spacing: -0.027em !important;
		line-height: 1.05 !important;
	}

	.swpr-system-card p {
		margin-bottom: 14px;
		color: var(--muted);
		font-size: 0.86rem;
		line-height: 1.44;
	}

	.swpr-system-card ul {
		margin: 0;
		padding-left: 1.05rem;
		color: #e8dfd1;
		font-size: 0.8rem;
		line-height: 1.45;
	}

	.swpr-system-card li + li {
		margin-top: 5px;
	}

	.swpr-system-rule {
		margin-top: 18px;
		padding: 16px 18px;
		border: 1px solid rgba(214, 165, 45, 0.36);
		border-radius: 4px;
		color: #e9e0d2;
		background: rgba(0, 0, 0, 0.18);
		font-size: 0.88rem;
		line-height: 1.46;
	}

	.swpr-system-rule strong {
		color: var(--gold-light);
		font-family: var(--sans);
	}

	.swpr-core-grid {
		grid-template-columns: repeat(4, minmax(0, 1fr));
	}

	.swpr-core-card {
		min-height: 235px;
	}

	@media (max-width: 1000px) {
		.swpr-system-grid {
			grid-template-columns: 1fr;
		}
	}

	@media (max-width: 900px) {
		.swpr-core-grid {
			grid-template-columns: repeat(2, minmax(0, 1fr));
		}
	}

	@media (max-width: 640px) {
		.swpr-system-grid,
		.swpr-core-grid {
			grid-template-columns: 1fr;
		}
	}
/* END PLAYER RESOURCES */


/* --- WPWriter addition --- */


/* WARS OF DOMINION — migrated from page-scoped CSS, 2026-10-06 */
/* =========================================================
   SPIRALWORLDS — THE WARS OF DOMINION
   FINAL PUBLICATION CSS
   ========================================================= */

.sw-dominion,
.sw-dominion * {
	box-sizing: border-box;
}

.sw-dominion {
	--sw-bg: #0a0d12;
	--sw-bg-soft: #0e1218;
	--sw-panel: #11161d;
	--sw-panel-2: #151b23;
	--sw-gold: #cda85c;
	--sw-gold-light: #e2c47e;
	--sw-text: #dedbd3;
	--sw-muted: #aaa79f;
	--sw-border: rgba(205, 168, 92, 0.30);
	--sw-border-soft: rgba(255,255,255,0.08);
	--sw-link: #dfbd72;

	width: 100%;
	max-width: 1180px;
	margin: 0 auto;
	padding: 0;

	background: var(--sw-bg);
	color: var(--sw-text);

	font-family: Georgia, "Times New Roman", serif;
	font-size: 17px;
	line-height: 1.72;
}

.sw-dominion p,
.sw-dominion li,
.sw-dominion div {
	color: var(--sw-text);
}

.sw-dominion a {
	color: var(--sw-link);
	text-decoration-color: rgba(223,189,114,0.55);
	text-decoration-thickness: 1px;
	text-underline-offset: 3px;
}

.sw-dominion a:hover,
.sw-dominion a:focus {
	color: #f1d59a;
}

.sw-dominion h1,
.sw-dominion h2,
.sw-dominion h3,
.sw-dominion h4 {
	margin-top: 0;
	font-family: Georgia, "Times New Roman", serif;
	line-height: 1.2;
	text-wrap: balance;
}

.sw-dominion h1 {
	margin: 0;
	color: #f0ece4;
	font-size: clamp(2.4rem, 6vw, 4.6rem);
	font-weight: 500;
	letter-spacing: -0.035em;
}

.sw-dominion h2 {
	margin: 0 0 1rem;
	color: #eee9df;
	font-size: clamp(1.75rem, 4vw, 2.8rem);
	font-weight: 500;
}

.sw-dominion h3 {
	margin: 1.8rem 0 0.6rem;
	color: #e7e1d6;
	font-size: clamp(1.22rem, 2.4vw, 1.6rem);
	font-weight: 600;
}

.sw-dominion h4 {
	margin: 1.3rem 0 0.4rem;
	color: var(--sw-gold-light);
	font-size: 1.08rem;
	font-weight: 600;
}

.sw-dominion p {
	margin: 0 0 1rem;
}

.sw-dominion ul {
	margin: 0.7rem 0 1.3rem;
	padding-left: 1.35rem;
}

.sw-dominion li {
	margin: 0.35rem 0;
}

.sw-dominion .sw-hero {
	position: relative;
	overflow: hidden;
	margin: 0;
	padding: clamp(2rem, 6vw, 4.2rem) clamp(1.15rem, 5vw, 4rem);

	border: 1px solid var(--sw-border);

	background:
		radial-gradient(
			circle at 80% 0%,
			rgba(177,132,54,0.12),
			transparent 42%
		),
		linear-gradient(
			145deg,
			#121821 0%,
			#090c10 75%
		);
}

.sw-dominion .sw-eon {
	margin-bottom: 0.7rem;
	color: var(--sw-gold);
	font-family: Arial, Helvetica, sans-serif;
	font-size: 0.79rem;
	font-weight: 700;
	letter-spacing: 0.17em;
	text-transform: uppercase;
}

.sw-dominion .sw-subtitle {
	max-width: 850px;
	margin: 1rem 0 0;

	color: var(--sw-gold-light);
	font-size: clamp(1.08rem,2.2vw,1.4rem);
	line-height: 1.45;
}

.sw-dominion .sw-title-hero {
	margin: 1.5rem 0 0;
	overflow: hidden;
	border: 1px solid var(--sw-border);
	background: #080b0f;
}

.sw-dominion .sw-title-hero img {
	display: block;
	width: 100%;
	height: auto;
	border: 0;
}

.sw-dominion .sw-meta {
	display: grid;
	grid-template-columns: repeat(3,minmax(0,1fr));
	gap: 1px;
	margin-top: 1.7rem;
	border: 1px solid var(--sw-border-soft);
	background: var(--sw-border-soft);
}

.sw-dominion .sw-meta > div {
	padding: 1rem;
	background: #0c1016;
}

.sw-dominion .sw-meta strong {
	display: block;
	margin-bottom: 0.25rem;
	color: var(--sw-gold);
	font-family: Arial, Helvetica, sans-serif;
	font-size: 0.7rem;
	letter-spacing: 0.11em;
	text-transform: uppercase;
}

.sw-dominion .sw-intro {
	margin: 0;
	padding: clamp(1.4rem,3vw,2.2rem);

	border-left: 3px solid var(--sw-gold);
	border-right: 1px solid var(--sw-border-soft);
	border-bottom: 1px solid var(--sw-border-soft);

	background: var(--sw-panel);
}

.sw-dominion .sw-section {
	margin: 0;
	padding: clamp(1.5rem,4vw,2.5rem);

	border-left: 1px solid var(--sw-border-soft);
	border-right: 1px solid var(--sw-border-soft);
	border-bottom: 1px solid var(--sw-border-soft);

	background: var(--sw-panel);
}

.sw-dominion .sw-section > h2:first-child {
	margin-bottom: 1.3rem;
	padding-bottom: 0.75rem;
	border-bottom: 1px solid var(--sw-border);
}

.sw-dominion .sw-world-grid {
	display: grid;
	grid-template-columns: repeat(2,minmax(0,1fr));
	gap: 1rem;
}

.sw-dominion .sw-world-card {
	padding: 1.15rem;
	border: 1px solid var(--sw-border-soft);
	background: var(--sw-panel-2);
}

.sw-dominion .sw-world-card h3 {
	margin: 0 0 0.55rem;
	color: var(--sw-gold-light);
}

.sw-dominion .sw-movement-nav {
	display: grid;
	grid-template-columns: repeat(3,minmax(0,1fr));
	gap: 0.85rem;
	margin: 0;
	padding: 1.4rem;

	border-left: 1px solid var(--sw-border-soft);
	border-right: 1px solid var(--sw-border-soft);

	background: #0b0f14;
}

.sw-dominion .sw-movement-nav a {
	display: block;
	min-height: 118px;
	padding: 1.15rem 1.2rem;

	border: 1px solid rgba(205,168,92,0.22);
	background: #10151c;

	color: var(--sw-gold-light);
	text-decoration: none;

	transition:
		border-color 0.2s ease,
		background 0.2s ease,
		transform 0.2s ease;
}

.sw-dominion .sw-movement-nav a:hover,
.sw-dominion .sw-movement-nav a:focus {
	border-color: rgba(205,168,92,0.65);
	background: #151b23;
	transform: translateY(-1px);
}

.sw-dominion .sw-movement-nav strong {
	display: block;
	margin-bottom: 0.5rem;
	color: #ead39a;
	font-size: 1.08rem;
	line-height: 1.3;
}

.sw-dominion .sw-movement {
	margin: 0;
	padding: clamp(2rem,5vw,3.3rem) clamp(1.15rem,4vw,2.5rem) 0;

	border-top: 1px solid var(--sw-border);
	border-left: 1px solid var(--sw-border-soft);
	border-right: 1px solid var(--sw-border-soft);

	background:
		linear-gradient(
			180deg,
			#11161d 0%,
			#0d1117 220px
		);

	scroll-margin-top: 40px;
}

.sw-dominion .sw-movement-head {
	max-width: 950px;
	margin: 0 0 1.55rem;
}

.sw-dominion .sw-movement-number {
	margin-bottom: 0.5rem;

	color: var(--sw-gold);
	font-family: Arial, Helvetica, sans-serif;
	font-size: 0.74rem;
	font-weight: 700;
	letter-spacing: 0.16em;
	text-transform: uppercase;
}

.sw-dominion .sw-movement-dates {
	margin-bottom: 0.6rem;

	color: var(--sw-gold-light);
	font-family: Arial, Helvetica, sans-serif;
	font-size: 0.82rem;
	font-weight: 700;
	letter-spacing: 0.07em;
	text-transform: uppercase;
}

.sw-dominion .sw-movement-head h2 {
	margin: 0 0 0.8rem;
	color: #efe9de;
}

.sw-dominion .sw-movement-head p {
	max-width: 920px;
	color: #c9c5bc;
	font-size: 1.02rem;
}

.sw-dominion figure {
	margin: 1.3rem calc(clamp(1.15rem,4vw,2.5rem) * -1) 2rem;
}

.sw-dominion figure img {
	display: block;
	width: 100%;
	height: auto;
	margin: 0;

	border-top: 1px solid var(--sw-border);
	border-bottom: 1px solid var(--sw-border);
	border-left: 0;
	border-right: 0;
}

.sw-dominion .sw-event {
	max-width: 980px;
	margin: 0 auto;
	padding: 0.55rem 0 1.55rem;
	border-bottom: 1px solid var(--sw-border-soft);
}

.sw-dominion .sw-event:last-child {
	padding-bottom: 2.3rem;
	border-bottom: 0;
}

.sw-dominion .sw-event h3 {
	color: #e9e4da;
}

.sw-dominion .sw-event > p {
	color: #d2cec5;
}

.sw-dominion .sw-ruling {
	margin: 1.1rem 0;
	padding: 0.9rem 1rem;

	border-left: 2px solid var(--sw-gold);
	background: rgba(205,168,92,0.075);

	color: #d5d0c5;
}

.sw-dominion .sw-ruling strong {
	color: var(--sw-gold-light);
}

.sw-dominion .sw-columns {
	display: grid;
	grid-template-columns: repeat(2,minmax(0,1fr));
	gap: 1rem;
}

.sw-dominion .sw-mini {
	padding: 1.1rem 1.15rem;
	border: 1px solid var(--sw-border-soft);
	background: var(--sw-panel-2);
}

.sw-dominion .sw-mini h3 {
	margin-top: 0;
	color: var(--sw-gold-light);
}

.sw-dominion .sw-legacy-grid {
	display: grid;
	grid-template-columns: repeat(2,minmax(0,1fr));
	gap: 0.9rem;
}

.sw-dominion .sw-legacy {
	padding: 1.05rem 1.15rem;
	border: 1px solid var(--sw-border-soft);
	background: #0d1117;
}

.sw-dominion .sw-legacy h3 {
	margin: 0 0 0.55rem;
	color: var(--sw-gold-light);
	font-size: 1.12rem;
}

.sw-dominion .sw-nav-bottom {
	display: grid;
	grid-template-columns: repeat(2,minmax(0,1fr));
	gap: 0.9rem;
	margin-top: 1.3rem;
}

.sw-dominion .sw-nav-bottom a {
	display: block;
	padding: 1.15rem;
	border: 1px solid var(--sw-border);
	background: #090c10;
	text-decoration: none;
}

.sw-dominion .sw-nav-bottom a:hover,
.sw-dominion .sw-nav-bottom a:focus {
	background: #111720;
}

.sw-dominion .sw-nav-bottom small {
	display: block;
	color: var(--sw-muted);
	font-family: Arial, Helvetica, sans-serif;
	font-size: 0.69rem;
	letter-spacing: 0.1em;
	text-transform: uppercase;
}

.sw-dominion .sw-nav-bottom strong {
	display: block;
	margin-top: 0.3rem;
	color: var(--sw-gold-light);
	font-size: 1.08rem;
}

.sw-dominion .sw-links {
	display: flex;
	flex-wrap: wrap;
	gap: 0.55rem;
	margin-top: 1.1rem;
}

.sw-dominion .sw-links a {
	display: inline-block;
	padding: 0.45rem 0.7rem;
	border: 1px solid var(--sw-border-soft);
	background: #0b0f14;
	text-decoration: none;
	font-size: 0.9rem;
}

.sw-dominion .sw-links a:hover,
.sw-dominion .sw-links a:focus {
	border-color: var(--sw-border);
	background: #151a21;
}

.sw-dominion .sw-references {
	font-size: 0.92rem;
}

.sw-dominion .sw-references li {
	margin: 0.5rem 0;
}

@media (max-width: 900px) {

	.sw-dominion .sw-movement-nav {
		grid-template-columns: repeat(2,minmax(0,1fr));
	}

	.sw-dominion .sw-meta,
	.sw-dominion .sw-world-grid,
	.sw-dominion .sw-columns,
	.sw-dominion .sw-legacy-grid {
		grid-template-columns: 1fr;
	}
}

@media (max-width: 620px) {

	.sw-dominion {
		font-size: 16px;
	}

	.sw-dominion .sw-movement-nav,
	.sw-dominion .sw-nav-bottom {
		grid-template-columns: 1fr;
	}

	.sw-dominion .sw-movement-nav {
		padding: 1rem;
	}

	.sw-dominion .sw-movement-nav a {
		min-height: auto;
	}

	.sw-dominion .sw-hero,
	.sw-dominion .sw-section,
	.sw-dominion .sw-movement {
		padding-left: 1rem;
		padding-right: 1rem;
	}

	.sw-dominion figure {
		margin-left: -1rem;
		margin-right: -1rem;
	}
}
/* END WARS OF DOMINION */


/* --- WPWriter addition --- */


/* AGE OF AWAKENING — migrated from page-scoped CSS, 2026-10-06 */
/* =========================================================
   SPIRALWORLDS — THE AGE OF AWAKENING
   Dark Chronicle · Earth Age 02
   Final illustrated publication retype
   ========================================================= */

#sw-awakening {
	--sw-bg: #080b10;
	--sw-bg-soft: #0e141b;
	--sw-panel: #121921;
	--sw-panel-2: #171f29;
	--sw-gold: #d7b267;
	--sw-gold-pale: #ead7a5;
	--sw-text: #e7e1d6;
	--sw-muted: #aaa69d;
	--sw-blue: #a8c4ce;
	--sw-line: rgba(215,178,103,.24);
	--sw-line-strong: rgba(215,178,103,.55);
	--sw-max: 1180px;

	background:
		radial-gradient(circle at 10% 0%, rgba(31,69,86,.18), transparent 34rem),
		radial-gradient(circle at 92% 30%, rgba(87,68,32,.11), transparent 34rem),
		var(--sw-bg);

	color: var(--sw-text);
	font-family: Quicksand, "Trebuchet MS", Arial, sans-serif;
	font-size: 17px;
	line-height: 1.75;
	margin: 0;
	padding: 0;
}

#sw-awakening *,
#sw-awakening *::before,
#sw-awakening *::after {
	box-sizing: border-box;
}

#sw-awakening img {
	display: block;
	max-width: 100%;
	height: auto;
}

#sw-awakening a {
	color: var(--sw-gold-pale);
	text-decoration-line: underline;
	text-decoration-color: rgba(234,215,165,.62);
	text-underline-offset: .18em;
}

#sw-awakening a:hover,
#sw-awakening a:focus {
	color: #fff2ca;
	text-decoration-color: currentColor;
}

#sw-awakening .sw-shell {
	width: min(var(--sw-max), calc(100% - 40px));
	margin-inline: auto;
}

#sw-awakening h1,
#sw-awakening h2,
#sw-awakening h3 {
	color: #f1e9d8;
	line-height: 1.16;
	margin-top: 0;
}

#sw-awakening h1 {
	font-family: Georgia, "Times New Roman", serif;
	font-size: clamp(2.8rem,7vw,5.6rem);
	font-weight: 400;
	letter-spacing: -.035em;
	margin-bottom: .24em;
}

#sw-awakening h2 {
	font-family: Georgia, "Times New Roman", serif;
	font-size: clamp(2rem,4.4vw,3.15rem);
	font-weight: 400;
	margin-bottom: .35em;
}

#sw-awakening h3 {
	font-size: clamp(1.14rem,2.5vw,1.43rem);
	font-weight: 650;
	margin-bottom: .4em;
}

#sw-awakening p {
	margin: 0 0 1.15em;
}

#sw-awakening strong {
	color: #f2ead8;
}

#sw-awakening .sw-label,
#sw-awakening .sw-kicker {
	color: var(--sw-gold);
	font-size: .76rem;
	font-weight: 700;
	letter-spacing: .16em;
	text-transform: uppercase;
}

#sw-awakening .sw-rule {
	width: 56px;
	height: 1px;
	background: var(--sw-gold);
	opacity: .67;
	margin: 18px 0 22px;
}

/* =========================================================
   ACCESSIBILITY
   ========================================================= */

#sw-awakening .sw-skip {
	position: absolute;
	left: -9999px;
	top: auto;
}

#sw-awakening .sw-skip:focus {
	left: 18px;
	top: 18px;
	z-index: 999;
	padding: 10px 14px;
	background: #fff;
	color: #111;
	text-decoration: none;
}

/* =========================================================
   HERO
   ========================================================= */

#sw-awakening .sw-hero {
	padding: 56px 0 34px;
}

#sw-awakening .sw-hero-copy {
	max-width: 900px;
	margin-bottom: 32px;
}

#sw-awakening .sw-era {
	color: var(--sw-gold-pale);
	font-size: clamp(1rem,2vw,1.18rem);
	letter-spacing: .04em;
	margin: 8px 0 14px;
}

#sw-awakening .sw-deck {
	max-width: 840px;
	color: #d4cfc3;
	font-family: Georgia, "Times New Roman", serif;
	font-size: clamp(1.18rem,2.7vw,1.56rem);
	line-height: 1.55;
}

#sw-awakening .sw-hero-figure,
#sw-awakening .sw-figure {
	margin: 0;
	overflow: hidden;
	border: 1px solid var(--sw-line-strong);
	background: #070a0e;
	box-shadow: 0 22px 65px rgba(0,0,0,.3);
}

#sw-awakening .sw-hero-figure img {
	width: 100%;
	aspect-ratio: 16 / 9;
	object-fit: cover;
}

#sw-awakening .sw-figure {
	margin: 34px 0;
}

#sw-awakening .sw-figure img {
	width: 100%;
}

#sw-awakening figcaption {
	padding: 11px 14px 13px;
	border-top: 1px solid rgba(255,255,255,.05);
	background: rgba(7,10,14,.95);
	color: var(--sw-muted);
	font-size: .82rem;
	line-height: 1.55;
}

/* =========================================================
   NAVIGATION
   ========================================================= */

#sw-awakening .sw-age-nav {
	display: grid;
	grid-template-columns: repeat(3,minmax(0,1fr));
	gap: 12px;
	margin-top: 20px;
}

#sw-awakening .sw-age-link {
	display: block;
	padding: 18px;
	border: 1px solid var(--sw-line);
	background: rgba(255,255,255,.02);
	text-decoration: none;
}

#sw-awakening .sw-age-link:hover,
#sw-awakening .sw-age-link:focus {
	border-color: var(--sw-line-strong);
	background: rgba(215,178,103,.06);
}

#sw-awakening .sw-age-link .sw-label {
	display: block;
	margin-bottom: 6px;
}

#sw-awakening .sw-age-link strong {
	display: block;
	font-family: Georgia, "Times New Roman", serif;
	font-size: 1.08rem;
	font-weight: 400;
	color: #f0e7d3;
}

#sw-awakening .sw-topnav {
	display: flex;
	flex-wrap: wrap;
	gap: 9px;
	padding-top: 22px;
}

#sw-awakening .sw-topnav a {
	display: inline-flex;
	align-items: center;
	min-height: 42px;
	padding: 8px 13px;
	border: 1px solid var(--sw-line);
	background: rgba(255,255,255,.018);
	color: #ddd6c8;
	font-size: .79rem;
	font-weight: 650;
	text-decoration: none;
}

#sw-awakening .sw-topnav a:hover,
#sw-awakening .sw-topnav a:focus {
	border-color: var(--sw-line-strong);
	background: rgba(215,178,103,.065);
	color: #fff0c8;
}

/* =========================================================
   GENERAL
   ========================================================= */

#sw-awakening .sw-section {
	padding: 68px 0;
	border-top: 1px solid var(--sw-line);
}

#sw-awakening .sw-section-head {
	display: grid;
	grid-template-columns: 76px minmax(0,1fr);
	gap: 22px;
	align-items: start;
	margin-bottom: 30px;
}

#sw-awakening .sw-number {
	display: grid;
	place-items: center;
	width: 76px;
	min-height: 76px;
	border: 1px solid var(--sw-line-strong);
	background:
		linear-gradient(145deg,rgba(215,178,103,.13),rgba(255,255,255,.01)),
		var(--sw-bg-soft);
	color: var(--sw-gold);
	font-family: Georgia, "Times New Roman", serif;
	font-size: 1.3rem;
}

#sw-awakening .sw-section-intro {
	max-width: 840px;
	color: #c9c4b8;
	font-family: Georgia, "Times New Roman", serif;
	font-size: 1.13rem;
}

#sw-awakening .sw-prose {
	max-width: 860px;
}

#sw-awakening .sw-prose .sw-first {
	color: #ddd6ca;
	font-family: Georgia, "Times New Roman", serif;
	font-size: 1.18rem;
	line-height: 1.72;
}

#sw-awakening .sw-prose h3 {
	margin-top: 2.08em;
}

#sw-awakening .sw-pull {
	margin: 31px 0;
	padding: 20px 24px;
	border-left: 3px solid var(--sw-gold);
	background: rgba(215,178,103,.052);
	color: #e1d7c5;
	font-family: Georgia, "Times New Roman", serif;
	font-size: 1.16rem;
	line-height: 1.64;
}

#sw-awakening .sw-note {
	margin: 28px 0;
	padding: 18px 20px;
	border: 1px solid rgba(168,196,206,.23);
	background: rgba(70,103,116,.075);
}

#sw-awakening .sw-note .sw-label {
	display: block;
	color: var(--sw-blue);
	margin-bottom: 7px;
}

#sw-awakening .sw-note p:last-child {
	margin-bottom: 0;
}

/* =========================================================
   EONS
   ========================================================= */

#sw-awakening .sw-eon {
	border: 1px solid var(--sw-line);
	background:
		linear-gradient(180deg,rgba(255,255,255,.016),rgba(255,255,255,0)),
		var(--sw-bg-soft);
}

#sw-awakening .sw-eon-head {
	display: grid;
	grid-template-columns: 105px minmax(0,1fr);
	border-bottom: 1px solid var(--sw-line);
}

#sw-awakening .sw-eon-number {
	display: grid;
	place-items: center;
	padding: 22px 10px;
	border-right: 1px solid var(--sw-line);
	color: var(--sw-gold);
	font-family: Georgia, "Times New Roman", serif;
	font-size: 1.32rem;
	text-align: center;
}

#sw-awakening .sw-eon-title {
	padding: 20px 24px;
}

#sw-awakening .sw-eon-title .sw-date {
	display: block;
	margin-bottom: 5px;
	color: var(--sw-muted);
	font-size: .78rem;
	letter-spacing: .1em;
	text-transform: uppercase;
}

#sw-awakening .sw-eon-title h2 {
	font-size: clamp(1.8rem,4vw,2.8rem);
	margin-bottom: 5px;
}

#sw-awakening .sw-eon-title p {
	margin: 0;
	color: var(--sw-gold-pale);
	font-family: Georgia, "Times New Roman", serif;
	font-style: italic;
}

#sw-awakening .sw-eon-body {
	padding: clamp(24px,5vw,46px);
}

/* =========================================================
   CREATURE GRID
   ========================================================= */

#sw-awakening .sw-creatures {
	display: grid;
	grid-template-columns: repeat(3,minmax(0,1fr));
	gap: 14px;
	margin: 30px 0;
}

#sw-awakening .sw-creature {
	padding: 19px;
	border: 1px solid var(--sw-line);
	background: var(--sw-panel);
}

#sw-awakening .sw-creature h3 {
	font-size: 1.04rem;
	margin-bottom: 7px;
}

#sw-awakening .sw-creature p {
	margin: 0;
	color: #bbb5a9;
	font-size: .9rem;
	line-height: 1.59;
}

#sw-awakening .sw-creature a {
	text-decoration: none;
}

#sw-awakening .sw-creature a:hover,
#sw-awakening .sw-creature a:focus {
	text-decoration: underline;
}

/* =========================================================
   TABLE
   ========================================================= */

#sw-awakening .sw-table-wrap {
	overflow-x: auto;
	margin-top: 30px;
	border: 1px solid var(--sw-line);
}

#sw-awakening table {
	width: 100%;
	min-width: 780px;
	border-collapse: collapse;
	background: var(--sw-bg-soft);
}

#sw-awakening caption {
	padding: 16px;
	background: rgba(255,255,255,.016);
	color: #c8c2b5;
	font-family: Georgia, "Times New Roman", serif;
	text-align: left;
}

#sw-awakening th,
#sw-awakening td {
	padding: 15px 16px;
	text-align: left;
	vertical-align: top;
	border-bottom: 1px solid var(--sw-line);
}

#sw-awakening th {
	background: rgba(215,178,103,.055);
	color: var(--sw-gold-pale);
	font-size: .78rem;
	letter-spacing: .07em;
	text-transform: uppercase;
}

#sw-awakening td {
	color: #c6c0b5;
	font-size: .9rem;
}

#sw-awakening tbody tr:last-child td {
	border-bottom: 0;
}

/* =========================================================
   TIMELINE
   ========================================================= */

#sw-awakening .sw-sequence {
	margin-top: 30px;
	border-top: 1px solid var(--sw-line);
}

#sw-awakening .sw-sequence-row {
	display: grid;
	grid-template-columns: 185px minmax(0,1fr);
	gap: 24px;
	padding: 20px 0;
	border-bottom: 1px solid var(--sw-line);
}

#sw-awakening .sw-sequence-date {
	color: var(--sw-gold-pale);
	font-weight: 700;
}

#sw-awakening .sw-sequence-row h3 {
	margin-bottom: 5px;
}

#sw-awakening .sw-sequence-row p {
	margin: 0;
	color: #bab4a8;
}

/* =========================================================
   CARDS
   ========================================================= */

#sw-awakening .sw-grid {
	display: grid;
	grid-template-columns: repeat(3,minmax(0,1fr));
	gap: 15px;
	margin-top: 30px;
}

#sw-awakening .sw-card {
	display: block;
	padding: 21px;
	border: 1px solid var(--sw-line);
	background: var(--sw-panel);
}

#sw-awakening a.sw-card {
	text-decoration: none;
}

#sw-awakening a.sw-card:hover,
#sw-awakening a.sw-card:focus {
	border-color: var(--sw-line-strong);
	background: var(--sw-panel-2);
}

#sw-awakening .sw-card .sw-label {
	display: block;
	margin-bottom: 8px;
}

#sw-awakening .sw-card h3 {
	margin-bottom: 8px;
}

#sw-awakening .sw-card p {
	margin: 0;
	color: #bab4a8;
	font-size: .9rem;
	line-height: 1.6;
}

/* =========================================================
   ENDING
   ========================================================= */

#sw-awakening .sw-ending {
	padding: 74px 0 82px;
	border-top: 1px solid var(--sw-line);
	background:
		linear-gradient(180deg,transparent,rgba(215,178,103,.034));
}

#sw-awakening .sw-ending-copy {
	max-width: 850px;
}

#sw-awakening .sw-ending-copy p {
	color: #cdc6b8;
	font-family: Georgia, "Times New Roman", serif;
	font-size: 1.15rem;
}

/* =========================================================
   RESPONSIVE
   ========================================================= */

@media (max-width: 900px) {
	#sw-awakening .sw-creatures,
	#sw-awakening .sw-grid {
		grid-template-columns: repeat(2,minmax(0,1fr));
	}
}

@media (max-width: 680px) {

	#sw-awakening {
		font-size: 16px;
	}

	#sw-awakening .sw-shell {
		width: min(100% - 26px,var(--sw-max));
	}

	#sw-awakening .sw-hero {
		padding-top: 38px;
	}

	#sw-awakening .sw-section {
		padding: 48px 0;
	}

	#sw-awakening .sw-section-head {
		grid-template-columns: 54px minmax(0,1fr);
		gap: 15px;
	}

	#sw-awakening .sw-number {
		width: 54px;
		min-height: 54px;
		font-size: 1rem;
	}

	#sw-awakening .sw-eon-head {
		grid-template-columns: 70px minmax(0,1fr);
	}

	#sw-awakening .sw-eon-number {
		padding-inline: 7px;
		font-size: .98rem;
	}

	#sw-awakening .sw-eon-title {
		padding: 17px 15px;
	}

	#sw-awakening .sw-age-nav,
	#sw-awakening .sw-creatures,
	#sw-awakening .sw-grid {
		grid-template-columns: 1fr;
	}

	#sw-awakening .sw-sequence-row {
		grid-template-columns: 1fr;
		gap: 6px;
	}

	#sw-awakening .sw-hero-figure img {
		aspect-ratio: 4 / 3;
	}
}

@media (prefers-reduced-motion: reduce) {
	#sw-awakening *,
	#sw-awakening *::before,
	#sw-awakening *::after {
		scroll-behavior: auto !important;
		transition: none !important;
	}
}
#sw-awakening .sw-image-link { display:block; text-decoration:none; }
#sw-awakening .sw-lightbox { display:none; position:fixed; z-index:999999; inset:0; padding:3vw; background:rgba(0,0,0,.94); align-items:center; justify-content:center; }
#sw-awakening .sw-lightbox:target { display:flex; }
#sw-awakening .sw-lightbox a { display:flex; width:100%; height:100%; align-items:center; justify-content:center; text-decoration:none; }
#sw-awakening .sw-lightbox img { width:auto; height:auto; max-width:96vw; max-height:92vh; object-fit:contain; box-shadow:0 0 0 1px rgba(255,255,255,.18),0 20px 70px rgba(0,0,0,.65); }
/* END AGE OF AWAKENING */


/* --- WPWriter addition --- */


/* STRASBOURG — migrated from page-scoped CSS, 2026-10-06 */
/* ============================================================
   SPIRALWORLDS — STRASBOURG
   Complete standalone scoped dark-theme CSS
   ============================================================ */

.sw-entry.sw-strasbourg {
    --sw-bg: #0d1117;
    --sw-bg-soft: #131a22;
    --sw-bg-raised: #18212b;
    --sw-border: #33414f;
    --sw-border-soft: #26313d;
    --sw-text: #e8edf2;
    --sw-muted: #aebac5;
    --sw-heading: #ffffff;
    --sw-link: #7ec8ff;
    --sw-link-hover: #b8e2ff;
    --sw-accent: #c64646;
    --sw-accent-soft: rgba(198,70,70,.16);
    --sw-gold: #d7b56d;
    --sw-green: #83c89e;
    --sw-shadow: 0 14px 38px rgba(0,0,0,.28);
    margin: 0 auto;
    padding: clamp(20px,3vw,42px);
    

    color: var(--sw-text);
    background:
        radial-gradient(
            circle at 50% 0%,
            rgba(126,200,255,.055),
            transparent 35%
        ),
        var(--sw-bg);

    border: 1px solid var(--sw-border-soft);
    border-radius: 18px;
    box-shadow: var(--sw-shadow);

    font-size: 17px;
    line-height: 1.7;
}

.sw-entry.sw-strasbourg *,
.sw-entry.sw-strasbourg *::before,
.sw-entry.sw-strasbourg *::after {
    
}

.sw-entry.sw-strasbourg h1,
.sw-entry.sw-strasbourg h2,
.sw-entry.sw-strasbourg h3,
.sw-entry.sw-strasbourg h4 {
    color: var(--sw-heading);
    line-height: 1.2;
    text-wrap: balance;
}

.sw-entry.sw-strasbourg h1 {
    margin: 0 0 24px;
    font-size: clamp(2.5rem,6vw,4.8rem);
    letter-spacing: -.035em;
}

.sw-entry.sw-strasbourg h2 {
    margin: 54px 0 18px;
    padding-bottom: 10px;
    border-bottom: 1px solid var(--sw-border);
    font-size: clamp(1.65rem,3vw,2.35rem);
}

.sw-entry.sw-strasbourg h3 {
    margin: 0 0 10px;
    font-size: 1.22rem;
}

.sw-entry.sw-strasbourg h4 {
    margin: 20px 0 8px;
    font-size: 1.05rem;
}

.sw-entry.sw-strasbourg p {
    margin: 0 0 1.1em;
}

.sw-entry.sw-strasbourg ul,
.sw-entry.sw-strasbourg ol {
    margin: 0 0 1.2em;
    padding-left: 1.35em;
}

.sw-entry.sw-strasbourg li + li {
    margin-top: .38em;
}

.sw-entry.sw-strasbourg strong {
    color: #fff;
}

.sw-entry.sw-strasbourg a {
    color: var(--sw-link);
    text-decoration: underline;
    text-decoration-thickness: 1px;
    text-underline-offset: 3px;
}

.sw-entry.sw-strasbourg a:hover,
.sw-entry.sw-strasbourg a:focus {
    color: var(--sw-link-hover);
}

.sw-entry.sw-strasbourg .sw-kicker {
    margin: 22px 0 6px;
    color: var(--sw-gold);
    font-weight: 800;
    font-size: .94rem;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.sw-entry.sw-strasbourg .sw-deck {
    max-width: 1000px;
    margin: 0 0 28px;
    color: #d7dfe7;
    font-size: clamp(1.08rem,2vw,1.28rem);
    line-height: 1.65;
}

.sw-entry.sw-strasbourg .sw-small {
    color: var(--sw-muted);
    font-size: .92rem;
}

.sw-entry.sw-strasbourg .sw-callout {
    margin: 24px 0;
    padding: 20px 22px;
    background: var(--sw-bg-raised);
    border: 1px solid var(--sw-border);
    border-left: 4px solid var(--sw-gold);
    border-radius: 12px;
}

.sw-entry.sw-strasbourg .sw-callout-danger {
    border-left-color: var(--sw-accent);
    background:
        linear-gradient(
            90deg,
            var(--sw-accent-soft),
            transparent 55%
        ),
        var(--sw-bg-raised);
}

.sw-entry.sw-strasbourg .sw-callout-green {
    border-left-color: var(--sw-green);
}


/* ============================================================
   IMAGES — CSS-ONLY CLICK TO ENLARGE
   ============================================================ */

.sw-entry.sw-strasbourg .sw-figure {
    margin: 0;
}

.sw-entry.sw-strasbourg .sw-hero {
    width: 100%;
    margin: 0 0 12px;
}

.sw-entry.sw-strasbourg .sw-img-toggle {
    position: absolute;
    width: 1px;
    height: 1px;
    opacity: 0;
    pointer-events: none;
}

.sw-entry.sw-strasbourg .sw-img-label {
    display: block;
    cursor: zoom-in;
}

.sw-entry.sw-strasbourg .sw-img-label img {
    display: block;
    width: 100%;
    height: auto;
    margin: 0;
    border: 1px solid var(--sw-border);
    border-radius: 14px;
    background: transparent;
    box-shadow: 0 14px 34px rgba(0,0,0,.32);
}

.sw-entry.sw-strasbourg .sw-img-toggle:focus + .sw-img-label {
    outline: 3px solid var(--sw-link);
    outline-offset: 4px;
    border-radius: 14px;
}

.sw-entry.sw-strasbourg .sw-img-toggle:checked + .sw-img-label {
    position: fixed;
    inset: 0;
    z-index: 999999;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: clamp(12px,3vw,36px);
    background: rgba(5,7,10,.95);
    cursor: zoom-out;
}

.sw-entry.sw-strasbourg .sw-img-toggle:checked + .sw-img-label img {
    width: auto;
    max-width: min(96vw,1800px);
    max-height: 92vh;
    border-radius: 10px;
    object-fit: contain;
    box-shadow: 0 20px 70px rgba(0,0,0,.72);
}

.sw-entry.sw-strasbourg figcaption {
    margin-top: 9px;
    color: var(--sw-muted);
    font-size: .88rem;
    line-height: 1.5;
}


/* ============================================================
   LAYOUT
   ============================================================ */

.sw-entry.sw-strasbourg .sw-two-col {
    display: grid;
    grid-template-columns:
        minmax(0,1.55fr)
        minmax(260px,.7fr);
    gap: 28px;
    align-items: start;
}

.sw-entry.sw-strasbourg .sw-card-grid {
    display: grid;
    grid-template-columns: repeat(2,minmax(0,1fr));
    gap: 16px;
}

.sw-entry.sw-strasbourg .sw-card-grid-3 {
    display: grid;
    grid-template-columns: repeat(3,minmax(0,1fr));
    gap: 16px;
}

.sw-entry.sw-strasbourg .sw-card {
    padding: 20px;
    background: var(--sw-bg-soft);
    border: 1px solid var(--sw-border-soft);
    border-radius: 12px;
}

.sw-entry.sw-strasbourg .sw-card p:last-child,
.sw-entry.sw-strasbourg .sw-card ul:last-child {
    margin-bottom: 0;
}

.sw-entry.sw-strasbourg .sw-pressure {
    position: relative;
    padding-top: 52px;
}

.sw-entry.sw-strasbourg .sw-pressure-number {
    position: absolute;
    top: 16px;
    left: 18px;
    display: inline-flex;
    width: 27px;
    height: 27px;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    color: #fff;
    background: var(--sw-accent);
    font-weight: 900;
    font-size: .83rem;
}

.sw-entry.sw-strasbourg .sw-faction {
    border-top: 3px solid var(--sw-gold);
}

.sw-entry.sw-strasbourg .sw-faction strong {
    color: var(--sw-gold);
}


/* ============================================================
   TABLES
   ============================================================ */

.sw-entry.sw-strasbourg .sw-table-wrap {
    margin: 18px 0 26px;
    border: 1px solid var(--sw-border);
    border-radius: 12px;
}

.sw-entry.sw-strasbourg table {
    width: 100%;
    min-width: 620px;
    border-collapse: collapse;
    background: var(--sw-bg-soft);
}

.sw-entry.sw-strasbourg th,
.sw-entry.sw-strasbourg td {
    padding: 13px 15px;
    text-align: left;
    vertical-align: top;
    border-bottom: 1px solid var(--sw-border-soft);
}

.sw-entry.sw-strasbourg th {
    width: 28%;
    color: #fff;
    background: rgba(255,255,255,.035);
}

.sw-entry.sw-strasbourg tr:last-child th,
.sw-entry.sw-strasbourg tr:last-child td {
    border-bottom: 0;
}


/* ============================================================
   COAT OF ARMS
   ============================================================ */

.sw-entry.sw-strasbourg .sw-arms-card {
    padding: 18px;
    text-align: center;
    background:
        radial-gradient(
            circle at 50% 25%,
            rgba(198,70,70,.08),
            transparent 55%
        ),
        var(--sw-bg-soft);
    border: 1px solid var(--sw-border);
    border-radius: 14px;
}

.sw-entry.sw-strasbourg .sw-arms-card .sw-img-label img {
    max-width: 420px;
    margin: 0 auto;
}

.sw-entry.sw-strasbourg .sw-blazon {
    margin: 14px 0 4px;
    color: #fff;
    font-weight: 800;
    font-style: italic;
}


/* ============================================================
   ATTENTION TRACK
   ============================================================ */

.sw-entry.sw-strasbourg .sw-attention {
    display: grid;
    grid-template-columns: repeat(5,minmax(0,1fr));
    gap: 8px;
    margin: 18px 0 28px;
}

.sw-entry.sw-strasbourg .sw-attention-step {
    padding: 13px 10px;
    text-align: center;
    background: var(--sw-bg-soft);
    border: 1px solid var(--sw-border);
    border-radius: 9px;
    font-size: .9rem;
}

.sw-entry.sw-strasbourg .sw-attention-step b {
    display: block;
    margin-bottom: 3px;
    color: var(--sw-gold);
    font-size: 1.05rem;
}


/* ============================================================
   CSS-ONLY EDITION TABS
   ============================================================ */

.sw-entry.sw-strasbourg .sw-tabs {
    position: relative;
    margin: 24px 0 34px;
}

.sw-entry.sw-strasbourg .sw-tabs > input {
    position: absolute;
    width: 1px;
    height: 1px;
    opacity: 0;
}

.sw-entry.sw-strasbourg .sw-tab-labels {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.sw-entry.sw-strasbourg .sw-tab-labels label {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 96px;
    padding: 11px 18px;
    cursor: pointer;
    color: var(--sw-muted);
    background: var(--sw-bg-soft);
    border: 1px solid var(--sw-border);
    border-bottom: 0;
    border-radius: 10px 10px 0 0;
    font-weight: 800;
}

.sw-entry.sw-strasbourg .sw-tab-panels {
    border: 1px solid var(--sw-border);
    border-radius: 0 12px 12px 12px;
    background: var(--sw-bg-soft);
}

.sw-entry.sw-strasbourg .sw-tab-panel {
    ;
    padding: clamp(18px,3vw,30px);
}

.sw-entry.sw-strasbourg #sw-strasbourg-55:checked
~ .sw-tab-labels label[for="sw-strasbourg-55"],
.sw-entry.sw-strasbourg #sw-strasbourg-pf:checked
~ .sw-tab-labels label[for="sw-strasbourg-pf"],
.sw-entry.sw-strasbourg #sw-strasbourg-35:checked
~ .sw-tab-labels label[for="sw-strasbourg-35"] {
    color: #fff;
    background: var(--sw-bg-raised);
    border-color: var(--sw-gold);
}

.sw-entry.sw-strasbourg #sw-strasbourg-55:checked
~ .sw-tab-panels .sw-panel-55,
.sw-entry.sw-strasbourg #sw-strasbourg-pf:checked
~ .sw-tab-panels .sw-panel-pf,
.sw-entry.sw-strasbourg #sw-strasbourg-35:checked
~ .sw-tab-panels .sw-panel-35 {
    display: block;
}


/* ============================================================
   DETAILS
   ============================================================ */

.sw-entry.sw-strasbourg details {
    margin: 20px 0;
    background: var(--sw-bg-soft);
    border: 1px solid var(--sw-border);
    border-radius: 12px;
}

.sw-entry.sw-strasbourg summary {
    padding: 15px 18px;
    cursor: pointer;
    color: #fff;
    font-weight: 800;
}

.sw-entry.sw-strasbourg details > div {
    padding: 0 18px 18px;
}


/* ============================================================
   RESPONSIVE
   ============================================================ */

@media (max-width:900px) {
    .sw-entry.sw-strasbourg .sw-two-col,
    .sw-entry.sw-strasbourg .sw-card-grid,
    .sw-entry.sw-strasbourg .sw-card-grid-3 {
        grid-template-columns: 1fr;
    }

    .sw-entry.sw-strasbourg .sw-attention {
        grid-template-columns: 1fr;
    }
}

@media (max-width:620px) {
    .sw-entry.sw-strasbourg {
        padding: 16px;
        border-radius: 12px;
    }

    .sw-entry.sw-strasbourg .sw-tab-labels {
        display: grid;
        grid-template-columns: repeat(3,1fr);
    }

    .sw-entry.sw-strasbourg .sw-tab-labels label {
        min-width: 0;
        padding: 10px 8px;
        font-size: .9rem;
    }
}

@media (prefers-reduced-motion:reduce) {
    .sw-entry.sw-strasbourg * {
        scroll-behavior: auto !important;
        transition: none !important;
    }
}
/* END STRASBOURG */


/* --- WPWriter addition --- */


/* SUMMONING A POWER OF HELL — migrated from page-scoped CSS, 2026-10-06 */
/* =========================================================
   SPIRALWORLDS — SUMMONING A POWER OF HELL
   Dark Chronicle — Final Publication Version
   Scoped entirely to .sw-summoning-hell
   CSS-only edition tabs
   No JavaScript
   ========================================================= */

.sw-summoning-hell {
	--sw-bg: #080b12;
	--sw-bg-soft: #0d1119;
	--sw-panel: #111722;
	--sw-panel-2: #151b27;
	--sw-panel-dark: #0a0e15;
	--sw-gold: #d9b45d;
	--sw-gold-soft: #efd796;
	--sw-red: #9e3935;
	--sw-red-bright: #c6534b;
	--sw-text: #e8e1d7;
	--sw-muted: #b8b0a5;
	--sw-faint: #928a80;
	--sw-line: rgba(217,180,93,.24);
	--sw-line-red: rgba(158,57,53,.42);

	background:
		radial-gradient(
			circle at 50% 0%,
			rgba(126,42,38,.15),
			transparent 36rem
		),
		linear-gradient(
			180deg,
			var(--sw-bg-soft) 0%,
			var(--sw-bg) 100%
		);
	color: var(--sw-text);
	font-family: Georgia, "Times New Roman", serif;
	font-size: 17px;
	line-height: 1.72;
	margin: 0 auto;
	max-width: 1180px;
	overflow: hidden;
}

.sw-summoning-hell *,
.sw-summoning-hell *::before,
.sw-summoning-hell *::after {
	box-sizing: border-box;
}

.sw-summoning-hell img {
	display: block;
	height: auto;
	max-width: 100%;
}

.sw-summoning-hell a {
	color: var(--sw-gold-soft);
	text-decoration-color: rgba(217,180,93,.48);
	text-underline-offset: 3px;
}

.sw-summoning-hell a:hover,
.sw-summoning-hell a:focus {
	color: #fff1bd;
	text-decoration-color: currentColor;
}

.sw-summoning-hell h1,
.sw-summoning-hell h2,
.sw-summoning-hell h3,
.sw-summoning-hell h4 {
	color: #f3ead8;
	font-family: "Quicksand", Arial, Helvetica, sans-serif;
	line-height: 1.18;
	margin-top: 0;
}

.sw-summoning-hell h1 {
	font-size: clamp(2.5rem, 5vw, 4.9rem);
	font-weight: 500;
	letter-spacing: -.035em;
	margin-bottom: 1rem;
}

.sw-summoning-hell h2 {
	font-size: clamp(1.7rem, 3vw, 2.55rem);
	font-weight: 500;
	margin-bottom: .9rem;
}

.sw-summoning-hell h3 {
	font-size: 1.3rem;
	font-weight: 600;
	margin-bottom: .55rem;
}

.sw-summoning-hell h4 {
	font-size: 1.04rem;
	font-weight: 700;
	margin-bottom: .4rem;
}

.sw-summoning-hell p {
	margin: 0 0 1.1rem;
}

.sw-summoning-hell ul,
.sw-summoning-hell ol {
	margin: .75rem 0 1.15rem;
	padding-left: 1.35rem;
}

.sw-summoning-hell li {
	margin: .45rem 0;
}

/* =========================================================
   HERO
   ========================================================= */

.sw-summoning-hell .sw-hero {
	border-bottom: 1px solid var(--sw-line);
	padding:
		clamp(3.2rem, 8vw, 6.4rem)
		clamp(1.25rem, 4vw, 3rem)
		clamp(2.5rem, 6vw, 4.4rem);
	position: relative;
	text-align: center;
}

.sw-summoning-hell .sw-hero::before {
	background: linear-gradient(
		90deg,
		transparent,
		var(--sw-red),
		var(--sw-gold),
		var(--sw-red),
		transparent
	);
	content: "";
	height: 1px;
	left: 10%;
	opacity: .8;
	position: absolute;
	right: 10%;
	top: 0;
}

.sw-summoning-hell .sw-kicker,
.sw-summoning-hell .sw-section-kicker,
.sw-summoning-hell .sw-label,
.sw-summoning-hell .sw-rite-type,
.sw-summoning-hell .sw-rule-label {
	font-family: "Quicksand", Arial, Helvetica, sans-serif;
	font-weight: 700;
	text-transform: uppercase;
}

.sw-summoning-hell .sw-kicker {
	color: var(--sw-gold);
	display: block;
	font-size: .76rem;
	letter-spacing: .18em;
	margin-bottom: 1rem;
}

.sw-summoning-hell .sw-deck {
	color: #d3cbbf;
	font-size: clamp(1.05rem, 2vw, 1.28rem);
	margin: 0 auto;
	max-width: 900px;
}

.sw-summoning-hell .sw-tags {
	display: flex;
	flex-wrap: wrap;
	gap: .5rem;
	justify-content: center;
	margin-top: 1.5rem;
}

.sw-summoning-hell .sw-tags span {
	background: rgba(255,255,255,.025);
	border: 1px solid rgba(217,180,93,.2);
	color: #cec6ba;
	font-family: "Quicksand", Arial, Helvetica, sans-serif;
	font-size: .72rem;
	font-weight: 700;
	padding: .42rem .68rem;
}

/* =========================================================
   MAIN ART
   ========================================================= */

.sw-summoning-hell .sw-main-figure {
	background: #05070a;
	border-bottom: 1px solid var(--sw-line);
	margin: 0;
	text-align: center;
}

.sw-summoning-hell .sw-main-figure img {
	margin: 0 auto;
	max-height: 850px;
	object-fit: contain;
	width: auto;
}

.sw-summoning-hell .sw-caption {
	background: #0a0d13;
	color: #9e968b;
	font-family: "Quicksand", Arial, Helvetica, sans-serif;
	font-size: .79rem;
	line-height: 1.5;
	margin: 0;
	padding: .8rem 1rem;
	text-align: center;
}

/* =========================================================
   NAVIGATION
   ========================================================= */

.sw-summoning-hell .sw-nav {
	background: #0c1017;
	border-bottom: 1px solid var(--sw-line);
	display: flex;
	flex-wrap: wrap;
	gap: .5rem;
	justify-content: center;
	padding: 1rem 1.2rem;
}

.sw-summoning-hell .sw-nav a {
	background: rgba(255,255,255,.025);
	border: 1px solid rgba(217,180,93,.18);
	color: #d8d0c3;
	font-family: "Quicksand", Arial, Helvetica, sans-serif;
	font-size: .75rem;
	font-weight: 700;
	padding: .5rem .72rem;
	text-decoration: none;
}

.sw-summoning-hell .sw-nav a:hover,
.sw-summoning-hell .sw-nav a:focus {
	background: rgba(217,180,93,.08);
	border-color: rgba(217,180,93,.5);
	color: #fff0bd;
}

/* =========================================================
   COMMON SECTIONS
   ========================================================= */

.sw-summoning-hell .sw-section {
	border-bottom: 1px solid rgba(217,180,93,.13);
	padding:
		clamp(2.7rem, 5vw, 4.7rem)
		clamp(1.25rem, 4vw, 3rem);
}

.sw-summoning-hell .sw-section-head {
	margin-bottom: 1.5rem;
	max-width: 920px;
}

.sw-summoning-hell .sw-section-kicker {
	color: var(--sw-gold);
	display: block;
	font-size: .72rem;
	letter-spacing: .15em;
	margin-bottom: .55rem;
}

.sw-summoning-hell .sw-lead {
	color: #d4ccc0;
	font-size: 1.08rem;
	max-width: 930px;
}

.sw-summoning-hell .sw-note {
	background: rgba(217,180,93,.045);
	border-left: 3px solid var(--sw-gold);
	color: #ccc4b8;
	margin: 1.4rem 0;
	padding: 1rem 1.1rem;
}

.sw-summoning-hell .sw-warning {
	background:
		linear-gradient(
			135deg,
			rgba(126,40,37,.16),
			rgba(217,180,93,.025)
		),
		var(--sw-panel-dark);
	border: 1px solid var(--sw-line-red);
	border-left: 4px solid var(--sw-red-bright);
	margin: 1.4rem 0;
	padding: 1.1rem 1.2rem;
}

.sw-summoning-hell .sw-warning strong,
.sw-summoning-hell .sw-note strong {
	color: var(--sw-gold-soft);
}

/* =========================================================
   GENERAL CARDS
   ========================================================= */

.sw-summoning-hell .sw-grid-3 {
	display: grid;
	gap: 1rem;
	grid-template-columns: repeat(3, minmax(0, 1fr));
}

.sw-summoning-hell .sw-card {
	background:
		linear-gradient(
			180deg,
			rgba(255,255,255,.025),
			transparent
		),
		var(--sw-panel);
	border: 1px solid var(--sw-line);
	padding: 1.2rem;
}

.sw-summoning-hell .sw-card p:last-child {
	margin-bottom: 0;
}

.sw-summoning-hell .sw-label {
	color: var(--sw-red-bright);
	display: block;
	font-size: .7rem;
	letter-spacing: .12em;
	margin-bottom: .5rem;
}

/* =========================================================
   INFERNAL KEYS
   ========================================================= */

.sw-summoning-hell .sw-keys {
	display: grid;
	gap: .85rem;
	grid-template-columns: repeat(2, minmax(0, 1fr));
}

.sw-summoning-hell .sw-key {
	background: var(--sw-panel);
	border: 1px solid var(--sw-line);
	padding: 1rem 1.1rem;
}

.sw-summoning-hell .sw-key strong {
	color: var(--sw-gold-soft);
	display: block;
	font-family: "Quicksand", Arial, Helvetica, sans-serif;
	margin-bottom: .3rem;
}

/* =========================================================
   CSS-ONLY EDITION TABS
   ========================================================= */

.sw-summoning-hell .sw-rules {
	margin-top: 1.5rem;
	position: relative;
}

.sw-summoning-hell .sw-edition-input {
	height: 1px;
	opacity: 0;
	overflow: hidden;
	pointer-events: none;
	position: absolute;
	width: 1px;
}

.sw-summoning-hell .sw-edition-tabs {
	display: grid;
	gap: .5rem;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	margin-bottom: 1rem;
}

.sw-summoning-hell .sw-edition-tabs label {
	background: #0b0f16;
	border: 1px solid var(--sw-line);
	color: #c6beb2;
	cursor: pointer;
	font-family: "Quicksand", Arial, Helvetica, sans-serif;
	font-size: .86rem;
	font-weight: 700;
	padding: .8rem 1rem;
	text-align: center;
}

.sw-summoning-hell
#sw-summoning-edition-55:checked
~ .sw-edition-tabs
label[for="sw-summoning-edition-55"],

.sw-summoning-hell
#sw-summoning-edition-pf:checked
~ .sw-edition-tabs
label[for="sw-summoning-edition-pf"],

.sw-summoning-hell
#sw-summoning-edition-35:checked
~ .sw-edition-tabs
label[for="sw-summoning-edition-35"] {
	background:
		linear-gradient(
			180deg,
			rgba(158,57,53,.14),
			transparent
		),
		var(--sw-panel-2);
	border-color: rgba(217,180,93,.55);
	color: var(--sw-gold-soft);
}

.sw-summoning-hell .sw-edition-panel {
	display: none;
}

.sw-summoning-hell
#sw-summoning-edition-55:checked
~ .sw-edition-panels
.sw-panel-55,

.sw-summoning-hell
#sw-summoning-edition-pf:checked
~ .sw-edition-panels
.sw-panel-pf,

.sw-summoning-hell
#sw-summoning-edition-35:checked
~ .sw-edition-panels
.sw-panel-35 {
	display: block;
}

/* =========================================================
   RITUAL BLOCKS
   ========================================================= */

.sw-summoning-hell .sw-rite {
	background: var(--sw-panel-dark);
	border: 1px solid var(--sw-line);
	margin-bottom: 1.3rem;
	overflow: hidden;
}

.sw-summoning-hell .sw-rite-head {
	background:
		linear-gradient(
			90deg,
			rgba(158,57,53,.17),
			transparent
		),
		#10151f;
	border-bottom: 1px solid var(--sw-line);
	padding: 1.1rem 1.2rem;
}

.sw-summoning-hell .sw-rite-type {
	color: var(--sw-gold);
	display: block;
	font-size: .7rem;
	letter-spacing: .11em;
	margin-bottom: .4rem;
}

.sw-summoning-hell .sw-rite-head h3 {
	margin-bottom: 0;
}

.sw-summoning-hell .sw-rite-body {
	padding: 1.2rem;
}

.sw-summoning-hell .sw-stat-grid {
	display: grid;
	gap: 1px;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	margin-bottom: 1.2rem;
}

.sw-summoning-hell .sw-stat {
	background: var(--sw-panel);
	border: 1px solid rgba(217,180,93,.13);
	padding: .75rem;
}

.sw-summoning-hell .sw-stat strong {
	color: var(--sw-gold-soft);
	display: block;
	font-family: "Quicksand", Arial, Helvetica, sans-serif;
	font-size: .7rem;
	letter-spacing: .06em;
	margin-bottom: .2rem;
	text-transform: uppercase;
}

.sw-summoning-hell .sw-rule-label {
	color: var(--sw-red-bright);
	display: block;
	font-size: .69rem;
	letter-spacing: .11em;
	margin: 1.1rem 0 .45rem;
}

.sw-summoning-hell .sw-procedure {
	counter-reset: swprocedure;
	list-style: none;
	padding-left: 0;
}

.sw-summoning-hell .sw-procedure li {
	background: rgba(255,255,255,.018);
	border-left: 2px solid rgba(217,180,93,.28);
	margin: .55rem 0;
	padding: .7rem .85rem .7rem 3rem;
	position: relative;
}

.sw-summoning-hell .sw-procedure li::before {
	color: var(--sw-gold);
	content: counter(swprocedure);
	counter-increment: swprocedure;
	font-family: "Quicksand", Arial, Helvetica, sans-serif;
	font-size: .82rem;
	font-weight: 700;
	left: 1rem;
	position: absolute;
	top: .72rem;
}

/* =========================================================
   TABLES
   ========================================================= */

.sw-summoning-hell .sw-table-wrap {
	margin: 1rem 0;
	overflow-x: auto;
}

.sw-summoning-hell table {
	border-collapse: collapse;
	min-width: 680px;
	width: 100%;
}

.sw-summoning-hell th,
.sw-summoning-hell td {
	border: 1px solid var(--sw-line);
	padding: .75rem .8rem;
	text-align: left;
	vertical-align: top;
}

.sw-summoning-hell th {
	background: #151a24;
	color: var(--sw-gold-soft);
	font-family: "Quicksand", Arial, Helvetica, sans-serif;
	font-size: .78rem;
}

.sw-summoning-hell td {
	background: #0d1118;
	color: #d2cabf;
	font-size: .93rem;
}

/* =========================================================
   FAILURE GRID
   ========================================================= */

.sw-summoning-hell .sw-failure-grid {
	display: grid;
	gap: .8rem;
	grid-template-columns: repeat(2, minmax(0, 1fr));
}

.sw-summoning-hell .sw-failure {
	background: var(--sw-panel);
	border: 1px solid var(--sw-line-red);
	padding: 1rem;
}

.sw-summoning-hell .sw-failure strong {
	color: var(--sw-gold-soft);
	display: block;
	margin-bottom: .3rem;
}

/* =========================================================
   IMAGE + COPY
   ========================================================= */

.sw-summoning-hell .sw-split {
	align-items: stretch;
	display: grid;
	grid-template-columns:
		minmax(0, 1.05fr)
		minmax(300px, .95fr);
	margin-top: 1.4rem;
}

.sw-summoning-hell .sw-split-copy {
	background: var(--sw-panel);
	border: 1px solid var(--sw-line);
	padding: clamp(1.25rem, 3vw, 2rem);
}

.sw-summoning-hell .sw-split figure {
	background: #05070a;
	border: 1px solid var(--sw-line);
	border-left: 0;
	margin: 0;
}

.sw-summoning-hell .sw-split figure img {
	height: 100%;
	object-fit: cover;
	width: 100%;
}

/* =========================================================
   DIRECTORY
   ========================================================= */

.sw-summoning-hell .sw-directory {
	display: grid;
	gap: .8rem;
	grid-template-columns: repeat(2, minmax(0, 1fr));
}

.sw-summoning-hell .sw-directory a {
	background: var(--sw-panel);
	border: 1px solid var(--sw-line);
	color: #e7dece;
	display: block;
	padding: 1rem 1.1rem;
	text-decoration: none;
}

.sw-summoning-hell .sw-directory a:hover,
.sw-summoning-hell .sw-directory a:focus {
	background: var(--sw-panel-2);
	border-color: rgba(217,180,93,.5);
}

.sw-summoning-hell .sw-directory strong {
	color: var(--sw-gold-soft);
	display: block;
	margin-bottom: .25rem;
}

.sw-summoning-hell .sw-directory span {
	color: var(--sw-muted);
	font-size: .9rem;
}

.sw-summoning-hell .sw-back {
	padding-top: 1.5rem;
	text-align: center;
}

.sw-summoning-hell .sw-back a {
	font-family: "Quicksand", Arial, Helvetica, sans-serif;
	font-size: .8rem;
	font-weight: 700;
	text-transform: uppercase;
}

/* =========================================================
   RESPONSIVE
   ========================================================= */

@media (max-width: 900px) {

	.sw-summoning-hell .sw-grid-3 {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.sw-summoning-hell .sw-stat-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.sw-summoning-hell .sw-split {
		grid-template-columns: 1fr;
	}

	.sw-summoning-hell .sw-split figure {
		border-left: 1px solid var(--sw-line);
		border-top: 0;
	}
}

@media (max-width: 680px) {

	.sw-summoning-hell {
		font-size: 16px;
	}

	.sw-summoning-hell .sw-grid-3,
	.sw-summoning-hell .sw-keys,
	.sw-summoning-hell .sw-failure-grid,
	.sw-summoning-hell .sw-directory,
	.sw-summoning-hell .sw-stat-grid {
		grid-template-columns: 1fr;
	}

	.sw-summoning-hell .sw-edition-tabs {
		grid-template-columns: 1fr;
	}

	.sw-summoning-hell .sw-nav {
		flex-wrap: nowrap;
		justify-content: flex-start;
		overflow-x: auto;
	}

	.sw-summoning-hell .sw-nav a {
		flex: 0 0 auto;
	}
}
/* END SUMMONING A POWER OF HELL */


/* --- WPWriter addition --- */


/* HALFLINGS — scoped migration from page CSS, 2026-10-06 */
/* =========================================================
   HALFLINGS — PLAYABLE PEOPLE
   Final publication-lock build
   Canonical centred layout • CSS-only tabs • CSS-only lightboxes
   ========================================================= */

.sw-halflings {
	max-width: 1180px;
	width: calc(100% - 32px);
	margin: 0 auto;
	color: inherit;
	line-height: 1.72;
}

.sw-halflings *,
.sw-halflings *::before,
.sw-halflings *::after { box-sizing: border-box; }

.sw-halflings h1,
.sw-halflings h2,
.sw-halflings h3,
.sw-halflings h4 {
	line-height: 1.2;
	text-wrap: balance;
}

.sw-halflings h1 {
	margin: 0 0 22px;
	font-size: clamp(2rem, 5vw, 3.5rem);
}

.sw-halflings h2 {
	margin: 52px 0 18px;
	font-size: clamp(1.55rem, 3vw, 2.15rem);
}

.sw-halflings h3 {
	margin: 32px 0 12px;
	font-size: clamp(1.2rem, 2.4vw, 1.55rem);
}

.sw-halflings h4 {
	margin: 24px 0 10px;
	font-size: 1.08rem;
}

.sw-halflings p { margin: 0 0 1.15em; }

.sw-halflings a {
	color: inherit;
	text-decoration-thickness: 1px;
	text-underline-offset: 3px;
}

.sw-kicker {
	margin: 0 0 10px;
	font-size: .82rem;
	font-weight: 800;
	letter-spacing: .13em;
	text-transform: uppercase;
	opacity: .76;
}

.sw-lede {
	font-size: clamp(1.08rem, 2vw, 1.28rem);
	line-height: 1.68;
	margin-bottom: 26px;
}

.sw-hero,
.sw-supporting-image { margin: 0 0 30px; }

.sw-hero img,
.sw-supporting-image img {
	display: block;
	width: 100%;
	height: auto;
	border-radius: 12px;
}

.sw-caption {
	display: block;
	margin-top: 9px;
	font-size: .9rem;
	line-height: 1.45;
	opacity: .8;
}

/* ---------- CSS-only lightbox ---------- */

.sw-lightbox {
	position: fixed;
	inset: 0;
	z-index: 99999;
	display: none;
	align-items: center;
	justify-content: center;
	padding: 24px;
	background: rgba(0,0,0,.92);
}

.sw-lightbox:target { display: flex; }

.sw-lightbox img {
	display: block;
	max-width: min(1500px, 94vw);
	max-height: 90vh;
	width: auto;
	height: auto;
	border-radius: 10px;
}

.sw-lightbox-close {
	position: absolute;
	top: 18px;
	right: 24px;
	font-size: 2rem;
	font-weight: 800;
	color: #fff !important;
	text-decoration: none;
}

/* ---------- At a glance ---------- */

.sw-glance {
	margin: 26px 0 36px;
	border-top: 1px solid rgba(127,127,127,.42);
	border-bottom: 1px solid rgba(127,127,127,.42);
}

.sw-glance-row {
	display: grid;
	grid-template-columns: minmax(160px, 230px) 1fr;
	gap: 22px;
	padding: 13px 0;
	border-bottom: 1px solid rgba(127,127,127,.24);
}

.sw-glance-row:last-child { border-bottom: 0; }
.sw-glance-term { font-weight: 800; }
.sw-glance-value { min-width: 0; }

/* ---------- Rules tabs ---------- */

.sw-rules { margin: 28px 0 46px; }

.sw-rules > input[type="radio"] {
	position: absolute !important;
	width: 1px !important;
	height: 1px !important;
	overflow: hidden !important;
	clip: rect(0 0 0 0) !important;
	clip-path: inset(50%) !important;
	white-space: nowrap !important;
}

.sw-tab-labels {
	display: flex;
	flex-wrap: wrap;
	gap: 7px;
	margin: 0;
}

.sw-tab-labels label {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 46px;
	padding: 10px 16px;
	border: 1px solid rgba(127,127,127,.46);
	border-bottom: 0;
	border-radius: 8px 8px 0 0;
	font-weight: 800;
	cursor: pointer;
	background: rgba(127,127,127,.09);
	color: inherit;
}

.sw-tab-labels label:hover,
.sw-tab-labels label:focus-visible { background: rgba(127,127,127,.18); }

.sw-rule-panels {
	border: 1px solid rgba(127,127,127,.46);
	border-radius: 0 9px 9px 9px;
	padding: clamp(18px, 4vw, 30px);
	background: rgba(127,127,127,.06);
}

.sw-rule-panel { display: none !important; }

#sw-half-55:checked ~ .sw-tab-labels + .sw-rule-panels #sw-half-panel-55,
#sw-half-5e:checked ~ .sw-tab-labels + .sw-rule-panels #sw-half-panel-5e,
#sw-half-pf1:checked ~ .sw-tab-labels + .sw-rule-panels #sw-half-panel-pf1,
#sw-half-35:checked ~ .sw-tab-labels + .sw-rule-panels #sw-half-panel-35 {
	display: block !important;
}

#sw-half-55:checked ~ .sw-tab-labels label[for="sw-half-55"],
#sw-half-5e:checked ~ .sw-tab-labels label[for="sw-half-5e"],
#sw-half-pf1:checked ~ .sw-tab-labels label[for="sw-half-pf1"],
#sw-half-35:checked ~ .sw-tab-labels label[for="sw-half-35"] {
	background: rgba(127,127,127,.24);
	border-color: currentColor;
}

.sw-rule-table,
.sw-halflings table:not(.sw-rule-table) {
	width: 100%;
	border-collapse: collapse;
	margin: 18px 0 22px;
}

.sw-rule-table th,
.sw-rule-table td,
.sw-halflings table:not(.sw-rule-table) th,
.sw-halflings table:not(.sw-rule-table) td {
	padding: 11px 12px;
	text-align: left;
	vertical-align: top;
	border-bottom: 1px solid rgba(127,127,127,.28);
}

.sw-rule-table th { width: 30%; font-weight: 800; }
.sw-halflings table:not(.sw-rule-table) th { font-weight: 800; background: rgba(127,127,127,.13); }

.sw-table-scroll {
	width: 100%;
	overflow-x: auto;
	-webkit-overflow-scrolling: touch;
}

.sw-mechanics-note {
	margin: 20px 0;
	padding: 17px 19px;
	border-left: 4px solid currentColor;
	background: rgba(127,127,127,.09);
}

.sw-mechanics-note p:last-child { margin-bottom: 0; }

/* ---------- Campaign material ---------- */

.sw-origin-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 22px 36px;
	margin: 24px 0 34px;
}

.sw-origin-grid h3 { margin-top: 0; }

.sw-question-list {
	margin: 16px 0 30px;
	padding-left: 1.3em;
}

.sw-question-list li { margin: 0 0 9px; }

/* ---------- Videos ---------- */

.sw-videos {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 18px;
	margin: 20px 0 34px;
}

.sw-video {
	padding: 14px;
	border: 1px solid rgba(127,127,127,.32);
	border-radius: 9px;
	background: rgba(127,127,127,.05);
}

.sw-video-embed {
	position: relative;
	width: 100%;
	aspect-ratio: 16 / 9;
	overflow: hidden;
	border-radius: 7px;
	background: #000;
}

.sw-video-embed iframe {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	border: 0;
}

.sw-video-title {
	display: block;
	margin-top: 10px;
	font-weight: 800;
	line-height: 1.35;
}

/* ---------- Related links ---------- */

.sw-related {
	display: flex;
	flex-wrap: wrap;
	gap: 9px 18px;
	margin: 26px 0 34px;
	padding-top: 18px;
	border-top: 1px solid rgba(127,127,127,.36);
}

/* ---------- Licence ---------- */

.sw-licence {
	margin: 26px 0 38px;
	padding: 20px;
	border: 1px solid rgba(127,127,127,.34);
	border-radius: 9px;
	background: rgba(127,127,127,.055);
}

.sw-licence h3:first-child { margin-top: 0; }

/* ---------- Mobile ---------- */

@media (max-width: 760px) {
	.sw-halflings { width: calc(100% - 24px); }

	.sw-glance-row {
		grid-template-columns: 1fr;
		gap: 3px;
	}

	.sw-origin-grid,
	.sw-videos { grid-template-columns: 1fr; }

	.sw-tab-labels {
		display: grid;
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 6px;
	}

	.sw-tab-labels label {
		border: 1px solid rgba(127,127,127,.46);
		border-radius: 7px;
		font-size: .92rem;
		text-align: center;
	}

	.sw-rule-panels {
		margin-top: 8px;
		border-radius: 8px;
	}

	.sw-rule-table th,
	.sw-rule-table td {
		display: block;
		width: 100%;
		padding-left: 0;
		padding-right: 0;
	}

	.sw-rule-table th {
		padding-bottom: 2px;
		border-bottom: 0;
	}

	.sw-rule-table td { padding-top: 2px; }
}
/* END HALFLINGS */


/* --- WPWriter addition --- */


/* DAWNING AGE — migrated from page CSS, 2026-10-06 */
.page-id-204922 .entry-content>.sw-indexing-title{display:none!important;max-width:1180px;width:calc(100% - 32px);box-sizing:border-box;margin:0 auto 18px!important;padding:0 16px;text-align:center!important}@media(max-width:782px){.page-id-204922 .entry-content>.sw-indexing-title{display:none!important;width:calc(100% - 24px);padding:0 12px}}
/* END DAWNING AGE */


/* --- WPWriter addition --- */


/* ASHEN DAWN — migrated from page CSS, 2026-10-06 */
.page-id-204898 .entry-content>.sw-indexing-title{display:none!important;max-width:1180px;width:calc(100% - 32px);box-sizing:border-box;margin:0 auto!important;padding:30px 32px 18px!important;background:#111015!important;color:#f3eef8!important;opacity:1!important;visibility:visible!important;text-align:center!important}.page-id-204898 .entry-content>.sw-indexing-title+.sw-entry{margin-top:0!important}.page-id-204898 .sw-entry a{text-decoration:underline!important;text-decoration-thickness:.08em;text-underline-offset:.15em}.page-id-204898 .sw-entry img,.page-id-204898 .sw-entry iframe{max-width:100%;height:auto}@media(max-width:782px){.page-id-204898 .entry-content>.sw-indexing-title{display:none!important;width:calc(100% - 24px);padding:22px 16px 14px!important}.page-id-204898 .sw-entry table{display:block;max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}}
/* END ASHEN DAWN */


/* --- WPWriter addition --- */


/* GIANT TOAD — migrated from page-scoped CSS, 2026-10-06 */
/* =========================================================
   SPIRALWORLDS — GIANT TOAD
   FINAL AMENDED PUBLICATION BUILD

   Order:
   Title → Main Art → Quick Reference → Game Statistics
   → GM Use → Natural History → Behaviour → Tactics
   → Encounter Builder → Treasure → Hooks → Historical Art
   → Related Rules → Sources
   ========================================================= */

#sw-giant-toad {
	--sw-bg: #0e1610;
	--sw-bg-2: #141e16;
	--sw-panel: #182319;
	--sw-panel-2: #202c21;
	--sw-panel-3: #29352a;

	--sw-text: #edf1e9;
	--sw-muted: #bbc5b7;

	--sw-gold: #d6b96f;
	--sw-gold-soft: #efd99a;
	--sw-green: #a9bf79;

	--sw-line: rgba(214,185,111,.28);
	--sw-radius: 10px;

	max-width: 1160px;
	margin: 0 auto;
	padding: 0;

	color: var(--sw-text);

	font-family:
		Georgia,
		"Times New Roman",
		serif;

	font-size: 17px;
	line-height: 1.7;
}


#sw-giant-toad *,
#sw-giant-toad *::before,
#sw-giant-toad *::after {
	box-sizing: border-box;
}


#sw-giant-toad a {
	color: var(--sw-gold-soft);
	text-decoration: underline;
	text-decoration-thickness: 1px;
	text-underline-offset: 3px;
}


#sw-giant-toad a:hover,
#sw-giant-toad a:focus {
	color: #fff4cf;
}


#sw-giant-toad h1,
#sw-giant-toad h2,
#sw-giant-toad h3,
#sw-giant-toad h4 {
	margin-top: 0;

	color: var(--sw-gold-soft);

	font-family:
		Georgia,
		"Times New Roman",
		serif;

	line-height: 1.15;
}


#sw-giant-toad h1 {
	margin-bottom: .5rem;

	font-size: clamp(2.7rem, 7vw, 5rem);
	font-weight: 500;
	letter-spacing: -.035em;
}


#sw-giant-toad h2 {
	margin-bottom: .7rem;

	font-size: clamp(1.65rem, 4vw, 2.5rem);
}


#sw-giant-toad h3 {
	margin-bottom: .45rem;

	font-size: 1.38rem;
}


#sw-giant-toad h4 {
	margin-bottom: .35rem;

	font-size: 1.08rem;
}


#sw-giant-toad p:last-child {
	margin-bottom: 0;
}


/* =========================================================
   TITLE
   ========================================================= */

#sw-giant-toad .sw-intro {
	margin-bottom: 1rem;
	padding: clamp(1.4rem, 5vw, 2.7rem);

	background:
		linear-gradient(
			135deg,
			#0e1710 0%,
			#18241a 100%
		);

	border: 1px solid var(--sw-line);
	border-radius: var(--sw-radius);
}


#sw-giant-toad .sw-kicker {
	display: block;

	margin-bottom: .55rem;

	color: var(--sw-green);

	font-family:
		Arial,
		Helvetica,
		sans-serif;

	font-size: .75rem;
	font-weight: 700;
	letter-spacing: .16em;
	text-transform: uppercase;
}


#sw-giant-toad .sw-deck {
	max-width: 800px;
	margin: 0;

	color: #f1f3ed;

	font-size: clamp(1.05rem, 2vw, 1.28rem);
	line-height: 1.55;
}


#sw-giant-toad .sw-chip-row {
	display: flex;
	flex-wrap: wrap;
	gap: .45rem;

	margin-top: 1rem;
}


#sw-giant-toad .sw-chip {
	display: inline-block;

	padding: .32rem .68rem;

	background: rgba(127,156,115,.12);

	border: 1px solid rgba(180,199,123,.32);
	border-radius: 999px;

	color: #e8eddf;

	font-family:
		Arial,
		Helvetica,
		sans-serif;

	font-size: .76rem;
	font-weight: 700;
}


/* =========================================================
   MAIN ART
   ========================================================= */

#sw-giant-toad .sw-main-art {
	max-width: 920px;

	margin: 0 auto 1.35rem;
	padding: .7rem;

	background: #111a13;

	border: 1px solid var(--sw-line);
	border-radius: var(--sw-radius);
}


#sw-giant-toad .sw-main-art img {
	display: block;

	width: auto;
	max-width: 100%;
	max-height: 460px;
	height: auto;

	margin: 0 auto;

	object-fit: contain;

	border-radius: 6px;
}


/* =========================================================
   SEARCH IDENTITY
   ========================================================= */

#sw-giant-toad .sw-search-identity {
	margin: 1.2rem 0;
	padding: .95rem 1.1rem;

	background: var(--sw-panel);

	border-left: 4px solid var(--sw-gold);
	border-radius:
		0
		var(--sw-radius)
		var(--sw-radius)
		0;
}


/* =========================================================
   QUICK REFERENCE
   ========================================================= */

#sw-giant-toad .sw-reference {
	display: grid;

	grid-template-columns:
		repeat(4, minmax(0, 1fr));

	gap: 1px;

	margin: 1rem 0 1.35rem;

	background: var(--sw-line);

	border: 1px solid var(--sw-line);
	border-radius: var(--sw-radius);

	overflow: hidden;
}


#sw-giant-toad .sw-reference > div {
	padding: .9rem;

	background: var(--sw-panel);
}


#sw-giant-toad .sw-label {
	display: block;

	margin-bottom: .15rem;

	color: var(--sw-green);

	font-family:
		Arial,
		Helvetica,
		sans-serif;

	font-size: .68rem;
	font-weight: 700;
	letter-spacing: .1em;
	text-transform: uppercase;
}


/* =========================================================
   GENERAL SECTIONS
   ========================================================= */

#sw-giant-toad .sw-section {
	margin: 1.3rem 0;
	padding: clamp(1.15rem, 4vw, 1.9rem);

	background: var(--sw-bg);

	border: 1px solid rgba(214,185,111,.16);
	border-radius: var(--sw-radius);
}


#sw-giant-toad .sw-grid {
	display: grid;

	grid-template-columns:
		repeat(12, minmax(0, 1fr));

	gap: .9rem;
}


#sw-giant-toad .sw-card {
	padding: 1.05rem;

	background: var(--sw-panel);

	border: 1px solid var(--sw-line);
	border-radius: 8px;
}


#sw-giant-toad .sw-span-4 {
	grid-column: span 4;
}


#sw-giant-toad .sw-span-6 {
	grid-column: span 6;
}


#sw-giant-toad .sw-callout {
	margin: 1rem 0;
	padding: .95rem 1.1rem;

	background:
		linear-gradient(
			135deg,
			rgba(127,156,115,.15),
			rgba(214,185,111,.06)
		);

	border: 1px solid rgba(180,199,123,.28);
	border-radius: 8px;
}


/* =========================================================
   GAME STATISTICS
   ========================================================= */

#sw-giant-toad .sw-game-stats {
	margin: 1.35rem 0;
	padding: clamp(1.15rem, 4vw, 1.9rem);

	background: #0e1610;

	border: 1px solid rgba(214,185,111,.18);
	border-radius: var(--sw-radius);
}


/* =========================================================
   CSS-ONLY EDITION TABS
   ========================================================= */

#sw-giant-toad .sw-edition-tabs {
	position: relative;

	margin: 0;
}


#sw-giant-toad .sw-tab-radio {
	position: absolute;

	width: 1px;
	height: 1px;

	margin: -1px;
	padding: 0;

	overflow: hidden;

	clip: rect(0 0 0 0);
	clip-path: inset(50%);

	white-space: nowrap;

	border: 0;
}


#sw-giant-toad .sw-tab-labels {
	display: grid;

	grid-template-columns:
		repeat(3, minmax(0, 1fr));

	gap: .55rem;

	padding: .65rem;

	background: #111a13;

	border: 1px solid var(--sw-line);
	border-radius: 9px;
}


#sw-giant-toad .sw-tab-label {
	display: flex;

	align-items: center;
	justify-content: center;

	min-height: 52px;

	margin: 0;
	padding: .75rem .65rem;

	cursor: pointer;

	background: #1b271d;

	border: 1px solid rgba(214,185,111,.28);
	border-radius: 7px;

	color: #eef1ea;

	text-align: center;

	font-family:
		Arial,
		Helvetica,
		sans-serif;

	font-size: .88rem;
	font-weight: 700;
	line-height: 1.25;

	transition:
		background .15s ease,
		border-color .15s ease,
		color .15s ease;
}


#sw-giant-toad .sw-tab-label:hover {
	background: #253428;

	border-color: rgba(214,185,111,.55);
}


#sw-giant-toad #gt-edition-55:focus-visible
~ .sw-tab-labels
label[for="gt-edition-55"],

#sw-giant-toad #gt-edition-pf1:focus-visible
~ .sw-tab-labels
label[for="gt-edition-pf1"],

#sw-giant-toad #gt-edition-35:focus-visible
~ .sw-tab-labels
label[for="gt-edition-35"] {
	outline: 3px solid var(--sw-gold-soft);
	outline-offset: 3px;
}


#sw-giant-toad #gt-edition-55:checked
~ .sw-tab-labels
label[for="gt-edition-55"],

#sw-giant-toad #gt-edition-pf1:checked
~ .sw-tab-labels
label[for="gt-edition-pf1"],

#sw-giant-toad #gt-edition-35:checked
~ .sw-tab-labels
label[for="gt-edition-35"] {
	background: var(--sw-gold);

	border-color: var(--sw-gold);

	color: #16130d;
}


#sw-giant-toad .sw-tab-panels {
	margin-top: .85rem;
}


#sw-giant-toad .sw-tab-panel {
	;
}


#sw-giant-toad #gt-edition-55:checked
~ .sw-tab-panels
#giant-toad-55,

#sw-giant-toad #gt-edition-pf1:checked
~ .sw-tab-panels
#giant-toad-pf1,

#sw-giant-toad #gt-edition-35:checked
~ .sw-tab-panels
#giant-toad-35 {
	display: block;
}


/* =========================================================
   STAT BLOCK
   ========================================================= */

#sw-giant-toad .sw-statblock {
	margin: 0;
	padding: clamp(1rem, 4vw, 1.55rem);

	background: #f0ede1;

	color: #241e17;

	border: 1px solid #a98547;
	border-top: 5px solid #785728;
	border-bottom: 5px solid #785728;
	border-radius: 2px;

	font-family:
		Georgia,
		"Times New Roman",
		serif;

	font-size: 16px;
	line-height: 1.55;
}


#sw-giant-toad .sw-statblock h3,
#sw-giant-toad .sw-statblock h4 {
	color: #5c401e;
}


#sw-giant-toad .sw-stat-name {
	margin: 0 0 .1rem;

	font-size: clamp(1.65rem, 4vw, 2rem);
	line-height: 1.1;
}


#sw-giant-toad .sw-stat-type {
	margin: 0 0 .55rem;

	font-style: italic;
}


#sw-giant-toad .sw-rule {
	height: 2px;

	margin: .62rem 0;

	border: 0;

	background:
		linear-gradient(
			90deg,
			#795727,
			rgba(121,87,39,.15)
		);
}


#sw-giant-toad .sw-statline {
	margin: .16rem 0;
}


#sw-giant-toad .sw-statblock p {
	color: #241e17;
}


#sw-giant-toad .sw-statblock strong {
	color: #312519;
}


#sw-giant-toad .sw-statblock a {
	color: #684818;

	font-weight: 600;

	text-decoration: underline;
	text-decoration-thickness: 1px;
	text-underline-offset: 2px;
}


#sw-giant-toad .sw-statblock a:hover,
#sw-giant-toad .sw-statblock a:focus {
	color: #3f2a10;
}


#sw-giant-toad .sw-action-title {
	color: #4d3519;

	font-weight: 700;
	font-style: italic;
}


/* =========================================================
   ABILITY SCORES
   ========================================================= */

#sw-giant-toad .sw-abilities {
	width: 100%;

	margin: .65rem 0;

	border-collapse: collapse;
	table-layout: fixed;

	text-align: center;
}


#sw-giant-toad .sw-abilities th,
#sw-giant-toad .sw-abilities td {
	padding: .28rem .1rem;

	border: 0;

	text-align: center;
}


#sw-giant-toad .sw-abilities th {
	color: #6b4a20;

	font-family:
		Arial,
		Helvetica,
		sans-serif;

	font-size: .74rem;
	font-weight: 700;
}


#sw-giant-toad .sw-abilities td {
	color: #241e17;
}


/* =========================================================
   PATHFINDER COMPANION MATERIAL
   ========================================================= */

#sw-giant-toad .sw-edition-extra {
	margin-top: 1rem;
	padding: 1rem 1.1rem;

	background: var(--sw-panel);

	border: 1px solid rgba(214,185,111,.24);
	border-radius: 8px;

	color: var(--sw-text);
}


#sw-giant-toad .sw-edition-extra h3 {
	margin: 0 0 .55rem;

	color: var(--sw-gold-soft);

	font-size: 1.35rem;
}


#sw-giant-toad .sw-edition-extra p {
	color: var(--sw-text);
}


#sw-giant-toad .sw-edition-extra strong {
	color: #f2dfab;
}


/* =========================================================
   ENCOUNTER TABLE
   ========================================================= */

#sw-giant-toad .sw-table-wrap {
	overflow-x: auto;

	-webkit-overflow-scrolling: touch;
}


#sw-giant-toad .sw-table {
	width: 100%;
	min-width: 620px;

	border-collapse: collapse;

	background: var(--sw-panel);
}


#sw-giant-toad .sw-table th,
#sw-giant-toad .sw-table td {
	padding: .7rem .75rem;

	border: 1px solid var(--sw-line);

	text-align: left;
	vertical-align: top;
}


#sw-giant-toad .sw-table th {
	background: var(--sw-panel-3);

	color: var(--sw-gold-soft);

	font-family:
		Arial,
		Helvetica,
		sans-serif;

	font-size: .75rem;
	text-transform: uppercase;
}


/* =========================================================
   HISTORICAL ART
   ========================================================= */

#sw-giant-toad .sw-history-art {
	max-width: 640px;

	margin: 1.6rem auto;
	padding: .65rem;

	background: #141d15;

	border: 1px solid var(--sw-line);
	border-radius: var(--sw-radius);
}


#sw-giant-toad .sw-history-art img {
	display: block;

	width: auto;
	max-width: 100%;
	max-height: 540px;
	height: auto;

	margin: 0 auto;

	object-fit: contain;
}


#sw-giant-toad .sw-history-art figcaption {
	margin-top: .45rem;

	color: var(--sw-muted);

	font-size: .82rem;
}


/* =========================================================
   RELATED LINKS
   ========================================================= */

#sw-giant-toad .sw-footer-links {
	display: flex;
	flex-wrap: wrap;
	gap: .5rem;
}


#sw-giant-toad .sw-footer-links a {
	display: inline-block;

	padding: .37rem .7rem;

	background: var(--sw-panel-2);

	border: 1px solid var(--sw-line);
	border-radius: 999px;

	text-decoration: none;

	font-family:
		Arial,
		Helvetica,
		sans-serif;

	font-size: .78rem;
}


/* =========================================================
   SOURCES
   ========================================================= */

#sw-giant-toad .sw-source {
	margin: 1.3rem 0 0;
	padding: clamp(1.15rem, 4vw, 1.8rem);

	background: #101811;

	border: 1px solid var(--sw-line);
	border-radius: var(--sw-radius);

	color: #c8d0c4;
}


#sw-giant-toad .sw-source h2 {
	color: var(--sw-gold-soft);
}


#sw-giant-toad .sw-source p {
	color: #c8d0c4;
}


#sw-giant-toad .sw-source strong {
	color: #e4e8df;
}


/* =========================================================
   LISTS
   ========================================================= */

#sw-giant-toad ul,
#sw-giant-toad ol {
	padding-left: 1.25rem;
}


#sw-giant-toad li + li {
	margin-top: .35rem;
}


/* =========================================================
   RESPONSIVE
   ========================================================= */

@media (max-width: 820px) {

	#sw-giant-toad .sw-reference {
		grid-template-columns:
			repeat(2, minmax(0, 1fr));
	}

	#sw-giant-toad .sw-span-4,
	#sw-giant-toad .sw-span-6 {
		grid-column: 1 / -1;
	}

}


@media (max-width: 640px) {

	#sw-giant-toad {
		font-size: 16px;
	}

	#sw-giant-toad .sw-reference,
	#sw-giant-toad .sw-tab-labels {
		grid-template-columns: 1fr;
	}

	#sw-giant-toad .sw-main-art {
		padding: .5rem;
	}

	#sw-giant-toad .sw-main-art img {
		max-height: none;
	}

	#sw-giant-toad .sw-statblock {
		font-size: 15px;
	}

	#sw-giant-toad .sw-abilities {
		font-size: .82rem;
	}

}


/* =========================================================
   PRINT
   ========================================================= */

@media print {

	#sw-giant-toad .sw-tab-labels {
		display: none;
	}

	#sw-giant-toad .sw-tab-panel {
		display: block !important;

		margin-bottom: 1.5rem;
	}

}
/* END GIANT TOAD */


/* --- WPWriter addition --- */


/* WORG — migrated from page-scoped CSS, 2026-10-06 */
/* =========================================================
   SPIRALWORLDS — WORG
   FINAL PUBLICATION CSS
   ========================================================= */

.sw-worg {
	--sw-panel: #121a24;
	--sw-panel-2: #172230;
	--sw-line: #334357;
	--sw-gold: #d9b76a;
	--sw-gold-soft: #f0d99d;
	--sw-text: #e7e3da;
	--sw-muted: #b8bdc7;
	--sw-red: #9f4c45;
	--sw-link: #e2c779;
	--sw-radius: 10px;

	max-width: 1180px;
	margin: 0 auto;
	padding: 0 18px 42px;
	color: var(--sw-text);
	font-family: Georgia, "Times New Roman", serif;
	font-size: 17px;
	line-height: 1.72;
}

.sw-worg *,
.sw-worg *::before,
.sw-worg *::after {
	box-sizing: border-box;
}

.sw-worg a {
	color: var(--sw-link);
	text-decoration: underline;
	text-decoration-thickness: 1px;
	text-underline-offset: 3px;
}

.sw-worg a:hover,
.sw-worg a:focus {
	color: #fff0b8;
}

.sw-worg h1,
.sw-worg h2,
.sw-worg h3,
.sw-worg h4 {
	margin-top: 0;
	color: #f4ead1;
	font-family: Georgia, "Times New Roman", serif;
	line-height: 1.18;
}

.sw-worg h1 {
	margin: 6px 0 12px;
	font-size: clamp(2.35rem, 6vw, 4.7rem);
	font-weight: 700;
	letter-spacing: -0.035em;
}

.sw-worg h2 {
	margin: 42px 0 18px;
	padding-bottom: 9px;
	border-bottom: 1px solid var(--sw-line);
	font-size: clamp(1.65rem, 3vw, 2.15rem);
}

.sw-worg h3 {
	margin: 27px 0 10px;
	color: var(--sw-gold-soft);
	font-size: 1.35rem;
}

.sw-worg h4 {
	margin: 20px 0 7px;
	color: var(--sw-gold-soft);
	font-size: 1.08rem;
}

.sw-worg p {
	margin: 0 0 16px;
}

.sw-worg ul {
	margin: 8px 0 18px 1.3rem;
	padding: 0;
}

.sw-worg li {
	margin: 5px 0;
}

.sw-worg .sw-kicker {
	margin: 0 0 6px;
	color: var(--sw-gold);
	font-family: Arial, Helvetica, sans-serif;
	font-size: .76rem;
	font-weight: 800;
	letter-spacing: .13em;
	text-transform: uppercase;
}

.sw-worg .sw-deck {
	max-width: 900px;
	margin: 0 0 24px;
	color: #d1d4d9;
	font-size: 1.16rem;
	line-height: 1.6;
}

/* =========================================================
   IMAGE / FEATURE PANELS
   ========================================================= */

.sw-worg .sw-hero,
.sw-worg .sw-media {
	display: grid;
	grid-template-columns: minmax(0, 1.25fr) minmax(280px, .75fr);
	gap: 28px;
	align-items: center;
	margin: 25px 0 34px;
	padding: 22px;
	background:
		linear-gradient(135deg, rgba(217,183,106,.07), transparent 42%),
		var(--sw-panel);
	border: 1px solid var(--sw-line);
	border-radius: var(--sw-radius);
}

.sw-worg .sw-media {
	grid-template-columns: minmax(0, .85fr) minmax(0, 1.15fr);
}

.sw-worg .sw-media-reverse {
	grid-template-columns: minmax(0, 1.15fr) minmax(0, .85fr);
}

.sw-worg .sw-media-reverse figure {
	order: 2;
}

.sw-worg figure {
	margin: 0;
}

.sw-worg img {
	display: block;
	width: 100%;
	height: auto;
	border-radius: 8px;
}

.sw-worg figcaption {
	margin-top: 8px;
	color: var(--sw-muted);
	font-family: Arial, Helvetica, sans-serif;
	font-size: .79rem;
	line-height: 1.45;
}

/* =========================================================
   QUICK RULES
   ========================================================= */

.sw-worg .sw-rule-summary {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 14px;
	margin: 18px 0 28px;
}

.sw-worg .sw-rule-card {
	padding: 17px;
	background: var(--sw-panel);
	border: 1px solid var(--sw-line);
	border-radius: var(--sw-radius);
}

.sw-worg .sw-rule-card strong {
	display: block;
	margin-bottom: 5px;
	color: var(--sw-gold-soft);
	font-family: Arial, Helvetica, sans-serif;
	font-size: .88rem;
}

.sw-worg .sw-rule-card span {
	display: block;
	color: var(--sw-muted);
	font-size: .95rem;
	line-height: 1.5;
}

/* =========================================================
   EDITION TABS
   CSS ONLY
   ========================================================= */

.sw-worg .sw-tabs {
	position: relative;
	margin: 20px 0 38px;
}

.sw-worg .sw-tabs > input {
	position: absolute;
	opacity: 0;
	pointer-events: none;
}

.sw-worg .sw-tab-labels {
	display: flex;
	flex-wrap: wrap;
	gap: 7px;
}

.sw-worg .sw-tab-labels label {
	flex: 1 1 220px;
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: 48px;
	padding: 11px 14px;
	background: #111923;
	border: 1px solid var(--sw-line);
	border-bottom: 0;
	border-radius: 8px 8px 0 0;
	color: #d9dde2;
	font-family: Arial, Helvetica, sans-serif;
	font-size: .86rem;
	font-weight: 800;
	text-align: center;
	cursor: pointer;
}

.sw-worg #sw-worg-tab-55:checked ~ .sw-tab-labels label[for="sw-worg-tab-55"],
.sw-worg #sw-worg-tab-pf:checked ~ .sw-tab-labels label[for="sw-worg-tab-pf"],
.sw-worg #sw-worg-tab-35:checked ~ .sw-tab-labels label[for="sw-worg-tab-35"] {
	background: var(--sw-gold);
	border-color: var(--sw-gold);
	color: #17130b;
}

.sw-worg .sw-tab-panels {
	background: var(--sw-panel);
	border: 1px solid var(--sw-line);
	border-radius: 0 0 var(--sw-radius) var(--sw-radius);
}

.sw-worg .sw-tab-panel {
	;
	padding: clamp(18px, 4vw, 30px);
}

.sw-worg #sw-worg-tab-55:checked ~ .sw-tab-panels .sw-panel-55,
.sw-worg #sw-worg-tab-pf:checked ~ .sw-tab-panels .sw-panel-pf,
.sw-worg #sw-worg-tab-35:checked ~ .sw-tab-panels .sw-panel-35 {
	display: block;
}

.sw-worg .sw-stat-head {
	margin-bottom: 18px;
	padding-bottom: 15px;
	border-bottom: 2px solid var(--sw-red);
}

.sw-worg .sw-stat-head h3 {
	margin-bottom: 4px;
	font-size: 1.7rem;
}

.sw-worg .sw-stat-subtitle {
	color: var(--sw-muted);
	font-style: italic;
}

.sw-worg .sw-stat-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 10px;
	margin: 18px 0;
}

.sw-worg .sw-stat-grid > div {
	padding: 10px 8px;
	background: var(--sw-panel-2);
	border: 1px solid var(--sw-line);
	border-radius: 6px;
	text-align: center;
}

.sw-worg .sw-stat-grid strong {
	display: block;
	color: var(--sw-gold-soft);
	font-family: Arial, Helvetica, sans-serif;
	font-size: .78rem;
}

.sw-worg .sw-stat-grid span {
	display: block;
	margin-top: 3px;
	font-family: Arial, Helvetica, sans-serif;
	font-size: .95rem;
}

.sw-worg .sw-rule-lines {
	margin: 16px 0;
	padding: 14px 16px;
	background: #0e151e;
	border: 1px solid var(--sw-line);
	border-radius: 7px;
}

.sw-worg .sw-rule-lines p {
	margin: 5px 0;
}

.sw-worg .sw-rule-label {
	color: var(--sw-gold-soft);
	font-weight: 700;
}

.sw-worg .sw-stat-section {
	margin-top: 24px;
}

.sw-worg .sw-stat-section h4 {
	padding-bottom: 5px;
	border-bottom: 1px solid rgba(217,183,106,.28);
	font-family: Arial, Helvetica, sans-serif;
	font-size: .82rem;
	letter-spacing: .055em;
	text-transform: uppercase;
}

/* =========================================================
   TACTICS CARDS
   ========================================================= */

.sw-worg .sw-callouts {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 14px;
	margin: 18px 0 26px;
}

.sw-worg .sw-callout {
	padding: 17px;
	background: var(--sw-panel);
	border: 1px solid var(--sw-line);
	border-radius: var(--sw-radius);
}

.sw-worg .sw-callout h3 {
	margin: 0 0 8px;
	font-size: 1.08rem;
}

.sw-worg .sw-callout p:last-child {
	margin-bottom: 0;
}

/* =========================================================
   LEGACY PRICE TABLE
   ========================================================= */

.sw-worg .sw-price-table {
	width: 100%;
	margin: 16px 0;
	border-collapse: collapse;
	background: var(--sw-panel);
}

.sw-worg .sw-price-table th,
.sw-worg .sw-price-table td {
	padding: 11px 13px;
	border: 1px solid var(--sw-line);
	text-align: left;
	vertical-align: top;
}

.sw-worg .sw-price-table th {
	background: var(--sw-panel-2);
	color: var(--sw-gold-soft);
	font-family: Arial, Helvetica, sans-serif;
	font-size: .83rem;
}

.sw-worg .sw-sources {
	color: var(--sw-muted);
	font-size: .92rem;
}

/* =========================================================
   RELATED LINKS
   ========================================================= */

.sw-worg .sw-related {
	padding: 18px;
	background: var(--sw-panel);
	border: 1px solid var(--sw-line);
	border-radius: var(--sw-radius);
}

.sw-worg .sw-related p {
	margin: 5px 0;
}

/* =========================================================
   VIDEO CARDS
   ========================================================= */

.sw-worg .sw-video-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 18px;
	margin: 20px 0 32px;
}

.sw-worg .sw-video-card {
	display: block;
	overflow: hidden;
	background: var(--sw-panel);
	border: 1px solid var(--sw-line);
	border-radius: var(--sw-radius);
	color: var(--sw-text);
	text-decoration: none;
	transition: transform .15s ease, border-color .15s ease;
}

.sw-worg .sw-video-card:hover,
.sw-worg .sw-video-card:focus {
	transform: translateY(-2px);
	border-color: var(--sw-gold);
	color: var(--sw-text);
}

.sw-worg .sw-video-card img {
	display: block;
	width: 100%;
	aspect-ratio: 16 / 9;
	object-fit: cover;
	border-radius: 0;
}

.sw-worg .sw-video-copy {
	padding: 15px 17px 17px;
}

.sw-worg .sw-video-copy strong {
	display: block;
	margin-bottom: 6px;
	color: var(--sw-gold-soft);
	font-size: 1rem;
	line-height: 1.4;
}

.sw-worg .sw-video-copy span {
	display: block;
	color: var(--sw-muted);
	font-size: .9rem;
	line-height: 1.5;
}

.sw-worg .sw-divider {
	margin: 34px 0;
	border: 0;
	border-top: 1px solid var(--sw-line);
}

/* =========================================================
   MOBILE
   ========================================================= */

@media (max-width: 820px) {

	.sw-worg .sw-hero,
	.sw-worg .sw-media,
	.sw-worg .sw-media-reverse {
		grid-template-columns: 1fr;
	}

	.sw-worg .sw-media-reverse figure {
		order: 0;
	}

	.sw-worg .sw-rule-summary,
	.sw-worg .sw-callouts {
		grid-template-columns: 1fr;
	}
}

@media (max-width: 700px) {

	.sw-worg .sw-video-grid {
		grid-template-columns: 1fr;
	}
}

@media (max-width: 560px) {

	.sw-worg {
		padding-left: 12px;
		padding-right: 12px;
	}

	.sw-worg .sw-stat-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.sw-worg .sw-tab-labels {
		display: grid;
		grid-template-columns: 1fr;
	}

	.sw-worg .sw-tab-labels label {
		border-bottom: 1px solid var(--sw-line);
		border-radius: 6px;
	}

	.sw-worg .sw-tab-panels {
		border-radius: 7px;
	}
}
/* END WORG */


/* --- WPWriter addition --- */


/* SWARM OF RATS — migrated from page-scoped CSS, 2026-10-06 */
/* =========================================================
   SPIRALWORLDS — SWARM OF RATS
   FINAL LOCKABLE PUBLICATION VERSION
   ========================================================= */

.sw-rats {
	--sw-bg: #0e1217;
	--sw-panel: #151b22;
	--sw-panel-2: #1a222b;
	--sw-border: rgba(203,169,92,.34);
	--sw-gold: #d5b56b;
	--sw-gold-soft: #ead6a2;
	--sw-text: #e8e4da;
	--sw-muted: #b9b6ad;
	--sw-red: #b55b53;
	--sw-shadow: 0 10px 28px rgba(0,0,0,.24);

	background: var(--sw-bg);
	color: var(--sw-text);
	font-family: Georgia, "Times New Roman", serif;
	font-size: 17px;
	line-height: 1.72;
	margin: 0 auto;
	max-width: 1180px;
	overflow: hidden;
}

.sw-rats *,
.sw-rats *::before,
.sw-rats *::after {
	box-sizing: border-box;
}

.sw-rats a {
	color: var(--sw-gold-soft);
	text-decoration-thickness: 1px;
	text-underline-offset: 3px;
}

.sw-rats a:hover,
.sw-rats a:focus {
	color: #fff2c7;
}

.sw-rats p {
	margin: 0 0 1.05rem;
}

.sw-rats h1,
.sw-rats h2,
.sw-rats h3,
.sw-rats h4 {
	font-family: Georgia, "Times New Roman", serif;
}

.sw-rats h2,
.sw-rats h3,
.sw-rats h4 {
	color: var(--sw-gold-soft);
	line-height: 1.2;
	margin: 0 0 .85rem;
}

.sw-rats h2 {
	border-bottom: 1px solid var(--sw-border);
	font-size: clamp(1.65rem,3vw,2.15rem);
	padding-bottom: .45rem;
}

.sw-rats h3 {
	font-size: clamp(1.25rem,2.2vw,1.55rem);
}

.sw-rats .sw-inner {
	padding: clamp(18px,4vw,48px);
}

/* =========================================================
   ENTRY HEADER
   ========================================================= */

.sw-rats .sw-rats-header {
	background:
		linear-gradient(
			180deg,
			#111820 0%,
			#0c1116 100%
		);
	border-bottom: 1px solid var(--sw-border);
	padding: clamp(30px,5vw,60px) clamp(18px,4vw,48px) clamp(26px,4vw,44px);
	text-align: center;
}

.sw-rats .sw-rats-kicker {
	color: var(--sw-gold);
	font-size: .82rem;
	font-weight: 700;
	letter-spacing: .17em;
	margin: 0 0 .65rem;
	text-transform: uppercase;
}

.sw-rats .sw-rats-title {
	border: 0;
	color: #f4efe5;
	font-size: clamp(2.45rem,6vw,4.8rem);
	font-weight: 400;
	letter-spacing: -.025em;
	line-height: 1.03;
	margin: 0;
	padding: 0;
	text-align: center;
}

.sw-rats .sw-rats-subtitle {
	color: var(--sw-gold);
	font-size: clamp(1.05rem,2.2vw,1.42rem);
	font-style: italic;
	letter-spacing: .035em;
	margin: .62rem 0 0;
}

/* =========================================================
   HERO
   ========================================================= */

.sw-rats .sw-hero {
	background: #090d11;
	margin: 0;
}

.sw-rats .sw-hero img {
	display: block;
	height: auto;
	max-height: 670px;
	object-fit: cover;
	width: 100%;
}

.sw-rats figcaption {
	background: rgba(8,11,14,.94);
	color: var(--sw-muted);
	font-size: .86rem;
	line-height: 1.5;
	padding: .65rem .85rem;
}

.sw-rats .sw-lede {
	color: #f1ede4;
	font-size: clamp(1.08rem,2vw,1.22rem);
	line-height: 1.7;
	margin-bottom: 1.4rem;
}

.sw-rats .sw-hook {
	border-left: 3px solid var(--sw-gold);
	color: var(--sw-gold-soft);
	font-size: clamp(1.12rem,2vw,1.32rem);
	font-style: italic;
	margin: 0 0 1.6rem;
	padding: .55rem 0 .55rem 1rem;
}

.sw-rats .sw-section {
	margin-top: clamp(2rem,5vw,3.8rem);
}

.sw-rats .sw-card {
	background: var(--sw-panel);
	border: 1px solid var(--sw-border);
	border-radius: 8px;
	box-shadow: var(--sw-shadow);
	padding: clamp(16px,3vw,28px);
}

.sw-rats .sw-grid {
	display: grid;
	gap: 1rem;
	grid-template-columns: repeat(2,minmax(0,1fr));
}

.sw-rats .sw-grid-4 {
	display: grid;
	gap: .8rem;
	grid-template-columns: repeat(4,minmax(0,1fr));
}

.sw-rats .sw-fact {
	background: var(--sw-panel-2);
	border: 1px solid rgba(203,169,92,.2);
	border-radius: 6px;
	padding: .9rem 1rem;
}

.sw-rats .sw-fact strong {
	color: var(--sw-gold-soft);
	display: block;
	font-size: .82rem;
	letter-spacing: .06em;
	margin-bottom: .18rem;
	text-transform: uppercase;
}

.sw-rats .sw-note {
	background: rgba(213,181,107,.08);
	border: 1px solid var(--sw-border);
	border-left: 4px solid var(--sw-gold);
	border-radius: 6px;
	margin: 1.25rem 0;
	padding: 1rem 1.1rem;
}

.sw-rats .sw-warning {
	background: rgba(181,91,83,.09);
	border-left-color: var(--sw-red);
}

.sw-rats .sw-table-wrap {
	-webkit-overflow-scrolling: touch;
	overflow-x: auto;
	width: 100%;
}

.sw-rats table {
	border-collapse: collapse;
	font-size: .96rem;
	margin: 1rem 0;
	min-width: 560px;
	width: 100%;
}

.sw-rats th,
.sw-rats td {
	border: 1px solid rgba(203,169,92,.22);
	padding: .65rem .75rem;
	text-align: left;
	vertical-align: top;
}

.sw-rats th {
	background: rgba(213,181,107,.1);
	color: var(--sw-gold-soft);
	font-weight: 700;
}

.sw-rats tr:nth-child(even) td {
	background: rgba(255,255,255,.018);
}

.sw-rats ul {
	margin: .65rem 0 1rem 1.3rem;
	padding: 0;
}

.sw-rats li {
	margin-bottom: .4rem;
}

.sw-rats .sw-edition-summary {
	display: grid;
	gap: .75rem;
	grid-template-columns: repeat(3,minmax(0,1fr));
	margin-top: 1rem;
}

.sw-rats .sw-edition-summary > div {
	background: var(--sw-panel-2);
	border: 1px solid rgba(203,169,92,.22);
	border-radius: 6px;
	padding: 1rem;
	text-align: center;
}

.sw-rats .sw-edition-summary strong {
	color: var(--sw-gold-soft);
	display: block;
	font-size: 1.08rem;
}

.sw-rats .sw-edition-summary span {
	color: var(--sw-muted);
	display: block;
	font-size: .9rem;
	margin-top: .2rem;
}

/* =========================================================
   TABS
   ========================================================= */

.sw-rats .sw-tabs {
	margin-top: 1.3rem;
}

.sw-rats .sw-tab-list {
	display: flex;
	flex-wrap: wrap;
	gap: .45rem;
	margin: 0 0 1rem;
}

.sw-rats .sw-tab-button {
	appearance: none;
	background: #11171d;
	border: 1px solid var(--sw-border);
	border-radius: 5px;
	color: var(--sw-gold-soft);
	cursor: pointer;
	font: inherit;
	font-weight: 700;
	padding: .72rem 1rem;
}

.sw-rats .sw-tab-button:hover,
.sw-rats .sw-tab-button:focus-visible {
	background: #202932;
	outline: 2px solid rgba(213,181,107,.42);
	outline-offset: 2px;
}

.sw-rats .sw-tab-button[aria-selected="true"] {
	background: var(--sw-gold);
	border-color: var(--sw-gold);
	color: #15120c;
}

.sw-rats .sw-tab-panel {
	background: var(--sw-panel);
	border: 1px solid var(--sw-border);
	border-radius: 7px;
	padding: clamp(15px,3vw,28px);
}

.sw-rats .sw-tab-panel[hidden] {
	display: none;
}

/* =========================================================
   STAT BLOCKS
   ========================================================= */

.sw-rats .sw-statblock {
	background: #f4efe4;
	border: 1px solid #c9b78d;
	border-radius: 5px;
	color: #27231d;
	margin-top: 1rem;
	padding: clamp(15px,3vw,25px);
}

.sw-rats .sw-statblock a {
	color: #713c1c;
	font-weight: 600;
}

.sw-rats .sw-statblock a:hover,
.sw-rats .sw-statblock a:focus {
	color: #9b4b1b;
}

.sw-rats .sw-stat-name {
	color: #74461f;
	font-size: clamp(1.5rem,3vw,2rem);
	font-weight: 700;
	line-height: 1.1;
	margin-bottom: .25rem;
}

.sw-rats .sw-stat-type {
	font-style: italic;
	margin-bottom: .8rem;
}

.sw-rats .sw-rule {
	border: 0;
	border-top: 2px solid #9b6233;
	margin: .85rem 0;
}

.sw-rats .sw-statblock strong {
	color: #4c2d17;
}

.sw-rats .sw-statblock table {
	color: #27231d;
	margin: .65rem 0;
}

.sw-rats .sw-statblock th {
	background: #e8ddc7;
	color: #4c2d17;
}

.sw-rats .sw-statblock td,
.sw-rats .sw-statblock th {
	border-color: #cdbd9d;
}

.sw-rats .sw-statblock tr:nth-child(even) td {
	background: #eee6d8;
}

.sw-rats .sw-stat-label {
	color: #74461f;
	font-size: 1.08rem;
	font-weight: 700;
	letter-spacing: .025em;
	margin: 1.1rem 0 .4rem;
	text-transform: uppercase;
}

/* =========================================================
   HISTORY IMAGE
   ========================================================= */

.sw-rats .sw-dore {
	display: grid;
	gap: 1.3rem;
	grid-template-columns: minmax(0,.78fr) minmax(0,1.22fr);
}

.sw-rats .sw-dore figure {
	margin: 0;
}

.sw-rats .sw-dore img {
	border-radius: 6px;
	display: block;
	height: auto;
	width: 100%;
}

/* =========================================================
   VIDEO THUMBNAIL CARDS
   ========================================================= */

.sw-rats .sw-media-grid {
	display: grid;
	gap: 1.25rem;
	grid-template-columns: repeat(2,minmax(0,1fr));
}

.sw-rats .sw-video-card {
	background: var(--sw-panel);
	border: 1px solid var(--sw-border);
	border-radius: 8px;
	box-shadow: var(--sw-shadow);
	color: var(--sw-text);
	display: block;
	overflow: hidden;
	text-decoration: none;
	transition:
		transform .18s ease,
		border-color .18s ease,
		box-shadow .18s ease;
}

.sw-rats .sw-video-card:hover,
.sw-rats .sw-video-card:focus-visible {
	border-color: var(--sw-gold);
	box-shadow: 0 14px 34px rgba(0,0,0,.34);
	color: var(--sw-text);
	transform: translateY(-2px);
}

.sw-rats .sw-video-thumb {
	aspect-ratio: 16 / 9;
	background: #050709;
	overflow: hidden;
	position: relative;
}

.sw-rats .sw-video-thumb img {
	display: block;
	height: 100%;
	object-fit: cover;
	width: 100%;
}

.sw-rats .sw-video-thumb::after {
	background:
		linear-gradient(
			180deg,
			rgba(0,0,0,.02) 20%,
			rgba(0,0,0,.46) 100%
		);
	content: "";
	inset: 0;
	position: absolute;
}

.sw-rats .sw-play {
	align-items: center;
	background: rgba(12,15,18,.88);
	border: 1px solid rgba(234,214,162,.75);
	border-radius: 50%;
	color: #f4dfaa;
	display: flex;
	font-size: 1.35rem;
	height: 58px;
	justify-content: center;
	left: 50%;
	padding-left: 4px;
	position: absolute;
	top: 50%;
	transform: translate(-50%,-50%);
	width: 58px;
	z-index: 2;
}

.sw-rats .sw-video-copy {
	padding: 1rem 1.1rem 1.1rem;
}

.sw-rats .sw-video-copy strong {
	color: var(--sw-gold-soft);
	display: block;
	font-size: 1.08rem;
	line-height: 1.3;
}

.sw-rats .sw-video-copy span {
	color: var(--sw-muted);
	display: block;
	font-size: .87rem;
	margin-top: .25rem;
}

.sw-rats .sw-small {
	color: var(--sw-muted);
	font-size: .9rem;
}

.sw-rats .sw-source-list {
	font-size: .92rem;
}

/* =========================================================
   RESPONSIVE
   ========================================================= */

@media (max-width: 820px) {
	.sw-rats .sw-grid,
	.sw-rats .sw-media-grid,
	.sw-rats .sw-dore {
		grid-template-columns: 1fr;
	}

	.sw-rats .sw-grid-4,
	.sw-rats .sw-edition-summary {
		grid-template-columns: repeat(2,minmax(0,1fr));
	}
}

@media (max-width: 520px) {
	.sw-rats {
		font-size: 16px;
	}

	.sw-rats .sw-inner {
		padding: 17px;
	}

	.sw-rats .sw-grid-4,
	.sw-rats .sw-edition-summary {
		grid-template-columns: 1fr;
	}

	.sw-rats .sw-tab-list {
		display: grid;
		grid-template-columns: 1fr;
	}

	.sw-rats .sw-tab-button {
		text-align: left;
		width: 100%;
	}
}
/* END SWARM OF RATS */


/* --- WPWriter addition --- */


/* GIANT PANDA — migrated from page-scoped CSS, 2026-10-06 */
/* =========================================================
   SPIRALWORLDS — GIANT PANDA
   Scoped for Astra / Spectra / WordPress
   ========================================================= */

.sw-panda {
	--sw-panel: #121a16;
	--sw-panel-2: #17221c;
	--sw-border: #34483c;
	--sw-gold: #d8b66e;
	--sw-gold-soft: #f0daa0;
	--sw-text: #ece9df;
	--sw-muted: #bdb9ad;
	--sw-green: #a2bf94;
	--sw-white: #fffdf7;

	max-width: 1080px;
	margin: 0 auto;
	padding: 0 18px 50px;
	color: var(--sw-text);
	font-family: inherit;
	line-height: 1.72;
	box-sizing: border-box;
}

.sw-panda *,
.sw-panda *::before,
.sw-panda *::after {
	box-sizing: border-box;
}

.sw-panda,
.sw-panda p,
.sw-panda li,
.sw-panda td,
.sw-panda th,
.sw-panda summary {
	color: var(--sw-text);
}

.sw-panda a {
	color: var(--sw-gold-soft);
	text-decoration-thickness: 1px;
	text-underline-offset: 3px;
}

.sw-panda a:hover,
.sw-panda a:focus {
	color: var(--sw-white);
}

.sw-panda h1,
.sw-panda h2,
.sw-panda h3,
.sw-panda h4 {
	margin-top: 0;
	color: var(--sw-gold);
	font-weight: 600;
	line-height: 1.2;
}

.sw-panda h1 {
	margin-bottom: 12px;
	font-size: clamp(2.15rem, 6vw, 4.2rem);
	letter-spacing: -.035em;
}

.sw-panda h2 {
	margin-bottom: 18px;
	font-size: clamp(1.55rem, 3vw, 2.2rem);
}

.sw-panda h3 {
	margin-bottom: 10px;
	font-size: clamp(1.18rem, 2.2vw, 1.5rem);
}

.sw-panda h4 {
	margin-bottom: 8px;
	font-size: 1.05rem;
}

.sw-panda p {
	margin: 0 0 1.08em;
}

.sw-panda ul,
.sw-panda ol {
	margin: 0 0 1.2em;
	padding-left: 1.4em;
}

.sw-panda li + li {
	margin-top: .38em;
}

/* =========================================================
   HERO
   ========================================================= */

.sw-panda__hero {
	position: relative;
	overflow: hidden;
	margin: 0 0 28px;
	padding: clamp(28px, 6vw, 62px);
	border: 1px solid var(--sw-border);
	border-radius: 18px;
	background:
		radial-gradient(circle at 85% 20%, rgba(162,191,148,.17), transparent 34%),
		linear-gradient(145deg, #111a17 0%, #0b100f 52%, #17241d 100%);
	box-shadow: 0 20px 55px rgba(0,0,0,.28);
}

.sw-panda__hero::after {
	content: "";
	position: absolute;
	right: -42px;
	bottom: -72px;
	width: 230px;
	height: 230px;
	border: 28px solid rgba(216,182,110,.05);
	border-radius: 50%;
	pointer-events: none;
}

.sw-panda__eyebrow {
	margin: 0 0 10px;
	color: var(--sw-green);
	font-size: .78rem;
	font-weight: 700;
	letter-spacing: .15em;
	text-transform: uppercase;
}

.sw-panda__subtitle {
	max-width: 800px;
	margin: 0;
	color: var(--sw-muted);
	font-size: clamp(1.02rem, 2vw, 1.2rem);
}

.sw-panda__hero-note {
	display: inline-flex;
	flex-wrap: wrap;
	gap: 7px;
	margin-top: 22px;
	padding: 8px 12px;
	border: 1px solid rgba(216,182,110,.3);
	border-radius: 999px;
	background: rgba(0,0,0,.2);
	color: var(--sw-gold-soft);
	font-size: .82rem;
}

/* =========================================================
   HERO IMAGE — NON-NAVIGATION EXPAND / COLLAPSE
   ========================================================= */

.sw-panda__image {
	margin: 0 auto 30px;
	text-align: center;
}

.sw-panda__image-toggle {
	display: inline-block;
	width: 100%;
	max-width: 900px;
	margin: 0;
	padding: 0;
	overflow: hidden;
	border: 1px solid var(--sw-border);
	border-radius: 16px;
	background: #090d0c;
	cursor: zoom-in;
	box-shadow: 0 15px 38px rgba(0,0,0,.22);
}

.sw-panda__image-toggle img {
	display: block;
	width: 100%;
	height: auto;
	margin: 0;
	transition: transform .2s ease;
}

.sw-panda__image-toggle:hover img,
.sw-panda__image-toggle:focus img {
	transform: scale(1.01);
}

.sw-panda__image-toggle:focus {
	outline: 2px solid var(--sw-gold);
	outline-offset: 3px;
}

.sw-panda__image-toggle.is-expanded {
	max-width: 100%;
	cursor: zoom-out;
}

.sw-panda__image-toggle.is-expanded img {
	width: auto;
	max-width: 100%;
	max-height: 90vh;
	margin: 0 auto;
	transform: none;
}

.sw-panda__image figcaption {
	margin-top: 8px;
	color: var(--sw-muted);
	font-size: .82rem;
}

/* =========================================================
   LEDE / PROFILE
   ========================================================= */

.sw-panda__lede {
	margin: 0 0 28px;
	padding: 21px 24px;
	border-left: 4px solid var(--sw-gold);
	border-radius: 0 12px 12px 0;
	background: var(--sw-panel);
	font-size: 1.08rem;
}

.sw-panda__lede strong {
	color: var(--sw-white);
}

.sw-panda__profile {
	display: grid;
	grid-template-columns: repeat(5, minmax(0, 1fr));
	gap: 10px;
	margin: 0 0 38px;
}

.sw-panda__profile-card {
	padding: 14px;
	border: 1px solid var(--sw-border);
	border-radius: 12px;
	background: var(--sw-panel);
}

.sw-panda__profile-card span {
	display: block;
	color: var(--sw-muted);
	font-size: .7rem;
	font-weight: 700;
	letter-spacing: .1em;
	text-transform: uppercase;
}

.sw-panda__profile-card strong {
	display: block;
	margin-top: 4px;
	color: var(--sw-white);
	font-size: .95rem;
}

/* =========================================================
   SECTIONS
   ========================================================= */

.sw-panda__section {
	margin: 40px 0;
}

.sw-panda__section > h2 {
	padding-bottom: 10px;
	border-bottom: 1px solid var(--sw-border);
}

.sw-panda__grid-2,
.sw-panda__hooks {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 16px;
}

.sw-panda__card,
.sw-panda__hook {
	padding: 20px;
	border: 1px solid var(--sw-border);
	border-radius: 14px;
	background: var(--sw-panel);
}

.sw-panda__card p:last-child,
.sw-panda__hook p:last-child {
	margin-bottom: 0;
}

/* =========================================================
   GAME STATISTICS
   ========================================================= */

.sw-panda__rules {
	margin: 38px 0 44px;
	padding: clamp(16px, 3vw, 28px);
	border: 1px solid var(--sw-border);
	border-radius: 18px;
	background: #090e0c;
}

.sw-panda__rules-heading p {
	margin-top: -8px;
	color: var(--sw-muted);
}

/* =========================================================
   CSS-ONLY EDITION TABS
   ========================================================= */

.sw-panda__tab-input {
	position: absolute;
	width: 1px;
	height: 1px;
	margin: -1px;
	padding: 0;
	overflow: hidden;
	clip: rect(0 0 0 0);
	clip-path: inset(50%);
	white-space: nowrap;
	border: 0;
}

.sw-panda__tabs {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin: 0 0 18px;
}

.sw-panda__tab-label {
	display: inline-block;
	padding: 10px 16px;
	border: 1px solid var(--sw-border);
	border-radius: 999px;
	background: var(--sw-panel);
	color: var(--sw-text);
	font-size: .88rem;
	font-weight: 700;
	line-height: 1.2;
	cursor: pointer;
	user-select: none;
	transition:
		background .15s ease,
		border-color .15s ease,
		color .15s ease;
}

.sw-panda__tab-label:hover {
	border-color: var(--sw-gold);
	color: var(--sw-white);
}

#sw-panda-tab-55:focus ~ .sw-panda__tabs label[for="sw-panda-tab-55"],
#sw-panda-tab-pf1:focus ~ .sw-panda__tabs label[for="sw-panda-tab-pf1"],
#sw-panda-tab-35:focus ~ .sw-panda__tabs label[for="sw-panda-tab-35"] {
	outline: 2px solid var(--sw-gold);
	outline-offset: 3px;
}

#sw-panda-tab-55:checked ~ .sw-panda__tabs label[for="sw-panda-tab-55"],
#sw-panda-tab-pf1:checked ~ .sw-panda__tabs label[for="sw-panda-tab-pf1"],
#sw-panda-tab-35:checked ~ .sw-panda__tabs label[for="sw-panda-tab-35"] {
	border-color: var(--sw-gold);
	background: var(--sw-gold);
	color: #15120b;
}

.sw-panda__panel {
	display: none;
}

#sw-panda-tab-55:checked ~ .sw-panda__panels .sw-panda__panel--55,
#sw-panda-tab-pf1:checked ~ .sw-panda__panels .sw-panda__panel--pf1,
#sw-panda-tab-35:checked ~ .sw-panda__panels .sw-panda__panel--35 {
	display: block;
}

.sw-panda__statblock {
	overflow: hidden;
	border: 1px solid #536458;
	border-radius: 13px;
	background: #151b17;
}

.sw-panda__stat-header {
	padding: 18px 20px 16px;
	border-bottom: 1px solid #536458;
	background: linear-gradient(135deg, #29382e, #19231d);
}

.sw-panda__stat-header h3 {
	margin: 0 0 3px;
	color: var(--sw-gold-soft);
	font-size: 1.55rem;
}

.sw-panda__stat-header p {
	margin: 0;
	color: var(--sw-muted);
	font-style: italic;
}

.sw-panda__stat-body {
	padding: 20px;
}

.sw-panda__rule {
	margin: 0;
	padding: 8px 0;
	border-bottom: 1px solid rgba(255,255,255,.075);
}

.sw-panda__rule:last-child {
	border-bottom: 0;
}

.sw-panda__rule strong {
	color: var(--sw-gold-soft);
}

.sw-panda__abilities {
	display: grid;
	grid-template-columns: repeat(6, minmax(0, 1fr));
	gap: 6px;
	margin: 16px 0;
	padding: 14px 0;
	border-top: 1px solid #536458;
	border-bottom: 1px solid #536458;
}

.sw-panda__ability {
	text-align: center;
}

.sw-panda__ability b {
	display: block;
	color: var(--sw-gold-soft);
	font-size: .76rem;
	letter-spacing: .08em;
}

.sw-panda__ability span {
	display: block;
	margin-top: 4px;
	color: var(--sw-white);
	font-size: .92rem;
}

.sw-panda__action-heading {
	margin: 22px 0 7px;
	padding-bottom: 5px;
	border-bottom: 2px solid var(--sw-gold);
	color: var(--sw-gold-soft);
	font-size: 1.05rem;
	letter-spacing: .07em;
	text-transform: uppercase;
}

.sw-panda__action {
	margin: 10px 0;
}

.sw-panda__action strong {
	color: var(--sw-white);
	font-style: italic;
}

.sw-panda__badge {
	display: inline-block;
	margin-left: 5px;
	padding: 3px 8px;
	border: 1px solid rgba(216,182,110,.35);
	border-radius: 999px;
	color: var(--sw-gold-soft);
	font-size: .67rem;
	font-style: normal;
	font-weight: 700;
	letter-spacing: .06em;
	text-transform: uppercase;
	vertical-align: middle;
}

/* =========================================================
   TABLES
   ========================================================= */

.sw-panda__table-wrap {
	width: 100%;
	overflow-x: auto;
	margin: 16px 0;
	-webkit-overflow-scrolling: touch;
}

.sw-panda table {
	width: 100%;
	min-width: 650px;
	border-collapse: collapse;
	border: 1px solid var(--sw-border);
	background: var(--sw-panel);
}

.sw-panda th,
.sw-panda td {
	padding: 9px 11px;
	border: 1px solid var(--sw-border);
	text-align: left;
	vertical-align: top;
}

.sw-panda th {
	background: #243229;
	color: var(--sw-gold-soft);
}

.sw-panda td:first-child {
	color: var(--sw-gold-soft);
	font-weight: 600;
}

/* =========================================================
   DETAILS
   ========================================================= */

.sw-panda details {
	margin: 18px 0 0;
	border: 1px solid var(--sw-border);
	border-radius: 12px;
	background: var(--sw-panel-2);
}

.sw-panda summary {
	padding: 14px 16px;
	color: var(--sw-gold-soft);
	font-weight: 700;
	cursor: pointer;
}

.sw-panda details > div {
	padding: 0 16px 16px;
}

/* =========================================================
   1454
   ========================================================= */

.sw-panda__1454 {
	padding: clamp(20px, 4vw, 30px);
	border: 1px solid rgba(216,182,110,.35);
	border-radius: 16px;
	background:
		linear-gradient(135deg, rgba(216,182,110,.07), transparent 42%),
		var(--sw-panel);
}

.sw-panda__1454 > h2 {
	padding-bottom: 0;
	border-bottom: 0;
}

.sw-panda__1454-kicker {
	margin-bottom: 7px;
	color: var(--sw-green);
	font-size: .75rem;
	font-weight: 700;
	letter-spacing: .13em;
	text-transform: uppercase;
}

/* =========================================================
   RELATED LINKS / REFERENCES
   ========================================================= */

.sw-panda__related {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
}

.sw-panda__related a {
	display: inline-block;
	padding: 7px 11px;
	border: 1px solid var(--sw-border);
	border-radius: 999px;
	background: var(--sw-panel);
	text-decoration: none;
}

.sw-panda__related a:hover,
.sw-panda__related a:focus {
	border-color: var(--sw-gold);
}

.sw-panda__references {
	padding: 20px;
	border: 1px solid var(--sw-border);
	border-radius: 14px;
	background: var(--sw-panel);
}

.sw-panda__references p:last-child {
	margin-bottom: 0;
}

/* =========================================================
   VIDEO
   ========================================================= */

.sw-panda__video {
	margin: 24px 0 0;
	overflow: hidden;
	border: 1px solid var(--sw-border);
	border-radius: 15px;
	background: #000;
}

.sw-panda__video-frame {
	position: relative;
	width: 100%;
	padding-top: 56.25%;
}

.sw-panda__video-frame iframe {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	border: 0;
}

/* =========================================================
   PROVENANCE
   ========================================================= */

.sw-panda__source-note {
	margin-top: 42px;
	padding-top: 22px;
	border-top: 1px solid var(--sw-border);
	color: var(--sw-muted);
	font-size: .9rem;
}

.sw-panda__source-note p {
	color: var(--sw-muted);
}

/* =========================================================
   RESPONSIVE
   ========================================================= */

@media (max-width: 850px) {
	.sw-panda__profile {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.sw-panda__grid-2,
	.sw-panda__hooks {
		grid-template-columns: 1fr;
	}
}

@media (max-width: 640px) {
	.sw-panda {
		padding-left: 12px;
		padding-right: 12px;
	}

	.sw-panda__hero {
		padding: 25px 20px;
		border-radius: 13px;
	}

	.sw-panda__profile {
		grid-template-columns: 1fr 1fr;
	}

	.sw-panda__abilities {
		grid-template-columns: repeat(3, 1fr);
		row-gap: 14px;
	}

	.sw-panda__rules {
		padding: 13px;
		border-radius: 13px;
	}

	.sw-panda__stat-body {
		padding: 15px;
	}

	.sw-panda__tabs {
		display: grid;
		grid-template-columns: 1fr;
	}

	.sw-panda__tab-label {
		width: 100%;
		text-align: center;
	}
}
/* END GIANT PANDA */


/* --- WPWriter addition --- */


/* DISPATER — migrated from page-scoped CSS, 2026-10-06 */
/* =========================================================
   SPIRALWORLDS — DISPATER, IRON DUKE OF DIS
   Final reconciled publication build
   D&D 5.5e / Pathfinder 1e / D&D 3.5e
   ========================================================= */

#sw-dispater {
	--sw-bg: #090a0d;
	--sw-bg2: #101218;
	--sw-panel: #151820;
	--sw-panel2: #1b1e27;
	--sw-gold: #d6ad59;
	--sw-red: #8d2626;
	--sw-red2: #bc493e;
	--sw-text: #e9e3d8;
	--sw-muted: #b9b1a5;
	--sw-line: rgba(214,173,89,.27);
	--sw-soft-line: rgba(255,255,255,.08);
	--sw-shadow: 0 18px 45px rgba(0,0,0,.34);

	background:
		radial-gradient(circle at 88% 6%,rgba(141,38,38,.16),transparent 31%),
		linear-gradient(180deg,#0d0f14 0%,#08090c 100%);
	color: var(--sw-text);
	font-family: Georgia,"Times New Roman",serif;
	line-height: 1.72;
	padding: clamp(20px,4vw,54px);
	border-radius: 18px;
	overflow: hidden;
}

#sw-dispater * {
	box-sizing: border-box;
}

#sw-dispater .sw-wrap {
	max-width: 1180px;
	margin: 0 auto;
}

#sw-dispater a {
	color: #e3bd68;
	text-decoration-color: rgba(227,189,104,.42);
	text-underline-offset: 3px;
}

#sw-dispater a:hover,
#sw-dispater a:focus {
	color: #f4d894;
}

#sw-dispater h1,
#sw-dispater h2,
#sw-dispater h3,
#sw-dispater h4 {
	margin-top: 0;
	color: #f3ecdf;
	line-height: 1.16;
}

#sw-dispater h1 {
	margin-bottom: 10px;
	font-size: clamp(2.5rem,6vw,5.2rem);
	letter-spacing: -.035em;
}

#sw-dispater h2 {
	margin-bottom: 18px;
	font-size: clamp(1.65rem,3vw,2.4rem);
}

#sw-dispater h3 {
	margin-bottom: 10px;
	font-size: 1.28rem;
}

#sw-dispater h4 {
	margin-bottom: 7px;
	color: var(--sw-gold);
	font-size: 1.04rem;
}

#sw-dispater p {
	margin: 0 0 1rem;
}

#sw-dispater strong {
	color: #f2e7d4;
}

#sw-dispater .sw-kicker {
	margin: 0 0 8px;
	color: var(--sw-gold);
	font-family: Arial,Helvetica,sans-serif;
	font-size: .76rem;
	font-weight: 800;
	letter-spacing: .18em;
	text-transform: uppercase;
}

#sw-dispater .sw-lead {
	max-width: 880px;
	margin-bottom: 24px;
	color: #d9d2c8;
	font-size: clamp(1.08rem,2vw,1.3rem);
}

#sw-dispater .sw-title-rule {
	width: 110px;
	height: 3px;
	margin: 20px 0 30px;
	border: 0;
	background: linear-gradient(90deg,var(--sw-gold),var(--sw-red));
}

#sw-dispater .sw-section {
	margin: 42px 0;
	padding-top: 3px;
}

#sw-dispater .sw-card {
	padding: clamp(18px,3vw,29px);
	border: 1px solid var(--sw-line);
	border-radius: 14px;
	background: linear-gradient(180deg,rgba(29,32,41,.96),rgba(16,18,24,.96));
	box-shadow: 0 12px 28px rgba(0,0,0,.18);
}

#sw-dispater .sw-grid-2 {
	display: grid;
	grid-template-columns: repeat(2,minmax(0,1fr));
	gap: 22px;
}

#sw-dispater .sw-grid-3 {
	display: grid;
	grid-template-columns: repeat(3,minmax(0,1fr));
	gap: 17px;
}

#sw-dispater .sw-callout {
	margin: 24px 0;
	padding: 18px 20px;
	border-left: 4px solid var(--sw-red2);
	border-radius: 0 10px 10px 0;
	background: rgba(141,38,38,.11);
}

#sw-dispater .sw-callout p:last-child {
	margin-bottom: 0;
}

#sw-dispater .sw-hero {
	display: grid;
	grid-template-columns: minmax(0,1.2fr) minmax(280px,.8fr);
	gap: 30px;
	align-items: start;
	margin-bottom: 38px;
}

#sw-dispater figure {
	margin: 0;
}

#sw-dispater .sw-image {
	overflow: hidden;
	border: 1px solid var(--sw-line);
	border-radius: 14px;
	background: #07080a;
	box-shadow: var(--sw-shadow);
}

#sw-dispater .sw-image img {
	display: block;
	width: 100%;
	height: auto;
}

#sw-dispater .sw-hero-image img {
	aspect-ratio: 16 / 10;
	object-fit: cover;
}

#sw-dispater figcaption {
	padding: 10px 14px 12px;
	background: rgba(0,0,0,.35);
	color: var(--sw-muted);
	font-size: .88rem;
	font-style: italic;
}

#sw-dispater .sw-hero-side {
	display: flex;
	flex-direction: column;
	gap: 18px;
}

#sw-dispater .sw-facts {
	display: grid;
	grid-template-columns: repeat(2,minmax(0,1fr));
	gap: 10px;
}

#sw-dispater .sw-fact {
	padding: 13px 14px;
	border: 1px solid var(--sw-soft-line);
	border-radius: 10px;
	background: linear-gradient(145deg,rgba(255,255,255,.035),rgba(255,255,255,.012));
}

#sw-dispater .sw-fact span {
	display: block;
	margin-bottom: 4px;
	color: var(--sw-gold);
	font-family: Arial,Helvetica,sans-serif;
	font-size: .68rem;
	font-weight: 800;
	letter-spacing: .11em;
	text-transform: uppercase;
}

/* Dispater symbol */

#sw-dispater .sw-symbol {
	width: min(100%,320px);
	margin: 2px auto 0;
	border: 1px solid rgba(214,173,89,.35);
	border-radius: 14px;
	overflow: hidden;
	background:
		radial-gradient(circle,rgba(141,38,38,.14),transparent 65%),
		#07080a;
	box-shadow: 0 14px 30px rgba(0,0,0,.28);
}

#sw-dispater .sw-symbol img {
	display: block;
	width: 100%;
	height: auto;
	aspect-ratio: 1 / 1;
	object-fit: cover;
}

#sw-dispater .sw-symbol figcaption {
	text-align: center;
	font-style: normal;
	font-size: .82rem;
	line-height: 1.5;
}

#sw-dispater .sw-appearance {
	display: grid;
	grid-template-columns: minmax(0,1.25fr) minmax(260px,.75fr);
	gap: 22px;
	align-items: start;
}

#sw-dispater .sw-linkbar {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin-top: 18px;
}

#sw-dispater .sw-linkbar a {
	display: inline-flex;
	align-items: center;
	padding: 7px 11px;
	border: 1px solid rgba(214,173,89,.23);
	border-radius: 999px;
	background: rgba(214,173,89,.07);
	font-family: Arial,Helvetica,sans-serif;
	font-size: .8rem;
	text-decoration: none;
}

#sw-dispater .sw-history-card {
	position: relative;
	overflow: hidden;
}

#sw-dispater .sw-history-card:before {
	position: absolute;
	top: 0;
	left: 0;
	width: 4px;
	height: 100%;
	content: "";
	background: linear-gradient(var(--sw-gold),var(--sw-red));
}

/* =========================================================
   RULES TABS
   ========================================================= */

#sw-dispater .sw-tab-radio {
	position: absolute;
	opacity: 0;
	pointer-events: none;
}

#sw-dispater .sw-tab-controls {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin: 24px 0 18px;
}

#sw-dispater .sw-tab-controls label {
	cursor: pointer;
	padding: 10px 16px;
	border: 1px solid rgba(214,173,89,.25);
	border-radius: 8px;
	background: #111319;
	color: var(--sw-muted);
	font-family: Arial,Helvetica,sans-serif;
	font-size: .8rem;
	font-weight: 800;
	letter-spacing: .06em;
	text-transform: uppercase;
}

#sw-dispater-55:checked ~ .sw-tab-controls label[for="sw-dispater-55"],
#sw-dispater-pf:checked ~ .sw-tab-controls label[for="sw-dispater-pf"],
#sw-dispater-35:checked ~ .sw-tab-controls label[for="sw-dispater-35"] {
	border-color: rgba(214,173,89,.58);
	background: linear-gradient(135deg,#711e1e,#341313);
	color: #fff4df;
}

#sw-dispater .sw-panel {
	display: none;
}

#sw-dispater-55:checked ~ .sw-panels .sw-panel-55,
#sw-dispater-pf:checked ~ .sw-panels .sw-panel-pf,
#sw-dispater-35:checked ~ .sw-panels .sw-panel-35 {
	display: block;
}

/* =========================================================
   STAT BLOCK
   ========================================================= */

#sw-dispater .sw-statblock {
	padding: clamp(16px,3vw,28px);
	border: 1px solid #a27c46;
	border-top: 7px solid #782020;
	border-bottom: 7px solid #782020;
	border-radius: 5px;
	background: #f1eadb;
	color: #201e1a;
	font-family: Georgia,"Times New Roman",serif;
}

#sw-dispater .sw-statblock h2,
#sw-dispater .sw-statblock h3,
#sw-dispater .sw-statblock h4,
#sw-dispater .sw-statblock strong {
	color: #681c1c;
}

#sw-dispater .sw-statblock a {
	color: #712a22;
	font-weight: 600;
	text-decoration-color: rgba(113,42,34,.35);
}

#sw-dispater .sw-statblock h2 {
	margin-bottom: 4px;
	font-size: 2rem;
}

#sw-dispater .sw-type {
	margin-bottom: 12px;
	font-style: italic;
}

#sw-dispater .sw-statblock hr {
	height: 2px;
	margin: 13px 0;
	border: 0;
	background: linear-gradient(90deg,#781e1e,#b38b4e,#781e1e);
}

#sw-dispater .sw-abilities {
	display: grid;
	grid-template-columns: repeat(6,1fr);
	gap: 6px;
	margin: 14px 0;
	text-align: center;
}

#sw-dispater .sw-abilities div {
	padding: 7px 3px;
}

#sw-dispater .sw-abilities b {
	display: block;
	color: #681c1c;
	font-size: .8rem;
}

#sw-dispater .sw-rule-heading {
	margin-top: 23px !important;
	margin-bottom: 10px !important;
	padding-bottom: 4px;
	border-bottom: 1px solid rgba(104,28,28,.34);
}

#sw-dispater .sw-stat-table {
	width: 100%;
	border-collapse: collapse;
	font-size: .94rem;
}

#sw-dispater .sw-stat-table th,
#sw-dispater .sw-stat-table td {
	padding: 8px 9px;
	border-bottom: 1px solid rgba(90,67,40,.2);
	text-align: left;
	vertical-align: top;
}

#sw-dispater .sw-stat-table th {
	width: 185px;
	color: #681c1c;
}

#sw-dispater .sw-statblock ul {
	margin: .4rem 0 1rem 1.25rem;
}

#sw-dispater .sw-note {
	font-size: .9rem;
}

#sw-dispater .sw-statblock .sw-note {
	color: #5d554b;
}

#sw-dispater details.sw-details {
	margin: 14px 0;
	border: 1px solid rgba(104,28,28,.18);
	border-radius: 8px;
	background: rgba(255,255,255,.25);
}

#sw-dispater details.sw-details > summary {
	cursor: pointer;
	padding: 11px 13px;
	color: #681c1c;
	font-weight: 700;
}

#sw-dispater details.sw-details > div {
	padding: 0 13px 13px;
}

/* =========================================================
   VIDEO
   ========================================================= */

#sw-dispater .sw-media {
	display: grid;
	grid-template-columns: minmax(240px,.7fr) minmax(0,1.3fr);
	gap: 22px;
	align-items: center;
}

#sw-dispater .sw-video-thumb {
	display: block;
	overflow: hidden;
	border: 1px solid var(--sw-line);
	border-radius: 12px;
	background: #050506;
	box-shadow: var(--sw-shadow);
}

#sw-dispater .sw-video-thumb img {
	display: block;
	width: 100%;
	height: auto;
	aspect-ratio: 16 / 9;
	object-fit: cover;
}

@media (max-width: 840px) {
	#sw-dispater .sw-hero,
	#sw-dispater .sw-grid-2,
	#sw-dispater .sw-grid-3,
	#sw-dispater .sw-appearance,
	#sw-dispater .sw-media {
		grid-template-columns: 1fr;
	}

	#sw-dispater .sw-abilities {
		grid-template-columns: repeat(3,1fr);
	}
}

@media (max-width: 520px) {
	#sw-dispater {
		padding: 18px 13px;
		border-radius: 0;
	}

	#sw-dispater .sw-facts {
		grid-template-columns: 1fr;
	}

	#sw-dispater .sw-symbol {
		width: min(88vw,300px);
	}

	#sw-dispater .sw-statblock {
		padding: 15px 11px;
	}

	#sw-dispater .sw-stat-table th,
	#sw-dispater .sw-stat-table td {
		display: block;
		width: 100%;
	}

	#sw-dispater .sw-stat-table th {
		padding-bottom: 1px;
		border-bottom: 0;
	}
}
/* END DISPATER */

/* ============================================================
   SPIRALWORLDS — FINAL GLOBAL EDITION TAB LAYOUT REPAIR
   2026-10-07
   Keep navigation in one row/wrapped row, panels full width below.
   Applies to canonical .sw-tabs across NPCs, monsters, spells, gods,
   classes and other migrated entries.
   ============================================================ */
html body .sw-entry.sw-entry .sw-tabs {
  display: block !important;
  width: 100% !important;
  max-width: 100% !important;
  min-width: 0 !important;
  grid-template-columns: none !important;
  grid-template-rows: none !important;
  align-items: initial !important;
  justify-items: initial !important;
}

html body .sw-entry.sw-entry .sw-tabs > br,
html body .sw-entry.sw-entry .sw-tabs > .sw-tab-labels > br {
  display: none !important;
}

html body .sw-entry.sw-entry .sw-tabs > .sw-tab-labels {
  display: grid !important;
  grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)) !important;
  grid-auto-flow: row !important;
  gap: .6rem !important;
  width: 100% !important;
  max-width: 100% !important;
  min-width: 0 !important;
  margin: 0 0 1rem !important;
  padding: 0 !important;
  align-items: stretch !important;
}

html body .sw-entry.sw-entry .sw-tabs > .sw-tab-labels > label {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: auto !important;
  min-width: 0 !important;
  max-width: none !important;
  height: auto !important;
  min-height: 48px !important;
  max-height: none !important;
  margin: 0 !important;
  padding: .7rem .85rem !important;
  writing-mode: horizontal-tb !important;
  white-space: normal !important;
  overflow-wrap: anywhere !important;
  line-height: 1.25 !important;
  text-align: center !important;
}

html body .sw-entry.sw-entry .sw-tabs > .sw-tab-panels {
  display: block !important;
  width: 100% !important;
  max-width: 100% !important;
  min-width: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  grid-column: 1 / -1 !important;
  clear: both !important;
}

html body .sw-entry.sw-entry .sw-tabs > .sw-tab-panels > .sw-tab-panel {
  width: 100% !important;
  max-width: 100% !important;
  min-width: 0 !important;
  grid-column: 1 / -1 !important;
}

html body .sw-entry.sw-entry .sw-tabs > .sw-tab-panels > .sw-tab-panel :is(table, .sw-table, .sw-statblock) {
  max-width: 100% !important;
}

@media (max-width: 780px) {
  html body .sw-entry.sw-entry .sw-tabs > .sw-tab-labels {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
}

@media (max-width: 520px) {
  html body .sw-entry.sw-entry .sw-tabs > .sw-tab-labels {
    grid-template-columns: 1fr !important;
  }
}
/* END GLOBAL EDITION TAB LAYOUT REPAIR */

/* Legacy/fallback canonical tab repair for older pages that use
   .sw-tabs + .sw-tab-labels + .sw-tab-panels but are not yet wrapped
   in .sw-entry. This deliberately does NOT touch alternative tab
   systems such as .sw-tab-controls. */
html body .sw-tabs:has(> .sw-tab-labels):has(> .sw-tab-panels) {
  display: block !important;
  width: 100% !important;
  max-width: 100% !important;
  min-width: 0 !important;
  grid-template-columns: none !important;
  grid-template-rows: none !important;
}

html body .sw-tabs:has(> .sw-tab-labels):has(> .sw-tab-panels) > input[type="radio"] {
  position: absolute !important;
  left: -10000px !important;
  width: 1px !important;
  height: 1px !important;
  opacity: 0 !important;
  pointer-events: none !important;
}

html body .sw-tabs:has(> .sw-tab-labels):has(> .sw-tab-panels) > br,
html body .sw-tabs:has(> .sw-tab-labels):has(> .sw-tab-panels) > .sw-tab-labels > br {
  display: none !important;
}

html body .sw-tabs:has(> .sw-tab-labels):has(> .sw-tab-panels) > .sw-tab-labels {
  display: grid !important;
  grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)) !important;
  gap: .6rem !important;
  width: 100% !important;
  max-width: 100% !important;
  min-width: 0 !important;
  margin: 0 0 1rem !important;
  padding: 0 !important;
  align-items: stretch !important;
}

html body .sw-tabs:has(> .sw-tab-labels):has(> .sw-tab-panels) > .sw-tab-labels > label {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: auto !important;
  min-width: 0 !important;
  max-width: none !important;
  height: auto !important;
  min-height: 48px !important;
  max-height: none !important;
  margin: 0 !important;
  padding: .7rem .85rem !important;
  writing-mode: horizontal-tb !important;
  white-space: normal !important;
  overflow-wrap: anywhere !important;
  line-height: 1.25 !important;
  text-align: center !important;
}

html body .sw-tabs:has(> .sw-tab-labels):has(> .sw-tab-panels) > .sw-tab-panels {
  display: block !important;
  width: 100% !important;
  max-width: 100% !important;
  min-width: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  clear: both !important;
}

html body .sw-tabs:has(> .sw-tab-labels):has(> .sw-tab-panels) > .sw-tab-panels > .sw-tab-panel {
  width: 100% !important;
  max-width: 100% !important;
  min-width: 0 !important;
}

@media (max-width: 780px) {
  html body .sw-tabs:has(> .sw-tab-labels):has(> .sw-tab-panels) > .sw-tab-labels {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
}

@media (max-width: 520px) {
  html body .sw-tabs:has(> .sw-tab-labels):has(> .sw-tab-panels) > .sw-tab-labels {
    grid-template-columns: 1fr !important;
  }
}
/* END LEGACY CANONICAL TAB FALLBACK */


/* --- WPWriter addition --- */

/* SPIRALWORLDS RULES TAB READABILITY — 1.0.0, 2026-10-07
 * Global component rule: edition/rules panels read at Player Manual size.
 * Applies to canonical .sw-rules-section tabs only; no per-page CSS.
 */
body:not(.wp-admin) .sw-entry.sw-entry .sw-rules-section .sw-tab-panel {
  font-size: clamp(1.12rem, 1.35vw, 1.28rem) !important;
  line-height: 1.68 !important;
}

body:not(.wp-admin) .sw-entry.sw-entry .sw-rules-section .sw-tab-panel :is(
  p, li, dd, dt, td, th, summary
) {
  font-size: 1em !important;
  line-height: 1.68 !important;
}

body:not(.wp-admin) .sw-entry.sw-entry .sw-rules-section .sw-tab-panel h3 {
  font-size: clamp(1.7rem, 2.6vw, 2.2rem) !important;
  line-height: 1.2 !important;
  margin-bottom: 1rem !important;
}

body:not(.wp-admin) .sw-entry.sw-entry .sw-rules-section .sw-tab-panel h4 {
  font-size: clamp(1.28rem, 1.8vw, 1.55rem) !important;
  line-height: 1.3 !important;
  margin-top: 1.5rem !important;
  margin-bottom: .65rem !important;
}

body:not(.wp-admin) .sw-entry.sw-entry .sw-rules-section .sw-tab-panel table {
  font-size: .96em !important;
  line-height: 1.5 !important;
}

body:not(.wp-admin) .sw-entry.sw-entry .sw-rules-section .sw-tab-panel :is(td, th) {
  padding: .7rem .8rem !important;
}

body:not(.wp-admin) .sw-entry.sw-entry .sw-rules-section .sw-tab-panel .sw-lead {
  font-size: 1.08em !important;
  line-height: 1.7 !important;
}

@media (max-width: 760px) {
  body:not(.wp-admin) .sw-entry.sw-entry .sw-rules-section .sw-tab-panel {
    font-size: 1.08rem !important;
  }
  body:not(.wp-admin) .sw-entry.sw-entry .sw-rules-section .sw-tab-panel table {
    font-size: 1rem !important;
  }
}
