MediaWiki:Citizen.css: Difference between revisions

From Wizards and Warlords
Jump to navigation Jump to search
No edit summary
No edit summary
 
(31 intermediate revisions by the same user not shown)
Line 128: Line 128:
.skin-citizen .citizen-footer a:hover {
.skin-citizen .citizen-footer a:hover {
color: #ffd37a;
color: #ffd37a;
}
/* Main Page banner swap for Citizen/tablet/mobile.
  The no-background banner is used through the tablet range, then the desktop
  parchment banner returns at the 900px layout breakpoint. */
.skin-citizen .page-banner-desktop {
display: block !important;
}
.skin-citizen .page-banner-mobile {
display: none !important;
}
@media (max-width: 899px) {
.skin-citizen .page-banner {
aspect-ratio: 300 / 141;
margin-bottom: 0;
background-image: url("/index.php/Special:Redirect/file/Wizlords_banner_nobg.png");
background-repeat: no-repeat;
background-position: center center;
background-size: contain;
}
.skin-citizen .page-banner-desktop {
display: none !important;
}
.skin-citizen .page-banner-mobile {
display: none !important;
}
}
@media (min-width: 900px) {
.skin-citizen .page-banner {
aspect-ratio: auto;
background-image: none;
}
.skin-citizen .page-banner-desktop {
display: block !important;
}
.skin-citizen .page-banner-mobile {
display: none !important;
}
}
}


Line 138: Line 183:
width: 100%;
width: 100%;
max-width: 100%;
max-width: 100%;
}
.skin-citizen .citizen-overflow-wrapper:has(.wizlords-class-category-table) {
width: min(100%, 640px);
max-width: 640px;
margin-right: auto;
margin-left: auto;
overflow-x: visible;
border: 0;
border-radius: 0;
box-shadow: none;
}
.skin-citizen .citizen-overflow-wrapper:has(.wizlords-class-category-table)
.wizlords-class-category-table {
width: 100%;
min-width: 0;
max-width: 640px;
}
.skin-citizen .citizen-overflow-wrapper:has(.wizlords-example-table) {
width: min(100%, 600px);
max-width: 600px;
margin-right: auto;
margin-left: auto;
overflow-x: visible;
border: 0;
border-radius: 0;
box-shadow: none;
}
.skin-citizen .citizen-overflow-wrapper:has(.wizlords-example-table.mw-collapsed) {
background: transparent;
}
.skin-citizen .citizen-overflow-wrapper:has(.wizlords-example-table)
.wizlords-example-table {
width: 100%;
min-width: 0;
max-width: 600px;
}
.skin-citizen .citizen-overflow-wrapper:has(.wizlords-example-table-full-heal) {
width: min(100%, 500px);
max-width: 500px;
}
.skin-citizen .citizen-overflow-wrapper:has(.wizlords-example-table-full-heal)
.wizlords-example-table-full-heal {
max-width: 500px;
}
.skin-citizen .citizen-overflow-wrapper:has(.wizlords-reward-table) {
width: fit-content;
max-width: 100%;
margin-right: auto;
margin-left: 0;
overflow-x: visible;
border: 0;
border-radius: 0;
box-shadow: none;
background: transparent;
}
.skin-citizen .citizen-overflow-wrapper:has(.wizlords-reward-table)
.wizlords-reward-table {
min-width: 0;
}
.skin-citizen .citizen-overflow-wrapper:has(.wizlords-example-table)
.wizlords-example-table caption {
display: table-caption !important;
caption-side: top;
width: auto !important;
max-width: none !important;
text-align: center !important;
}
}


Line 178: Line 299:
+ .collapsible-block.open-block {
+ .collapsible-block.open-block {
margin-top: 12px;
margin-top: 12px;
}
/* ==========================================================================
  Citizen Custom Collapsible Boxes
  --------------------------------------------------------------------------
  Desktop Vector keeps the standard MediaWiki [Expand] / [Collapse] text from
  Common.css. Citizen uses a compact chevron control so custom collapsible
  boxes visually match MobileFrontend section headings.
  ========================================================================== */
.skin-citizen .wizlords-collapsible-section {
position: relative;
padding-right: 46px;
}
.skin-citizen .wizlords-collapsible-section > .mw-collapsible-toggle {
position: absolute;
top: 9px;
right: 10px;
display: flex;
align-items: center;
justify-content: center;
box-sizing: border-box;
width: 30px;
height: 30px;
margin: 0;
color: var(--wiz-link, #ff942d) !important;
font-size: 0;
line-height: 1;
text-decoration: none;
}
.skin-citizen .wizlords-collapsible-section > .mw-collapsible-toggle::after {
content: "⌄";
display: block;
color: var(--wiz-link, #ff942d);
font-size: 22px;
line-height: 1;
}
.skin-citizen
.wizlords-collapsible-section:not(.mw-collapsed)
> .mw-collapsible-toggle::after {
content: "⌃";
}
.skin-citizen
.wizlords-collapsible-section
> .mw-collapsible-toggle
.mw-collapsible-text,
.skin-citizen
.wizlords-collapsible-section
> .mw-collapsible-toggle
a {
font-size: 0;
}
.skin-citizen .wizlords-collapsible-section-bottom-toggle {
color: var(--wiz-link, #ff942d) !important;
font-size: 0;
line-height: 1;
}
.skin-citizen .wizlords-collapsible-section-bottom-toggle::after {
content: "⌃";
font-size: 22px;
}
/* Override the text-glyph toggle above with a CSS-drawn Citizen-style chevron.
  The toggle spans the title row, so tapping the heading area opens/closes the
  custom collapsible box on Citizen while Vector keeps the text toggle. */
.skin-citizen .wizlords-collapsible-section {
position: relative;
padding-right: 14px;
}
.skin-citizen .wizlords-collapsible-section > .mw-collapsible-toggle {
position: absolute;
z-index: 2;
top: 0;
right: 0;
left: 0;
box-sizing: border-box;
width: auto;
height: 48px;
margin: 0;
color: transparent !important;
font-size: 0;
line-height: 1;
text-decoration: none;
cursor: pointer;
}
.skin-citizen .wizlords-collapsible-section > .mw-collapsible-toggle::after {
content: "";
position: absolute;
top: 20px;
right: 18px;
display: block;
width: 8px;
height: 8px;
border-right: 2px solid var(--wiz-link, #ff942d);
border-bottom: 2px solid var(--wiz-link, #ff942d);
transform: rotate(45deg);
transform-origin: center;
}
.skin-citizen
.wizlords-collapsible-section:not(.mw-collapsed)
> .mw-collapsible-toggle::after {
top: 24px;
transform: rotate(225deg);
}
.skin-citizen .wizlords-collapsible-section-title {
padding-right: 34px;
}
.skin-citizen
.wizlords-collapsible-section
> .mw-collapsible-toggle
.mw-collapsible-text,
.skin-citizen
.wizlords-collapsible-section
> .mw-collapsible-toggle
a {
color: transparent !important;
font-size: 0;
}
.skin-citizen .wizlords-collapsible-section-bottom-toggle {
position: relative;
min-height: 28px;
color: var(--wiz-link, #ff942d) !important;
font-size: 0;
line-height: 1;
}
.skin-citizen .wizlords-collapsible-section-bottom-toggle::after {
content: "";
position: absolute;
right: 4px;
bottom: 6px;
width: 8px;
height: 8px;
border-right: 2px solid var(--wiz-link, #ff942d);
border-bottom: 2px solid var(--wiz-link, #ff942d);
transform: rotate(225deg);
}
/* Final Citizen custom-collapsible icon override.
  Mimics MobileFrontend's mf-icon-expand / mf-icon-rotate-flip visual states
  without depending on those internal classes being present in page markup. */
.skin-citizen .wizlords-collapsible-section {
position: relative;
padding-right: 14px;
}
.skin-citizen .wizlords-collapsible-section-title {
padding-right: 34px;
}
.skin-citizen .wizlords-collapsible-section > .mw-collapsible-toggle {
position: absolute;
z-index: 2;
top: 0;
right: 0;
left: 0;
box-sizing: border-box;
width: auto;
height: 48px;
margin: 0;
color: transparent !important;
font-size: 0;
line-height: 1;
text-decoration: none;
cursor: pointer;
}
.skin-citizen .wizlords-collapsible-section > .mw-collapsible-toggle::after {
content: "";
position: absolute;
top: 19px;
right: 18px;
display: block;
width: 10px;
height: 10px;
border-right: 2px solid var(--wiz-link, #ff942d);
border-bottom: 2px solid var(--wiz-link, #ff942d);
transform: rotate(45deg);
transform-origin: 50% 50%;
}
.skin-citizen
.wizlords-collapsible-section:not(.mw-collapsed)
> .mw-collapsible-toggle::after {
top: 23px;
transform: rotate(225deg);
}
.skin-citizen
.wizlords-collapsible-section
> .mw-collapsible-toggle
.mw-collapsible-text,
.skin-citizen
.wizlords-collapsible-section
> .mw-collapsible-toggle
a {
color: transparent !important;
font-size: 0;
}
.skin-citizen .wizlords-collapsible-section-bottom-toggle {
position: relative;
min-height: 28px;
color: transparent !important;
font-size: 0;
line-height: 1;
cursor: pointer;
}
.skin-citizen .wizlords-collapsible-section-bottom-toggle::after {
content: "";
position: absolute;
right: 4px;
bottom: 6px;
width: 10px;
height: 10px;
border-right: 2px solid var(--wiz-text, #d2d2d2);
border-bottom: 2px solid var(--wiz-text, #d2d2d2);
transform: rotate(225deg);
}
/* Citizen custom collapsible heading refinement: place the chevron before the
  title text, matching native Citizen section headings. */
.skin-citizen .wizlords-collapsible-section-title {
position: relative;
padding-right: 0;
padding-left: 20px;
font-family: Roboto, Roboto-fallback, system-ui, -apple-system, sans-serif !important;
font-size: 22px !important;
font-weight: 700 !important;
line-height: 1.3 !important;
}
.skin-citizen .wizlords-collapsible-section > .wizlords-collapsed-hint {
font-family: Roboto, Roboto-fallback, system-ui, -apple-system, sans-serif !important;
font-size: 14px !important;
font-style: normal !important;
font-weight: 400 !important;
line-height: 1.6 !important;
}
.skin-citizen .wizlords-collapsible-section > .mw-collapsible-toggle::after {
display: none;
}
.skin-citizen .wizlords-collapsible-section-title::before {
content: "";
position: absolute;
top: 50%;
left: 1px;
display: block;
width: 8px;
height: 8px;
border-right: 2px solid var(--wiz-heading, #e7e1d4);
border-bottom: 2px solid var(--wiz-heading, #e7e1d4);
transform: translateY(-65%) rotate(45deg);
transform-origin: 50% 50%;
}
.skin-citizen
.wizlords-collapsible-section:not(.mw-collapsed)
.wizlords-collapsible-section-title::before {
transform: translateY(-35%) rotate(225deg);
}
}


Line 257: Line 652:
   Wide image cards use separate classes and are intentionally unaffected.
   Wide image cards use separate classes and are intentionally unaffected.
   ========================================================================== */
   ========================================================================== */
.skin-citizen .wizlords-mainpage-items,
.skin-citizen .wizlords-mainpage-items {
.skin-citizen .wizlords-mainpage-left > .center:has(> .wizlords-imagetext),
.skin-citizen .wizlords-mainpage-right > .center:has(> .wizlords-imagetext) {
display: flex;
display: flex;
flex-wrap: wrap;
flex-wrap: wrap;
Line 270: Line 663:
margin-left: auto;
margin-left: auto;
text-align: center;
text-align: center;
}
/* MediaWiki may place introductory text in the same .center wrapper as the
  icon links. Keep that text above the grid instead of treating it as an icon
  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.
  Flatten only those icon wrappers so every icon participates in the same
  homepage grid/flex row. Plain text paragraphs keep their normal layout. */
.skin-citizen
:is(.wizlords-mainpage-left, .wizlords-mainpage-right)
> .center
> p:has(.wizlords-imagetext) {
display: contents;
}
}


Line 335: Line 707:
line-height: 1.2;
line-height: 1.2;
text-align: center;
text-align: center;
overflow-wrap: anywhere;
overflow-wrap: normal;
word-break: normal;
hyphens: none;
}
}


Line 361: Line 735:
   sparse before the full desktop Vector layout takes over. */
   sparse before the full desktop Vector layout takes over. */
@media screen and (min-width: 900px) and (max-width: 1199px) {
@media screen and (min-width: 900px) and (max-width: 1199px) {
.skin-citizen .wizlords-mainpage-items,
.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;
gap: 20px 16px;
}
}
Line 386: Line 758:
   keeps Citizen tidy if it is tested manually on a wide screen. */
   keeps Citizen tidy if it is tested manually on a wide screen. */
@media screen and (min-width: 1200px) {
@media screen and (min-width: 1200px) {
.skin-citizen .wizlords-mainpage-items,
.skin-citizen .wizlords-mainpage-items {
.skin-citizen .wizlords-mainpage-left > .center:has(> .wizlords-imagetext),
.skin-citizen .wizlords-mainpage-right > .center:has(> .wizlords-imagetext) {
gap: 16px 12px;
gap: 16px 12px;
}
}
Line 497: Line 867:
line-height: 1.2;
line-height: 1.2;
text-align: center;
text-align: center;
overflow-wrap: anywhere;
overflow-wrap: normal;
word-break: normal;
hyphens: none;
}
}
 
/* Ultra-narrow phones/foldables.
  Keep the four-across homepage icon rhythm, but give labels just enough room
  that words do not split into single trailing letters around 344-369px. */
@media screen and (max-width: 369px) {
.skin-citizen .wizlords-mainpage-items {
gap: 12px 6px;
}
 
.skin-citizen .wizlords-imagetext {
flex-basis: calc((100% - 18px) / 4);
width: calc((100% - 18px) / 4);
}
 
.skin-citizen .wizlords-imagetext-image,
.skin-citizen .wizlords-imagetext-image img {
width: 58px;
height: 58px;
}
 
.skin-citizen .wizlords-imagetext-text {
font-size: 11px;
line-height: 1.15;
}
}
 
/* Extremely narrow foldable screens.
  At 360px and below, four columns become too tight for readable labels.
  The Main Page square-icon groups contain seven items, so this creates a
  centred 3 / 3 / 1 rhythm instead of allowing single-letter word breaks. */
@media screen and (max-width: 360px) {
.skin-citizen .wizlords-mainpage-items {
gap: 14px 8px;
}
 
.skin-citizen .wizlords-imagetext {
flex-basis: calc((100% - 16px) / 3);
width: calc((100% - 16px) / 3);
}
 
.skin-citizen .wizlords-imagetext-image,
.skin-citizen .wizlords-imagetext-image img {
width: 62px;
height: 62px;
}
 
.skin-citizen .wizlords-imagetext-text {
font-size: 12px;
line-height: 1.15;
}
}
}
}
Line 505: Line 928:
   --------------------------------------------------------------------------
   --------------------------------------------------------------------------
   At 600-899px the homepage uses the available width as one broad content
   At 600-899px the homepage uses the available width as one broad content
   column, while icon groups stay as compact centred rows. The grid columns are
   column. The square icon groups need one component-specific split inside the
   fixed-width, not fractional, so seven icons do not stretch across the whole
   tablet range: 600-799px keeps the stable four-column rhythm with centred
   section and eight icons can still fit on one row where space allows.
   wrapped rows, 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) {
@media screen and (min-width: 600px) and (max-width: 899px) {
Line 560: Line 984:
}
}


.skin-citizen .wizlords-mainpage-items,
.skin-citizen .wizlords-mainpage-items {
.skin-citizen .wizlords-mainpage-left > .center:has(> .wizlords-imagetext),
display: flex;
.skin-citizen .wizlords-mainpage-right > .center:has(> .wizlords-imagetext) {
flex-wrap: wrap;
display: grid;
gap: 12px 16px;
grid-template-columns: repeat(auto-fit, 78px);
max-width: 360px;
gap: 10px 14px;
margin-right: auto;
margin-left: auto;
justify-content: center;
justify-content: center;
justify-items: center;
align-items: flex-start;
align-items: start;
}
 
.skin-citizen .wizlords-mainpage-left > .center:has(> .wizlords-imagetext) > p,
.skin-citizen .wizlords-mainpage-right > .center:has(> .wizlords-imagetext) > p {
grid-column: 1 / -1;
width: 100%;
margin-bottom: 4px;
}
}


.skin-citizen .wizlords-imagetext {
.skin-citizen .wizlords-imagetext {
flex: 0 0 78px;
width: 78px;
width: 78px;
max-width: none;
max-width: none;
Line 594: Line 1,012:
font-size: 12px;
font-size: 12px;
line-height: 1.15;
line-height: 1.15;
}
/* Upper tablet widths can cleanly fit seven or eight compact icons in one
  row. Use flex here rather than auto-fit grid: auto-fit can create an
  empty eighth track for seven-item groups once there is enough width,
  while flex only lays out real icon items. */
@media screen and (min-width: 800px) {
.skin-citizen .wizlords-mainpage-items {
display: flex;
flex-wrap: wrap;
gap: 10px 14px;
max-width: none;
justify-content: center;
align-items: flex-start;
}
.skin-citizen .wizlords-imagetext {
flex: 0 0 78px;
}
}
}


Line 672: Line 1,109:
padding-right: max(var(--padding-page, 16px), env(safe-area-inset-right));
padding-right: max(var(--padding-page, 16px), env(safe-area-inset-right));
padding-left: max(var(--padding-page, 16px), env(safe-area-inset-left));
padding-left: max(var(--padding-page, 16px), env(safe-area-inset-left));
}
.skin-citizen .toc-page #toc,
.skin-citizen .toc-page .toc {
float: none;
width: 100%;
min-width: 0;
max-width: none;
margin: 0 0 18px;
padding: 14px 16px;
}
}
}
}
Line 704: Line 1,131:
}
}


.skin-citizen .wizlords-race-intro,
.skin-citizen .wizlords-magic-intro {
.skin-citizen .wizlords-magic-intro {
align-items: flex-start;
align-items: flex-start;
gap: 16px;
gap: 16px;
}
.skin-citizen .wizlords-race-quote {
padding-right: 20px;
}
}


Line 770: Line 1,192:
min-width: 0;
min-width: 0;
max-width: 100%;
max-width: 100%;
}
.skin-citizen .wizlords-class-category-table {
max-width: 640px;
}
.skin-citizen .citizen-overflow-wrapper:has(.wizlords-reward-table) {
margin-right: auto;
margin-left: auto;
}
.skin-citizen .wizlords-class-category-mobile {
max-width: 420px;
}
}


Line 799: Line 1,234:
padding: 6px 10px;
padding: 6px 10px;
text-align: center;
text-align: center;
}
.skin-citizen .wizlords-class-card-title {
font-family: Roboto, Roboto-fallback, system-ui, -apple-system, sans-serif !important;
font-size: 20px !important;
font-weight: 700 !important;
line-height: 1.25 !important;
}
.skin-citizen .wizlords-class-card-summary {
font-family: Roboto, Roboto-fallback, system-ui, -apple-system, sans-serif !important;
font-size: 13px !important;
font-style: italic !important;
font-weight: 400 !important;
line-height: 1.35 !important;
display: block !important;
overflow: visible !important;
-webkit-line-clamp: unset !important;
}
}
}
}

Latest revision as of 17:49, 19 July 2026

/*
 * Wizards & Warlords Citizen skin overrides.
 *
 * Common.css owns article and template styling. This file only supplies the
 * Citizen colour palette, Citizen shell adjustments, and mobile layout fixes
 * for shared components that need a different narrow-screen presentation.
 */

/* ==========================================================================
   Responsive Layout Standard
   --------------------------------------------------------------------------
   Phone: 0-599px; tablet / large phone: 600-899px; small desktop /
   landscape tablet: 900-1199px; full desktop: 1200px+.
   Citizen is developed directly as the mobile/tablet skin; MobileFrontend is
   not required or assumed by these rules.
   ========================================================================== */

/* ==========================================================================
   Citizen Theme And Shared Site Colours
   ========================================================================== */
:root {
	/* Wizards & Warlords content tokens used by Common.css. */
	--wiz-content-background: #222;
	--wiz-panel-solid-background: #0f0f0f;
	--wiz-page-background: #111;
	--wiz-content-border: #ff942d;
	--wiz-text: #d2d2d2;
	--wiz-link: #ff942d;
	--wiz-heading: #e7e1d4;

	/* Citizen's native palette. Keep the skin aligned with the existing site. */
	--color-primary__h: 28;
	--color-surface-0: #111;
	--color-surface-1: #171717;
	--color-surface-2: #1f1e1e;
	--color-surface-3: #252525;
	--color-surface-4: #2c2b2b;
	--color-progressive: #ff942d;
	--color-progressive--hover: #ffd37a;
	--color-progressive--active: #e57d1d;
	--color-base: #d2d2d2;
	--color-subtle: #b9b3a8;
	--color-emphasized: #e7e1d4;
	--color-base-oklch__l: 85%;
	--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
   ========================================================================== */
.skin-citizen {
	background-color: var(--wiz-page-background);
	color: var(--wiz-text);
}

.skin-citizen .citizen-page-container {
	background-color: var(--wiz-page-background);
}

.skin-citizen .citizen-header {
	background-color: var(--color-surface-1);
	border-color: var(--wiz-content-border);
}

.skin-citizen .citizen-page-actions,
.skin-citizen .citizen-toc {
	--color-surface-1: #171717;
	--color-surface-2: #1f1e1e;
}

.skin-citizen .mw-body {
	color: var(--wiz-text);
}

.skin-citizen .mw-first-heading {
	border-bottom: 1px solid var(--wiz-content-border);
	color: var(--wiz-heading);
}

.skin-citizen .mw-parser-output a:not(.new),
.skin-citizen .mw-first-heading a {
	color: var(--wiz-link);
}

.skin-citizen .mw-parser-output a:not(.new):hover,
.skin-citizen .mw-first-heading a:hover {
	color: #ffd37a;
}

/* Citizen applies its own external-link colours after Common.css. Keep links
   in the shared homepage navigation-list component orange and bold. */
.skin-citizen .mw-parser-output .wizlords-mainpage-link-list a,
.skin-citizen .mw-parser-output .wizlords-mainpage-link-list a:visited,
.skin-citizen .mw-parser-output .wizlords-mainpage-link-list a.external,
.skin-citizen .mw-parser-output .wizlords-mainpage-whatislarp-list a,
.skin-citizen .mw-parser-output .wizlords-mainpage-whatislarp-list a:visited,
.skin-citizen .mw-parser-output .wizlords-mainpage-whatislarp-list a.external {
	color: var(--wiz-link);
	font-weight: normal;
	text-decoration: none;
}

.skin-citizen .mw-parser-output .wizlords-mainpage-link-list a:hover,
.skin-citizen .mw-parser-output .wizlords-mainpage-link-list a.external:hover,
.skin-citizen .mw-parser-output .wizlords-mainpage-whatislarp-list a:hover,
.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. */
.skin-citizen .citizen-footer {
	margin-top: 2rem;
}

.skin-citizen .citizen-footer {
	color: var(--color-subtle);
}

.skin-citizen .citizen-footer a {
	color: var(--wiz-link);
}

.skin-citizen .citizen-footer a:hover {
	color: #ffd37a;
}

/* Main Page banner swap for Citizen/tablet/mobile.
   The no-background banner is used through the tablet range, then the desktop
   parchment banner returns at the 900px layout breakpoint. */
.skin-citizen .page-banner-desktop {
	display: block !important;
}

.skin-citizen .page-banner-mobile {
	display: none !important;
}

@media (max-width: 899px) {
	.skin-citizen .page-banner {
		aspect-ratio: 300 / 141;
		margin-bottom: 0;
		background-image: url("/index.php/Special:Redirect/file/Wizlords_banner_nobg.png");
		background-repeat: no-repeat;
		background-position: center center;
		background-size: contain;
	}

	.skin-citizen .page-banner-desktop {
		display: none !important;
	}

	.skin-citizen .page-banner-mobile {
		display: none !important;
	}
}

@media (min-width: 900px) {
	.skin-citizen .page-banner {
		aspect-ratio: auto;
		background-image: none;
	}

	.skin-citizen .page-banner-desktop {
		display: block !important;
	}

	.skin-citizen .page-banner-mobile {
		display: none !important;
	}
}

/* ==========================================================================
   Tables And Media
   ========================================================================== */
/* 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%;
	max-width: 100%;
}

.skin-citizen .citizen-overflow-wrapper:has(.wizlords-class-category-table) {
	width: min(100%, 640px);
	max-width: 640px;
	margin-right: auto;
	margin-left: auto;
	overflow-x: visible;
	border: 0;
	border-radius: 0;
	box-shadow: none;
}

.skin-citizen .citizen-overflow-wrapper:has(.wizlords-class-category-table)
.wizlords-class-category-table {
	width: 100%;
	min-width: 0;
	max-width: 640px;
}

.skin-citizen .citizen-overflow-wrapper:has(.wizlords-example-table) {
	width: min(100%, 600px);
	max-width: 600px;
	margin-right: auto;
	margin-left: auto;
	overflow-x: visible;
	border: 0;
	border-radius: 0;
	box-shadow: none;
}

.skin-citizen .citizen-overflow-wrapper:has(.wizlords-example-table.mw-collapsed) {
	background: transparent;
}

.skin-citizen .citizen-overflow-wrapper:has(.wizlords-example-table)
.wizlords-example-table {
	width: 100%;
	min-width: 0;
	max-width: 600px;
}

.skin-citizen .citizen-overflow-wrapper:has(.wizlords-example-table-full-heal) {
	width: min(100%, 500px);
	max-width: 500px;
}

.skin-citizen .citizen-overflow-wrapper:has(.wizlords-example-table-full-heal)
.wizlords-example-table-full-heal {
	max-width: 500px;
}

.skin-citizen .citizen-overflow-wrapper:has(.wizlords-reward-table) {
	width: fit-content;
	max-width: 100%;
	margin-right: auto;
	margin-left: 0;
	overflow-x: visible;
	border: 0;
	border-radius: 0;
	box-shadow: none;
	background: transparent;
}

.skin-citizen .citizen-overflow-wrapper:has(.wizlords-reward-table)
.wizlords-reward-table {
	min-width: 0;
}

.skin-citizen .citizen-overflow-wrapper:has(.wizlords-example-table)
.wizlords-example-table caption {
	display: table-caption !important;
	caption-side: top;
	width: auto !important;
	max-width: none !important;
	text-align: center !important;
}

.skin-citizen .mw-parser-output img {
	max-width: 100%;
	height: auto;
}

/* ==========================================================================
   MobileFrontend Collapsible Article Sections
   --------------------------------------------------------------------------
   MobileFormatter adds .collapsible-heading and .collapsible-block, then
   toggles .open-block on both elements. Keep collapsed headings visually
   quiet and row-like; restore the orange divider only for expanded sections.
   This is scoped to Citizen + MobileFrontend and does not affect Vector.
   ========================================================================== */
.skin-citizen.mw-mf .collapsible-heading {
	box-sizing: border-box;
	margin-top: 0;
	margin-bottom: 6px;
	padding-top: 12px;
	padding-bottom: 12px;
	border-bottom: 0;
	background-image: none;
}

.skin-citizen.mw-mf .collapsible-heading.open-block {
	margin-bottom: 0;
	padding-bottom: 6px;
	border-bottom: 1px solid var(--wiz-content-border, #ff942d);
}

.skin-citizen.mw-mf .collapsible-block {
	margin-top: 0;
	padding-top: 0;
}

.skin-citizen.mw-mf
.collapsible-heading.open-block
+ .collapsible-block.open-block {
	margin-top: 12px;
}

/* ==========================================================================
   Citizen Custom Collapsible Boxes
   --------------------------------------------------------------------------
   Desktop Vector keeps the standard MediaWiki [Expand] / [Collapse] text from
   Common.css. Citizen uses a compact chevron control so custom collapsible
   boxes visually match MobileFrontend section headings.
   ========================================================================== */
.skin-citizen .wizlords-collapsible-section {
	position: relative;
	padding-right: 46px;
}

.skin-citizen .wizlords-collapsible-section > .mw-collapsible-toggle {
	position: absolute;
	top: 9px;
	right: 10px;
	display: flex;
	align-items: center;
	justify-content: center;
	box-sizing: border-box;
	width: 30px;
	height: 30px;
	margin: 0;
	color: var(--wiz-link, #ff942d) !important;
	font-size: 0;
	line-height: 1;
	text-decoration: none;
}

.skin-citizen .wizlords-collapsible-section > .mw-collapsible-toggle::after {
	content: "⌄";
	display: block;
	color: var(--wiz-link, #ff942d);
	font-size: 22px;
	line-height: 1;
}

.skin-citizen
.wizlords-collapsible-section:not(.mw-collapsed)
> .mw-collapsible-toggle::after {
	content: "⌃";
}

.skin-citizen
.wizlords-collapsible-section
> .mw-collapsible-toggle
.mw-collapsible-text,
.skin-citizen
.wizlords-collapsible-section
> .mw-collapsible-toggle
a {
	font-size: 0;
}

.skin-citizen .wizlords-collapsible-section-bottom-toggle {
	color: var(--wiz-link, #ff942d) !important;
	font-size: 0;
	line-height: 1;
}

.skin-citizen .wizlords-collapsible-section-bottom-toggle::after {
	content: "⌃";
	font-size: 22px;
}

/* Override the text-glyph toggle above with a CSS-drawn Citizen-style chevron.
   The toggle spans the title row, so tapping the heading area opens/closes the
   custom collapsible box on Citizen while Vector keeps the text toggle. */
.skin-citizen .wizlords-collapsible-section {
	position: relative;
	padding-right: 14px;
}

.skin-citizen .wizlords-collapsible-section > .mw-collapsible-toggle {
	position: absolute;
	z-index: 2;
	top: 0;
	right: 0;
	left: 0;
	box-sizing: border-box;
	width: auto;
	height: 48px;
	margin: 0;
	color: transparent !important;
	font-size: 0;
	line-height: 1;
	text-decoration: none;
	cursor: pointer;
}

.skin-citizen .wizlords-collapsible-section > .mw-collapsible-toggle::after {
	content: "";
	position: absolute;
	top: 20px;
	right: 18px;
	display: block;
	width: 8px;
	height: 8px;
	border-right: 2px solid var(--wiz-link, #ff942d);
	border-bottom: 2px solid var(--wiz-link, #ff942d);
	transform: rotate(45deg);
	transform-origin: center;
}

.skin-citizen
.wizlords-collapsible-section:not(.mw-collapsed)
> .mw-collapsible-toggle::after {
	top: 24px;
	transform: rotate(225deg);
}

.skin-citizen .wizlords-collapsible-section-title {
	padding-right: 34px;
}

.skin-citizen
.wizlords-collapsible-section
> .mw-collapsible-toggle
.mw-collapsible-text,
.skin-citizen
.wizlords-collapsible-section
> .mw-collapsible-toggle
a {
	color: transparent !important;
	font-size: 0;
}

.skin-citizen .wizlords-collapsible-section-bottom-toggle {
	position: relative;
	min-height: 28px;
	color: var(--wiz-link, #ff942d) !important;
	font-size: 0;
	line-height: 1;
}

.skin-citizen .wizlords-collapsible-section-bottom-toggle::after {
	content: "";
	position: absolute;
	right: 4px;
	bottom: 6px;
	width: 8px;
	height: 8px;
	border-right: 2px solid var(--wiz-link, #ff942d);
	border-bottom: 2px solid var(--wiz-link, #ff942d);
	transform: rotate(225deg);
}

/* Final Citizen custom-collapsible icon override.
   Mimics MobileFrontend's mf-icon-expand / mf-icon-rotate-flip visual states
   without depending on those internal classes being present in page markup. */
.skin-citizen .wizlords-collapsible-section {
	position: relative;
	padding-right: 14px;
}

.skin-citizen .wizlords-collapsible-section-title {
	padding-right: 34px;
}

.skin-citizen .wizlords-collapsible-section > .mw-collapsible-toggle {
	position: absolute;
	z-index: 2;
	top: 0;
	right: 0;
	left: 0;
	box-sizing: border-box;
	width: auto;
	height: 48px;
	margin: 0;
	color: transparent !important;
	font-size: 0;
	line-height: 1;
	text-decoration: none;
	cursor: pointer;
}

.skin-citizen .wizlords-collapsible-section > .mw-collapsible-toggle::after {
	content: "";
	position: absolute;
	top: 19px;
	right: 18px;
	display: block;
	width: 10px;
	height: 10px;
	border-right: 2px solid var(--wiz-link, #ff942d);
	border-bottom: 2px solid var(--wiz-link, #ff942d);
	transform: rotate(45deg);
	transform-origin: 50% 50%;
}

.skin-citizen
.wizlords-collapsible-section:not(.mw-collapsed)
> .mw-collapsible-toggle::after {
	top: 23px;
	transform: rotate(225deg);
}

.skin-citizen
.wizlords-collapsible-section
> .mw-collapsible-toggle
.mw-collapsible-text,
.skin-citizen
.wizlords-collapsible-section
> .mw-collapsible-toggle
a {
	color: transparent !important;
	font-size: 0;
}

.skin-citizen .wizlords-collapsible-section-bottom-toggle {
	position: relative;
	min-height: 28px;
	color: transparent !important;
	font-size: 0;
	line-height: 1;
	cursor: pointer;
}

.skin-citizen .wizlords-collapsible-section-bottom-toggle::after {
	content: "";
	position: absolute;
	right: 4px;
	bottom: 6px;
	width: 10px;
	height: 10px;
	border-right: 2px solid var(--wiz-text, #d2d2d2);
	border-bottom: 2px solid var(--wiz-text, #d2d2d2);
	transform: rotate(225deg);
}

/* Citizen custom collapsible heading refinement: place the chevron before the
   title text, matching native Citizen section headings. */
.skin-citizen .wizlords-collapsible-section-title {
	position: relative;
	padding-right: 0;
	padding-left: 20px;
	font-family: Roboto, Roboto-fallback, system-ui, -apple-system, sans-serif !important;
	font-size: 22px !important;
	font-weight: 700 !important;
	line-height: 1.3 !important;
}

.skin-citizen .wizlords-collapsible-section > .wizlords-collapsed-hint {
	font-family: Roboto, Roboto-fallback, system-ui, -apple-system, sans-serif !important;
	font-size: 14px !important;
	font-style: normal !important;
	font-weight: 400 !important;
	line-height: 1.6 !important;
}

.skin-citizen .wizlords-collapsible-section > .mw-collapsible-toggle::after {
	display: none;
}

.skin-citizen .wizlords-collapsible-section-title::before {
	content: "";
	position: absolute;
	top: 50%;
	left: 1px;
	display: block;
	width: 8px;
	height: 8px;
	border-right: 2px solid var(--wiz-heading, #e7e1d4);
	border-bottom: 2px solid var(--wiz-heading, #e7e1d4);
	transform: translateY(-65%) rotate(45deg);
	transform-origin: 50% 50%;
}

.skin-citizen
.wizlords-collapsible-section:not(.mw-collapsed)
.wizlords-collapsible-section-title::before {
	transform: translateY(-35%) rotate(225deg);
}

/* ==========================================================================
   Citizen Homepage Sections
   --------------------------------------------------------------------------
   Citizen stacks the desktop left/right homepage blocks. Establish explicit
   section spacing so heading margins cannot collapse into large blank bands,
   centre the introductory copy, and retain the desktop orange divider.
   ========================================================================== */
.skin-citizen .wizlords-mainpage-left,
.skin-citizen .wizlords-mainpage-right {
	display: flow-root;
}

.skin-citizen .wizlords-mainpage-left > h2.center,
.skin-citizen .wizlords-mainpage-right > h2.center,
.skin-citizen .wizlords-mainpage-left > .mw-heading2,
.skin-citizen .wizlords-mainpage-right > .mw-heading2 {
	box-sizing: border-box;
	width: 100%;
	margin: 14px 0 7px;
	padding: 0 0 4px;
	border-bottom: 0;
	background-image: linear-gradient(
		to right,
		var(--wiz-content-border),
		var(--wiz-content-border)
	);
	background-repeat: no-repeat;
	background-position: center bottom;
	background-size: 65% 1px;
	color: var(--wiz-heading);
	text-align: center;
}

.skin-citizen .wizlords-mainpage-left > .mw-heading2 h2,
.skin-citizen .wizlords-mainpage-right > .mw-heading2 h2 {
	margin: 0;
	color: var(--wiz-heading);
	text-align: center;
}

.skin-citizen .wizlords-mainpage-left > p,
.skin-citizen .wizlords-mainpage-right > p,
.skin-citizen .wizlords-mainpage-left > .center > p,
.skin-citizen .wizlords-mainpage-right > .center > p {
	max-width: 760px;
	margin: 6px auto 8px;
	text-align: center;
}

/* Give introductory copy a little breathing room before wide homepage cards
   without increasing spacing in the square-icon sections. */
.skin-citizen
:is(.wizlords-mainpage-left, .wizlords-mainpage-right)
> .center:has(> .wizlords-wideimagetext-grid)
> p {
	margin-bottom: 16px;
}

/* Separate homepage lists from the introductory paragraph above them. */
.skin-citizen .wizlords-mainpage-left > ul,
.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
   --------------------------------------------------------------------------
   The desktop dimensions live in Vector.css, which Citizen does not load.
   Define a compact four-column version here for the square homepage links.
   Wide image cards use separate classes and are intentionally unaffected.
   ========================================================================== */
.skin-citizen .wizlords-mainpage-items {
	display: flex;
	flex-wrap: wrap;
	gap: 12px 8px;
	justify-content: center;
	align-items: start;
	width: 100%;
	min-width: 0;
	margin-right: auto;
	margin-left: auto;
	text-align: center;
}

.skin-citizen .wizlords-imagetext {
	display: block;
	flex: 0 0 calc((100% - 24px) / 4);
	box-sizing: border-box;
	width: calc((100% - 24px) / 4);
	max-width: none;
	min-width: 0;
	min-height: 0;
	margin: 0;
	text-align: center;
}

.skin-citizen .wizlords-imagetext-image {
	width: 64px;
	height: 64px;
	margin: 0 auto;
}

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

.skin-citizen .wizlords-imagetext-text {
	display: flex;
	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;
	line-height: 1.2;
	text-align: center;
	overflow-wrap: normal;
	word-break: normal;
	hyphens: none;
}

.skin-citizen .wizlords-imagetext-text a {
	color: var(--wiz-link);
	text-decoration: none;
}

.skin-citizen .wizlords-imagetext-text a:hover {
	color: #ffd37a;
}

/* MediaWiki can insert paragraph wrappers around block-style homepage cards.
   Flatten wrappers that contain a wide card so the card itself participates
   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
   rhythm, but uses larger icons so the wider mobile/tablet skin does not feel
   sparse before the full desktop Vector layout takes over. */
@media screen and (min-width: 900px) and (max-width: 1199px) {
	.skin-citizen .wizlords-mainpage-items {
		gap: 20px 16px;
	}

	.skin-citizen .wizlords-imagetext {
		flex-basis: calc((100% - 48px) / 4);
		width: calc((100% - 48px) / 4);
	}

	.skin-citizen .wizlords-imagetext-image,
	.skin-citizen .wizlords-imagetext-image img {
		width: clamp(92px, 10vw, 108px);
		height: clamp(92px, 10vw, 108px);
	}

	.skin-citizen .wizlords-imagetext-text {
		font-size: 13px;
	}
}

/* Full-width Citizen fallback. Normal desktop visitors use Vector, but this
   keeps Citizen tidy if it is tested manually on a wide screen. */
@media screen and (min-width: 1200px) {
	.skin-citizen .wizlords-mainpage-items {
		gap: 16px 12px;
	}

	.skin-citizen .wizlords-imagetext {
		flex-basis: calc((100% - 36px) / 4);
		width: calc((100% - 36px) / 4);
	}

	.skin-citizen .wizlords-imagetext-image,
	.skin-citizen .wizlords-imagetext-image img {
		width: 82px;
		height: 82px;
	}

	.skin-citizen .wizlords-imagetext-text {
		font-size: 13px;
	}
}

/* Phone-only wide-card fallback. Tablet receives the four-slot treatment in
   the dedicated tablet section below. */
@media screen and (max-width: 599px) {
	/* Let each phone label use its natural one- or two-line height. Reserving
	   two lines for every label creates visible empty space in sections whose
	   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
	   bullets remain conventionally left-aligned. */
	.skin-citizen .wizlords-mainpage-link-list,
	.skin-citizen .wizlords-useful-links,
	.skin-citizen .wizlords-mainpage-whatislarp-list {
		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.
	   The padding creates a normal hanging bullet while keeping the bullet
	   edge aligned with the paragraph above. */
	.skin-citizen .wizlords-mainpage-whatislarp-list {
		max-width: 100%;
		margin-right: 0;
		margin-left: 0;
		padding-left: 24px;
	}

	.skin-citizen .wizlords-wideimagetext {
		max-width: 100%;
	}

	.skin-citizen .wizlords-wideimagetext-grid,
	.skin-citizen .wizlords-mainpage-left > .center:has(> .wizlords-wideimagetext),
	.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,
	.skin-citizen .wizlords-mainpage-left > .center .wizlords-wideimagetext,
	.skin-citizen .wizlords-mainpage-right > .center .wizlords-wideimagetext {
		flex: 0 0 calc((100% - 10px) / 2);
		box-sizing: border-box;
		width: calc((100% - 10px) / 2);
		max-width: none;
		margin: 0;
		text-align: center;
	}

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

	.skin-citizen .wizlords-wideimagetext-image,
	.skin-citizen .wizlords-wideimagetext-image img {
		display: block;
		width: 100%;
		height: auto;
		aspect-ratio: 2 / 1;
		object-fit: cover;
		border: 0;
		background: transparent;
	}

	.skin-citizen .wizlords-wideimagetext-text {
		display: flex;
		align-items: flex-start;
		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: normal;
		word-break: normal;
		hyphens: none;
	}
}

/* Ultra-narrow phones/foldables.
   Keep the four-across homepage icon rhythm, but give labels just enough room
   that words do not split into single trailing letters around 344-369px. */
@media screen and (max-width: 369px) {
	.skin-citizen .wizlords-mainpage-items {
		gap: 12px 6px;
	}

	.skin-citizen .wizlords-imagetext {
		flex-basis: calc((100% - 18px) / 4);
		width: calc((100% - 18px) / 4);
	}

	.skin-citizen .wizlords-imagetext-image,
	.skin-citizen .wizlords-imagetext-image img {
		width: 58px;
		height: 58px;
	}

	.skin-citizen .wizlords-imagetext-text {
		font-size: 11px;
		line-height: 1.15;
	}
}

/* Extremely narrow foldable screens.
   At 360px and below, four columns become too tight for readable labels.
   The Main Page square-icon groups contain seven items, so this creates a
   centred 3 / 3 / 1 rhythm instead of allowing single-letter word breaks. */
@media screen and (max-width: 360px) {
	.skin-citizen .wizlords-mainpage-items {
		gap: 14px 8px;
	}

	.skin-citizen .wizlords-imagetext {
		flex-basis: calc((100% - 16px) / 3);
		width: calc((100% - 16px) / 3);
	}

	.skin-citizen .wizlords-imagetext-image,
	.skin-citizen .wizlords-imagetext-image img {
		width: 62px;
		height: 62px;
	}

	.skin-citizen .wizlords-imagetext-text {
		font-size: 12px;
		line-height: 1.15;
	}
}

/* ==========================================================================
   Citizen Tablet Homepage
   --------------------------------------------------------------------------
   At 600-899px the homepage uses the available width as one broad content
   column. The square icon groups need one component-specific split inside the
   tablet range: 600-799px keeps the stable four-column rhythm with centred
   wrapped rows, 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
	   icon and card grids continue using the full 760px section width. */
	.skin-citizen .wizlords-mainpage-left > p,
	.skin-citizen .wizlords-mainpage-right > p,
	.skin-citizen .wizlords-mainpage-left > .center > p,
	.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,
	.skin-citizen .wizlords-useful-links,
	.skin-citizen .wizlords-mainpage-whatislarp-list {
		box-sizing: border-box;
		width: 100%;
		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. */
	.skin-citizen .wizlords-mainpage-whatislarp-list {
		max-width: 620px;
		padding-left: 24px;
	}

	.skin-citizen .wizlords-mainpage-left > h2.center,
	.skin-citizen .wizlords-mainpage-right > h2.center {
		margin-top: 14px;
		margin-bottom: 6px;
	}

	.skin-citizen .wizlords-mainpage-left > p,
	.skin-citizen .wizlords-mainpage-right > p {
		margin-top: 6px;
		margin-bottom: 8px;
	}

	.skin-citizen .wizlords-mainpage-items {
		display: flex;
		flex-wrap: wrap;
		gap: 12px 16px;
		max-width: 360px;
		margin-right: auto;
		margin-left: auto;
		justify-content: center;
		align-items: flex-start;
	}

	.skin-citizen .wizlords-imagetext {
		flex: 0 0 78px;
		width: 78px;
		max-width: none;
	}

	.skin-citizen .wizlords-imagetext-image,
	.skin-citizen .wizlords-imagetext-image img {
		width: clamp(52px, 7.5vw, 64px);
		height: clamp(52px, 7.5vw, 64px);
	}

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

	/* Upper tablet widths can cleanly fit seven or eight compact icons in one
	   row. Use flex here rather than auto-fit grid: auto-fit can create an
	   empty eighth track for seven-item groups once there is enough width,
	   while flex only lays out real icon items. */
	@media screen and (min-width: 800px) {
		.skin-citizen .wizlords-mainpage-items {
			display: flex;
			flex-wrap: wrap;
			gap: 10px 14px;
			max-width: none;
			justify-content: center;
			align-items: flex-start;
		}

		.skin-citizen .wizlords-imagetext {
			flex: 0 0 78px;
		}
	}

	/* The homepage markup splits each four-card group into two nested
	   two-card grids. On tablet, flatten those inner grids into their shared
	   parent so all four cards can occupy one row. Phone keeps the two grids,
	   producing the intended 2x2 layout. */
	.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
	:is(.wizlords-mainpage-left, .wizlords-mainpage-right)
	> .center:has(> .wizlords-wideimagetext-grid)
	> p {
		flex: 0 0 100%;
		width: 100%;
		margin: 0 0 16px;
	}

	.skin-citizen
	:is(.wizlords-mainpage-left, .wizlords-mainpage-right)
	> .center
	> .wizlords-wideimagetext-grid {
		display: contents;
	}

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

	.skin-citizen .wizlords-wideimagetext-image,
	.skin-citizen .wizlords-wideimagetext-image img {
		display: block;
		width: 100%;
		height: auto;
		aspect-ratio: 2 / 1;
		object-fit: cover;
		border: 0;
		background: transparent;
	}

	.skin-citizen .wizlords-wideimagetext-text {
		display: flex;
		align-items: flex-start;
		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
   ========================================================================== */
@media screen and (max-width: 899px) {
	.skin-citizen .citizen-page-container {
		padding-right: max(var(--padding-page, 16px), env(safe-area-inset-right));
		padding-left: max(var(--padding-page, 16px), env(safe-area-inset-left));
	}
}

/* ==========================================================================
   Phone And Tablet Shared Component Adjustments
   ========================================================================== */
@media screen and (max-width: 899px) {
	.skin-citizen .wizlords-mainpage-left,
	.skin-citizen .wizlords-mainpage-right {
		float: none;
		box-sizing: border-box;
		width: 100%;
		margin-top: 0;
		margin-bottom: 0;
		padding-right: 0;
		padding-left: 0;
	}

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

	.skin-citizen .wizlords-magic-intro {
		align-items: flex-start;
		gap: 16px;
	}

	.skin-citizen .wizlords-culture-grid {
		grid-template-columns: 1fr;
	}

	.skin-citizen .wizlords-culture-grid .wizlords-culture-card {
		grid-column: auto;
	}

	.skin-citizen .wizlords-culture-row-feature {
		grid-template-columns: 1fr;
		gap: 14px;
	}

	.skin-citizen .wizlords-culture-row-icon img {
		margin: 0 auto;
	}

	.skin-citizen .wizlords-culture-row-divider {
		width: 80%;
		height: 1px;
		margin: 0 auto;
	}

	.skin-citizen .wizlords-culture-appearance {
		width: 100%;
	}

	.skin-citizen .wizlords-culture-appearance img {
		width: 100%;
		height: auto;
		aspect-ratio: 300 / 138;
	}

	.skin-citizen .wizlords-shared-classes {
		box-sizing: border-box;
		width: 100%;
		min-width: 0;
		padding-right: 18px;
		padding-left: 18px;
	}

	.skin-citizen .wizlords-shared-classes ul {
		grid-auto-flow: row;
		grid-template-rows: none;
		grid-template-columns: 1fr;
		width: auto;
	}

	.skin-citizen .wizlords-class-compare {
		flex-direction: column;
	}

	.skin-citizen .wizlords-class-category-table,
	.skin-citizen .wizlords-magic-table {
		min-width: 0;
		max-width: 100%;
	}

	.skin-citizen .wizlords-class-category-table {
		max-width: 640px;
	}

	.skin-citizen .citizen-overflow-wrapper:has(.wizlords-reward-table) {
		margin-right: auto;
		margin-left: auto;
	}

	.skin-citizen .wizlords-class-category-mobile {
		max-width: 420px;
	}

	.skin-citizen .wizlords-reputation-table.mw-collapsed {
		width: 100%;
		min-width: 0;
	}

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

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

	.skin-citizen .ww-navbox-group {
		width: 100%;
		padding: 5px 10px;
		border-right: 0;
		border-bottom: 1px solid var(--wiz-content-background);
		text-align: center;
	}

	.skin-citizen .ww-navbox-list {
		padding: 6px 10px;
		text-align: center;
	}

	.skin-citizen .wizlords-class-card-title {
		font-family: Roboto, Roboto-fallback, system-ui, -apple-system, sans-serif !important;
		font-size: 20px !important;
		font-weight: 700 !important;
		line-height: 1.25 !important;
	}

	.skin-citizen .wizlords-class-card-summary {
		font-family: Roboto, Roboto-fallback, system-ui, -apple-system, sans-serif !important;
		font-size: 13px !important;
		font-style: italic !important;
		font-weight: 400 !important;
		line-height: 1.35 !important;
		display: block !important;
		overflow: visible !important;
		-webkit-line-clamp: unset !important;
	}
}