MediaWiki:Vector.css: Difference between revisions

From Wizards and Warlords
Jump to navigation Jump to search
No edit summary
Tag: Reverted
No edit summary
Tag: Manual revert
Line 1: Line 1:
/*
/*
  * Wizards & Warlords Citizen skin overrides.
  * Wizards & Warlords Vector skin overrides.
  *
  *
  * Common.css owns article and template styling. This file only supplies the
  * This file controls the Vector desktop shell, dark theme, top tabs, sidebar,
  * Citizen colour palette, Citizen shell adjustments, and mobile layout fixes
  * page title, footer, and desktop homepage layout.
  * for shared components that need a different narrow-screen presentation.
*
  * Some article typography remains below as a temporary compatibility copy.
* Common.css now contains lower-specificity shared equivalents; retaining the
* existing Vector selectors keeps the desktop cascade visually unchanged.
  */
  */


Line 12: Line 15:
   Phone: 0-599px; tablet / large phone: 600-899px; small desktop /
   Phone: 0-599px; tablet / large phone: 600-899px; small desktop /
   landscape tablet: 900-1199px; full desktop: 1200px+.
   landscape tablet: 900-1199px; full desktop: 1200px+.
   Citizen is developed directly as the mobile/tablet skin; MobileFrontend is
   Vector remains the desktop skin, but its narrow-window fallback follows the
   not required or assumed by these rules.
   same viewport boundaries as the rest of the project.
   ========================================================================== */
   ========================================================================== */


/* ==========================================================================
/* ==========================================================================
   Citizen Theme And Shared Site Colours
   Theme And Layout Variables
  --------------------------------------------------------------------------
  Change these first when adjusting the overall site width, sidebar width,
  colours, background image, content padding, or logo size.
   ========================================================================== */
   ========================================================================== */
:root {
:root {
/* Wizards & Warlords content tokens used by Common.css. */
--wiz-page-width: 1360px;
--wiz-sidebar-width: 210px;
--wiz-sidebar-left-inset: 8px;
--wiz-sidebar-right-inset: 8px;
--wiz-logo-size: 150px;
--wiz-logo-edge-space: calc((var(--wiz-sidebar-width) - var(--wiz-sidebar-left-inset) - var(--wiz-sidebar-right-inset) - var(--wiz-logo-size)) / 2);
--wiz-sidebar-content-gap: 0px;
--wiz-page-gutter: 24px;
--wiz-content-width: calc(var(--wiz-page-width) - var(--wiz-sidebar-width) - var(--wiz-page-gutter));
--wiz-content-padding: 20px;
--wiz-content-background: #222;
--wiz-content-background: #222;
--wiz-panel-solid-background: #0f0f0f;
--wiz-panel-solid-background: #0f0f0f;
--wiz-panel-background: rgba(15, 15, 15, 0.82);
--wiz-page-background: #111;
--wiz-page-background: #111;
--wiz-background-image: url("/mywiki/index.php/Special:Redirect/file/background_circle.jpeg");
--wiz-content-border: #ff942d;
--wiz-content-border: #ff942d;
--wiz-text: #d2d2d2;
--wiz-text: #d2d2d2;
--wiz-link: #ff942d;
--wiz-link: #ff942d;
--wiz-heading: #e7e1d4;
--wiz-heading: #e7e1d4;
}


/* Citizen's native palette. Keep the skin aligned with the existing site. */
/* ==========================================================================
--color-primary__h: 28;
  Full Page Background
--color-surface-0: #111;
  --------------------------------------------------------------------------
--color-surface-1: #171717;
  The background image is attached to the whole browser viewport. The image
--color-surface-2: #1f1e1e;
  keeps its aspect ratio and crops instead of stretching or skewing.
--color-surface-3: #252525;
  ========================================================================== */
--color-surface-4: #2c2b2b;
html {
--color-progressive: #ff942d;
min-height: 100%;
--color-progressive--hover: #ffd37a;
background-color: var(--wiz-page-background);
--color-progressive--active: #e57d1d;
background-image: var(--wiz-background-image);
--color-base: #d2d2d2;
background-repeat: no-repeat;
--color-subtle: #b9b3a8;
background-position: center center;
--color-emphasized: #e7e1d4;
background-size: cover;
--color-base-oklch__l: 85%;
background-attachment: fixed;
--color-base-oklch__c: 0;
--color-subtle-oklch__l: 72%;
--color-subtle-oklch__c: 0;
--color-emphasized-oklch__l: 93%;
--color-emphasized-oklch__c: 0;
}
}


/* ==========================================================================
/* ==========================================================================
   Citizen Page Shell
   Centered Wiki Shell And Panel Tint
  --------------------------------------------------------------------------
  The body is the centered 1360px wiki shell. The body::before layer paints
  the transparent sidebar, right gutter, and header tint without stacking
  multiple semi-transparent Vector wrappers on top of each other.
   ========================================================================== */
   ========================================================================== */
.skin-citizen {
body {
background-color: var(--wiz-page-background);
position: relative;
z-index: 0;
width: min(100%, var(--wiz-page-width));
min-height: 100vh;
margin: 0 auto;
background: transparent;
color: var(--wiz-text);
color: var(--wiz-text);
}
}


.skin-citizen .citizen-page-container {
body::before {
background-color: var(--wiz-page-background);
content: "";
position: fixed;
z-index: -1;
top: 0;
left: 50%;
width: min(100%, var(--wiz-page-width));
height: 79px;
transform: translateX(-50%);
pointer-events: none;
background: linear-gradient(
to right,
var(--wiz-panel-background) 0,
var(--wiz-panel-background) calc(var(--wiz-sidebar-width) + var(--wiz-sidebar-content-gap)),
var(--wiz-panel-background) calc(100% - var(--wiz-page-gutter)),
var(--wiz-panel-background) calc(100% - var(--wiz-page-gutter)),
var(--wiz-panel-background) 100%
);
}
}


.skin-citizen .citizen-header {
/* ==========================================================================
background-color: var(--color-surface-1);
  Vector Wrapper Cleanup
border-color: var(--wiz-content-border);
  --------------------------------------------------------------------------
  Vector has several overlapping header/sidebar wrappers. These rules remove
  their default backgrounds, gradients, shadows, and borders so our single
  body::before tint layer is the only panel background.
  ========================================================================== */
#mw-page-base {
background: transparent;
}
}


.skin-citizen .citizen-page-actions,
#mw-head-base,
.skin-citizen .citizen-toc {
#mw-navigation,
--color-surface-1: #171717;
#mw-head {
--color-surface-2: #1f1e1e;
background: transparent;
background-image: none;
}
}


.skin-citizen .mw-body {
#mw-panel {
color: var(--wiz-text);
background: var(--wiz-panel-background);
background-image: none;
}
}


.skin-citizen .mw-first-heading {
#mw-head {
border-bottom: 1px solid var(--wiz-content-border);
border-bottom: 0;
color: var(--wiz-heading);
background-image: none;
}
}


.skin-citizen .mw-parser-output a:not(.new),
#mw-head-base {
.skin-citizen .mw-first-heading a {
border-bottom: 0;
color: var(--wiz-link);
box-shadow: none;
outline: 0;
opacity: 1;
}
}


.skin-citizen .mw-parser-output a:not(.new):hover,
#mw-head-base::before,
.skin-citizen .mw-first-heading a:hover {
#mw-head-base::after {
color: #ffd37a;
content: none;
display: none;
}
}


/* Citizen applies its own external-link colours after Common.css. Keep links
/* ==========================================================================
   in the shared homepage navigation-list component orange and bold. */
  Header Navigation Alignment
.skin-citizen .mw-parser-output .wizlords-mainpage-link-list a,
   --------------------------------------------------------------------------
.skin-citizen .mw-parser-output .wizlords-mainpage-link-list a:visited,
  These align the left page tabs, right action tabs, login links, and search
.skin-citizen .mw-parser-output .wizlords-mainpage-link-list a.external,
  box with the content area and right gutter.
.skin-citizen .mw-parser-output .wizlords-mainpage-whatislarp-list a,
  ========================================================================== */
.skin-citizen .mw-parser-output .wizlords-mainpage-whatislarp-list a:visited,
#right-navigation {
.skin-citizen .mw-parser-output .wizlords-mainpage-whatislarp-list a.external {
border-bottom: 0;
color: var(--wiz-link);
margin-right: var(--wiz-page-gutter);
font-weight: normal;
text-decoration: none;
}
}


.skin-citizen .mw-parser-output .wizlords-mainpage-link-list a:hover,
#left-navigation {
.skin-citizen .mw-parser-output .wizlords-mainpage-link-list a.external:hover,
border-bottom: 0;
.skin-citizen .mw-parser-output .wizlords-mainpage-whatislarp-list a:hover,
margin-left: calc(var(--wiz-sidebar-width) + var(--wiz-sidebar-content-gap));
.skin-citizen .mw-parser-output .wizlords-mainpage-whatislarp-list a.external:hover {
color: #ffd37a;
text-decoration: none;
}
}


/* Keep the footer close to the article; this site has no advertising area. */
#p-personal {
.skin-citizen .citizen-footer {
right: var(--wiz-page-gutter);
margin-top: 2rem;
}
}


.skin-citizen .citizen-footer {
#p-search {
color: var(--color-subtle);
margin-right: 0;
}
}


.skin-citizen .citizen-footer a {
/* ==========================================================================
color: var(--wiz-link);
  Sidebar And Logo
  --------------------------------------------------------------------------
  The sidebar panel is 210px wide. The logo is centered inside the usable
  sidebar area after accounting for the small left/right inset.
  ========================================================================== */
#mw-panel {
width: var(--wiz-sidebar-width);
background: transparent;
color: var(--wiz-text);
}
}


.skin-citizen .citizen-footer a:hover {
#p-logo {
color: #ffd37a;
top: 0;
left: var(--wiz-sidebar-left-inset);
width: calc(var(--wiz-sidebar-width) - var(--wiz-sidebar-left-inset) - var(--wiz-sidebar-right-inset));
height: calc(var(--wiz-logo-size) + var(--wiz-sidebar-left-inset) + var(--wiz-logo-edge-space));
margin: 0;
}
}


/* ==========================================================================
#p-logo a {
  Tables And Media
display: block;
  ========================================================================== */
/* Citizen adds overflow wrappers around wide tables. Let them use the full
  article width so existing tables can scroll instead of shrinking the page. */
.skin-citizen .citizen-overflow-wrapper {
width: 100%;
width: 100%;
max-width: 100%;
height: 100%;
background-position: center calc(var(--wiz-sidebar-left-inset) + var(--wiz-logo-edge-space));
background-size: var(--wiz-logo-size) var(--wiz-logo-size);
}
}


.skin-citizen .mw-parser-output img {
#mw-panel .portal,
max-width: 100%;
#mw-panel .vector-menu-portal {
height: auto;
margin-right: 12px;
}
}


/* ==========================================================================
/* ==========================================================================
   MobileFrontend Collapsible Article Sections
   Content And Footer Shell
   --------------------------------------------------------------------------
   --------------------------------------------------------------------------
   MobileFormatter adds .collapsible-heading and .collapsible-block, then
   The content and footer share the same width and left/right alignment. The
   toggles .open-block on both elements. Keep collapsed headings visually
   content gets the solid dark background; the footer uses the transparent
  quiet and row-like; restore the orange divider only for expanded sections.
   panel tint.
   This is scoped to Citizen + MobileFrontend and does not affect Vector.
   ========================================================================== */
   ========================================================================== */
.skin-citizen.mw-mf .collapsible-heading {
#content.mw-body {
box-sizing: border-box;
box-sizing: border-box;
margin-top: 0;
width: var(--wiz-content-width);
margin-bottom: 6px;
margin-left: calc(var(--wiz-sidebar-width) + var(--wiz-sidebar-content-gap));
padding-top: 12px;
margin-right: var(--wiz-page-gutter);
padding-bottom: 12px;
padding: var(--wiz-content-padding);
border-bottom: 0;
border: 1px solid var(--wiz-content-border);
background-image: none;
background: var(--wiz-content-background);
color: var(--wiz-text);
box-shadow:
calc(-1 * (var(--wiz-sidebar-width) + var(--wiz-sidebar-content-gap))) 0 0 0 var(--wiz-panel-background),
var(--wiz-page-gutter) 0 0 0 var(--wiz-panel-background);
}
 
#footer {
position: relative;
box-sizing: border-box;
width: var(--wiz-content-width);
margin-left: calc(var(--wiz-sidebar-width) + var(--wiz-sidebar-content-gap));
margin-right: var(--wiz-page-gutter);
min-height: 112px;
padding-top: 24px;
padding-bottom: 24px;
background: var(--wiz-panel-background);
color: var(--wiz-text);
box-shadow:
calc(-1 * (var(--wiz-sidebar-width) + var(--wiz-sidebar-content-gap))) 0 0 0 var(--wiz-panel-background),
var(--wiz-page-gutter) 0 0 0 var(--wiz-panel-background);
}
 
#footer-icons {
position: absolute;
top: 50%;
right: 0;
transform: translateY(-50%);
}
}


.skin-citizen.mw-mf .collapsible-heading.open-block {
/* ==========================================================================
margin-bottom: 0;
  Link Colours
padding-bottom: 6px;
  --------------------------------------------------------------------------
border-bottom: 1px solid var(--wiz-content-border, #ff942d);
  Global link colour rules for content, sidebar, header, and footer.
  ========================================================================== */
a,
a:visited,
#mw-panel a,
#mw-head a,
#footer a {
color: var(--wiz-link);
}
}


.skin-citizen.mw-mf .collapsible-block {
a:hover,
margin-top: 0;
#mw-panel a:hover,
padding-top: 0;
#mw-head a:hover,
#footer a:hover {
color: #ffd37a;
}
}


.skin-citizen.mw-mf
#left-navigation a,
.collapsible-heading.open-block
#right-navigation a,
+ .collapsible-block.open-block {
#p-personal a {
margin-top: 12px;
color: var(--wiz-link);
}
}


/* ==========================================================================
/* ==========================================================================
   Citizen Homepage Sections
   Top Tabs And Vector Menu Resets
   --------------------------------------------------------------------------
   --------------------------------------------------------------------------
   Citizen stacks the desktop left/right homepage blocks. Establish explicit
   These rules restyle the Vector page/action tabs. Inactive tabs are
   section spacing so heading margins cannot collapse into large blank bands,
   transparent so they blend into the header. Selected tabs match the content
   centre the introductory copy, and retain the desktop orange divider.
   background and use a small cover strip to hide the bottom border cleanly.
   ========================================================================== */
   ========================================================================== */
.skin-citizen .wizlords-mainpage-left,
#left-navigation li,
.skin-citizen .wizlords-mainpage-right {
#right-navigation li,
display: flow-root;
.vectorTabs li,
.vectorMenu h3 {
background: transparent;
background-image: none;
border: 0;
}
}


.skin-citizen .wizlords-mainpage-left > h2.center,
#p-namespaces .vector-menu-content,
.skin-citizen .wizlords-mainpage-right > h2.center,
#p-namespaces .vector-menu-content-list {
.skin-citizen .wizlords-mainpage-left > .mw-heading2,
margin-left: 0;
.skin-citizen .wizlords-mainpage-right > .mw-heading2 {
padding-left: 0;
}
 
#p-namespaces {
padding-left: 0;
}
 
#left-navigation li::before,
#left-navigation li::after,
#right-navigation li::before,
#right-navigation li::after,
.vectorTabs li::before,
.vectorTabs li::after,
.vectorMenu h3::before,
.vectorMenu h3::after {
background: none;
background-image: none;
border: 0;
box-shadow: none;
content: none;
}
 
#left-navigation li a,
#right-navigation li a,
.vectorTabs li a,
.vectorMenu h3 {
background: transparent;
background-image: none;
border: 0;
border-left: 1px solid var(--wiz-content-border);
border-bottom: 1px solid var(--wiz-content-border);
color: var(--wiz-link);
}
 
#left-navigation li a span,
#right-navigation li a span,
.vectorTabs li a span,
.vectorMenu h3 span {
background: transparent;
background-image: none;
}
 
#left-navigation .vectorTabs,
#right-navigation .vectorTabs,
#left-navigation .vector-menu-tabs,
#right-navigation .vector-menu-tabs,
#left-navigation .vector-menu-tabs-legacy,
#right-navigation .vector-menu-tabs-legacy,
#left-navigation .vectorTabs ul,
#right-navigation .vectorTabs ul,
#left-navigation .vector-menu-tabs ul,
#right-navigation .vector-menu-tabs ul,
#left-navigation .vectorTabs span,
#right-navigation .vectorTabs span,
#left-navigation .vector-menu-tabs span,
#right-navigation .vector-menu-tabs span,
#left-navigation .vectorTabs li,
#right-navigation .vectorTabs li,
#left-navigation .vector-menu-tabs li,
#right-navigation .vector-menu-tabs li,
#left-navigation .vectorTabs li a,
#right-navigation .vectorTabs li a,
#left-navigation .vector-menu-tabs li a,
#right-navigation .vector-menu-tabs li a,
#right-navigation .vectorMenu,
#right-navigation .vectorMenu h3,
#right-navigation .vectorMenu h3 span,
#right-navigation .vector-menu-heading,
#right-navigation .vector-menu-heading span,
#right-navigation .vector-menu-heading-label,
#p-cactions-label,
#p-cactions-label span {
background-image: none !important;
background: transparent;
box-shadow: none;
}
 
#left-navigation li:last-child a,
#right-navigation li:last-child a {
border-right: 1px solid var(--wiz-content-border);
}
 
/* The watch/unwatch star has different Vector sizing, so it is normalised here. */
#ca-watch a,
#ca-unwatch a {
box-sizing: border-box;
box-sizing: border-box;
width: 100%;
width: 32px;
margin: 14px 0 7px;
height: 40px;
padding: 0 0 4px;
padding-top: 16.25px;
border-bottom: 0;
padding-right: 0;
background-image: linear-gradient(
padding-bottom: 0;
to right,
padding-left: 0;
var(--wiz-content-border),
background-position: center center;
var(--wiz-content-border)
line-height: 18px;
);
}
background-repeat: no-repeat;
 
background-position: center bottom;
#ca-watch,
background-size: 65% 1px;
#ca-unwatch {
color: var(--wiz-heading);
height: 40px;
text-align: center;
line-height: 18px;
}
 
#right-navigation li.mw-watchlink.icon {
top: auto;
margin: 0;
padding: 0;
line-height: inherit;
}
}


.skin-citizen .wizlords-mainpage-left > .mw-heading2 h2,
#right-navigation li.mw-watchlink.icon a {
.skin-citizen .wizlords-mainpage-right > .mw-heading2 h2 {
margin: 0;
margin: 0;
line-height: inherit;
}
#ca-watch a span,
#ca-unwatch a span {
position: absolute;
overflow: hidden;
width: 1px;
height: 1px;
clip: rect(1px, 1px, 1px, 1px);
white-space: nowrap;
}
/* Selected tabs visually open into the content area below. */
#left-navigation li.selected a,
#right-navigation li.selected a,
.vectorTabs li.selected a {
position: relative;
z-index: 2;
background: var(--wiz-content-background);
background-image: none;
border-bottom: 1px solid var(--wiz-content-border);
color: var(--wiz-heading);
color: var(--wiz-heading);
text-align: center;
}
}


.skin-citizen .wizlords-mainpage-left > p,
#left-navigation li.selected a::after,
.skin-citizen .wizlords-mainpage-right > p,
#right-navigation li.selected a::after,
.skin-citizen .wizlords-mainpage-left > .center > p,
.vectorTabs li.selected a::after {
.skin-citizen .wizlords-mainpage-right > .center > p {
content: "";
max-width: 760px;
position: absolute;
margin: 6px auto 8px;
bottom: -1px;
text-align: center;
left: 0;
width: 100%;
height: 1px;
background: var(--wiz-content-background);
pointer-events: none;
}
 
/* Shared border colour for the tab row. */
#left-navigation li,
#right-navigation li,
#p-search,
.vectorTabs,
.vectorMenu {
border-color: var(--wiz-content-border);
}
}


/* Give introductory copy a little breathing room before wide homepage cards
#searchInput {
  without increasing spacing in the square-icon sections. */
background: rgba(0, 0, 0, 0.3);
.skin-citizen
border-color: var(--wiz-race-table-border-colour, #4d4d4d);
:is(.wizlords-mainpage-left, .wizlords-mainpage-right)
color: var(--wiz-text);
> .center:has(> .wizlords-wideimagetext-grid)
> p {
margin-bottom: 16px;
}
}


/* Separate homepage lists from the introductory paragraph above them. */
#searchInput::placeholder {
.skin-citizen .wizlords-mainpage-left > ul,
color: #b9b3a8;
.skin-citizen .wizlords-mainpage-right > ul,
.skin-citizen .wizlords-mainpage-left > ol,
.skin-citizen .wizlords-mainpage-right > ol,
.skin-citizen .wizlords-mainpage-left > .center > ul,
.skin-citizen .wizlords-mainpage-right > .center > ul,
.skin-citizen .wizlords-mainpage-left > .center > ol,
.skin-citizen .wizlords-mainpage-right > .center > ol {
margin-top: 14px;
}
}


/* ==========================================================================
/* ==========================================================================
   Citizen Homepage Square Icon Links
   Page Title And Body Content
   --------------------------------------------------------------------------
   --------------------------------------------------------------------------
   The desktop dimensions live in Vector.css, which Citizen does not load.
   The first heading sits inside the content area with its own spacing. On the
   Define a compact four-column version here for the square homepage links.
   main page only, "Main Page" is visually replaced with the wiki title.
  Wide image cards use separate classes and are intentionally unaffected.
   ========================================================================== */
   ========================================================================== */
.skin-citizen .wizlords-mainpage-items,
#firstHeading.firstHeading.mw-first-heading {
.skin-citizen .wizlords-mainpage-left > .center:has(> .wizlords-imagetext),
box-sizing: border-box;
.skin-citizen .wizlords-mainpage-right > .center:has(> .wizlords-imagetext) {
display: block !important;
display: flex;
height: 40px;
flex-wrap: wrap;
margin: 12px 0 8px;
gap: 12px 8px;
padding: 0;
justify-content: center;
border-bottom: 1px solid var(--wiz-content-border);
align-items: start;
color: var(--wiz-heading);
width: 100%;
font-size: 32px;
min-width: 0;
font-weight: normal;
margin-right: auto;
line-height: 40px;
margin-left: auto;
}
text-align: center;
 
body.page-Main_Page #firstHeading.firstHeading.mw-first-heading {
font-size: 0;
}
 
body.page-Main_Page #firstHeading.firstHeading.mw-first-heading::before {
content: "Wizards and Warlords Wiki";
font-size: 32px;
}
 
#bodyContent {
clear: both;
display: block;
margin: 0;
padding: 0;
border: 0;
font-size: 14px;
line-height: 1.6;
}
 
/* Normal article lists generated by * and # wikitext. */
#content.mw-body #bodyContent .mw-parser-output > ul,
#content.mw-body #bodyContent .mw-parser-output > ol,
#content.mw-body #bodyContent .toc-page > ul,
#content.mw-body #bodyContent .toc-page > ol {
margin: 8px 0 12px 28px;
padding-left: 20px;
text-align: left;
}
 
#content.mw-body #bodyContent .mw-parser-output > ul,
#content.mw-body #bodyContent .toc-page > ul {
list-style: disc outside;
}
 
#content.mw-body #bodyContent .mw-parser-output ul ul,
#content.mw-body #bodyContent .toc-page > ul ul {
margin: 4px 0 6px 22px;
padding-left: 18px;
list-style: disc outside;
}
 
#content.mw-body #bodyContent .mw-parser-output > ol,
#content.mw-body #bodyContent .toc-page > ol {
list-style: decimal outside;
}
 
#content.mw-body #bodyContent .mw-parser-output > ul > li,
#content.mw-body #bodyContent .mw-parser-output > ol > li,
#content.mw-body #bodyContent .toc-page > ul > li,
#content.mw-body #bodyContent .toc-page > ol > li {
display: list-item;
margin-bottom: 4px;
}
 
#content.mw-body #bodyContent .mw-parser-output ul ul > li,
#content.mw-body #bodyContent .toc-page > ul ul > li {
display: list-item;
margin-bottom: 3px;
list-style: disc outside;
}
}


/* MediaWiki may place introductory text in the same .center wrapper as the
#content.mw-body #bodyContent .mw-parser-output li::marker {
  icon links. Keep that text above the grid instead of treating it as an icon
color: var(--wiz-text);
  cell. */
.skin-citizen .wizlords-mainpage-left > .center:has(> .wizlords-imagetext) > p,
.skin-citizen .wizlords-mainpage-right > .center:has(> .wizlords-imagetext) > p {
flex: 0 0 100%;
width: 100%;
margin: 0 0 8px;
text-align: center;
}
}


/* MediaWiki sometimes wraps the first block-style icon link in a paragraph.
/* The generated TOC sits inside .mw-parser-output, so undo article list rules there. */
  Flatten only those icon wrappers so every icon participates in the same
#content.mw-body #bodyContent .toc-page #toc ul,
  homepage grid/flex row. Plain text paragraphs keep their normal layout. */
#content.mw-body #bodyContent .toc-page .toc ul {
.skin-citizen
margin: 0;
:is(.wizlords-mainpage-left, .wizlords-mainpage-right)
padding: 0;
> .center
list-style: none;
> p:has(.wizlords-imagetext) {
display: contents;
}
}


.skin-citizen .wizlords-imagetext {
#content.mw-body #bodyContent .toc-page #toc li,
#content.mw-body #bodyContent .toc-page .toc li {
display: block;
display: block;
flex: 0 0 calc((100% - 24px) / 4);
list-style: none;
}
 
#content.mw-body #bodyContent .toc-page #toc li::marker,
#content.mw-body #bodyContent .toc-page .toc li::marker {
content: "";
}
 
#content.mw-body #bodyContent .toc-page #toc li ul,
#content.mw-body #bodyContent .toc-page .toc li ul {
margin-left: 12px;
padding-left: 10px;
}
 
#content.mw-body #bodyContent .toc-page #toc li li,
#content.mw-body #bodyContent .toc-page .toc li li {
margin-left: 0;
padding: 2px 0;
}
 
#content.mw-body #bodyContent .toc-page #toc .toclevel-3,
#content.mw-body #bodyContent .toc-page #toc .toclevel-4,
#content.mw-body #bodyContent .toc-page #toc .toclevel-5,
#content.mw-body #bodyContent .toc-page #toc .toclevel-6,
#content.mw-body #bodyContent .toc-page .toc .toclevel-3,
#content.mw-body #bodyContent .toc-page .toc .toclevel-4,
#content.mw-body #bodyContent .toc-page .toc .toclevel-5,
#content.mw-body #bodyContent .toc-page .toc .toclevel-6 {
display: none !important;
}
 
/* ==========================================================================
  Inline Article Table Of Contents
  --------------------------------------------------------------------------
  Articles no longer need a .toc-page wrapper because that wrapper prevents
  MobileFormatter from splitting headings into mobile collapsible sections.
  Style Vector's generated #toc directly so it retains the previous floated
  desktop appearance and allows article content to wrap beside it.
  ========================================================================== */
#content.mw-body #bodyContent #toc {
float: right;
clear: right;
box-sizing: border-box;
box-sizing: border-box;
width: calc((100% - 24px) / 4);
width: max-content;
max-width: none;
min-width: 220px;
max-width: 320px;
margin: 0 0 16px 24px;
padding: 16px 24px;
border: 1px solid var(--wiz-content-border);
background: var(--wiz-panel-solid-background);
color: var(--wiz-text);
font-size: 0.95em;
}
 
#content.mw-body #bodyContent #toc:has(.toctogglecheckbox:checked) {
width: fit-content;
min-width: 0;
min-width: 0;
min-height: 0;
padding: 12px 16px;
margin: 0;
}
 
#content.mw-body #bodyContent #toc .toctitle {
margin: 0 0 10px;
color: var(--wiz-text);
text-align: center;
text-align: center;
}
}


.skin-citizen .wizlords-imagetext-image {
#content.mw-body
width: 64px;
#bodyContent
height: 64px;
#toc:has(.toctogglecheckbox:checked)
margin: 0 auto;
.toctitle {
margin: 0;
line-height: 1.4;
}
}


.skin-citizen .wizlords-imagetext-image img {
#content.mw-body #bodyContent #toc .toctitle h2 {
display: block;
display: inline;
width: 64px;
margin: 0;
height: 64px;
padding: 0;
max-width: 100%;
object-fit: contain;
border: 0;
border: 0;
background: transparent;
color: var(--wiz-text);
font-family: inherit;
font-size: 14px;
font-weight: bold;
line-height: 1.4;
}
}


.skin-citizen .wizlords-imagetext-text {
#content.mw-body #bodyContent #toc .toctoggle {
display: flex;
color: var(--wiz-text);
align-items: flex-start;
justify-content: center;
box-sizing: border-box;
width: 100%;
min-width: 0;
min-height: 34px;
height: auto;
margin-top: 4px;
color: var(--wiz-link);
font-size: 12px;
font-size: 12px;
line-height: 1.2;
text-align: center;
overflow-wrap: anywhere;
}
}


.skin-citizen .wizlords-imagetext-text a {
#content.mw-body #bodyContent #toc .toctoggle a {
color: var(--wiz-link);
color: var(--wiz-link);
text-decoration: none;
text-decoration: none;
}
}


.skin-citizen .wizlords-imagetext-text a:hover {
#content.mw-body #bodyContent #toc ul {
color: #ffd37a;
margin: 0;
padding: 0;
list-style: none;
}
 
#content.mw-body #bodyContent #toc li {
display: block;
margin: 0;
padding: 0;
list-style: none;
line-height: 1.35;
}
}


/* MediaWiki can insert paragraph wrappers around block-style homepage cards.
#content.mw-body #bodyContent #toc > ul > li {
  Flatten wrappers that contain a wide card so the card itself participates
padding: 2px 0;
  in the responsive flex layout. */
.skin-citizen
:is(.wizlords-mainpage-left, .wizlords-mainpage-right)
> .center
> p:has(.wizlords-wideimagetext) {
display: contents;
}
}


/* Small-desktop / landscape-tablet Citizen keeps the desktop-style four-slot
#content.mw-body #bodyContent #toc li ul {
  rhythm, but uses larger icons so the wider mobile/tablet skin does not feel
margin: 0 0 0 12px;
  sparse before the full desktop Vector layout takes over. */
padding: 0 0 0 10px;
@media screen and (min-width: 900px) and (max-width: 1199px) {
border-left: 1px dotted var(--wiz-content-border);
.skin-citizen .wizlords-mainpage-items,
}
.skin-citizen .wizlords-mainpage-left > .center:has(> .wizlords-imagetext),
.skin-citizen .wizlords-mainpage-right > .center:has(> .wizlords-imagetext) {
gap: 20px 16px;
}


.skin-citizen .wizlords-imagetext {
#content.mw-body #bodyContent #toc li li {
flex-basis: calc((100% - 48px) / 4);
margin: 0;
width: calc((100% - 48px) / 4);
padding: 2px 0;
}
border-left: 0;
}


.skin-citizen .wizlords-imagetext-image,
#content.mw-body #bodyContent #toc li::marker {
.skin-citizen .wizlords-imagetext-image img {
content: "";
width: clamp(92px, 10vw, 108px);
}
height: clamp(92px, 10vw, 108px);
}


.skin-citizen .wizlords-imagetext-text {
#content.mw-body #bodyContent #toc .tocnumber {
font-size: 13px;
display: none;
}
}
}


/* Full-width Citizen fallback. Normal desktop visitors use Vector, but this
#content.mw-body #bodyContent #toc a {
  keeps Citizen tidy if it is tested manually on a wide screen. */
color: var(--wiz-link);
@media screen and (min-width: 1200px) {
text-decoration: none;
.skin-citizen .wizlords-mainpage-items,
overflow-wrap: anywhere;
.skin-citizen .wizlords-mainpage-left > .center:has(> .wizlords-imagetext),
}
.skin-citizen .wizlords-mainpage-right > .center:has(> .wizlords-imagetext) {
gap: 16px 12px;
}


.skin-citizen .wizlords-imagetext {
#content.mw-body #bodyContent #toc a:hover {
flex-basis: calc((100% - 36px) / 4);
color: #ffd37a;
width: calc((100% - 36px) / 4);
text-decoration: none;
}
}


.skin-citizen .wizlords-imagetext-image,
#content.mw-body #bodyContent #toc .toclevel-3,
.skin-citizen .wizlords-imagetext-image img {
#content.mw-body #bodyContent #toc .toclevel-4,
width: 82px;
#content.mw-body #bodyContent #toc .toclevel-5,
height: 82px;
#content.mw-body #bodyContent #toc .toclevel-6 {
}
display: none !important;
}


.skin-citizen .wizlords-imagetext-text {
/* Article section headings generated by == through ====== wikitext. */
font-size: 13px;
#content.mw-body #bodyContent .mw-heading {
}
box-sizing: border-box;
margin: 20px 0 10px;
padding: 0;
border-bottom: 0;
color: var(--wiz-heading);
text-align: left;
text-decoration: none;
}
}


/* Phone-only wide-card fallback. Tablet receives the four-slot treatment in
#content.mw-body #bodyContent .mw-heading2 {
  the dedicated tablet section below. */
height: 30px;
@media screen and (max-width: 599px) {
margin-top: 21px;
/* Let each phone label use its natural one- or two-line height. Reserving
margin-bottom: 5px;
  two lines for every label creates visible empty space in sections whose
border-bottom: 1px solid var(--wiz-content-border);
  first-row labels all fit on one line, such as Character Creation. */
}
.skin-citizen .wizlords-imagetext-text {
min-height: 0;
}


/* Homepage navigation lists use a centred readable block while individual
#content.mw-body #bodyContent .mw-heading3 {
  bullets remain conventionally left-aligned. */
height: 28px;
.skin-citizen .wizlords-mainpage-link-list,
margin-top: 5px;
.skin-citizen .wizlords-useful-links,
margin-bottom: 10px;
.skin-citizen .wizlords-mainpage-whatislarp-list {
padding-top: 8px;
box-sizing: border-box;
}
width: 100%;
max-width: 320px;
margin-right: auto;
margin-left: auto;
padding-left: 24px;
list-style: disc outside;
text-align: left;
}


/* Match the What is LARP list to the paragraph's phone-width text column.
#content.mw-body #bodyContent .mw-heading4 {
  The padding creates a normal hanging bullet while keeping the bullet
height: 23px;
  edge aligned with the paragraph above. */
margin-top: 4px;
.skin-citizen .wizlords-mainpage-whatislarp-list {
margin-bottom: 10px;
max-width: 100%;
padding-top: 7px;
margin-right: 0;
}
margin-left: 0;
padding-left: 24px;
}


.skin-citizen .wizlords-wideimagetext {
#content.mw-body #bodyContent .mw-heading h2,
max-width: 100%;
#content.mw-body #bodyContent .mw-heading h3,
}
#content.mw-body #bodyContent .mw-heading h4,
#content.mw-body #bodyContent .mw-heading h5,
#content.mw-body #bodyContent .mw-heading h6 {
margin: 0;
padding: 0;
border-bottom: 0;
color: var(--wiz-heading);
text-align: left;
text-decoration: none;
}


.skin-citizen .wizlords-wideimagetext-grid,
#content.mw-body #bodyContent .mw-heading h2 {
.skin-citizen .wizlords-mainpage-left > .center:has(> .wizlords-wideimagetext),
font-weight: normal;
.skin-citizen .wizlords-mainpage-right > .center:has(> .wizlords-wideimagetext) {
}
display: flex;
flex-wrap: wrap;
justify-content: center;
gap: 12px 10px;
width: 100%;
}


.skin-citizen .wizlords-wideimagetext-grid .wizlords-wideimagetext,
#content.mw-body #bodyContent .mw-heading h3,
.skin-citizen .wizlords-mainpage-left > .center .wizlords-wideimagetext,
#content.mw-body #bodyContent .mw-heading h4,
.skin-citizen .wizlords-mainpage-right > .center .wizlords-wideimagetext {
#content.mw-body #bodyContent .mw-heading h5,
flex: 0 0 calc((100% - 10px) / 2);
#content.mw-body #bodyContent .mw-heading h6 {
box-sizing: border-box;
font-weight: bold;
width: calc((100% - 10px) / 2);
}
max-width: none;
margin: 0;
text-align: center;
}


.skin-citizen .wizlords-mainpage-left > .center:has(> .wizlords-wideimagetext) > p,
#content.mw-body #bodyContent > h2:not(.center),
.skin-citizen .wizlords-mainpage-right > .center:has(> .wizlords-wideimagetext) > p {
#content.mw-body #bodyContent .toc-page > h2:not(.center) {
flex: 0 0 100%;
box-sizing: border-box;
width: 100%;
height: 30px;
margin: 0 0 6px;
margin: 21px 0 5px;
}
padding: 0;
border-bottom: 1px solid var(--wiz-content-border);
color: var(--wiz-heading);
font-weight: normal;
text-align: left;
text-decoration: none;
}


.skin-citizen .wizlords-wideimagetext-image,
#content.mw-body #bodyContent > h3:not(.center),
.skin-citizen .wizlords-wideimagetext-image img {
#content.mw-body #bodyContent > h4:not(.center),
display: block;
#content.mw-body #bodyContent > h5:not(.center),
width: 100%;
#content.mw-body #bodyContent > h6:not(.center),
height: auto;
#content.mw-body #bodyContent .toc-page > h3:not(.center),
aspect-ratio: 2 / 1;
#content.mw-body #bodyContent .toc-page > h4:not(.center),
object-fit: cover;
#content.mw-body #bodyContent .toc-page > h5:not(.center),
border: 0;
#content.mw-body #bodyContent .toc-page > h6:not(.center) {
background: transparent;
box-sizing: border-box;
}
margin: 20px 0 10px;
padding: 0;
border-bottom: 0;
color: var(--wiz-heading);
font-weight: bold;
text-align: left;
text-decoration: none;
}


.skin-citizen .wizlords-wideimagetext-text {
#content.mw-body #bodyContent > h3:not(.center),
display: flex;
#content.mw-body #bodyContent .toc-page > h3:not(.center) {
align-items: flex-start;
height: 28px;
justify-content: center;
margin-top: 5px;
width: 100%;
padding-top: 8px;
min-height: 34px;
height: auto;
margin-top: 4px;
font-size: 12px;
line-height: 1.2;
text-align: center;
overflow-wrap: anywhere;
}
}
}


/* ==========================================================================
#content.mw-body #bodyContent > h4:not(.center),
  Citizen Tablet Homepage
#content.mw-body #bodyContent .toc-page > h4:not(.center) {
  --------------------------------------------------------------------------
height: 23px;
  At 600-899px the homepage uses the available width as one broad content
margin-top: 4px;
  column. The square icon groups need one component-specific split inside the
padding-top: 7px;
  tablet range: 600-799px keeps the stable four-column rhythm, while 800-899px
}
  has enough room for compact single-row groups. This avoids ugly orphan rows
  such as 5+2 or 6+1.
  ========================================================================== */
@media screen and (min-width: 600px) and (max-width: 899px) {
.skin-citizen .wizlords-mainpage-left,
.skin-citizen .wizlords-mainpage-right {
max-width: 760px;
margin-right: auto;
margin-left: auto;
}


/* Keep tablet landing-page copy in a readable centred column while the
#content.mw-body #bodyContent .mw-heading h2,
  icon and card grids continue using the full 760px section width. */
#content.mw-body #bodyContent > h2:not(.center),
.skin-citizen .wizlords-mainpage-left > p,
#content.mw-body #bodyContent .toc-page > h2:not(.center) {
.skin-citizen .wizlords-mainpage-right > p,
font-size: 24px;
.skin-citizen .wizlords-mainpage-left > .center > p,
line-height: 30px;
.skin-citizen .wizlords-mainpage-right > .center > p {
}
max-width: 620px;
margin-right: auto;
margin-left: auto;
text-align: center;
}


.skin-citizen .wizlords-mainpage-link-list,
#content.mw-body #bodyContent .mw-heading h3,
.skin-citizen .wizlords-useful-links,
#content.mw-body #bodyContent > h3:not(.center),
.skin-citizen .wizlords-mainpage-whatislarp-list {
#content.mw-body #bodyContent .toc-page > h3:not(.center) {
box-sizing: border-box;
font-size: 18px;
width: 100%;
line-height: 24px;
max-width: 500px;
}
margin-right: auto;
margin-left: auto;
padding-left: 32px;
list-style: disc outside;
text-align: left;
}


/* Use the same 620px reading column as the What is LARP paragraph. */
#content.mw-body #bodyContent .mw-heading h4,
.skin-citizen .wizlords-mainpage-whatislarp-list {
#content.mw-body #bodyContent > h4:not(.center),
max-width: 620px;
#content.mw-body #bodyContent .toc-page > h4:not(.center) {
padding-left: 24px;
font-size: 14px;
}
line-height: 1.6;
}


.skin-citizen .wizlords-mainpage-left > h2.center,
#content.mw-body #bodyContent .mw-heading h5,
.skin-citizen .wizlords-mainpage-right > h2.center {
#content.mw-body #bodyContent .mw-heading h6,
margin-top: 14px;
#content.mw-body #bodyContent > h5:not(.center),
margin-bottom: 6px;
#content.mw-body #bodyContent > h6:not(.center),
}
#content.mw-body #bodyContent .toc-page > h5:not(.center),
#content.mw-body #bodyContent .toc-page > h6:not(.center) {
font-size: 15px;
line-height: 21px;
}


.skin-citizen .wizlords-mainpage-left > p,
#content.mw-body #bodyContent .mw-heading .mw-headline,
.skin-citizen .wizlords-mainpage-right > p {
#content.mw-body #bodyContent > h2:not(.center) .mw-headline,
margin-top: 6px;
#content.mw-body #bodyContent > h3:not(.center) .mw-headline,
margin-bottom: 8px;
#content.mw-body #bodyContent > h4:not(.center) .mw-headline,
}
#content.mw-body #bodyContent > h5:not(.center) .mw-headline,
#content.mw-body #bodyContent > h6:not(.center) .mw-headline,
#content.mw-body #bodyContent .toc-page > h2:not(.center) .mw-headline,
#content.mw-body #bodyContent .toc-page > h3:not(.center) .mw-headline,
#content.mw-body #bodyContent .toc-page > h4:not(.center) .mw-headline,
#content.mw-body #bodyContent .toc-page > h5:not(.center) .mw-headline,
#content.mw-body #bodyContent .toc-page > h6:not(.center) .mw-headline,
#content.mw-body #bodyContent .mw-heading a,
#content.mw-body #bodyContent > h2:not(.center) a,
#content.mw-body #bodyContent > h3:not(.center) a,
#content.mw-body #bodyContent > h4:not(.center) a,
#content.mw-body #bodyContent > h5:not(.center) a,
#content.mw-body #bodyContent > h6:not(.center) a,
#content.mw-body #bodyContent .toc-page > h2:not(.center) a,
#content.mw-body #bodyContent .toc-page > h3:not(.center) a,
#content.mw-body #bodyContent .toc-page > h4:not(.center) a,
#content.mw-body #bodyContent .toc-page > h5:not(.center) a,
#content.mw-body #bodyContent .toc-page > h6:not(.center) a {
border-bottom: 0;
color: var(--wiz-heading);
text-decoration: none;
}


.skin-citizen .wizlords-mainpage-items,
#content.mw-body #bodyContent .mw-heading .mw-editsection {
.skin-citizen .wizlords-mainpage-left > .center:has(> .wizlords-imagetext),
color: var(--wiz-link);
.skin-citizen .wizlords-mainpage-right > .center:has(> .wizlords-imagetext) {
font-size: 12px;
display: grid;
line-height: 1;
grid-template-columns: repeat(4, minmax(0, 78px));
text-decoration: none;
gap: 12px 16px;
}
justify-content: center;
justify-items: center;
align-items: start;
}


.skin-citizen .wizlords-mainpage-left > .center:has(> .wizlords-imagetext) > p,
#content.mw-body #bodyContent .mw-heading .mw-editsection a {
.skin-citizen .wizlords-mainpage-right > .center:has(> .wizlords-imagetext) > p {
color: var(--wiz-link);
grid-column: 1 / -1;
text-decoration: none;
width: 100%;
}
margin-bottom: 4px;
}


.skin-citizen .wizlords-imagetext {
/* ==========================================================================
width: 78px;
  Homepage Two-Column Layout
max-width: none;
  --------------------------------------------------------------------------
}
  Homepage sections are arranged as:
  left block, right block, clear; then repeat for each row.
  ========================================================================== */
.wizlords-mainpage-left {
box-sizing: border-box;
float: left;
width: calc(50% - 7.5px);
padding-left: 15px;
padding-right: 15px;
}


.skin-citizen .wizlords-imagetext-image,
.wizlords-mainpage-right {
.skin-citizen .wizlords-imagetext-image img {
box-sizing: border-box;
width: clamp(52px, 7.5vw, 64px);
float: right;
height: clamp(52px, 7.5vw, 64px);
width: calc(50% - 7.5px);
}
padding-left: 15px;
padding-right: 15px;
}


.skin-citizen .wizlords-imagetext-text {
.wizlords-mainpage-clear {
min-height: 30px;
clear: both;
margin-top: 3px;
}
font-size: 12px;
line-height: 1.15;
}


/* Upper tablet widths can cleanly fit seven or eight compact icons in one
/* Homepage section headings. */
  row. Use flex here rather than auto-fit grid: auto-fit can create an
.wizlords-mainpage-left > h2.center,
  empty eighth track for seven-item groups once there is enough width,
.wizlords-mainpage-right > h2.center {
  while flex only lays out real icon items. */
margin: 20px 0 10px;
@media screen and (min-width: 800px) {
padding: 0;
.skin-citizen .wizlords-mainpage-items,
border-bottom: 1px solid var(--wiz-content-border);
.skin-citizen .wizlords-mainpage-left > .center:has(> .wizlords-imagetext),
color: var(--wiz-heading);
.skin-citizen .wizlords-mainpage-right > .center:has(> .wizlords-imagetext) {
font-size: 24px;
display: flex;
font-weight: normal;
flex-wrap: wrap;
line-height: 30px;
gap: 10px 14px;
text-align: center;
justify-content: center;
}
align-items: flex-start;
}


.skin-citizen .wizlords-mainpage-left > .center:has(> .wizlords-imagetext) > p,
.wizlords-mainpage-left > h2.center .mw-headline,
.skin-citizen .wizlords-mainpage-right > .center:has(> .wizlords-imagetext) > p {
.wizlords-mainpage-right > h2.center .mw-headline {
flex: 0 0 100%;
text-decoration: none;
width: 100%;
}
}


.skin-citizen .wizlords-imagetext {
.wizlords-mainpage-left > h2.center a,
flex: 0 0 78px;
.wizlords-mainpage-right > h2.center a {
}
border-bottom: 0;
}
text-decoration: none;
}


/* The homepage markup splits each four-card group into two nested
.wizlords-mainpage-left > .center,
  two-card grids. On tablet, flatten those inner grids into their shared
.wizlords-mainpage-right > .center,
  parent so all four cards can occupy one row. Phone keeps the two grids,
.wizlords-mainpage-items {
  producing the intended 2x2 layout. */
text-align: center;
.skin-citizen
}
:is(.wizlords-mainpage-left, .wizlords-mainpage-right)
> .center:has(> .wizlords-wideimagetext-grid) {
display: flex;
flex-wrap: wrap;
justify-content: center;
gap: 10px 12px;
width: 100%;
}


.skin-citizen
.wizlords-mainpage-left > .center > p,
:is(.wizlords-mainpage-left, .wizlords-mainpage-right)
.wizlords-mainpage-right > .center > p {
> .center:has(> .wizlords-wideimagetext-grid)
margin: 0 0 10px;
> p {
}
flex: 0 0 100%;
width: 100%;
margin: 0 0 16px;
}


.skin-citizen
/* Normal text lists inside homepage blocks. */
:is(.wizlords-mainpage-left, .wizlords-mainpage-right)
.wizlords-mainpage-left > ul,
> .center
.wizlords-mainpage-right > ul,
> .wizlords-wideimagetext-grid {
.wizlords-mainpage-left > .center > ul,
display: contents;
.wizlords-mainpage-right > .center > ul {
}
margin: 8px 0 0 20px;
padding-left: 20px;
list-style: disc inside;
text-align: left;
}


.skin-citizen
.wizlords-mainpage-left > ol,
:is(.wizlords-mainpage-left, .wizlords-mainpage-right)
.wizlords-mainpage-right > ol,
> .center
.wizlords-mainpage-left > .center > ol,
> .wizlords-wideimagetext-grid
.wizlords-mainpage-right > .center > ol {
> .wizlords-wideimagetext {
margin: 8px 0 0 20px;
flex: 0 0 calc((100% - 36px) / 4);
padding-left: 20px;
box-sizing: border-box;
list-style: decimal inside;
width: calc((100% - 36px) / 4);
text-align: left;
max-width: none;
}
margin: 0;
text-align: center;
}


.skin-citizen .wizlords-wideimagetext-image,
.wizlords-mainpage-left li,
.skin-citizen .wizlords-wideimagetext-image img {
.wizlords-mainpage-right li {
display: block;
display: list-item;
width: 100%;
margin-bottom: 6px;
height: auto;
}
aspect-ratio: 2 / 1;
object-fit: cover;
border: 0;
background: transparent;
}


.skin-citizen .wizlords-wideimagetext-text {
.wizlords-mainpage-left li::marker,
display: flex;
.wizlords-mainpage-right li::marker {
align-items: flex-start;
color: var(--wiz-text);
justify-content: center;
width: 100%;
min-height: 34px;
height: auto;
margin-top: 4px;
font-size: 12px;
line-height: 1.2;
text-align: center;
overflow-wrap: anywhere;
}
}
}


/* ==========================================================================
/* ==========================================================================
   Phone And Tablet Table Of Contents
   Homepage Square Image Links
  --------------------------------------------------------------------------
  Used for 100x100 icon links with a fixed-height text label underneath.
   ========================================================================== */
   ========================================================================== */
@media screen and (max-width: 899px) {
.wizlords-imagetext {
.skin-citizen .citizen-page-container {
display: inline-block;
padding-right: max(var(--padding-page, 16px), env(safe-area-inset-right));
box-sizing: border-box;
padding-left: max(var(--padding-page, 16px), env(safe-area-inset-left));
width: 100px;
}
min-height: 122px;
margin: 5px;
vertical-align: top;
text-align: center;
}
 
.wizlords-imagetext-image {
width: 100px;
height: 100px;
}
 
.wizlords-imagetext-image img {
display: block;
width: 100px;
height: 100px;
object-fit: contain;
border: 0;
background: transparent;
}


.skin-citizen .toc-page #toc,
.wizlords-imagetext-text {
.skin-citizen .toc-page .toc {
display: flex;
float: none;
align-items: center;
width: 100%;
justify-content: center;
min-width: 0;
width: 100px;
max-width: none;
height: 40px;
margin: 0 0 18px;
font-size: 14px;
padding: 14px 16px;
line-height: 1.3;
}
text-align: center;
}
}


/* ==========================================================================
/* ==========================================================================
   Phone And Tablet Shared Component Adjustments
   Homepage Wide Image Links
  --------------------------------------------------------------------------
  Used for 200x100 banner-style image links, such as Weekly Battle Games,
  World Lore, and Events.
   ========================================================================== */
   ========================================================================== */
@media screen and (max-width: 899px) {
.wizlords-wideimagetext {
.skin-citizen .wizlords-mainpage-left,
display: inline-block;
.skin-citizen .wizlords-mainpage-right {
box-sizing: border-box;
float: none;
width: 200px;
box-sizing: border-box;
margin: 10px 12px;
width: 100%;
vertical-align: top;
margin-top: 0;
text-align: center;
margin-bottom: 0;
}
padding-right: 0;
padding-left: 0;
}


.skin-citizen .wizlords-mainpage-clear {
.wizlords-wideimagetext-grid {
clear: both;
display: flex;
}
flex-wrap: wrap;
justify-content: center;
gap: 10px 24px;
}


.skin-citizen .wizlords-race-intro,
.wizlords-wideimagetext-grid .wizlords-wideimagetext {
.skin-citizen .wizlords-magic-intro {
margin: 0;
align-items: flex-start;
}
gap: 16px;
}


.skin-citizen .wizlords-race-quote {
.wizlords-wideimagetext-image {
padding-right: 20px;
width: 200px;
}
height: 100px;
}


.skin-citizen .wizlords-culture-grid {
.wizlords-wideimagetext-image img {
grid-template-columns: 1fr;
display: block;
}
width: 200px;
height: 100px;
object-fit: cover;
border: 0;
background: transparent;
}


.skin-citizen .wizlords-culture-grid .wizlords-culture-card {
.wizlords-wideimagetext-text {
grid-column: auto;
display: flex;
}
align-items: center;
justify-content: center;
width: 200px;
height: 40px;
font-size: 14px;
line-height: 1.3;
text-align: center;
}


.skin-citizen .wizlords-culture-row-feature {
/* ==========================================================================
grid-template-columns: 1fr;
  Useful Links List
gap: 14px;
  --------------------------------------------------------------------------
}
  Specific list styling for the external/useful links block.
  ========================================================================== */
.wizlords-useful-links,
.wizlords-mainpage-link-list,
.wizlords-mainpage-whatislarp-list {
margin: 8px 0 0 20px;
padding-left: 20px;
list-style: disc inside;
text-align: left;
}


.skin-citizen .wizlords-culture-row-icon img {
.wizlords-useful-links li,
margin: 0 auto;
.wizlords-mainpage-link-list li,
}
.wizlords-mainpage-whatislarp-list li {
margin-bottom: 6px;
display: list-item;
list-style: disc inside;
}


.skin-citizen .wizlords-culture-row-divider {
.wizlords-useful-links li::marker,
width: 80%;
.wizlords-mainpage-link-list li::marker,
height: 1px;
.wizlords-mainpage-whatislarp-list li::marker {
margin: 0 auto;
color: var(--wiz-text);
}
}


.skin-citizen .wizlords-culture-appearance {
/* What is LARP includes longer explanatory list items. Align its bullet edge
width: 100%;
  with the paragraph above instead of using the narrower Useful Links inset. */
}
#content.mw-body
#bodyContent
.mw-parser-output
.wizlords-mainpage-right
> ul.wizlords-mainpage-whatislarp-list,
#content.mw-body
#bodyContent
.mw-parser-output
.wizlords-mainpage-left
> ul.wizlords-mainpage-whatislarp-list {
box-sizing: border-box;
width: 100%;
margin: 8px 0 0;
padding-left: 18px;
list-style: disc outside;
text-align: left;
}


.skin-citizen .wizlords-culture-appearance img {
#content.mw-body
width: 100%;
#bodyContent
height: auto;
.mw-parser-output
aspect-ratio: 300 / 138;
.wizlords-mainpage-whatislarp-list
}
> li {
margin-left: 0;
list-style: disc outside;
}


.skin-citizen .wizlords-shared-classes {
/* Vector assigns separate colours to external and visited links. Keep the
box-sizing: border-box;
  shared homepage navigation-list component consistently orange. */
width: 100%;
#content.mw-body .wizlords-mainpage-link-list a,
min-width: 0;
#content.mw-body .wizlords-mainpage-link-list a:visited,
padding-right: 18px;
#content.mw-body .wizlords-mainpage-link-list a.external,
padding-left: 18px;
#content.mw-body .wizlords-mainpage-whatislarp-list a,
}
#content.mw-body .wizlords-mainpage-whatislarp-list a:visited,
#content.mw-body .wizlords-mainpage-whatislarp-list a.external {
color: var(--wiz-link);
font-weight: normal;
text-decoration: none;
}


.skin-citizen .wizlords-shared-classes ul {
#content.mw-body .wizlords-mainpage-link-list a:hover,
grid-auto-flow: row;
#content.mw-body .wizlords-mainpage-link-list a.external:hover,
grid-template-rows: none;
#content.mw-body .wizlords-mainpage-whatislarp-list a:hover,
grid-template-columns: 1fr;
#content.mw-body .wizlords-mainpage-whatislarp-list a.external:hover {
width: auto;
color: #ffd37a;
}
text-decoration: none;
}


.skin-citizen .wizlords-class-compare {
/* Vector's external-link indicator is a separate blue background SVG, so it
flex-direction: column;
  must be recoloured independently from the anchor text. */
}
#content.mw-body .wizlords-mainpage-link-list a.external,
#content.mw-body .wizlords-mainpage-whatislarp-list a.external {
background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='10' viewBox='0 0 10 10'%3E%3Cpath fill='%23ff942d' d='M6 1h3v3H8V2.71L4.35 6.35l-.7-.7L7.29 2H6V1z'/%3E%3Cpath fill='%23ff942d' d='M2 2h3v1H3v4h4V5h1v3H2V2z'/%3E%3C/svg%3E");
}


.skin-citizen .wizlords-class-category-table,
#content.mw-body .wizlords-mainpage-link-list a.external:hover,
.skin-citizen .wizlords-magic-table {
#content.mw-body .wizlords-mainpage-whatislarp-list a.external:hover {
min-width: 0;
background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='10' viewBox='0 0 10 10'%3E%3Cpath fill='%23ffd37a' d='M6 1h3v3H8V2.71L4.35 6.35l-.7-.7L7.29 2H6V1z'/%3E%3Cpath fill='%23ffd37a' d='M2 2h3v1H3v4h4V5h1v3H2V2z'/%3E%3C/svg%3E");
max-width: 100%;
}
}


.skin-citizen .wizlords-reputation-table.mw-collapsed {
/* ==========================================================================
width: 100%;
  Narrow Vector Fallback
min-width: 0;
  --------------------------------------------------------------------------
  When Vector is manually used below the small-desktop range, collapse its
  desktop sidebar dimensions and stack the homepage columns.
  ========================================================================== */
@media (max-width: 899px) {
:root {
--wiz-sidebar-width: 0px;
--wiz-sidebar-content-gap: 0px;
--wiz-content-width: 100%;
--wiz-page-gutter: 12px;
--wiz-content-padding: 14px;
}
}


.skin-citizen .wizlords-page-image.right,
.wizlords-mainpage-left,
.skin-citizen .wizlords-page-image.left {
.wizlords-mainpage-right {
float: none;
float: none;
width: 100%;
width: 100%;
margin: 0 0 18px;
padding-left: 0;
padding-right: 0;
}
}


.skin-citizen .ww-navbox-row {
}
display: block;
}


.skin-citizen .ww-navbox-group {
/* ==========================================================================
width: 100%;
  Final What Is LARP List Alignment
padding: 5px 10px;
  --------------------------------------------------------------------------
border-right: 0;
  Vector and shared article styles both assign margins and padding to direct
border-bottom: 1px solid var(--wiz-content-background);
  article lists. This final component-scoped reset guarantees that the What
text-align: center;
  is LARP bullet edge aligns with the paragraph above, regardless of which
}
  MediaWiki wrapper is present.
  ========================================================================== */
#content.mw-body #bodyContent ul.wizlords-mainpage-whatislarp-list {
box-sizing: border-box !important;
width: 100% !important;
max-width: none !important;
margin: 8px 0 0 !important;
padding-left: 1.15em !important;
list-style: disc outside !important;
text-align: left !important;
}


.skin-citizen .ww-navbox-list {
#content.mw-body #bodyContent ul.wizlords-mainpage-whatislarp-list > li {
padding: 6px 10px;
margin-left: 0 !important;
text-align: center;
padding-left: 0 !important;
}
list-style: disc outside !important;
}
}

Revision as of 18:15, 29 June 2026

/*
 * Wizards & Warlords Vector skin overrides.
 *
 * This file controls the Vector desktop shell, dark theme, top tabs, sidebar,
 * page title, footer, and desktop homepage layout.
 *
 * Some article typography remains below as a temporary compatibility copy.
 * Common.css now contains lower-specificity shared equivalents; retaining the
 * existing Vector selectors keeps the desktop cascade visually unchanged.
 */

/* ==========================================================================
   Responsive Layout Standard
   --------------------------------------------------------------------------
   Phone: 0-599px; tablet / large phone: 600-899px; small desktop /
   landscape tablet: 900-1199px; full desktop: 1200px+.
   Vector remains the desktop skin, but its narrow-window fallback follows the
   same viewport boundaries as the rest of the project.
   ========================================================================== */

/* ==========================================================================
   Theme And Layout Variables
   --------------------------------------------------------------------------
   Change these first when adjusting the overall site width, sidebar width,
   colours, background image, content padding, or logo size.
   ========================================================================== */
:root {
	--wiz-page-width: 1360px;
	--wiz-sidebar-width: 210px;
	--wiz-sidebar-left-inset: 8px;
	--wiz-sidebar-right-inset: 8px;
	--wiz-logo-size: 150px;
	--wiz-logo-edge-space: calc((var(--wiz-sidebar-width) - var(--wiz-sidebar-left-inset) - var(--wiz-sidebar-right-inset) - var(--wiz-logo-size)) / 2);
	--wiz-sidebar-content-gap: 0px;
	--wiz-page-gutter: 24px;
	--wiz-content-width: calc(var(--wiz-page-width) - var(--wiz-sidebar-width) - var(--wiz-page-gutter));
	--wiz-content-padding: 20px;
	--wiz-content-background: #222;
	--wiz-panel-solid-background: #0f0f0f;
	--wiz-panel-background: rgba(15, 15, 15, 0.82);
	--wiz-page-background: #111;
	--wiz-background-image: url("/mywiki/index.php/Special:Redirect/file/background_circle.jpeg");
	--wiz-content-border: #ff942d;
	--wiz-text: #d2d2d2;
	--wiz-link: #ff942d;
	--wiz-heading: #e7e1d4;
}

/* ==========================================================================
   Full Page Background
   --------------------------------------------------------------------------
   The background image is attached to the whole browser viewport. The image
   keeps its aspect ratio and crops instead of stretching or skewing.
   ========================================================================== */
html {
	min-height: 100%;
	background-color: var(--wiz-page-background);
	background-image: var(--wiz-background-image);
	background-repeat: no-repeat;
	background-position: center center;
	background-size: cover;
	background-attachment: fixed;
}

/* ==========================================================================
   Centered Wiki Shell And Panel Tint
   --------------------------------------------------------------------------
   The body is the centered 1360px wiki shell. The body::before layer paints
   the transparent sidebar, right gutter, and header tint without stacking
   multiple semi-transparent Vector wrappers on top of each other.
   ========================================================================== */
body {
	position: relative;
	z-index: 0;
	width: min(100%, var(--wiz-page-width));
	min-height: 100vh;
	margin: 0 auto;
	background: transparent;
	color: var(--wiz-text);
}

body::before {
	content: "";
	position: fixed;
	z-index: -1;
	top: 0;
	left: 50%;
	width: min(100%, var(--wiz-page-width));
	height: 79px;
	transform: translateX(-50%);
	pointer-events: none;
	background: linear-gradient(
		to right,
		var(--wiz-panel-background) 0,
		var(--wiz-panel-background) calc(var(--wiz-sidebar-width) + var(--wiz-sidebar-content-gap)),
		var(--wiz-panel-background) calc(100% - var(--wiz-page-gutter)),
		var(--wiz-panel-background) calc(100% - var(--wiz-page-gutter)),
		var(--wiz-panel-background) 100%
	);
}

/* ==========================================================================
   Vector Wrapper Cleanup
   --------------------------------------------------------------------------
   Vector has several overlapping header/sidebar wrappers. These rules remove
   their default backgrounds, gradients, shadows, and borders so our single
   body::before tint layer is the only panel background.
   ========================================================================== */
#mw-page-base {
	background: transparent;
}

#mw-head-base,
#mw-navigation,
#mw-head {
	background: transparent;
	background-image: none;
}

#mw-panel {
	background: var(--wiz-panel-background);
	background-image: none;
}

#mw-head {
	border-bottom: 0;
	background-image: none;
}

#mw-head-base {
	border-bottom: 0;
	box-shadow: none;
	outline: 0;
	opacity: 1;
}

#mw-head-base::before,
#mw-head-base::after {
	content: none;
	display: none;
}

/* ==========================================================================
   Header Navigation Alignment
   --------------------------------------------------------------------------
   These align the left page tabs, right action tabs, login links, and search
   box with the content area and right gutter.
   ========================================================================== */
#right-navigation {
	border-bottom: 0;
	margin-right: var(--wiz-page-gutter);
}

#left-navigation {
	border-bottom: 0;
	margin-left: calc(var(--wiz-sidebar-width) + var(--wiz-sidebar-content-gap));
}

#p-personal {
	right: var(--wiz-page-gutter);
}

#p-search {
	margin-right: 0;
}

/* ==========================================================================
   Sidebar And Logo
   --------------------------------------------------------------------------
   The sidebar panel is 210px wide. The logo is centered inside the usable
   sidebar area after accounting for the small left/right inset.
   ========================================================================== */
#mw-panel {
	width: var(--wiz-sidebar-width);
	background: transparent;
	color: var(--wiz-text);
}

#p-logo {
	top: 0;
	left: var(--wiz-sidebar-left-inset);
	width: calc(var(--wiz-sidebar-width) - var(--wiz-sidebar-left-inset) - var(--wiz-sidebar-right-inset));
	height: calc(var(--wiz-logo-size) + var(--wiz-sidebar-left-inset) + var(--wiz-logo-edge-space));
	margin: 0;
}

#p-logo a {
	display: block;
	width: 100%;
	height: 100%;
	background-position: center calc(var(--wiz-sidebar-left-inset) + var(--wiz-logo-edge-space));
	background-size: var(--wiz-logo-size) var(--wiz-logo-size);
}

#mw-panel .portal,
#mw-panel .vector-menu-portal {
	margin-right: 12px;
}

/* ==========================================================================
   Content And Footer Shell
   --------------------------------------------------------------------------
   The content and footer share the same width and left/right alignment. The
   content gets the solid dark background; the footer uses the transparent
   panel tint.
   ========================================================================== */
#content.mw-body {
	box-sizing: border-box;
	width: var(--wiz-content-width);
	margin-left: calc(var(--wiz-sidebar-width) + var(--wiz-sidebar-content-gap));
	margin-right: var(--wiz-page-gutter);
	padding: var(--wiz-content-padding);
	border: 1px solid var(--wiz-content-border);
	background: var(--wiz-content-background);
	color: var(--wiz-text);
	box-shadow:
		calc(-1 * (var(--wiz-sidebar-width) + var(--wiz-sidebar-content-gap))) 0 0 0 var(--wiz-panel-background),
		var(--wiz-page-gutter) 0 0 0 var(--wiz-panel-background);
}

#footer {
	position: relative;
	box-sizing: border-box;
	width: var(--wiz-content-width);
	margin-left: calc(var(--wiz-sidebar-width) + var(--wiz-sidebar-content-gap));
	margin-right: var(--wiz-page-gutter);
	min-height: 112px;
	padding-top: 24px;
	padding-bottom: 24px;
	background: var(--wiz-panel-background);
	color: var(--wiz-text);
	box-shadow:
		calc(-1 * (var(--wiz-sidebar-width) + var(--wiz-sidebar-content-gap))) 0 0 0 var(--wiz-panel-background),
		var(--wiz-page-gutter) 0 0 0 var(--wiz-panel-background);
}

#footer-icons {
	position: absolute;
	top: 50%;
	right: 0;
	transform: translateY(-50%);
}

/* ==========================================================================
   Link Colours
   --------------------------------------------------------------------------
   Global link colour rules for content, sidebar, header, and footer.
   ========================================================================== */
a,
a:visited,
#mw-panel a,
#mw-head a,
#footer a {
	color: var(--wiz-link);
}

a:hover,
#mw-panel a:hover,
#mw-head a:hover,
#footer a:hover {
	color: #ffd37a;
}

#left-navigation a,
#right-navigation a,
#p-personal a {
	color: var(--wiz-link);
}

/* ==========================================================================
   Top Tabs And Vector Menu Resets
   --------------------------------------------------------------------------
   These rules restyle the Vector page/action tabs. Inactive tabs are
   transparent so they blend into the header. Selected tabs match the content
   background and use a small cover strip to hide the bottom border cleanly.
   ========================================================================== */
#left-navigation li,
#right-navigation li,
.vectorTabs li,
.vectorMenu h3 {
	background: transparent;
	background-image: none;
	border: 0;
}

#p-namespaces .vector-menu-content,
#p-namespaces .vector-menu-content-list {
	margin-left: 0;
	padding-left: 0;
}

#p-namespaces {
	padding-left: 0;
}

#left-navigation li::before,
#left-navigation li::after,
#right-navigation li::before,
#right-navigation li::after,
.vectorTabs li::before,
.vectorTabs li::after,
.vectorMenu h3::before,
.vectorMenu h3::after {
	background: none;
	background-image: none;
	border: 0;
	box-shadow: none;
	content: none;
}

#left-navigation li a,
#right-navigation li a,
.vectorTabs li a,
.vectorMenu h3 {
	background: transparent;
	background-image: none;
	border: 0;
	border-left: 1px solid var(--wiz-content-border);
	border-bottom: 1px solid var(--wiz-content-border);
	color: var(--wiz-link);
}

#left-navigation li a span,
#right-navigation li a span,
.vectorTabs li a span,
.vectorMenu h3 span {
	background: transparent;
	background-image: none;
}

#left-navigation .vectorTabs,
#right-navigation .vectorTabs,
#left-navigation .vector-menu-tabs,
#right-navigation .vector-menu-tabs,
#left-navigation .vector-menu-tabs-legacy,
#right-navigation .vector-menu-tabs-legacy,
#left-navigation .vectorTabs ul,
#right-navigation .vectorTabs ul,
#left-navigation .vector-menu-tabs ul,
#right-navigation .vector-menu-tabs ul,
#left-navigation .vectorTabs span,
#right-navigation .vectorTabs span,
#left-navigation .vector-menu-tabs span,
#right-navigation .vector-menu-tabs span,
#left-navigation .vectorTabs li,
#right-navigation .vectorTabs li,
#left-navigation .vector-menu-tabs li,
#right-navigation .vector-menu-tabs li,
#left-navigation .vectorTabs li a,
#right-navigation .vectorTabs li a,
#left-navigation .vector-menu-tabs li a,
#right-navigation .vector-menu-tabs li a,
#right-navigation .vectorMenu,
#right-navigation .vectorMenu h3,
#right-navigation .vectorMenu h3 span,
#right-navigation .vector-menu-heading,
#right-navigation .vector-menu-heading span,
#right-navigation .vector-menu-heading-label,
#p-cactions-label,
#p-cactions-label span {
	background-image: none !important;
	background: transparent;
	box-shadow: none;
}

#left-navigation li:last-child a,
#right-navigation li:last-child a {
	border-right: 1px solid var(--wiz-content-border);
}

/* The watch/unwatch star has different Vector sizing, so it is normalised here. */
#ca-watch a,
#ca-unwatch a {
	box-sizing: border-box;
	width: 32px;
	height: 40px;
	padding-top: 16.25px;
	padding-right: 0;
	padding-bottom: 0;
	padding-left: 0;
	background-position: center center;
	line-height: 18px;
}

#ca-watch,
#ca-unwatch {
	height: 40px;
	line-height: 18px;
}

#right-navigation li.mw-watchlink.icon {
	top: auto;
	margin: 0;
	padding: 0;
	line-height: inherit;
}

#right-navigation li.mw-watchlink.icon a {
	margin: 0;
	line-height: inherit;
}

#ca-watch a span,
#ca-unwatch a span {
	position: absolute;
	overflow: hidden;
	width: 1px;
	height: 1px;
	clip: rect(1px, 1px, 1px, 1px);
	white-space: nowrap;
}

/* Selected tabs visually open into the content area below. */
#left-navigation li.selected a,
#right-navigation li.selected a,
.vectorTabs li.selected a {
	position: relative;
	z-index: 2;
	background: var(--wiz-content-background);
	background-image: none;
	border-bottom: 1px solid var(--wiz-content-border);
	color: var(--wiz-heading);
}

#left-navigation li.selected a::after,
#right-navigation li.selected a::after,
.vectorTabs li.selected a::after {
	content: "";
	position: absolute;
	bottom: -1px;
	left: 0;
	width: 100%;
	height: 1px;
	background: var(--wiz-content-background);
	pointer-events: none;
}

/* Shared border colour for the tab row. */
#left-navigation li,
#right-navigation li,
#p-search,
.vectorTabs,
.vectorMenu {
	border-color: var(--wiz-content-border);
}

#searchInput {
	background: rgba(0, 0, 0, 0.3);
	border-color: var(--wiz-race-table-border-colour, #4d4d4d);
	color: var(--wiz-text);
}

#searchInput::placeholder {
	color: #b9b3a8;
}

/* ==========================================================================
   Page Title And Body Content
   --------------------------------------------------------------------------
   The first heading sits inside the content area with its own spacing. On the
   main page only, "Main Page" is visually replaced with the wiki title.
   ========================================================================== */
#firstHeading.firstHeading.mw-first-heading {
	box-sizing: border-box;
	display: block !important;
	height: 40px;
	margin: 12px 0 8px;
	padding: 0;
	border-bottom: 1px solid var(--wiz-content-border);
	color: var(--wiz-heading);
	font-size: 32px;
	font-weight: normal;
	line-height: 40px;
}

body.page-Main_Page #firstHeading.firstHeading.mw-first-heading {
	font-size: 0;
}

body.page-Main_Page #firstHeading.firstHeading.mw-first-heading::before {
	content: "Wizards and Warlords Wiki";
	font-size: 32px;
}

#bodyContent {
	clear: both;
	display: block;
	margin: 0;
	padding: 0;
	border: 0;
	font-size: 14px;
	line-height: 1.6;
}

/* Normal article lists generated by * and # wikitext. */
#content.mw-body #bodyContent .mw-parser-output > ul,
#content.mw-body #bodyContent .mw-parser-output > ol,
#content.mw-body #bodyContent .toc-page > ul,
#content.mw-body #bodyContent .toc-page > ol {
	margin: 8px 0 12px 28px;
	padding-left: 20px;
	text-align: left;
}

#content.mw-body #bodyContent .mw-parser-output > ul,
#content.mw-body #bodyContent .toc-page > ul {
	list-style: disc outside;
}

#content.mw-body #bodyContent .mw-parser-output ul ul,
#content.mw-body #bodyContent .toc-page > ul ul {
	margin: 4px 0 6px 22px;
	padding-left: 18px;
	list-style: disc outside;
}

#content.mw-body #bodyContent .mw-parser-output > ol,
#content.mw-body #bodyContent .toc-page > ol {
	list-style: decimal outside;
}

#content.mw-body #bodyContent .mw-parser-output > ul > li,
#content.mw-body #bodyContent .mw-parser-output > ol > li,
#content.mw-body #bodyContent .toc-page > ul > li,
#content.mw-body #bodyContent .toc-page > ol > li {
	display: list-item;
	margin-bottom: 4px;
}

#content.mw-body #bodyContent .mw-parser-output ul ul > li,
#content.mw-body #bodyContent .toc-page > ul ul > li {
	display: list-item;
	margin-bottom: 3px;
	list-style: disc outside;
}

#content.mw-body #bodyContent .mw-parser-output li::marker {
	color: var(--wiz-text);
}

/* The generated TOC sits inside .mw-parser-output, so undo article list rules there. */
#content.mw-body #bodyContent .toc-page #toc ul,
#content.mw-body #bodyContent .toc-page .toc ul {
	margin: 0;
	padding: 0;
	list-style: none;
}

#content.mw-body #bodyContent .toc-page #toc li,
#content.mw-body #bodyContent .toc-page .toc li {
	display: block;
	list-style: none;
}

#content.mw-body #bodyContent .toc-page #toc li::marker,
#content.mw-body #bodyContent .toc-page .toc li::marker {
	content: "";
}

#content.mw-body #bodyContent .toc-page #toc li ul,
#content.mw-body #bodyContent .toc-page .toc li ul {
	margin-left: 12px;
	padding-left: 10px;
}

#content.mw-body #bodyContent .toc-page #toc li li,
#content.mw-body #bodyContent .toc-page .toc li li {
	margin-left: 0;
	padding: 2px 0;
}

#content.mw-body #bodyContent .toc-page #toc .toclevel-3,
#content.mw-body #bodyContent .toc-page #toc .toclevel-4,
#content.mw-body #bodyContent .toc-page #toc .toclevel-5,
#content.mw-body #bodyContent .toc-page #toc .toclevel-6,
#content.mw-body #bodyContent .toc-page .toc .toclevel-3,
#content.mw-body #bodyContent .toc-page .toc .toclevel-4,
#content.mw-body #bodyContent .toc-page .toc .toclevel-5,
#content.mw-body #bodyContent .toc-page .toc .toclevel-6 {
	display: none !important;
}

/* ==========================================================================
   Inline Article Table Of Contents
   --------------------------------------------------------------------------
   Articles no longer need a .toc-page wrapper because that wrapper prevents
   MobileFormatter from splitting headings into mobile collapsible sections.
   Style Vector's generated #toc directly so it retains the previous floated
   desktop appearance and allows article content to wrap beside it.
   ========================================================================== */
#content.mw-body #bodyContent #toc {
	float: right;
	clear: right;
	box-sizing: border-box;
	width: max-content;
	min-width: 220px;
	max-width: 320px;
	margin: 0 0 16px 24px;
	padding: 16px 24px;
	border: 1px solid var(--wiz-content-border);
	background: var(--wiz-panel-solid-background);
	color: var(--wiz-text);
	font-size: 0.95em;
}

#content.mw-body #bodyContent #toc:has(.toctogglecheckbox:checked) {
	width: fit-content;
	min-width: 0;
	padding: 12px 16px;
}

#content.mw-body #bodyContent #toc .toctitle {
	margin: 0 0 10px;
	color: var(--wiz-text);
	text-align: center;
}

#content.mw-body
#bodyContent
#toc:has(.toctogglecheckbox:checked)
.toctitle {
	margin: 0;
	line-height: 1.4;
}

#content.mw-body #bodyContent #toc .toctitle h2 {
	display: inline;
	margin: 0;
	padding: 0;
	border: 0;
	color: var(--wiz-text);
	font-family: inherit;
	font-size: 14px;
	font-weight: bold;
	line-height: 1.4;
}

#content.mw-body #bodyContent #toc .toctoggle {
	color: var(--wiz-text);
	font-size: 12px;
}

#content.mw-body #bodyContent #toc .toctoggle a {
	color: var(--wiz-link);
	text-decoration: none;
}

#content.mw-body #bodyContent #toc ul {
	margin: 0;
	padding: 0;
	list-style: none;
}

#content.mw-body #bodyContent #toc li {
	display: block;
	margin: 0;
	padding: 0;
	list-style: none;
	line-height: 1.35;
}

#content.mw-body #bodyContent #toc > ul > li {
	padding: 2px 0;
}

#content.mw-body #bodyContent #toc li ul {
	margin: 0 0 0 12px;
	padding: 0 0 0 10px;
	border-left: 1px dotted var(--wiz-content-border);
}

#content.mw-body #bodyContent #toc li li {
	margin: 0;
	padding: 2px 0;
	border-left: 0;
}

#content.mw-body #bodyContent #toc li::marker {
	content: "";
}

#content.mw-body #bodyContent #toc .tocnumber {
	display: none;
}

#content.mw-body #bodyContent #toc a {
	color: var(--wiz-link);
	text-decoration: none;
	overflow-wrap: anywhere;
}

#content.mw-body #bodyContent #toc a:hover {
	color: #ffd37a;
	text-decoration: none;
}

#content.mw-body #bodyContent #toc .toclevel-3,
#content.mw-body #bodyContent #toc .toclevel-4,
#content.mw-body #bodyContent #toc .toclevel-5,
#content.mw-body #bodyContent #toc .toclevel-6 {
	display: none !important;
}

/* Article section headings generated by == through ====== wikitext. */
#content.mw-body #bodyContent .mw-heading {
	box-sizing: border-box;
	margin: 20px 0 10px;
	padding: 0;
	border-bottom: 0;
	color: var(--wiz-heading);
	text-align: left;
	text-decoration: none;
}

#content.mw-body #bodyContent .mw-heading2 {
	height: 30px;
	margin-top: 21px;
	margin-bottom: 5px;
	border-bottom: 1px solid var(--wiz-content-border);
}

#content.mw-body #bodyContent .mw-heading3 {
	height: 28px;
	margin-top: 5px;
	margin-bottom: 10px;
	padding-top: 8px;
}

#content.mw-body #bodyContent .mw-heading4 {
	height: 23px;
	margin-top: 4px;
	margin-bottom: 10px;
	padding-top: 7px;
}

#content.mw-body #bodyContent .mw-heading h2,
#content.mw-body #bodyContent .mw-heading h3,
#content.mw-body #bodyContent .mw-heading h4,
#content.mw-body #bodyContent .mw-heading h5,
#content.mw-body #bodyContent .mw-heading h6 {
	margin: 0;
	padding: 0;
	border-bottom: 0;
	color: var(--wiz-heading);
	text-align: left;
	text-decoration: none;
}

#content.mw-body #bodyContent .mw-heading h2 {
	font-weight: normal;
}

#content.mw-body #bodyContent .mw-heading h3,
#content.mw-body #bodyContent .mw-heading h4,
#content.mw-body #bodyContent .mw-heading h5,
#content.mw-body #bodyContent .mw-heading h6 {
	font-weight: bold;
}

#content.mw-body #bodyContent > h2:not(.center),
#content.mw-body #bodyContent .toc-page > h2:not(.center) {
	box-sizing: border-box;
	height: 30px;
	margin: 21px 0 5px;
	padding: 0;
	border-bottom: 1px solid var(--wiz-content-border);
	color: var(--wiz-heading);
	font-weight: normal;
	text-align: left;
	text-decoration: none;
}

#content.mw-body #bodyContent > h3:not(.center),
#content.mw-body #bodyContent > h4:not(.center),
#content.mw-body #bodyContent > h5:not(.center),
#content.mw-body #bodyContent > h6:not(.center),
#content.mw-body #bodyContent .toc-page > h3:not(.center),
#content.mw-body #bodyContent .toc-page > h4:not(.center),
#content.mw-body #bodyContent .toc-page > h5:not(.center),
#content.mw-body #bodyContent .toc-page > h6:not(.center) {
	box-sizing: border-box;
	margin: 20px 0 10px;
	padding: 0;
	border-bottom: 0;
	color: var(--wiz-heading);
	font-weight: bold;
	text-align: left;
	text-decoration: none;
}

#content.mw-body #bodyContent > h3:not(.center),
#content.mw-body #bodyContent .toc-page > h3:not(.center) {
	height: 28px;
	margin-top: 5px;
	padding-top: 8px;
}

#content.mw-body #bodyContent > h4:not(.center),
#content.mw-body #bodyContent .toc-page > h4:not(.center) {
	height: 23px;
	margin-top: 4px;
	padding-top: 7px;
}

#content.mw-body #bodyContent .mw-heading h2,
#content.mw-body #bodyContent > h2:not(.center),
#content.mw-body #bodyContent .toc-page > h2:not(.center) {
	font-size: 24px;
	line-height: 30px;
}

#content.mw-body #bodyContent .mw-heading h3,
#content.mw-body #bodyContent > h3:not(.center),
#content.mw-body #bodyContent .toc-page > h3:not(.center) {
	font-size: 18px;
	line-height: 24px;
}

#content.mw-body #bodyContent .mw-heading h4,
#content.mw-body #bodyContent > h4:not(.center),
#content.mw-body #bodyContent .toc-page > h4:not(.center) {
	font-size: 14px;
	line-height: 1.6;
}

#content.mw-body #bodyContent .mw-heading h5,
#content.mw-body #bodyContent .mw-heading h6,
#content.mw-body #bodyContent > h5:not(.center),
#content.mw-body #bodyContent > h6:not(.center),
#content.mw-body #bodyContent .toc-page > h5:not(.center),
#content.mw-body #bodyContent .toc-page > h6:not(.center) {
	font-size: 15px;
	line-height: 21px;
}

#content.mw-body #bodyContent .mw-heading .mw-headline,
#content.mw-body #bodyContent > h2:not(.center) .mw-headline,
#content.mw-body #bodyContent > h3:not(.center) .mw-headline,
#content.mw-body #bodyContent > h4:not(.center) .mw-headline,
#content.mw-body #bodyContent > h5:not(.center) .mw-headline,
#content.mw-body #bodyContent > h6:not(.center) .mw-headline,
#content.mw-body #bodyContent .toc-page > h2:not(.center) .mw-headline,
#content.mw-body #bodyContent .toc-page > h3:not(.center) .mw-headline,
#content.mw-body #bodyContent .toc-page > h4:not(.center) .mw-headline,
#content.mw-body #bodyContent .toc-page > h5:not(.center) .mw-headline,
#content.mw-body #bodyContent .toc-page > h6:not(.center) .mw-headline,
#content.mw-body #bodyContent .mw-heading a,
#content.mw-body #bodyContent > h2:not(.center) a,
#content.mw-body #bodyContent > h3:not(.center) a,
#content.mw-body #bodyContent > h4:not(.center) a,
#content.mw-body #bodyContent > h5:not(.center) a,
#content.mw-body #bodyContent > h6:not(.center) a,
#content.mw-body #bodyContent .toc-page > h2:not(.center) a,
#content.mw-body #bodyContent .toc-page > h3:not(.center) a,
#content.mw-body #bodyContent .toc-page > h4:not(.center) a,
#content.mw-body #bodyContent .toc-page > h5:not(.center) a,
#content.mw-body #bodyContent .toc-page > h6:not(.center) a {
	border-bottom: 0;
	color: var(--wiz-heading);
	text-decoration: none;
}

#content.mw-body #bodyContent .mw-heading .mw-editsection {
	color: var(--wiz-link);
	font-size: 12px;
	line-height: 1;
	text-decoration: none;
}

#content.mw-body #bodyContent .mw-heading .mw-editsection a {
	color: var(--wiz-link);
	text-decoration: none;
}

/* ==========================================================================
   Homepage Two-Column Layout
   --------------------------------------------------------------------------
   Homepage sections are arranged as:
   left block, right block, clear; then repeat for each row.
   ========================================================================== */
.wizlords-mainpage-left {
	box-sizing: border-box;
	float: left;
	width: calc(50% - 7.5px);
	padding-left: 15px;
	padding-right: 15px;
}

.wizlords-mainpage-right {
	box-sizing: border-box;
	float: right;
	width: calc(50% - 7.5px);
	padding-left: 15px;
	padding-right: 15px;
}

.wizlords-mainpage-clear {
	clear: both;
}

/* Homepage section headings. */
.wizlords-mainpage-left > h2.center,
.wizlords-mainpage-right > h2.center {
	margin: 20px 0 10px;
	padding: 0;
	border-bottom: 1px solid var(--wiz-content-border);
	color: var(--wiz-heading);
	font-size: 24px;
	font-weight: normal;
	line-height: 30px;
	text-align: center;
}

.wizlords-mainpage-left > h2.center .mw-headline,
.wizlords-mainpage-right > h2.center .mw-headline {
	text-decoration: none;
}

.wizlords-mainpage-left > h2.center a,
.wizlords-mainpage-right > h2.center a {
	border-bottom: 0;
	text-decoration: none;
}

.wizlords-mainpage-left > .center,
.wizlords-mainpage-right > .center,
.wizlords-mainpage-items {
	text-align: center;
}

.wizlords-mainpage-left > .center > p,
.wizlords-mainpage-right > .center > p {
	margin: 0 0 10px;
}

/* Normal text lists inside homepage blocks. */
.wizlords-mainpage-left > ul,
.wizlords-mainpage-right > ul,
.wizlords-mainpage-left > .center > ul,
.wizlords-mainpage-right > .center > ul {
	margin: 8px 0 0 20px;
	padding-left: 20px;
	list-style: disc inside;
	text-align: left;
}

.wizlords-mainpage-left > ol,
.wizlords-mainpage-right > ol,
.wizlords-mainpage-left > .center > ol,
.wizlords-mainpage-right > .center > ol {
	margin: 8px 0 0 20px;
	padding-left: 20px;
	list-style: decimal inside;
	text-align: left;
}

.wizlords-mainpage-left li,
.wizlords-mainpage-right li {
	display: list-item;
	margin-bottom: 6px;
}

.wizlords-mainpage-left li::marker,
.wizlords-mainpage-right li::marker {
	color: var(--wiz-text);
}

/* ==========================================================================
   Homepage Square Image Links
   --------------------------------------------------------------------------
   Used for 100x100 icon links with a fixed-height text label underneath.
   ========================================================================== */
.wizlords-imagetext {
	display: inline-block;
	box-sizing: border-box;
	width: 100px;
	min-height: 122px;
	margin: 5px;
	vertical-align: top;
	text-align: center;
}

.wizlords-imagetext-image {
	width: 100px;
	height: 100px;
}

.wizlords-imagetext-image img {
	display: block;
	width: 100px;
	height: 100px;
	object-fit: contain;
	border: 0;
	background: transparent;
}

.wizlords-imagetext-text {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100px;
	height: 40px;
	font-size: 14px;
	line-height: 1.3;
	text-align: center;
}

/* ==========================================================================
   Homepage Wide Image Links
   --------------------------------------------------------------------------
   Used for 200x100 banner-style image links, such as Weekly Battle Games,
   World Lore, and Events.
   ========================================================================== */
.wizlords-wideimagetext {
	display: inline-block;
	box-sizing: border-box;
	width: 200px;
	margin: 10px 12px;
	vertical-align: top;
	text-align: center;
}

.wizlords-wideimagetext-grid {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 10px 24px;
}

.wizlords-wideimagetext-grid .wizlords-wideimagetext {
	margin: 0;
}

.wizlords-wideimagetext-image {
	width: 200px;
	height: 100px;
}

.wizlords-wideimagetext-image img {
	display: block;
	width: 200px;
	height: 100px;
	object-fit: cover;
	border: 0;
	background: transparent;
}

.wizlords-wideimagetext-text {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 200px;
	height: 40px;
	font-size: 14px;
	line-height: 1.3;
	text-align: center;
}

/* ==========================================================================
   Useful Links List
   --------------------------------------------------------------------------
   Specific list styling for the external/useful links block.
   ========================================================================== */
.wizlords-useful-links,
.wizlords-mainpage-link-list,
.wizlords-mainpage-whatislarp-list {
	margin: 8px 0 0 20px;
	padding-left: 20px;
	list-style: disc inside;
	text-align: left;
}

.wizlords-useful-links li,
.wizlords-mainpage-link-list li,
.wizlords-mainpage-whatislarp-list li {
	margin-bottom: 6px;
	display: list-item;
	list-style: disc inside;
}

.wizlords-useful-links li::marker,
.wizlords-mainpage-link-list li::marker,
.wizlords-mainpage-whatislarp-list li::marker {
	color: var(--wiz-text);
}

/* What is LARP includes longer explanatory list items. Align its bullet edge
   with the paragraph above instead of using the narrower Useful Links inset. */
#content.mw-body
#bodyContent
.mw-parser-output
.wizlords-mainpage-right
> ul.wizlords-mainpage-whatislarp-list,
#content.mw-body
#bodyContent
.mw-parser-output
.wizlords-mainpage-left
> ul.wizlords-mainpage-whatislarp-list {
	box-sizing: border-box;
	width: 100%;
	margin: 8px 0 0;
	padding-left: 18px;
	list-style: disc outside;
	text-align: left;
}

#content.mw-body
#bodyContent
.mw-parser-output
.wizlords-mainpage-whatislarp-list
> li {
	margin-left: 0;
	list-style: disc outside;
}

/* Vector assigns separate colours to external and visited links. Keep the
   shared homepage navigation-list component consistently orange. */
#content.mw-body .wizlords-mainpage-link-list a,
#content.mw-body .wizlords-mainpage-link-list a:visited,
#content.mw-body .wizlords-mainpage-link-list a.external,
#content.mw-body .wizlords-mainpage-whatislarp-list a,
#content.mw-body .wizlords-mainpage-whatislarp-list a:visited,
#content.mw-body .wizlords-mainpage-whatislarp-list a.external {
	color: var(--wiz-link);
	font-weight: normal;
	text-decoration: none;
}

#content.mw-body .wizlords-mainpage-link-list a:hover,
#content.mw-body .wizlords-mainpage-link-list a.external:hover,
#content.mw-body .wizlords-mainpage-whatislarp-list a:hover,
#content.mw-body .wizlords-mainpage-whatislarp-list a.external:hover {
	color: #ffd37a;
	text-decoration: none;
}

/* Vector's external-link indicator is a separate blue background SVG, so it
   must be recoloured independently from the anchor text. */
#content.mw-body .wizlords-mainpage-link-list a.external,
#content.mw-body .wizlords-mainpage-whatislarp-list a.external {
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='10' viewBox='0 0 10 10'%3E%3Cpath fill='%23ff942d' d='M6 1h3v3H8V2.71L4.35 6.35l-.7-.7L7.29 2H6V1z'/%3E%3Cpath fill='%23ff942d' d='M2 2h3v1H3v4h4V5h1v3H2V2z'/%3E%3C/svg%3E");
}

#content.mw-body .wizlords-mainpage-link-list a.external:hover,
#content.mw-body .wizlords-mainpage-whatislarp-list a.external:hover {
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='10' viewBox='0 0 10 10'%3E%3Cpath fill='%23ffd37a' d='M6 1h3v3H8V2.71L4.35 6.35l-.7-.7L7.29 2H6V1z'/%3E%3Cpath fill='%23ffd37a' d='M2 2h3v1H3v4h4V5h1v3H2V2z'/%3E%3C/svg%3E");
}

/* ==========================================================================
   Narrow Vector Fallback
   --------------------------------------------------------------------------
   When Vector is manually used below the small-desktop range, collapse its
   desktop sidebar dimensions and stack the homepage columns.
   ========================================================================== */
@media (max-width: 899px) {
	:root {
		--wiz-sidebar-width: 0px;
		--wiz-sidebar-content-gap: 0px;
		--wiz-content-width: 100%;
		--wiz-page-gutter: 12px;
		--wiz-content-padding: 14px;
	}

	.wizlords-mainpage-left,
	.wizlords-mainpage-right {
		float: none;
		width: 100%;
		padding-left: 0;
		padding-right: 0;
	}

}

/* ==========================================================================
   Final What Is LARP List Alignment
   --------------------------------------------------------------------------
   Vector and shared article styles both assign margins and padding to direct
   article lists. This final component-scoped reset guarantees that the What
   is LARP bullet edge aligns with the paragraph above, regardless of which
   MediaWiki wrapper is present.
   ========================================================================== */
#content.mw-body #bodyContent ul.wizlords-mainpage-whatislarp-list {
	box-sizing: border-box !important;
	width: 100% !important;
	max-width: none !important;
	margin: 8px 0 0 !important;
	padding-left: 1.15em !important;
	list-style: disc outside !important;
	text-align: left !important;
}

#content.mw-body #bodyContent ul.wizlords-mainpage-whatislarp-list > li {
	margin-left: 0 !important;
	padding-left: 0 !important;
	list-style: disc outside !important;
}