/*
Theme Name:   Fuchs Scouting
Description:  Eigenes Theme für fuchs-scouting.com – Spielerprofile, Scouting-Berichte und Blog.
Version:      1.5.4
Requires PHP: 8.1
Text Domain:  fuchs
Update URI:   false
*/

/* ==========================================================================
   Schriften – lokal eingebunden (DSGVO: keine Verbindung zu Google)
   ========================================================================== */

@font-face {
	font-family: "Big Shoulders Display";
	font-style: normal;
	font-weight: 100 900;
	font-display: swap;
	src: url("assets/fonts/big-shoulders-display-latin-wght-normal.woff2") format("woff2");
	unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
	font-family: "Big Shoulders Display";
	font-style: normal;
	font-weight: 100 900;
	font-display: swap;
	src: url("assets/fonts/big-shoulders-display-latin-ext-wght-normal.woff2") format("woff2");
	unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
	font-family: "Geist";
	font-style: normal;
	font-weight: 100 900;
	font-display: swap;
	src: url("assets/fonts/geist-latin-wght-normal.woff2") format("woff2");
	unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
	font-family: "Geist";
	font-style: normal;
	font-weight: 100 900;
	font-display: swap;
	src: url("assets/fonts/geist-latin-ext-wght-normal.woff2") format("woff2");
	unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
	font-family: "Geist Mono";
	font-style: normal;
	font-weight: 100 900;
	font-display: swap;
	src: url("assets/fonts/geist-mono-latin-wght-normal.woff2") format("woff2");
	unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
	font-family: "Geist Mono";
	font-style: normal;
	font-weight: 100 900;
	font-display: swap;
	src: url("assets/fonts/geist-mono-latin-ext-wght-normal.woff2") format("woff2");
	unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

/* ==========================================================================
   Design-Tokens – Farben für Hell- und Dunkelmodus, Schriften, Maße
   Der Modus folgt der Geräteeinstellung; der Umschalter im Header
   setzt data-theme="light" bzw. "dark" am <html>-Element.
   ========================================================================== */

/* Hellmodus (Standard) */
:root {
	color-scheme: light;

	/* Warmes Papiergrau */
	--bg-rgb: 243, 240, 235;
	--bg: rgb(var(--bg-rgb));        /* #f3f0eb */
	--bg-raised: #ebe7e0;
	--surface: #faf8f5;
	--surface-hi: #e4dfd7;

	/* Navy als Schriftfarbe */
	--text-rgb: 27, 37, 54;
	--text: rgb(var(--text-rgb));    /* #1b2536 */
	--text-prose: #333e52;
	--text-dim: #5d6677;
	--text-faint: #8b909a;

	/* Akzent: gedecktes Navyblau */
	--accent-rgb: 49, 76, 112;
	--accent: rgb(var(--accent-rgb)); /* #314c70 */
	--accent-hi: #45648d;
	--accent-deep: #9db1c9;
	--accent-ink: #f6f3ee;
	--grey: #8b909a;

	--glow: 0.45;
	--stripe: rgba(27, 37, 54, 0.025);
	--highlight: rgba(255, 255, 255, 0.7);
	--shadow-lg: 0 40px 80px -30px rgba(27, 37, 54, 0.25);
	--shadow-md: 0 14px 32px -14px rgba(27, 37, 54, 0.3);
	--sun: none;
	--moon: block;
}

/* Dunkelmodus: per Geräteeinstellung … */
@media (prefers-color-scheme: dark) {
	:root:not([data-theme="light"]) {
		color-scheme: dark;

		/* Warmes Anthrazit statt kühlem Blaugrau */
		--bg-rgb: 24, 22, 20;
		--bg: rgb(var(--bg-rgb));        /* #181614 */
		--bg-raised: #1d1b18;
		--surface: #23201d;
		--surface-hi: #2d2a26;

		/* Cremiges Off-White */
		--text-rgb: 236, 231, 222;
		--text: rgb(var(--text-rgb));    /* #ece7de */
		--text-prose: #d4cec3;
		--text-dim: #a59e92;
		--text-faint: #756e64;

		/* Akzent: weiches, leicht graues Taubenblau */
		--accent-rgb: 147, 172, 201;
		--accent: rgb(var(--accent-rgb)); /* #93acc9 */
		--accent-hi: #b7c8dc;
		--accent-deep: #536b88;
		--accent-ink: #151b24;            /* Text auf Akzentflächen */
		--grey: #8f887d;

		--glow: 1;                        /* Stärke der Leuchteffekte */
		--stripe: var(--stripe);
		--highlight: rgba(255, 255, 255, 0.05);
		--shadow-lg: 0 50px 100px -30px rgba(0, 0, 0, 0.7);
		--shadow-md: 0 14px 32px -12px rgba(0, 0, 0, 0.6);
		--sun: block;                     /* Icon im Umschalter */
		--moon: none;
	}
}

/* … oder per Umschalter */
:root[data-theme="dark"] {
	color-scheme: dark;

	/* Warmes Anthrazit statt kühlem Blaugrau */
	--bg-rgb: 24, 22, 20;
	--bg: rgb(var(--bg-rgb));        /* #181614 */
	--bg-raised: #1d1b18;
	--surface: #23201d;
	--surface-hi: #2d2a26;

	/* Cremiges Off-White */
	--text-rgb: 236, 231, 222;
	--text: rgb(var(--text-rgb));    /* #ece7de */
	--text-prose: #d4cec3;
	--text-dim: #a59e92;
	--text-faint: #756e64;

	/* Akzent: weiches, leicht graues Taubenblau */
	--accent-rgb: 147, 172, 201;
	--accent: rgb(var(--accent-rgb)); /* #93acc9 */
	--accent-hi: #b7c8dc;
	--accent-deep: #536b88;
	--accent-ink: #151b24;            /* Text auf Akzentflächen */
	--grey: #8f887d;

	--glow: 1;                        /* Stärke der Leuchteffekte */
	--stripe: var(--stripe);
	--highlight: rgba(255, 255, 255, 0.05);
	--shadow-lg: 0 50px 100px -30px rgba(0, 0, 0, 0.7);
	--shadow-md: 0 14px 32px -12px rgba(0, 0, 0, 0.6);
	--sun: block;                     /* Icon im Umschalter */
	--moon: none;
}

:root {
	--accent-soft: rgba(var(--accent-rgb), 0.12);
	--line: rgba(var(--text-rgb), 0.09);
	--line-strong: rgba(var(--text-rgb), 0.17);

	--font-display: "Big Shoulders Display", "Arial Narrow", sans-serif;
	--font-body: "Geist", system-ui, -apple-system, "Segoe UI", sans-serif;
	--font-mono: "Geist Mono", ui-monospace, "SF Mono", Menlo, monospace;

	--wrap: 1240px;
	--wrap-narrow: 760px;
	--gutter: clamp(16px, 4vw, 40px);
	--header-h: 72px;
	--radius: 20px;
	--ease: cubic-bezier(0.2, 0.7, 0.2, 1);
}

/* ==========================================================================
   Basis
   ========================================================================== */

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

html {
	-webkit-text-size-adjust: 100%;
	scroll-padding-top: calc(var(--header-h) + 24px);
}

body {
	margin: 0;
	transition: background-color 0.3s, color 0.3s;
	font-family: var(--font-body);
	font-size: 1.0625rem;
	line-height: 1.6;
	color: var(--text);
	background: var(--bg);
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	text-rendering: optimizeLegibility;
	overflow-x: hidden;
}

/* Feine Körnung über allem – nimmt dem Dunkel die Plastikoptik */
body::after {
	content: "";
	position: fixed;
	inset: 0;
	z-index: 200;
	pointer-events: none;
	opacity: 0.035;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}

img,
svg {
	display: block;
	max-width: 100%;
	height: auto;
}

a {
	color: inherit;
}

::selection {
	background: var(--accent);
	color: var(--accent-ink);
}

:focus-visible {
	outline: 2px solid var(--accent);
	outline-offset: 3px;
	border-radius: 4px;
}

h1, h2, h3, h4 {
	text-wrap: balance;
}

p {
	text-wrap: pretty;
}

.icon {
	width: 1.1em;
	height: 1.1em;
	flex: none;
}

.screen-reader-text {
	position: absolute !important;
	width: 1px;
	height: 1px;
	overflow: hidden;
	clip-path: inset(50%);
	white-space: nowrap;
}

.skip-link {
	position: absolute;
	top: -100px;
	left: 16px;
	z-index: 300;
	padding: 0.75rem 1rem;
	border-radius: 8px;
	background: var(--accent);
	color: var(--accent-ink);
	font-weight: 600;
}

.skip-link:focus {
	top: 16px;
}

.wrap {
	width: min(100% - 2 * var(--gutter), var(--wrap));
	margin-inline: auto;
}

.wrap--narrow {
	--wrap: var(--wrap-narrow);
}

/* ==========================================================================
   Bausteine: Kicker, Buttons, Chips, Meter
   ========================================================================== */

.kicker {
	display: inline-flex;
	align-items: center;
	gap: 0.75rem;
	font-family: var(--font-mono);
	font-size: 0.75rem;
	font-weight: 500;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var(--accent);
}

.kicker::before {
	content: "";
	width: 28px;
	height: 1px;
	background: currentColor;
}

.btn {
	display: inline-flex;
	align-items: center;
	gap: 0.6rem;
	padding: 0.95rem 1.5rem;
	border: 1px solid transparent;
	border-radius: 999px;
	font: 600 0.95rem/1 var(--font-body);
	text-decoration: none;
	white-space: nowrap;
	cursor: pointer;
	transition: transform 0.25s var(--ease), background-color 0.25s, border-color 0.25s, box-shadow 0.25s, color 0.25s;
}

.btn .icon {
	transition: transform 0.25s var(--ease);
}

.btn:hover .icon {
	transform: translateX(3px);
}

.btn--primary {
	background: var(--accent);
	color: var(--accent-ink);
	box-shadow: 0 0 0 0 rgba(var(--accent-rgb), 0);
}

.btn--primary:hover {
	background: var(--accent-hi);
	transform: translateY(-2px);
	box-shadow: 0 12px 32px -8px rgba(var(--accent-rgb), 0.6);
}

.btn--ghost {
	border-color: var(--line-strong);
	color: var(--text);
}

.btn--ghost:hover {
	border-color: var(--text);
	transform: translateY(-2px);
}

.btn--dark {
	background: var(--bg);
	color: var(--text);
}

.btn--dark:hover {
	transform: translateY(-2px);
	box-shadow: var(--shadow-md);
}

.btn--sm {
	padding: 0.65rem 1.1rem;
	font-size: 0.875rem;
}

.chip {
	display: inline-flex;
	align-items: center;
	gap: 0.45rem;
	padding: 0.4rem 0.7rem;
	border: 1px solid var(--line-strong);
	border-radius: 999px;
	font-family: var(--font-mono);
	font-size: 0.68rem;
	font-weight: 500;
	letter-spacing: 0.1em;
	line-height: 1;
	text-transform: uppercase;
	text-decoration: none;
	color: var(--text-dim);
	white-space: nowrap;
}

.chip b {
	color: var(--text);
	font-weight: 700;
}

.chip--muted {
	border-style: dashed;
}

.chip--accent {
	border-color: rgba(var(--accent-rgb), 0.4);
	background: var(--accent-soft);
	color: var(--accent);
}

a.chip:hover {
	border-color: currentColor;
}

/* Empfehlungen als Abstufung: gefüllt (stark) → blau umrandet → grau */
.chip--verpflichten {
	border-color: var(--accent);
	background: var(--accent);
	color: var(--accent-ink);
	font-weight: 600;
}

.chip--beobachten {
	border-color: rgba(var(--accent-rgb), 0.45);
	background: var(--accent-soft);
	color: var(--accent-hi);
}

.chip--kein_bedarf {
	border-color: var(--line-strong);
	color: var(--grey);
}

.chip--verpflichten::before,
.chip--beobachten::before,
.chip--kein_bedarf::before {
	content: "";
	width: 6px;
	height: 6px;
	border-radius: 50%;
	background: currentColor;
}

.meter {
	display: grid;
	grid-template-columns: auto 1fr auto;
	align-items: center;
	gap: 0.75rem;
	font-family: var(--font-mono);
	font-size: 0.68rem;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--text-faint);
}

.meter strong {
	font-size: 0.85rem;
	color: var(--text);
	letter-spacing: 0;
}

.meter__bar {
	display: block;
	height: 4px;
	overflow: hidden;
	border-radius: 99px;
	background: var(--line);
}

.meter__bar i {
	display: block;
	width: calc(var(--v, 0) * 100%);
	height: 100%;
	border-radius: inherit;
	background: linear-gradient(90deg, var(--accent-deep), var(--accent));
	transform-origin: left;
	transition: transform 1.2s var(--ease) 0.3s;
}

/* ==========================================================================
   Header
   ========================================================================== */

.site-header {
	position: sticky;
	top: 0;
	z-index: 100;
	border-bottom: 1px solid transparent;
	transition: border-color 0.3s;
}

/* Glas-Effekt als Pseudo-Element, damit das mobile Menü (position: fixed) nicht eingesperrt wird */
.site-header::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: -1;
	background: rgba(var(--bg-rgb), 0.55);
	-webkit-backdrop-filter: blur(16px) saturate(150%);
	backdrop-filter: blur(16px) saturate(150%);
	transition: background-color 0.3s;
}

.site-header.is-scrolled {
	border-color: var(--line);
}

.site-header.is-scrolled::before {
	background: rgba(var(--bg-rgb), 0.82);
}

.admin-bar .site-header {
	top: 32px;
}

.site-header__inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 2rem;
	height: var(--header-h);
}

.brand {
	display: inline-flex;
	align-items: center;
	gap: 0.65rem;
	color: var(--text);
	text-decoration: none;
}

.brand__mark {
	width: 34px;
	height: 34px;
	color: var(--accent);
	transition: transform 0.4s var(--ease);
}

.brand:hover .brand__mark {
	transform: rotate(-8deg) scale(1.06);
}

.brand__name {
	font-family: var(--font-display);
	font-size: 1.6rem;
	font-weight: 800;
	line-height: 1;
	letter-spacing: 0.02em;
	text-transform: uppercase;
}

.brand__name span {
	margin-left: 0.2em;
	font-weight: 400;
	color: var(--text-dim);
}

.site-nav {
	display: flex;
	align-items: center;
	gap: 2.25rem;
	margin-left: auto;
}

.site-nav__menu {
	display: flex;
	gap: 2rem;
	margin: 0;
	padding: 0;
	list-style: none;
}

.site-nav__menu a {
	position: relative;
	display: block;
	padding-block: 0.5rem;
	font-size: 0.95rem;
	font-weight: 500;
	color: var(--text-dim);
	text-decoration: none;
	transition: color 0.2s;
}

.site-nav__menu a::after {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0;
	height: 2px;
	border-radius: 2px;
	background: var(--accent);
	transform: scaleX(0);
	transform-origin: left;
	transition: transform 0.3s var(--ease);
}

.site-nav__menu a:hover,
.site-nav__menu .current-menu-item > a,
.site-nav__menu .current_page_parent > a {
	color: var(--text);
}

.site-nav__menu a:hover::after,
.site-nav__menu .current-menu-item > a::after,
.site-nav__menu .current_page_parent > a::after {
	transform: scaleX(1);
}

/* Reihenfolge im Header: Logo · Menü · Hell/Dunkel · Burger */
.site-nav     { order: 1; }
.theme-toggle { order: 2; }
.nav-toggle   { order: 3; }

.theme-toggle {
	display: grid;
	place-items: center;
	width: 40px;
	height: 40px;
	flex: none;
	border: 1px solid var(--line-strong);
	border-radius: 50%;
	background: transparent;
	color: var(--text-dim);
	cursor: pointer;
	transition: color 0.2s, border-color 0.2s, transform 0.4s var(--ease);
}

.theme-toggle:hover {
	border-color: var(--text-dim);
	color: var(--text);
	transform: rotate(-20deg);
}

.theme-toggle .icon {
	width: 18px;
	height: 18px;
}

.theme-toggle .icon--sun  { display: var(--sun); }
.theme-toggle .icon--moon { display: var(--moon); }

.nav-toggle {
	display: none;
	position: relative;
	width: 44px;
	height: 44px;
	margin-right: -10px;
	border: 0;
	background: none;
	color: var(--text);
	cursor: pointer;
}

.nav-toggle__bars,
.nav-toggle__bars::before,
.nav-toggle__bars::after {
	position: absolute;
	left: 11px;
	width: 22px;
	height: 2px;
	border-radius: 2px;
	background: currentColor;
	transition: transform 0.3s var(--ease), opacity 0.2s;
}

.nav-toggle__bars {
	top: 21px;
}

.nav-toggle__bars::before,
.nav-toggle__bars::after {
	content: "";
	left: 0;
}

.nav-toggle__bars::before { transform: translateY(-7px); }
.nav-toggle__bars::after  { transform: translateY(7px); }

.nav-open .nav-toggle__bars { background: transparent; }
.nav-open .nav-toggle__bars::before { transform: rotate(45deg); }
.nav-open .nav-toggle__bars::after  { transform: rotate(-45deg); }

/* ==========================================================================
   Sektionen
   ========================================================================== */

.section {
	padding-block: clamp(4rem, 9vw, 7.5rem);
}

.section--alt {
	border-top: 1px solid var(--line);
	background: var(--bg-raised);
}

.section--flush {
	padding-top: 0;
}

.section--tight {
	padding-block: 0 clamp(4rem, 9vw, 7rem);
}

.section-head {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-end;
	justify-content: space-between;
	gap: 1.5rem 2rem;
	margin-bottom: clamp(2rem, 4vw, 3rem);
}

.section-head__index {
	display: block;
	margin-bottom: 0.9rem;
	font-family: var(--font-mono);
	font-size: 0.75rem;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var(--accent);
}

.section-head__title {
	margin: 0;
	font-family: var(--font-display);
	font-size: clamp(2.6rem, 6vw, 4.5rem);
	font-weight: 800;
	line-height: 1.04;
	letter-spacing: -0.005em;
	text-transform: uppercase;
}

.link-arrow {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	padding-bottom: 0.3rem;
	border-bottom: 1px solid var(--line-strong);
	font-weight: 600;
	text-decoration: none;
	transition: color 0.2s, border-color 0.2s;
}

.link-arrow:hover {
	border-color: var(--accent);
	color: var(--accent);
}

.link-arrow .icon {
	transition: transform 0.25s var(--ease);
}

.link-arrow:hover .icon {
	transform: translateX(4px);
}

.empty {
	display: grid;
	justify-items: start;
	gap: 1.25rem;
	padding: 3rem;
	border: 1px dashed var(--line-strong);
	border-radius: var(--radius);
	color: var(--text-dim);
}

.empty p {
	margin: 0;
}

/* ==========================================================================
   Startseite: Hero
   ========================================================================== */

.hero {
	position: relative;
	isolation: isolate;
	overflow: hidden;
	padding-block: clamp(3.5rem, 9vw, 7.5rem) clamp(3.5rem, 7vw, 6rem);
}

.hero__pitch,
.page-hero__pitch,
.profile-hero__pitch,
.not-found__pitch {
	position: absolute;
	z-index: -1;
	color: rgba(var(--text-rgb), 0.14);
	pointer-events: none;
}

.hero__pitch {
	left: 50%;
	bottom: -22%;
	width: max(1400px, 130%);
	transform: translateX(-50%) perspective(1100px) rotateX(64deg);
	transform-origin: 50% 100%;
	-webkit-mask-image: linear-gradient(to top, #000 15%, transparent 80%);
	mask-image: linear-gradient(to top, #000 15%, transparent 80%);
}

.hero__glow {
	position: absolute;
	top: -30%;
	right: -20%;
	z-index: -1;
	width: min(1100px, 90vw);
	aspect-ratio: 1;
	background: radial-gradient(closest-side, rgba(var(--accent-rgb), calc(0.26 * var(--glow))), rgba(var(--accent-rgb), calc(0.06 * var(--glow))) 55%, transparent);
	pointer-events: none;
}

.hero__grid {
	display: grid;
	grid-template-columns: minmax(0, 1.3fr) minmax(0, 0.85fr);
	align-items: center;
	gap: clamp(2.5rem, 6vw, 6rem);
}

.hero__title {
	margin: 1.5rem 0 1.75rem;
	font-family: var(--font-display);
	font-size: clamp(3.6rem, 9.5vw, 8.75rem);
	font-weight: 900;
	line-height: 1.04; /* Platz für Ä/Ö/Ü-Punkte, Komma und W-Überhang bei mehrzeiligen Großbuchstaben */
	letter-spacing: -0.012em;
	text-transform: uppercase;
}

.hero__title em {
	display: block;
	font-style: normal;
	color: var(--accent);
}

.hero__text {
	max-width: 34rem;
	margin: 0;
	font-size: clamp(1.05rem, 1.5vw, 1.25rem);
	line-height: 1.55;
	color: var(--text-dim);
}

.hero__actions {
	display: flex;
	flex-wrap: wrap;
	gap: 0.75rem;
	margin-top: 2.25rem;
}

.hero__stats {
	display: flex;
	flex-wrap: wrap;
	gap: 1.5rem 3rem;
	margin: 3.5rem 0 0;
	padding-top: 1.75rem;
	border-top: 1px solid var(--line);
}

.stat {
	display: flex;
	flex-direction: column-reverse;
	gap: 0.4rem;
}

.stat dd {
	margin: 0;
	font-family: var(--font-display);
	font-size: clamp(2.5rem, 4vw, 3.25rem);
	font-weight: 800;
	line-height: 0.9;
	font-variant-numeric: tabular-nums;
}

.stat dt {
	font-family: var(--font-mono);
	font-size: 0.7rem;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--text-faint);
}

/* Spotlight-Karte (Top-Talent) */

.spotlight {
	position: relative;
	display: block;
	padding: 1.5rem 1.5rem 1.25rem;
	border: 1px solid var(--line-strong);
	border-radius: 28px;
	background:
		radial-gradient(120% 80% at 100% 0%, rgba(var(--accent-rgb), calc(0.16 * var(--glow))), transparent 55%),
		linear-gradient(165deg, var(--surface-hi), var(--surface) 60%);
	box-shadow: var(--shadow-lg), inset 0 1px 0 var(--highlight);
	color: inherit;
	text-decoration: none;
	transform: rotate(1.8deg);
	transition: transform 0.5s var(--ease), border-color 0.3s;
}

.spotlight:hover {
	border-color: rgba(var(--accent-rgb), 0.5);
	transform: rotate(0deg) translateY(-6px);
}

.spotlight__head {
	display: flex;
	align-items: center;
	justify-content: space-between;
}

.spotlight__pos {
	font-family: var(--font-display);
	font-size: 1.75rem;
	font-weight: 800;
	line-height: 1;
	color: var(--text-dim);
}

.spotlight__name {
	margin-top: 1.25rem;
	font-family: var(--font-display);
	font-size: clamp(2.5rem, 4vw, 3.25rem);
	font-weight: 900;
	line-height: 1.04;
	text-transform: uppercase;
}

.spotlight__name span {
	display: block;
	margin-bottom: 0.1em;
	font-size: 0.5em;
	line-height: 1;
	font-weight: 400;
	color: var(--text-dim);
}

.spotlight__meta {
	margin: 0.6rem 0 0;
	font-size: 0.9rem;
	color: var(--text-dim);
}

.spotlight__radar {
	margin: 0.5rem -0.5rem 0;
}

.spotlight__foot {
	display: flex;
	align-items: flex-end;
	gap: 2rem;
	padding-top: 1rem;
	border-top: 1px solid var(--line);
}

.spotlight__foot small {
	display: block;
	margin-bottom: 0.3rem;
	font-family: var(--font-mono);
	font-size: 0.65rem;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--text-faint);
}

.spotlight__foot strong {
	font-family: var(--font-display);
	font-size: 2.5rem;
	font-weight: 800;
	line-height: 0.85;
}

.is-accent {
	color: var(--accent);
}

.spotlight__cta {
	display: inline-flex;
	align-items: center;
	gap: 0.4rem;
	margin-left: auto;
	font-size: 0.875rem;
	font-weight: 600;
	color: var(--text-dim);
	transition: color 0.2s;
}

.spotlight:hover .spotlight__cta {
	color: var(--accent);
}

/* ==========================================================================
   Ticker
   ========================================================================== */

.ticker {
	overflow: hidden;
	border-block: 1px solid var(--line);
	background: var(--bg-raised);
	-webkit-mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent);
	mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent);
}

.ticker__track {
	display: flex;
	width: max-content;
	animation: ticker 60s linear infinite;
}

.ticker:hover .ticker__track {
	animation-play-state: paused;
}

.ticker__list {
	display: flex;
	gap: 3.5rem;
	margin: 0;
	padding: 1.1rem 1.75rem;
	list-style: none;
}

.ticker__item {
	display: flex;
	align-items: center;
	gap: 0.75rem;
	font-family: var(--font-mono);
	font-size: 0.8rem;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	white-space: nowrap;
}

.ticker__pos {
	padding: 0.2rem 0.4rem;
	border-radius: 4px;
	background: var(--surface-hi);
	font-size: 0.7rem;
	color: var(--text-dim);
}

.ticker__club {
	color: var(--text-faint);
}

.ticker__item b {
	color: var(--accent);
}

.ticker__item b::before {
	content: "▲ ";
	font-size: 0.6em;
	vertical-align: 0.15em;
}

@keyframes ticker {
	to { transform: translateX(-50%); }
}

/* ==========================================================================
   Spielerkarten
   ========================================================================== */

.player-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(255px, 1fr));
	gap: 1.25rem;
}

.player-card {
	position: relative;
	overflow: hidden;
	border: 1px solid var(--line);
	border-radius: var(--radius);
	background: var(--surface);
	transition: transform 0.4s var(--ease), border-color 0.4s, box-shadow 0.4s;
}

.player-card:hover {
	border-color: rgba(var(--accent-rgb), 0.45);
	box-shadow: 0 28px 60px -24px rgba(var(--accent-rgb), calc(0.35 * var(--glow)));
	transform: translateY(-6px);
}

.player-card__link {
	display: flex;
	flex-direction: column;
	height: 100%;
	color: inherit;
	text-decoration: none;
}

.player-card__media,
.profile-hero__visual {
	position: relative;
	overflow: hidden;
	background:
		radial-gradient(110% 80% at 80% 0%, rgba(var(--accent-rgb), calc(0.3 * var(--glow))), transparent 60%),
		repeating-linear-gradient(90deg, var(--stripe) 0 28px, transparent 28px 56px),
		linear-gradient(180deg, var(--surface-hi), var(--surface));
}

.player-card__media {
	aspect-ratio: 1 / 1;
}

.player-card__media img,
.profile-hero__visual img,
.post-card__media img,
.article-media img {
	filter: saturate(0.55) contrast(1.03);   /* Fotos an die ruhige Farbwelt anpassen */
	transition: transform 0.7s var(--ease), filter 0.5s;
}

.player-card:hover .player-card__media img,
.post-card:hover .post-card__media img {
	filter: saturate(0.9) contrast(1.03);
}

.player-card__media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

/* Auf Fotos: dunkler Verlauf oben und unten, Schrift immer hell */
.has-photo {
	color: #f3efe8;
	--text-dim: rgba(243, 239, 232, 0.75);
}

.has-photo::after {
	content: "";
	position: absolute;
	inset: 0;
	background:
		linear-gradient(180deg, rgba(10, 10, 10, 0.55), transparent 38%),
		linear-gradient(0deg, rgba(10, 10, 10, 0.5), transparent 35%);
	pointer-events: none;
}

.player-card__rating,
.player-card__pos,
.profile-hero__score {
	z-index: 1;
}

.player-card__pos small {
	font-size: 0.85em;
	font-weight: 400;
	opacity: 0.7;
}

.has-photo .player-card__pos {
	border-color: rgba(243, 239, 232, 0.3);
	background: rgba(10, 10, 10, 0.35);
}

.player-card:hover .player-card__media img {
	transform: scale(1.05);
}

.player-card__monogram,
.profile-hero__monogram {
	position: absolute;
	inset: 0;
	display: grid;
	place-items: center;
	padding-top: 8%;
	font-family: var(--font-display);
	font-weight: 900;
	line-height: 1;
	color: transparent;
	-webkit-text-stroke: 1.5px rgba(var(--text-rgb), 0.22);
	transition: -webkit-text-stroke-color 0.4s, transform 0.6s var(--ease);
	user-select: none;
}

.player-card__monogram {
	font-size: 8.5rem;
}

.player-card:hover .player-card__monogram {
	-webkit-text-stroke-color: var(--accent);
	transform: scale(1.06);
}

.player-card__rating {
	position: absolute;
	top: 1rem;
	left: 1.1rem;
	display: flex;
	flex-direction: column;
	gap: 0.2rem;
}

.player-card__rating strong {
	font-family: var(--font-display);
	font-size: 2.75rem;
	font-weight: 900;
	line-height: 0.85;
}

.player-card__rating small {
	font-family: var(--font-mono);
	font-size: 0.6rem;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--text-dim);
}

.player-card__pos {
	position: absolute;
	top: 1rem;
	right: 1rem;
	padding: 0.35rem 0.55rem;
	border: 1px solid var(--line-strong);
	border-radius: 8px;
	background: rgba(var(--bg-rgb), 0.55);
	-webkit-backdrop-filter: blur(8px);
	backdrop-filter: blur(8px);
	font-family: var(--font-mono);
	font-size: 0.75rem;
	font-weight: 600;
	letter-spacing: 0.08em;
}

.player-card__body {
	display: flex;
	flex: 1;
	flex-direction: column;
	align-items: flex-start;
	gap: 1rem;
	padding: 1.1rem 1.25rem 1.3rem;
}

.player-card__name {
	margin: 0;
	font-family: var(--font-display);
	font-size: 1.9rem;
	font-weight: 800;
	line-height: 1.04;
	text-transform: uppercase;
}

.player-card__name span {
	display: block;
	margin-bottom: 0.08em;
	font-size: 0.6em;
	line-height: 1;
	font-weight: 400;
	color: var(--text-dim);
}

.player-card__meta {
	margin: -0.5rem 0 0;
	font-size: 0.875rem;
	color: var(--text-dim);
}

.player-card .meter {
	align-self: stretch;
	margin-top: auto;
}

/* ==========================================================================
   Blog-Karten
   ========================================================================== */

.post-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(min(100%, 320px), 1fr));
	gap: 2.5rem 1.5rem;
}

.post-card {
	position: relative;
	display: flex;
	flex-direction: column;
	gap: 1.1rem;
}

.post-card__media {
	position: relative;
	display: block;
	overflow: hidden;
	aspect-ratio: 16 / 10;
	border: 1px solid var(--line);
	border-radius: var(--radius);
	background: var(--surface);
}

.post-card__media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 0.7s var(--ease), filter 0.5s;
}

.post-card:hover .post-card__media img,
.post-card:hover .post-card__art {
	transform: scale(1.04);
}

.post-card__art {
	position: absolute;
	inset: 0;
	display: flex;
	align-items: flex-end;
	padding: 1.25rem;
	background:
		radial-gradient(90% 90% at 0% 100%, rgba(var(--accent-rgb), calc(0.28 * var(--glow))), transparent 60%),
		repeating-linear-gradient(-45deg, var(--stripe) 0 2px, transparent 2px 14px),
		linear-gradient(160deg, var(--surface-hi), var(--surface));
	transition: transform 0.7s var(--ease);
}

.post-card__art span {
	font-family: var(--font-display);
	font-size: clamp(2.5rem, 5vw, 3.75rem);
	font-weight: 900;
	line-height: 0.85;
	text-transform: uppercase;
	color: transparent;
	-webkit-text-stroke: 1.25px rgba(var(--text-rgb), 0.3);
}

.post-card__meta {
	display: flex;
	flex-wrap: wrap;
	gap: 0.4rem 1rem;
	font-family: var(--font-mono);
	font-size: 0.7rem;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--text-faint);
}

.post-card__cat {
	color: var(--accent);
}

.post-card__title {
	margin: 0.5rem 0 0;
	font-size: 1.35rem;
	font-weight: 600;
	line-height: 1.25;
	letter-spacing: -0.015em;
}

.post-card__title a {
	text-decoration: none;
	background-image: linear-gradient(currentColor, currentColor);
	background-size: 0 1px;
	background-position: 0 100%;
	background-repeat: no-repeat;
	transition: background-size 0.4s var(--ease), color 0.2s;
}

.post-card:hover .post-card__title a {
	background-size: 100% 1px;
}

/* Ganze Karte klickbar */
.post-card__title a::after {
	content: "";
	position: absolute;
	inset: 0;
}

.post-card__excerpt {
	margin: 0.6rem 0 0;
	font-size: 0.975rem;
	color: var(--text-dim);
}

/* Große Karte */
.post-card--featured .post-card__title {
	font-family: var(--font-display);
	font-size: clamp(2rem, 3.6vw, 3rem);
	font-weight: 800;
	line-height: 0.95;
	letter-spacing: 0;
	text-transform: uppercase;
}

.post-card--featured .post-card__media {
	aspect-ratio: 16 / 9;
}

.post-grid .post-card--featured {
	grid-column: 1 / -1;
	display: grid;
	grid-template-columns: 1.35fr 1fr;
	align-items: center;
	gap: 2.5rem;
}

/* Kompakte Zeile */
.post-card--row {
	display: grid;
	grid-template-columns: 132px 1fr;
	align-items: center;
	gap: 1.25rem;
	padding-block: 1.5rem;
	border-top: 1px solid var(--line);
}

.post-card--row:first-child {
	border-top: 0;
	padding-top: 0;
}

.post-card--row .post-card__media {
	aspect-ratio: 1;
	border-radius: 14px;
}

/* In der kleinen Vorschau nur der Anfangsbuchstabe der Kategorie */
.post-card--row .post-card__art span {
	display: block;
	font-size: 0;
}

.post-card--row .post-card__art span::first-letter {
	font-size: 4.5rem;
}

.post-card--row .post-card__title {
	font-size: 1.15rem;
}

.blog-feature {
	display: grid;
	grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr);
	gap: clamp(2rem, 5vw, 4rem);
	align-items: start;
}

/* ==========================================================================
   Methodik + Call-to-Action
   ========================================================================== */

.method {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 1.25rem;
}

.method__card {
	display: flex;
	flex-direction: column;
	gap: 0.75rem;
	padding: 2rem;
	border: 1px solid var(--line);
	border-radius: var(--radius);
	background: linear-gradient(180deg, var(--surface), transparent);
}

.method__num {
	font-family: var(--font-display);
	font-size: 4.5rem;
	font-weight: 900;
	line-height: 0.85;
	color: transparent;
	-webkit-text-stroke: 1.5px var(--accent);
}

.method__card h3 {
	margin: 0.75rem 0 0;
	font-size: 1.3rem;
	font-weight: 600;
	letter-spacing: -0.01em;
}

.method__card p {
	margin: 0;
	color: var(--text-dim);
}

.scale {
	display: grid;
	grid-template-columns: repeat(10, 1fr);
	gap: 3px;
	margin-top: auto;
	padding-top: 1rem;
}

.scale span {
	padding-block: 0.45rem;
	border-radius: 4px;
	background: color-mix(in srgb, var(--accent) calc(var(--n) * 9%), var(--surface-hi));
	font-family: var(--font-mono);
	font-size: 0.7rem;
	text-align: center;
	color: var(--text);
}

.scale span:nth-child(n + 8) {
	color: var(--accent-ink);
}

.method__tags,
.method__verdicts {
	display: flex;
	flex-wrap: wrap;
	gap: 0.4rem;
	margin: auto 0 0;
	padding: 1rem 0 0;
	list-style: none;
}

.method__tags li {
	padding: 0.35rem 0.65rem;
	border-radius: 6px;
	background: var(--surface-hi);
	font-size: 0.85rem;
	color: var(--text-dim);
}

.cta {
	position: relative;
	isolation: isolate;
	overflow: hidden;
	display: grid;
	grid-template-columns: 1fr auto;
	align-items: center;
	gap: 2rem;
	padding: clamp(2.25rem, 6vw, 4.5rem);
	border-radius: 32px;
	background: var(--accent);
	color: var(--accent-ink);
}

.cta__mark {
	position: absolute;
	right: -4%;
	bottom: -30%;
	z-index: -1;
	width: min(520px, 60%);
	height: auto;
	color: var(--accent-ink);
	opacity: 0.1;
	--bg: var(--accent);
	transform: rotate(-12deg);
}

.cta__title {
	margin: 0;
	font-family: var(--font-display);
	font-size: clamp(2.4rem, 5.5vw, 4.5rem);
	font-weight: 900;
	line-height: 1.04;
	text-transform: uppercase;
}

.cta__text {
	max-width: 34rem;
	margin: 1rem 0 0;
	font-size: 1.1rem;
	font-weight: 500;
}

/* ==========================================================================
   Unterseiten-Kopf + Filter
   ========================================================================== */

.page-hero {
	position: relative;
	isolation: isolate;
	overflow: hidden;
	padding-block: clamp(3.5rem, 8vw, 6.5rem) clamp(2rem, 4vw, 3rem);
}

.page-hero--compact {
	padding-bottom: 1rem;
}

.page-hero__pitch {
	top: -40%;
	right: -10%;
	width: min(900px, 90vw);
	transform: rotate(-8deg);
	-webkit-mask-image: radial-gradient(closest-side, #000, transparent);
	mask-image: radial-gradient(closest-side, #000, transparent);
}

.page-hero__title {
	margin: 1.25rem 0 0;
	font-family: var(--font-display);
	font-size: clamp(3.2rem, 9vw, 7.5rem);
	font-weight: 900;
	line-height: 1.04;
	letter-spacing: -0.01em;
	text-transform: uppercase;
	hyphens: manual;
	overflow-wrap: break-word;
}

.page-hero--compact .page-hero__title {
	/* klein genug, dass „Datenschutzerklärung“ auch auf dem Handy in eine Zeile passt */
	font-size: clamp(1.9rem, 7vw, 5rem);
}

.page-hero__text {
	max-width: 40rem;
	margin: 1.5rem 0 0;
	font-size: 1.15rem;
	color: var(--text-dim);
}

.filters {
	position: sticky;
	top: var(--header-h);
	z-index: 20;
	margin-bottom: 2.5rem;
	border-block: 1px solid var(--line);
	background: rgba(var(--bg-rgb), 0.85);
	-webkit-backdrop-filter: blur(14px);
	backdrop-filter: blur(14px);
}

.admin-bar .filters {
	top: calc(var(--header-h) + 32px);
}

.filters__inner {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 0.75rem 1.5rem;
	padding-block: 0.9rem;
}

.filter-group {
	display: flex;
	gap: 0.4rem;
	min-width: 0;
	max-width: 100%;
	overflow-x: auto; /* auf dem Handy seitlich wischen statt umbrechen */
	scrollbar-width: none;
}

.filter {
	display: inline-flex;
	align-items: center;
	gap: 0.4rem;
	padding: 0.55rem 1rem;
	border: 1px solid var(--line-strong);
	border-radius: 999px;
	font-size: 0.875rem;
	font-weight: 500;
	color: var(--text-dim);
	text-decoration: none;
	white-space: nowrap;
	transition: border-color 0.2s, color 0.2s, background-color 0.2s;
}

.filter span {
	font-family: var(--font-mono);
	font-size: 0.7rem;
	color: var(--text-faint);
}

.filter:hover {
	border-color: var(--text-dim);
	color: var(--text);
}

.filter.is-active {
	border-color: var(--text);
	background: var(--text);
	color: var(--bg);
}

.filter.is-active span {
	color: var(--bg);
}

.sort {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.4rem 1rem;
	font-family: var(--font-mono);
	font-size: 0.72rem;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--text-faint);
}

.sort a {
	color: var(--text-dim);
	text-decoration: none;
}

.sort a:hover,
.sort a.is-active {
	color: var(--accent);
}

.search-form label {
	display: flex;
	align-items: center;
	gap: 0.6rem;
	padding: 0.55rem 1rem;
	border: 1px solid var(--line-strong);
	border-radius: 999px;
	color: var(--text-faint);
	transition: border-color 0.2s;
}

.search-form label:focus-within {
	border-color: var(--accent);
}

.search-form input {
	width: 13rem;
	border: 0;
	outline: 0;
	background: transparent;
	font: inherit;
	font-size: 0.9rem;
	color: var(--text);
}

.search-form input::placeholder {
	color: var(--text-faint);
}

.pagination .nav-links {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 0.5rem;
	margin-top: 3.5rem;
}

.page-numbers {
	display: grid;
	place-items: center;
	min-width: 46px;
	height: 46px;
	padding-inline: 0.75rem;
	border: 1px solid var(--line-strong);
	border-radius: 999px;
	font-family: var(--font-mono);
	font-size: 0.85rem;
	text-decoration: none;
	transition: border-color 0.2s, background-color 0.2s;
}

a.page-numbers:hover {
	border-color: var(--text);
}

.page-numbers.current {
	border-color: var(--accent);
	background: var(--accent);
	color: var(--accent-ink);
}

.page-numbers.dots {
	border: 0;
}

/* ==========================================================================
   Spielerprofil
   ========================================================================== */

.profile-hero {
	position: relative;
	isolation: isolate;
	overflow: hidden;
	padding-block: clamp(2rem, 5vw, 3.5rem) clamp(3rem, 6vw, 4.5rem);
	border-bottom: 1px solid var(--line);
	background: radial-gradient(80% 120% at 85% 0%, rgba(var(--accent-rgb), calc(0.14 * var(--glow))), transparent 60%);
}

.profile-hero__pitch {
	left: -10%;
	bottom: -55%;
	width: 120%;
	transform: perspective(1100px) rotateX(62deg);
	-webkit-mask-image: linear-gradient(to top, #000, transparent 75%);
	mask-image: linear-gradient(to top, #000, transparent 75%);
}

.profile-hero__inner {
	display: grid;
	grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr);
	align-items: end;
	gap: clamp(2rem, 5vw, 4rem);
}

.back-link {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	margin-bottom: 2.5rem;
	font-family: var(--font-mono);
	font-size: 0.75rem;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--text-dim);
	text-decoration: none;
	transition: color 0.2s;
}

.back-link:hover {
	color: var(--accent);
}

.profile-hero__tags {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
}

.profile-hero__name {
	margin: 1.5rem 0 1.25rem;
	font-family: var(--font-display);
	font-size: clamp(3.75rem, 11vw, 9.5rem);
	font-weight: 900;
	line-height: 1.04;
	letter-spacing: -0.015em;
	text-transform: uppercase;
	overflow-wrap: anywhere;
}

.profile-hero__name span {
	display: block;
	margin-bottom: 0.08em;
	font-size: 0.42em;
	font-weight: 300;
	letter-spacing: 0.02em;
	color: var(--text-dim);
}

.profile-hero__club {
	margin: 0;
	font-size: clamp(1.1rem, 2vw, 1.35rem);
	font-weight: 500;
}

.profile-hero__club span {
	color: var(--text-dim);
}

.facts {
	display: flex;
	flex-wrap: wrap;
	gap: 1.25rem 2.75rem;
	margin: 2.25rem 0 0;
	padding-top: 1.5rem;
	border-top: 1px solid var(--line);
}

.facts div {
	display: flex;
	flex-direction: column-reverse;
	gap: 0.35rem;
}

.facts dt {
	font-family: var(--font-mono);
	font-size: 0.68rem;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--text-faint);
}

.facts dd {
	margin: 0;
	font-family: var(--font-display);
	font-size: 1.9rem;
	font-weight: 700;
	line-height: 1;
}

.profile-hero__visual {
	aspect-ratio: 4 / 5;
	max-height: 540px;
	border: 1px solid var(--line-strong);
	border-radius: 28px;
	box-shadow: var(--shadow-lg);
}

.profile-hero__visual img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.profile-hero__monogram {
	font-size: clamp(9rem, 18vw, 15rem);
	-webkit-text-stroke-width: 2px;
}

.profile-hero__score {
	position: absolute;
	left: 1.5rem;
	bottom: 1.25rem;
	display: flex;
	flex-direction: column;
	gap: 0.3rem;
}

.profile-hero__score small {
	font-family: var(--font-mono);
	font-size: 0.7rem;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--text-dim);
}

.profile-hero__score strong {
	font-family: var(--font-display);
	font-size: 5.5rem;
	font-weight: 900;
	line-height: 0.8;
	color: var(--accent);
	text-shadow: 0 0 40px rgba(var(--accent-rgb), calc(0.45 * var(--glow)));
}

.profile-body {
	display: grid;
	grid-template-columns: 330px minmax(0, 1fr);
	align-items: start;
	gap: 1.25rem;
	padding-block: clamp(2rem, 4vw, 3rem) clamp(4rem, 8vw, 6rem);
}

.profile-aside {
	position: sticky;
	top: calc(var(--header-h) + 1.25rem);
	display: grid;
	gap: 1.25rem;
}

.admin-bar .profile-aside {
	top: calc(var(--header-h) + 32px + 1.25rem);
}

.profile-main {
	display: grid;
	grid-template-columns: minmax(0, 1fr); /* breite Tabellen scrollen in sich, statt die Seite zu verbreitern */
	gap: 1.25rem;
}

.panel {
	padding: 1.5rem;
	border: 1px solid var(--line);
	border-radius: var(--radius);
	background: var(--surface);
}

.panel__title {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	gap: 0.25rem 1rem;
	margin: 0 0 1.25rem;
	font-family: var(--font-mono);
	font-size: 0.72rem;
	font-weight: 500;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var(--text-faint);
}

.panel__title span {
	color: var(--accent);
}

.panel__caption {
	margin: 1rem 0 0;
	font-weight: 500;
	text-align: center;
}

.panel__text {
	margin: 0;
	color: var(--text-dim);
}

/* Bewertungsringe */
.rings {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 1rem;
}

.ring {
	position: relative;
	display: grid;
	justify-items: center;
	margin: 0;
}

.ring svg {
	width: 100%;
	max-width: 120px;
	transform: rotate(-90deg);
}

.ring circle {
	fill: none;
	stroke-width: 6;
}

.ring__track {
	stroke: var(--line);
}

.ring__value {
	stroke: var(--text);
	stroke-linecap: round;
	stroke-dasharray: 100;
	stroke-dashoffset: calc(100 - var(--p) * 100);
	transition: stroke-dashoffset 1.4s var(--ease) 0.2s;
}

.ring--accent .ring__value {
	stroke: var(--accent);
	filter: drop-shadow(0 0 6px rgba(var(--accent-rgb), calc(0.55 * var(--glow))));
}

.ring__number {
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	display: grid;
	place-items: center;
	aspect-ratio: 1;
	max-width: 120px;
	margin-inline: auto;
	font-family: var(--font-display);
	font-size: 2.4rem;
	font-weight: 800;
}

.ring--accent .ring__number {
	color: var(--accent);
}

.ring__label {
	margin-top: 0.6rem;
	font-family: var(--font-mono);
	font-size: 0.65rem;
	letter-spacing: 0.12em;
	text-align: center;
	text-transform: uppercase;
	color: var(--text-dim);
}

/* Mini-Spielfeld */
.pitch {
	width: 100%;
	max-width: 170px;
	margin-inline: auto;
	border-radius: 6px;
	background: repeating-linear-gradient(180deg, var(--stripe) 0 18px, transparent 18px 36px);
}

.pitch__lines {
	fill: none;
	stroke: var(--line-strong);
	stroke-width: 0.8;
}

.pitch__dot {
	fill: var(--accent);
}

.pitch__dot--alt {
	fill: var(--surface);
	stroke: var(--accent);
	stroke-width: 1.5;
	stroke-dasharray: 2 1.5;
}

.pitch-legend {
	display: grid;
	gap: 0.4rem;
	margin: 1rem 0 0;
	padding: 1rem 0 0;
	border-top: 1px solid var(--line);
	list-style: none;
	font-size: 0.85rem;
	color: var(--text-dim);
}

.pitch-legend li {
	display: flex;
	align-items: flex-start;
	gap: 0.6rem;
}

.pitch-legend__dot {
	flex: none;
	width: 10px;
	height: 10px;
	margin-top: 0.3em;
	border-radius: 50%;
	background: var(--accent);
}

.pitch-legend__dot--alt {
	background: transparent;
	border: 1.5px dashed var(--accent);
}

.pitch__pulse {
	fill: var(--accent);
	opacity: 0.35;
	transform-box: fill-box;
	transform-origin: center;
	animation: pulse 2.2s ease-out infinite;
}

@keyframes pulse {
	from { transform: scale(0.6); opacity: 0.6; }
	to   { transform: scale(2.2); opacity: 0; }
}

/* Radar + Attribute */
.attrs {
	display: grid;
	grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr);
	align-items: center;
	gap: 2rem;
}

.radar {
	width: 100%;
	overflow: visible;
}

.radar__ring {
	fill: none;
	stroke: var(--line);
	stroke-width: 1;
}

.radar__ring:last-of-type {
	stroke: var(--line-strong);
}

.radar__axis {
	stroke: var(--line);
	stroke-width: 1;
}

.radar__area polygon {
	fill: rgba(var(--accent-rgb), 0.2);
	stroke: var(--accent);
	stroke-width: 2;
	stroke-linejoin: round;
}

.radar__area {
	transform-origin: 150px 150px;
	transition: transform 1.2s var(--ease) 0.2s, opacity 1s 0.2s;
}

.radar__dot {
	fill: var(--bg);
	stroke: var(--accent);
	stroke-width: 2;
}

.radar__label {
	fill: var(--text-dim);
	font-family: var(--font-mono);
	font-size: 11.5px;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

.attr-list {
	display: grid;
	gap: 1.1rem;
	margin: 0;
	padding: 0;
	list-style: none;
}

.attr-list li {
	display: grid;
	grid-template-columns: 1fr auto;
	gap: 0.45rem;
	align-items: baseline;
}

.attr-list__label {
	font-size: 0.95rem;
	color: var(--text-dim);
}

.attr-list strong {
	font-family: var(--font-display);
	font-size: 1.5rem;
	font-weight: 800;
	line-height: 1;
}

.attr-list .meter__bar {
	grid-column: 1 / -1;
}

/* Stärken / Schwächen */
.sw {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 1.25rem;
}

.sw ul {
	margin: 0;
	padding: 0;
	list-style: none;
}

.sw li {
	display: flex;
	align-items: flex-start;
	gap: 0.75rem;
	padding-block: 0.8rem;
	border-top: 1px solid var(--line);
}

.sw li:first-child {
	padding-top: 0;
	border-top: 0;
}

.sw li .icon {
	width: 22px;
	height: 22px;
	padding: 4px;
	border-radius: 50%;
	stroke-width: 3;
}

.sw__col--plus .icon {
	background: var(--accent-soft);
	color: var(--accent);
}

.sw__col--minus .icon {
	background: rgba(var(--text-rgb), 0.07);
	color: var(--grey);
}

/* Entwicklungsfelder: nummerierte Punkte, Titel plus eine kurze Zeile */
.develop__list {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(min(100%, 280px), 1fr));
	gap: 0 2rem;
	margin: 0;
	padding: 0;
	list-style: none;
	counter-reset: develop;
}

.develop__list li {
	display: grid;
	grid-template-columns: auto 1fr;
	align-content: start;
	gap: 0.2rem 0.9rem;
	padding-block: 0.9rem;
	border-top: 1px solid var(--line);
	counter-increment: develop;
}

.develop__list li::before {
	content: counter(develop, decimal-leading-zero);
	grid-row: span 2;
	padding-top: 0.2rem;
	font-family: var(--font-mono);
	font-size: 0.75rem;
	letter-spacing: 0.08em;
	color: var(--accent);
}

.develop__list b {
	font-weight: 600;
}

.develop__list span {
	grid-column: 2;
	font-size: 0.95rem;
	line-height: 1.5;
	color: var(--text-dim);
}

/* Bericht */
.report {
	padding: clamp(1.5rem, 4vw, 2.75rem);
	border: 1px solid var(--line);
	border-radius: var(--radius);
}

.report__title {
	margin: 0 0 1.5rem;
	font-family: var(--font-display);
	font-size: clamp(2rem, 4vw, 2.75rem);
	font-weight: 800;
	line-height: 0.95;
	text-transform: uppercase;
}

.byline {
	display: flex;
	align-items: center;
	gap: 0.85rem;
	margin-top: 2.25rem;
	font-size: 0.875rem;
	line-height: 1.4;
	color: var(--text-dim);
}

.byline b {
	color: var(--text);
	font-weight: 600;
}

.byline__avatar {
	display: grid;
	flex: none;
	place-items: center;
	width: 44px;
	height: 44px;
	border-radius: 50%;
	background: var(--accent-soft);
	border: 1px solid rgba(var(--accent-rgb), 0.35);
	font-family: var(--font-display);
	font-size: 1.1rem;
	font-weight: 800;
	color: var(--accent);
}

/* ---------- Aktionen im Profil, Entwicklung, Erwähnungen ---------- */

.profile-hero__actions {
	margin-top: 1.75rem;
}

.trend-legend {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem 1.5rem;
	margin: 1rem 0 0;
	padding: 0;
	list-style: none;
	font-size: 0.85rem;
	color: var(--text-dim);
}

.trend-legend li {
	display: flex;
	align-items: center;
	gap: 0.5rem;
}

.trend-legend__line {
	width: 24px;
	height: 0;
	border-top: 2.5px solid var(--accent);
}

.trend-legend__line--staerke {
	border-top-style: dashed;
	border-top-color: var(--text-dim);
}

.bars-legend {
	width: 12px;
	height: 12px;
	border-radius: 3px;
	background: var(--accent);
}

.bars-legend--b {
	background: var(--accent-deep);
}

.timeline {
	margin: 1.5rem 0 0;
	padding: 0;
	list-style: none;
}

.timeline li {
	display: grid;
	grid-template-columns: 7.5rem 1fr auto;
	align-items: baseline;
	gap: 1rem;
	padding: 0.9rem 0;
	border-top: 1px solid var(--line);
}

.timeline time {
	font-family: var(--font-mono);
	font-size: 0.75rem;
	letter-spacing: 0.06em;
	color: var(--text-faint);
}

.timeline strong {
	font-weight: 600;
}

.timeline p {
	margin: 0.2rem 0 0;
	font-size: 0.9rem;
	color: var(--text-dim);
}

.timeline__scores {
	display: flex;
	gap: 0.75rem;
	font-family: var(--font-display);
	font-size: 1.4rem;
	font-weight: 800;
	line-height: 1;
}

.timeline__scores span {
	color: var(--text-dim);
}

.timeline__scores b {
	color: var(--accent);
}

.mentions {
	margin: 0;
	padding: 0;
	list-style: none;
}

.mentions li {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	gap: 0.25rem 1rem;
	padding: 0.8rem 0;
	border-top: 1px solid var(--line);
}

.mentions li:first-child {
	border-top: 0;
	padding-top: 0;
}

.mentions a {
	font-weight: 600;
	text-decoration: none;
}

.mentions a:hover {
	color: var(--accent);
}

.mentions span {
	font-family: var(--font-mono);
	font-size: 0.72rem;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: var(--text-faint);
}

.section--linked {
	border-top: 1px solid var(--line);
}

/* ---------- Einschätzung im Profilkopf ---------- */

.assessment {
	margin-top: 2rem;
	padding-top: 1.5rem;
	border-top: 1px solid var(--line);
}

.assessment__kicker {
	font-family: var(--font-mono);
	font-size: 0.7rem;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var(--accent);
}

.assessment__text {
	max-width: 38rem;
	margin: 0.6rem 0 0;
	font-size: clamp(1.05rem, 1.6vw, 1.2rem);
	line-height: 1.55;
	color: var(--text);
}

.assessment__tiles {
	display: flex;
	flex-wrap: wrap;
	gap: 1.25rem 2.5rem;
	margin: 1.5rem 0 0;
}

.assessment__tiles div {
	display: grid;
	gap: 0.2rem;
}

.assessment__tiles dt {
	font-family: var(--font-mono);
	font-size: 0.66rem;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--text-faint);
}

.assessment__tiles dd {
	margin: 0;
	font-family: var(--font-display);
	font-size: 1.75rem;
	font-weight: 800;
	line-height: 1;
}

.assessment__tiles small {
	font-size: 0.8rem;
	color: var(--text-dim);
}

/* ---------- Einordnung (Perzentile als Pizza-Grafik) ---------- */

.pizza-wrap {
	display: grid;
	grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr);
	align-items: center;
	gap: 2rem;
}

.pizza {
	width: 100%;
	height: auto;
	overflow: visible;
}

.pizza__ring {
	fill: none;
	stroke: var(--line);
	stroke-dasharray: 2 4;
}

.pizza__track {
	fill: rgba(var(--text-rgb), 0.04);
}

.pizza__slice {
	transition: opacity 0.2s;
}

.pizza__slice--top { fill: var(--accent); }
.pizza__slice--mid { fill: var(--accent-deep); }
.pizza__slice--low { fill: rgba(var(--text-rgb), 0.22); }

.pizza__slice:hover {
	opacity: 0.8;
}

.pizza__label {
	fill: var(--text-dim);
	font-family: var(--font-mono);
	font-size: 11px;
	letter-spacing: 0.06em;
	text-transform: uppercase;
}

.pizza__value {
	fill: var(--text);
	font-family: var(--font-display);
	font-size: 17px;
	font-weight: 800;
	letter-spacing: 0;
}

.pizza-side__intro {
	margin: 0 0 1rem;
	color: var(--text-dim);
}

.pizza-side__list {
	display: grid;
	gap: 0.75rem;
	margin: 0;
	padding: 0;
	list-style: none;
}

.pizza-side__list li {
	display: flex;
	align-items: center;
	gap: 0.9rem;
}

.pizza-side__list strong {
	display: grid;
	flex: none;
	place-items: center;
	width: 48px;
	height: 48px;
	border: 2px solid var(--accent);
	border-radius: 50%;
	font-family: var(--font-display);
	font-size: 1.3rem;
	font-weight: 800;
	color: var(--accent);
}

.pizza-side__list span {
	font-size: 0.95rem;
	color: var(--text-dim);
}

.pizza-side__list b {
	color: var(--text);
	font-weight: 600;
}

.pizza-legend {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem 1.25rem;
	margin: 1.5rem 0 0;
	padding: 0;
	list-style: none;
	font-size: 0.8rem;
	color: var(--text-dim);
}

.pizza-legend li {
	display: flex;
	align-items: center;
	gap: 0.45rem;
}

.pizza-legend__dot {
	width: 10px;
	height: 10px;
	border-radius: 2px;
}

.pizza-legend__dot--top { background: var(--accent); }
.pizza-legend__dot--mid { background: var(--accent-deep); }
.pizza-legend__dot--low { background: rgba(var(--text-rgb), 0.22); }

.panel__note {
	margin: 1rem 0 0;
	font-size: 0.8rem;
	color: var(--text-faint);
}

/* ---------- Saisonstatistik ---------- */

.season {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 1.5rem 2rem;
}

.season__numbers {
	display: flex;
	flex-wrap: wrap;
	gap: 1.25rem 2.25rem;
	margin: 0;
}

.season__numbers div {
	display: flex;
	flex-direction: column-reverse;
	gap: 0.35rem;
}

.season__numbers dt {
	font-family: var(--font-mono);
	font-size: 0.68rem;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--text-faint);
}

.season__numbers dd {
	margin: 0;
	font-family: var(--font-display);
	font-size: 2.6rem;
	font-weight: 800;
	line-height: 0.9;
}

.season__rings {
	display: flex;
	gap: 1.25rem;
}

.season__rings .ring svg,
.season__rings .ring__number {
	max-width: 96px;
}

.season__rings .ring {
	width: 96px;
}

.ring__number--pct {
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 1.9rem;
}

.ring__number--pct small {
	margin-left: 1px;
	font-size: 0.5em;
}

.season-chart {
	margin-top: 2rem;
	padding-top: 1.5rem;
	border-top: 1px solid var(--line);
}

.season-chart__head {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 0.75rem 1.5rem;
	margin-bottom: 1rem;
}

.season-chart__title {
	margin: 0;
	font-size: 1rem;
	font-weight: 600;
}

.tabs {
	display: inline-flex;
	gap: 0.25rem;
	padding: 0.25rem;
	border: 1px solid var(--line);
	border-radius: 999px;
}

.tabs__tab {
	padding: 0.45rem 0.9rem;
	border: 0;
	border-radius: 999px;
	background: transparent;
	font: 500 0.85rem var(--font-body);
	color: var(--text-dim);
	cursor: pointer;
	transition: background-color 0.2s, color 0.2s;
}

.tabs__tab:hover {
	color: var(--text);
}

.tabs__tab[aria-selected="true"] {
	background: var(--accent);
	color: var(--accent-ink);
}

.bars {
	width: 100%;
	height: auto;
	overflow: visible;
}

.bars__base {
	stroke: var(--line-strong);
}

.bars__bar--a { fill: var(--accent); }
.bars__bar--b { fill: var(--accent-deep); }

.bars__value {
	fill: var(--text);
	font-family: var(--font-display);
	font-size: 16px;
	font-weight: 800;
}

.bars__label {
	fill: var(--text-faint);
	font-family: var(--font-mono);
	font-size: 12px;
}

.career-wrap {
	margin-top: 2rem;
	overflow-x: auto;
}

.career {
	width: 100%;
	border-collapse: collapse;
	font-size: 0.95rem;
	font-variant-numeric: tabular-nums;
}

.career th,
.career td {
	padding: 0.7rem 0.5rem;
	border-top: 1px solid var(--line);
	text-align: right;
	white-space: nowrap;
}

.career th:nth-child(-n+2),
.career td:nth-child(-n+2) {
	text-align: left;
}

.career thead th {
	border-top: 0;
	font-family: var(--font-mono);
	font-size: 0.68rem;
	font-weight: 500;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--text-faint);
}

.career td:first-child {
	font-family: var(--font-mono);
	font-size: 0.8rem;
	color: var(--text-dim);
}

.career td small {
	display: block;
	font-size: 0.78rem;
	color: var(--text-faint);
}

.career tbody tr:first-child td {
	font-weight: 600;
}

/* ---------- Karten: Chips, Übereinstimmung; kompakte Sichtungsliste ---------- */

.player-card__chips {
	display: flex;
	flex-wrap: wrap;
	gap: 0.4rem;
}

.chip--match {
	border-color: rgba(var(--accent-rgb), 0.45);
	color: var(--accent);
	font-weight: 600;
}

.timeline--compact {
	margin-top: 0.5rem;
}

.timeline--compact li {
	grid-template-columns: 1fr;
	gap: 0.2rem;
	padding: 0.7rem 0;
}

.timeline--compact li:first-child {
	border-top: 0;
}

@media (max-width: 900px) {
	.pizza-wrap {
		grid-template-columns: 1fr;
	}
}

@media (max-width: 600px) {
	.pizza__label { font-size: 15px; }
	.pizza__value { font-size: 21px; }
	.bars__value { font-size: 24px; }
	.bars__label { font-size: 18px; }

	.season__numbers dd {
		font-size: 2.1rem;
	}
}

/* ---------- Suche & Filter in der Spielerübersicht ---------- */

.page-hero__links {
	margin: 1.5rem 0 0;
}

.player-filter {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.6rem;
	width: 100%;
	padding-top: 0.9rem;
	border-top: 1px solid var(--line);
}

.player-filter select,
.compare-form select {
	height: 42px;
	padding: 0 2.25rem 0 1rem;
	border: 1px solid var(--line-strong);
	border-radius: 999px;
	background: var(--surface) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23889' stroke-width='2'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E") no-repeat right 0.8rem center / 16px;
	font: inherit;
	font-size: 0.9rem;
	color: var(--text);
	appearance: none;
	cursor: pointer;
}

.player-filter__search {
	display: flex;
	flex: 1 1 16rem;
	align-items: center;
	gap: 0.6rem;
	height: 42px;
	padding: 0 1rem;
	border: 1px solid var(--line-strong);
	border-radius: 999px;
	color: var(--text-faint);
}

.player-filter__search:focus-within,
.player-filter select:focus,
.compare-form select:focus {
	border-color: var(--accent);
	outline: none;
}

.player-filter__search input {
	flex: 1;
	min-width: 0;
	border: 0;
	outline: 0;
	background: transparent;
	font: inherit;
	font-size: 0.9rem;
	color: var(--text);
}

.player-filter__reset {
	font-size: 0.875rem;
	color: var(--text-dim);
}

/* ---------- Spielervergleich ---------- */

.compare {
	padding-bottom: clamp(4rem, 8vw, 6rem);
}

.compare-form {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-end;
	gap: 1rem;
	margin-bottom: 2rem;
	padding: 1.25rem;
	border: 1px solid var(--line);
	border-radius: var(--radius);
	background: var(--surface);
}

.compare-form__field {
	display: grid;
	flex: 1 1 14rem;
	gap: 0.4rem;
}

.compare-form__field span {
	font-family: var(--font-mono);
	font-size: 0.7rem;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--text-faint);
}

.compare-form select {
	width: 100%;
}

.compare-form__vs {
	align-self: center;
	padding-top: 1.2rem;
	font-family: var(--font-display);
	font-size: 1.5rem;
	font-weight: 800;
	text-transform: uppercase;
	color: var(--text-faint);
}

.compare__heads {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 1.25rem;
	margin-bottom: 1.25rem;
}

.compare-head {
	position: relative;
	display: grid;
	justify-items: start;
	gap: 0.4rem;
	padding: 1.5rem;
	border: 1px solid var(--line);
	border-radius: var(--radius);
	background: var(--surface);
	text-decoration: none;
	transition: border-color 0.2s;
}

.compare-head:hover {
	border-color: rgba(var(--accent-rgb), 0.5);
}

.compare-head__marker {
	width: 32px;
	margin-bottom: 0.6rem;
	border-top: 3px solid var(--accent);
}

.compare-head--b .compare-head__marker {
	border-top-style: dashed;
	border-top-color: var(--text-dim);
}

.compare-head__pos {
	position: absolute;
	top: 1.25rem;
	right: 1.5rem;
	font-family: var(--font-display);
	font-size: 1.75rem;
	font-weight: 800;
	color: var(--text-faint);
}

.compare-head__name {
	font-family: var(--font-display);
	font-size: clamp(1.75rem, 3.5vw, 2.5rem);
	font-weight: 900;
	line-height: 0.95;
	text-transform: uppercase;
}

.compare-head__meta {
	margin-bottom: 0.5rem;
	color: var(--text-dim);
}

.compare__grid {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
	gap: 1.25rem;
	align-items: start;
}

.compare__facts {
	grid-column: 1 / -1;
}

.compare table {
	width: 100%;
	border-collapse: collapse;
	font-size: 0.95rem;
}

.compare th,
.compare td {
	padding: 0.65rem 0.5rem;
	border-top: 1px solid var(--line);
	text-align: left;
	vertical-align: middle;
}

.compare thead th {
	border-top: 0;
	font-family: var(--font-mono);
	font-size: 0.7rem;
	font-weight: 500;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--text-faint);
}

.compare tbody th {
	font-weight: 500;
	color: var(--text-dim);
}

.compare__table td {
	width: 32%;
}

.compare__value {
	display: block;
	margin-bottom: 0.3rem;
	font-family: var(--font-display);
	font-size: 1.35rem;
	font-weight: 800;
	line-height: 1;
	color: var(--text-dim);
}

.compare .is-better .compare__value {
	color: var(--text);
}

.compare__table .is-better .compare__value::after {
	content: " ▲";
	font-size: 0.55em;
	vertical-align: 0.3em;
	color: var(--accent);
}

.compare__bar--b i {
	background: var(--text-dim);
}

.radar__area--b polygon {
	fill: rgba(var(--text-rgb), 0.06);
	stroke: var(--text-dim);
	stroke-dasharray: 6 5;
}

.radar__area--b .radar__dot {
	stroke: var(--text-dim);
}

@media (max-width: 900px) {
	.compare__grid,
	.compare__heads {
		grid-template-columns: minmax(0, 1fr);
	}

	.timeline li {
		grid-template-columns: 1fr auto;
	}

	.timeline time {
		grid-column: 1 / -1;
	}
}

/* ==========================================================================
   Blogbeitrag
   ========================================================================== */

.progress {
	position: fixed;
	top: 0;
	left: 0;
	right: 0;
	z-index: 150;
	height: 3px;
	pointer-events: none;
}

.admin-bar .progress {
	top: 32px;
}

.progress span {
	display: block;
	height: 100%;
	background: linear-gradient(90deg, var(--accent), var(--accent-hi));
	box-shadow: 0 0 12px rgba(var(--accent-rgb), calc(0.7 * var(--glow)));
	transform: scaleX(var(--progress, 0));
	transform-origin: left;
}

.article-hero {
	padding-block: clamp(3rem, 7vw, 5.5rem) clamp(2rem, 4vw, 3rem);
}

.article-hero__cats {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
}

.article-hero__title {
	margin: 1.5rem 0 0;
	font-family: var(--font-display);
	font-size: clamp(2.9rem, 7vw, 5.75rem);
	font-weight: 900;
	line-height: 1.04;
	letter-spacing: -0.01em;
	text-transform: uppercase;
}

.article-hero__lead {
	margin: 1.75rem 0 0;
	font-size: clamp(1.15rem, 2vw, 1.4rem);
	line-height: 1.5;
	color: var(--text-dim);
}

.article-media {
	width: min(100% - 2 * var(--gutter), 1120px);
	margin: 0 auto clamp(2.5rem, 5vw, 4rem);
	overflow: hidden;
	border-radius: 28px;
}

.article-media img {
	width: 100%;
}

/* Bildnachweis („Foto: …“) unten rechts auf Beitragsbild und Spielerfoto */
.article-media {
	position: relative;
}

.photo-credit {
	position: absolute;
	right: 0.75rem;
	bottom: 0.75rem;
	z-index: 1;
	max-width: calc(100% - 1.5rem);
	padding: 0.3rem 0.65rem;
	border-radius: 999px;
	font-family: var(--font-mono);
	font-size: 0.66rem;
	line-height: 1.3;
	letter-spacing: 0.04em;
	color: rgba(243, 239, 232, 0.92);
	background: rgba(10, 10, 10, 0.5);
	-webkit-backdrop-filter: blur(6px);
	backdrop-filter: blur(6px);
}

/* im Spielerprofil links unten Platz für die Potenzial-Anzeige lassen */
.profile-hero__visual .photo-credit {
	max-width: calc(100% - 9rem);
}

.article-tags {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
	margin: 3rem 0 0;
	padding: 2rem 0 0;
	border-top: 1px solid var(--line);
	list-style: none;
}

.article {
	padding-bottom: clamp(4rem, 8vw, 6rem);
}

.page-body {
	padding-block: 2rem clamp(4rem, 8vw, 6rem);
}

/* ==========================================================================
   Fließtext aus dem Editor
   ========================================================================== */

.prose {
	font-size: 1.125rem;
	line-height: 1.75;
	color: var(--text-prose);
}

.prose > * {
	margin-block: 0;
}

.prose > * + * {
	margin-top: 1.35em;
}

.prose > :first-child {
	margin-top: 0;
}

.prose h2 {
	margin-top: 2.2em;
	font-family: var(--font-display);
	font-size: clamp(2rem, 4vw, 2.6rem);
	font-weight: 800;
	line-height: 0.95;
	text-transform: uppercase;
	color: var(--text);
}

.prose h3 {
	margin-top: 1.9em;
	font-size: 1.35rem;
	font-weight: 600;
	letter-spacing: -0.01em;
	color: var(--text);
}

.prose h2 + *,
.prose h3 + * {
	margin-top: 0.75em;
}

.prose a {
	color: var(--text);
	text-decoration-color: var(--accent);
	text-decoration-thickness: 2px;
	text-underline-offset: 0.2em;
	transition: color 0.2s;
}

.prose a:hover {
	color: var(--accent);
}

.prose strong {
	color: var(--text);
}

.prose ul,
.prose ol {
	padding-left: 1.25em;
}

.prose li + li {
	margin-top: 0.4em;
}

.prose li::marker {
	color: var(--accent);
}

.prose blockquote,
.prose .wp-block-pullquote {
	margin-inline: 0;
	padding: 0.25em 0 0.25em 1.5rem;
	border-left: 3px solid var(--accent);
	font-family: var(--font-display);
	font-size: clamp(1.75rem, 3.5vw, 2.4rem);
	font-weight: 700;
	line-height: 1.05;
	text-transform: uppercase;
	color: var(--text);
}

.prose blockquote p {
	margin: 0;
}

.prose blockquote cite,
.prose .wp-block-pullquote cite {
	display: block;
	margin-top: 1rem;
	font-family: var(--font-mono);
	font-size: 0.75rem;
	font-style: normal;
	font-weight: 400;
	letter-spacing: 0.12em;
	color: var(--text-dim);
}

.prose .wp-block-pullquote blockquote {
	padding: 0;
	border: 0;
}

.prose img {
	border-radius: 16px;
}

.prose figcaption {
	margin-top: 0.75rem;
	font-family: var(--font-mono);
	font-size: 0.75rem;
	color: var(--text-faint);
	text-align: center;
}

.prose hr {
	height: 1px;
	border: 0;
	background: var(--line-strong);
}

.prose table {
	width: 100%;
	border-collapse: collapse;
	font-size: 0.95rem;
}

.prose th,
.prose td {
	padding: 0.75rem;
	border-bottom: 1px solid var(--line);
	text-align: left;
}

.prose th {
	font-family: var(--font-mono);
	font-size: 0.72rem;
	font-weight: 500;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--text-dim);
}

.prose .alignwide {
	width: min(1100px, 100vw - 2 * var(--gutter));
	margin-left: 50%;
	transform: translateX(-50%);
}

.prose .alignfull {
	width: 100vw;
	margin-left: 50%;
	transform: translateX(-50%);
}

.prose .alignfull img {
	border-radius: 0;
}

.prose .wp-block-button__link {
	display: inline-flex;
	padding: 0.9rem 1.4rem;
	border-radius: 999px;
	background: var(--accent);
	color: var(--accent-ink);
	font-weight: 600;
	text-decoration: none;
}

/* Boxen aus den Editor-Vorlagen (Spiel-Info, Namen zum Merken, Fazit) */
.prose .fuchs-box {
	padding: clamp(1.25rem, 3vw, 1.75rem);
	border: 1px solid var(--line-strong);
	border-radius: var(--radius);
	background: var(--surface);
	font-size: 1rem;
	line-height: 1.6;
}

.prose .fuchs-box p,
.prose .fuchs-box ul {
	margin: 0;
}

.prose .fuchs-box .fuchs-box__label {
	margin-bottom: 1rem;
	font-family: var(--font-mono);
	font-size: 0.72rem;
	font-weight: 500;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var(--accent);
}

/* Spiel-Info: Eckdaten als zweispaltiges Raster
   (klassische Themes packen den Inhalt in .wp-block-group__inner-container) */
.prose .fuchs-box--info:not(:has(> .wp-block-group__inner-container)),
.prose .fuchs-box--info > .wp-block-group__inner-container {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 0.9rem 1.5rem;
}

.prose .fuchs-box--info .fuchs-box__label {
	grid-column: 1 / -1;
	margin-bottom: 0;
}

.prose .fuchs-box--info p:not(.fuchs-box__label) {
	display: flex;
	flex-direction: column;
	gap: 0.15rem;
	color: var(--text);
}

.prose .fuchs-box--info strong {
	font-family: var(--font-mono);
	font-size: 0.68rem;
	font-weight: 500;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--text-faint);
}

/* Namen zum Merken */
.prose .fuchs-box--namen ul {
	padding: 0;
	list-style: none;
}

.prose .fuchs-box--namen li {
	padding: 0.7rem 0 0.7rem 1.75rem;
	border-top: 1px solid var(--line);
	position: relative;
}

.prose .fuchs-box--namen li:first-child {
	border-top: 0;
	padding-top: 0;
}

.prose .fuchs-box--namen li::before {
	content: "★";
	position: absolute;
	left: 0;
	color: var(--accent);
}

.prose .fuchs-box--namen li + li {
	margin-top: 0;
}

/* Fazit: hervorgehoben */
.prose .fuchs-box--fazit {
	border-color: rgba(var(--accent-rgb), 0.4);
	background: var(--accent-soft);
	font-size: 1.1rem;
	color: var(--text);
}

@media (max-width: 600px) {
	.prose .fuchs-box--info:not(:has(> .wp-block-group__inner-container)),
	.prose .fuchs-box--info > .wp-block-group__inner-container {
		grid-template-columns: 1fr;
	}
}

/* Videos: Klick-Vorschau (YouTube/Vimeo) und eigene Videodateien */
.video-consent {
	margin-inline: 0;
}

.video-consent__frame {
	position: relative;
	isolation: isolate;
	overflow: hidden;
	display: grid;
	place-items: center;
	align-content: center;
	gap: 1rem;
	aspect-ratio: 16 / 9;
	min-height: 240px;
	padding: 1.5rem;
	border: 1px solid var(--line);
	border-radius: var(--radius);
	background:
		radial-gradient(70% 90% at 50% 40%, rgba(var(--accent-rgb), calc(0.22 * var(--glow))), transparent 70%),
		linear-gradient(160deg, var(--surface-hi), var(--surface));
	text-align: center;
}

.video-consent__pitch {
	position: absolute;
	inset: 0;
	z-index: -1;
	color: rgba(var(--text-rgb), 0.08);
}

.video-consent__pitch svg {
	width: 100%;
	height: 100%;
}

.prose .video-consent__play {
	display: inline-flex;
	align-items: center;
	gap: 0.8rem;
	margin: 0;
	padding: 0.6rem 1.4rem 0.6rem 0.6rem;
	border: 0;
	border-radius: 999px;
	background: var(--accent);
	color: var(--accent-ink);
	font: 600 1rem/1 var(--font-body);
	cursor: pointer;
	transition: transform 0.25s var(--ease), box-shadow 0.25s;
}

.video-consent__play:hover {
	transform: scale(1.04);
	box-shadow: 0 12px 32px -10px rgba(var(--accent-rgb), calc(0.8 * var(--glow)));
}

.video-consent__icon {
	position: relative;
	width: 38px;
	height: 38px;
	border-radius: 50%;
	background: var(--accent-ink);
}

.video-consent__icon::after {
	content: "";
	position: absolute;
	top: 50%;
	left: 55%;
	border-block: 7px solid transparent;
	border-left: 11px solid var(--accent);
	transform: translate(-50%, -50%);
}

.prose .video-consent__note {
	max-width: 30rem;
	margin: 0;
	font-size: 0.8rem;
	line-height: 1.5;
	color: var(--text-dim);
}

.video-consent__frame.is-playing {
	padding: 0;
	min-height: 0;
}

.video-consent__frame iframe,
.prose .wp-block-embed iframe {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	border: 0;
}

.prose .wp-block-video video {
	width: 100%;
	border-radius: var(--radius);
	background: #000;
}

/* Highlights-Box: ohne Video automatisch ausblenden */
.prose .fuchs-box--video:not(:has(figure)) {
	display: none;
}

.prose .fuchs-box--video figure {
	margin: 0 0 1rem;
}

/* Kennzeichen „Video“ in Übersichten */
.post-card__video {
	color: var(--accent);
}

.player-card__video {
	position: absolute;
	right: 1rem;
	bottom: 1rem;
	z-index: 1;
	display: inline-flex;
	align-items: center;
	gap: 0.35rem;
	padding: 0.3rem 0.55rem;
	border-radius: 6px;
	background: rgba(10, 10, 10, 0.55);
	-webkit-backdrop-filter: blur(8px);
	backdrop-filter: blur(8px);
	font-family: var(--font-mono);
	font-size: 0.65rem;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: #f3efe8;
}

/* Initiale im ersten Absatz eines Beitrags */
.prose--article > p:first-child::first-letter {
	float: left;
	margin: 0.08em 0.12em 0 0;
	font-family: var(--font-display);
	font-size: 4.7em;
	font-weight: 900;
	line-height: 0.75;
	color: var(--accent);
}

/* ==========================================================================
   404
   ========================================================================== */

.not-found {
	position: relative;
	isolation: isolate;
	overflow: hidden;
	padding-block: clamp(4rem, 12vw, 9rem);
}

.not-found__pitch {
	inset: 10% -10% auto;
	transform: perspective(1000px) rotateX(55deg);
	-webkit-mask-image: radial-gradient(closest-side, #000, transparent);
	mask-image: radial-gradient(closest-side, #000, transparent);
}

.not-found__code {
	display: block;
	font-family: var(--font-display);
	font-size: clamp(8rem, 30vw, 22rem);
	font-weight: 900;
	line-height: 0.75;
	color: transparent;
	-webkit-text-stroke: 2px var(--accent);
}

/* ==========================================================================
   Footer
   ========================================================================== */

.site-footer {
	overflow: hidden;
	padding-top: clamp(3.5rem, 7vw, 5rem);
	border-top: 1px solid var(--line);
	background: var(--bg-raised);
}

.footer-grid {
	display: grid;
	grid-template-columns: minmax(0, 2fr) minmax(0, 1fr) minmax(0, 1fr);
	gap: 2.5rem;
}

.footer-about p {
	max-width: 26rem;
	margin: 1.25rem 0 0;
	color: var(--text-dim);
}

.footer-title {
	margin: 0 0 1.25rem;
	font-family: var(--font-mono);
	font-size: 0.72rem;
	font-weight: 500;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var(--text-faint);
}

.footer-menu {
	display: grid;
	gap: 0.6rem;
	margin: 0;
	padding: 0;
	list-style: none;
}

.footer-menu a {
	color: var(--text-dim);
	text-decoration: none;
	transition: color 0.2s;
}

.footer-menu a:hover {
	color: var(--accent);
}

.footer-bottom {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	gap: 1rem;
	margin-top: 3.5rem;
	padding-block: 1.5rem;
	border-top: 1px solid var(--line);
	font-family: var(--font-mono);
	font-size: 0.72rem;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--text-faint);
}

.footer-wordmark {
	margin-bottom: -0.16em;
	font-family: var(--font-display);
	font-size: clamp(4rem, 15.5vw, 17rem);
	font-weight: 900;
	line-height: 0.8;
	letter-spacing: -0.01em;
	text-align: center;
	text-transform: uppercase;
	white-space: nowrap;
	color: transparent;
	-webkit-text-stroke: 1px var(--line-strong);
	user-select: none;
}

/* ==========================================================================
   Einblenden beim Scrollen (nur mit JavaScript, sonst sofort sichtbar)
   ========================================================================== */

.js [data-reveal]:not(.is-visible) {
	opacity: 0;
}

.js [data-reveal].is-visible {
	animation: reveal 0.9s var(--ease) backwards;
	animation-delay: calc(var(--d, 0) * 90ms);
}

@keyframes reveal {
	from {
		opacity: 0;
		transform: translateY(28px);
	}
}

.js [data-reveal]:not(.is-visible) .meter__bar i {
	transform: scaleX(0);
}

.js [data-reveal]:not(.is-visible) .ring__value {
	stroke-dashoffset: 100;
}

.js [data-reveal]:not(.is-visible) .radar__area {
	opacity: 0;
	transform: scale(0.2);
}

/* ==========================================================================
   Responsive
   ========================================================================== */

@media (max-width: 1080px) {
	.hero__grid,
	.profile-hero__inner {
		grid-template-columns: 1fr;
	}

	.spotlight {
		max-width: 440px;
		transform: none;
	}

	.profile-hero__visual {
		width: min(100%, 420px);
		aspect-ratio: 1;
		grid-row: 1;
	}

	/* minmax(0, …): Spalte richtet sich nach dem Bildschirm, nicht nach breiten Inhalten (Tabellen) */
	.profile-body {
		grid-template-columns: minmax(0, 1fr);
	}

	.profile-aside {
		position: static;
		grid-template-columns: repeat(auto-fit, minmax(min(100%, 240px), 1fr));
	}

	.blog-feature,
	.post-grid .post-card--featured {
		grid-template-columns: 1fr;
	}

	.method {
		grid-template-columns: 1fr;
	}
}

@media (max-width: 900px) {
	.nav-toggle {
		display: block;
	}

	.theme-toggle {
		margin-left: auto;
	}

	.site-nav {
		position: fixed;
		inset: var(--header-h) 0 0;
		flex-direction: column;
		align-items: flex-start;
		gap: 2.5rem;
		padding: 2.5rem var(--gutter);
		background: var(--bg);
		opacity: 0;
		visibility: hidden;
		transform: translateY(-10px);
		transition: opacity 0.3s, transform 0.3s var(--ease), visibility 0.3s;
	}

	.admin-bar .site-nav {
		top: calc(var(--header-h) + 46px);
	}

	.nav-open {
		overflow: hidden;
	}

	.nav-open .site-nav {
		opacity: 1;
		visibility: visible;
		transform: none;
	}

	.site-nav__menu {
		flex-direction: column;
		gap: 0.25rem;
	}

	.site-nav__menu a {
		font-family: var(--font-display);
		font-size: 2.75rem;
		font-weight: 800;
		line-height: 1.1;
		text-transform: uppercase;
	}

	.site-nav__menu a::after {
		display: none;
	}

	.site-nav__menu .current-menu-item > a {
		color: var(--accent);
	}

	.footer-grid {
		grid-template-columns: 1fr 1fr;
	}

	.footer-about {
		grid-column: 1 / -1;
	}

	.attrs,
	.sw {
		grid-template-columns: 1fr;
	}

	.cta {
		grid-template-columns: 1fr;
		justify-items: start;
	}
}

@media (max-width: 782px) {
	.admin-bar .site-header {
		top: 46px;
	}

	.admin-bar .filters {
		top: calc(var(--header-h) + 46px);
	}

	.admin-bar .progress {
		top: 46px;
	}
}

@media (max-width: 600px) {
	/* WordPress-Adminleiste scrollt hier mit */
	.admin-bar .site-header,
	.admin-bar .progress {
		top: 0;
	}

	.admin-bar .filters {
		top: var(--header-h);
	}

	.filters {
		position: static;
	}

	.filters__inner {
		flex-direction: column;
		align-items: stretch;
	}

	.search-form input {
		width: 100%;
	}

	.player-grid {
		grid-template-columns: 1fr 1fr;
		gap: 0.75rem;
	}

	.player-card__monogram {
		font-size: 5rem;
	}

	.player-card__rating strong {
		font-size: 2rem;
	}

	.player-card__name {
		font-size: 1.45rem;
	}

	.player-card__body {
		padding: 0.9rem;
	}

	.player-card__meta {
		font-size: 0.8rem;
	}

	.player-card .meter {
		grid-template-columns: 1fr auto;
	}

	.player-card .meter > span:first-child {
		display: none;
	}

	.post-card--row {
		grid-template-columns: 96px 1fr;
	}

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

	.stat dt {
		font-size: 0.6rem;
		letter-spacing: 0.06em;
	}

	.facts {
		gap: 1.25rem 2rem;
	}

	.brand__name {
		font-size: 1.4rem;
	}

	/* iOS-Safari schiebt beim schnellen Scrollen die eingeklappte Werkzeugleiste
	   über die letzten ~90 px – dort soll nur der Schriftzug liegen, nicht das Copyright */
	.site-footer {
		padding-bottom: 2.5rem;
	}
}

@media (max-width: 380px) {
	.player-grid {
		grid-template-columns: 1fr;
	}
}

@media (prefers-reduced-motion: reduce) {
	*,
	*::before,
	*::after {
		animation-duration: 0.001ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: 0.001ms !important;
	}

	.ticker__track {
		animation: none;
	}
}
