/* ============================================================
   Wiki — Artikelbausteine
   Was ein Artikel im Fliesstext hergibt. Die Klassen werden von
   Hand in den Artikeltext geschrieben; ohne sie bleibt der Text
   trotzdem lesbar, weil rpgwiki.css die Grundschrift setzt.
   ============================================================ */
.md-article {
	max-width: 74ch;
	font-size: .9rem;
	line-height: 1.9;
	letter-spacing: var(--md-ls-body);
	color: var(--md-ink-dim);
}

/* ---- Zeilenumbrueche des Parsers ------------------------------
   MyBB schickt den Artikel durch parse_message, und das macht aus
   jedem Zeilenumbruch ein <br />. In einem Raster waere jedes davon
   ein eigenes Feld — hier zaehlen nur die echten Elemente. */
.md-art__facts > br,
.md-art__steps > br,
.md-art__tags > br,
.md-art__note > br,
.md-art__quote > br,
.md-art__fig > br { display: none; }

/* ---- Blocksatz ----------------------------------------------- */
/* Silbentrennung braucht eine Sprache — die steht am Artikelrumpf. */
.rpgwiki-article-body,
.md-article {
	text-align: justify;
	-webkit-hyphens: auto;
	hyphens: auto;
}
.rpgwiki-article-body h1,
.rpgwiki-article-body h2,
.rpgwiki-article-body h3,
.rpgwiki-article-body h4,
.md-article h1,
.md-article h2,
.md-article h3,
.md-article h4,
.md-art__lede,
.md-art__note,
.md-art__facts dt,
.md-art__facts dd,
.md-art__fig figcaption,
.md-art__tag,
.md-art__steps > li {
	text-align: left;
	-webkit-hyphens: manual;
	hyphens: manual;
}

/* ---- Ueberschriften bekommen ihre Linie --------------------- */
.rpgwiki-article-body h2,
.md-article h2 {
	display: flex;
	align-items: center;
	gap: 1rem;
	margin: 2.6rem 0 1rem;
}
.rpgwiki-article-body h2::after,
.md-article h2::after {
	content: "";
	flex: 1;
	height: 1px;
	background: var(--md-rule-hair);
}
.rpgwiki-article-body h3,
.md-article h3 {
	display: flex;
	align-items: baseline;
	gap: .8rem;
}
.rpgwiki-article-body h3::before,
.md-article h3::before {
	content: "";
	flex: 0 0 var(--md-dash);
	height: 1px;
	background: var(--md-rule-soft);
	transform: translateY(-.35em);
}

/* ---- Anrisstext --------------------------------------------- */
.md-art__lede {
	margin: 0 0 1.6rem;
	font-family: var(--md-f-serif);
	font-size: 1.1rem;
	line-height: 1.65;
	letter-spacing: var(--md-ls-display);
	color: var(--md-ink);
}

/* ---- Initial ------------------------------------------------- */
.md-art__drop::first-letter {
	float: left;
	margin: .12em .5rem 0 0;
	font-family: var(--md-f-display);
	font-size: 3.4em;
	line-height: .84;
	color: var(--md-ink-bright);
}

/* ---- Merkkasten ---------------------------------------------- */
.md-art__note {
	display: grid;
	gap: .5rem;
	margin: 1.8rem 0;
	padding: 1.1rem 0 1.1rem 1.3rem;
	border-left: 1px solid var(--md-rule-soft);
}
.md-art__note > p { margin: 0; }
.md-art__note-k {
	font-family: var(--md-f-sans);
	font-size: var(--md-t-micro);
	letter-spacing: var(--md-ls-nav);
	text-transform: uppercase;
	color: var(--md-ink-faint);
}
.md-art__note--warn { border-left-color: var(--md-accent-soft); }
.md-art__note--warn .md-art__note-k { color: var(--md-accent); }

/* ---- Eckdaten ------------------------------------------------ */
.md-art__facts {
	display: grid;
	grid-template-columns: minmax(7rem, auto) minmax(0, 1fr);
	gap: 0;
	margin: 1.6rem 0;
}
.md-art__facts dt,
.md-art__facts dd {
	margin: 0;
	padding: .6rem 0;
	border-top: 1px solid var(--md-rule-hair);
}
.md-art__facts dt {
	padding-right: 1.2rem;
	font-size: var(--md-t-micro);
	letter-spacing: var(--md-ls-nav);
	text-transform: uppercase;
	color: var(--md-ink-faint);
}
.md-art__facts dd { color: var(--md-ink); }

/* ---- Herausgestellter Satz ----------------------------------- */
.md-art__quote {
	margin: 2rem 0;
	padding: 0;
	background: none;
	border: 0;
	text-align: center;
}
.md-art__quote p {
	margin: 0;
	font-family: var(--md-f-serif);
	font-size: 1.25rem;
	line-height: 1.6;
	letter-spacing: var(--md-ls-display);
	color: var(--md-ink-bright);
}
.md-art__quote cite {
	display: block;
	margin: .8rem 0 0;
	padding: 0;
	border: 0;
	font-weight: 400;
	font-style: normal;
	font-size: var(--md-t-micro);
	letter-spacing: var(--md-ls-nav);
	text-transform: uppercase;
	color: var(--md-ink-faint);
}

/* ---- Nummerierte Schritte ------------------------------------ */
.md-art__steps {
	counter-reset: mdstep;
	margin: 1.6rem 0;
	padding: 0;
	list-style: none;
}
.md-art__steps > li {
	position: relative;
	margin: 0;
	padding: .9rem 0 .9rem 3rem;
	border-top: 1px solid var(--md-rule-hair);
}
.md-art__steps > li::before {
	counter-increment: mdstep;
	content: counter(mdstep, decimal-leading-zero);
	position: absolute;
	left: 0;
	top: .9rem;
	font-family: var(--md-f-serif);
	font-size: .9rem;
	color: var(--md-accent-soft);
}

/* ---- Bild mit Bildunterschrift ------------------------------- */
.md-art__fig { margin: 1.8rem 0; }
.md-art__fig img {
	display: block;
	width: 100%;
	height: auto;
	border: 1px solid var(--md-rule-hair);
	filter: var(--md-photo-filter);
}
.md-art__fig figcaption {
	margin-top: .6rem;
	font-size: var(--md-t-micro);
	letter-spacing: var(--md-ls-body);
	color: var(--md-ink-faint);
}

/* ---- Trenner -------------------------------------------------- */
.md-art__rule {
	position: relative;
	width: 100%;
	height: 1px;
	margin: 2.4rem 0;
	border: 0;
	overflow: visible;
	background: linear-gradient(to right,
		transparent 0, transparent calc(50% - 3.2rem),
		var(--md-rule-soft) calc(50% - 3.2rem), var(--md-rule-soft) calc(50% - .7rem),
		transparent calc(50% - .7rem), transparent calc(50% + .7rem),
		var(--md-rule-soft) calc(50% + .7rem), var(--md-rule-soft) calc(50% + 3.2rem),
		transparent calc(50% + 3.2rem));
}
.md-art__rule::after {
	content: "";
	position: absolute;
	left: 50%;
	top: 50%;
	width: 5px;
	height: 5px;
	border: 1px solid var(--md-rule);
	transform: translate(-50%, -50%) rotate(45deg);
}

/* ---- Marken --------------------------------------------------- */
.md-art__tags { display: flex; flex-wrap: wrap; gap: .5rem; margin: 1.4rem 0; padding: 0; list-style: none; }
.md-art__tag {
	display: inline-block;
	padding: .25rem .7rem;
	border: 1px solid var(--md-rule-hair);
	font-size: var(--md-t-kicker);
	letter-spacing: var(--md-ls-nav);
	text-transform: uppercase;
	color: var(--md-ink-faint);
}
a.md-art__tag { text-decoration: none; transition: border-color var(--md-dur) var(--md-ease), color var(--md-dur) var(--md-ease); }
a.md-art__tag:hover { border-color: var(--md-rule-soft); color: var(--md-ink-bright); }
